diff --git a/cmd/zitadel/main.go b/cmd/zitadel/main.go index a3f0a8e5cc..776fd3bb5b 100644 --- a/cmd/zitadel/main.go +++ b/cmd/zitadel/main.go @@ -113,7 +113,7 @@ func startZitadel(configPaths []string) { func startUI(ctx context.Context, conf *Config, authRepo *auth_es.EsRepository) { uis := ui.Create(conf.UI) if *loginEnabled { - login, prefix := login.Start(conf.UI.Login, authRepo, *localDevMode) + login, prefix := login.Start(conf.UI.Login, authRepo, conf.SystemDefaults, *localDevMode) uis.RegisterHandler(prefix, login.Handler()) } if *consoleEnabled { diff --git a/cmd/zitadel/startup.yaml b/cmd/zitadel/startup.yaml index c152c29231..71fa66bb27 100644 --- a/cmd/zitadel/startup.yaml +++ b/cmd/zitadel/startup.yaml @@ -222,6 +222,7 @@ UI: Port: 50003 Login: Handler: + BaseURL: '$ZITADEL_ACCOUNTS' OidcAuthCallbackURL: '$ZITADEL_AUTHORIZE/authorize/' ZitadelURL: '$ZITADEL_CONSOLE' LanguageCookieName: 'caos.zitadel.login.lang' diff --git a/console/src/app/pages/orgs/policy-grid/policy-grid.component.html b/console/src/app/pages/orgs/policy-grid/policy-grid.component.html index e45010f835..4a404001c5 100644 --- a/console/src/app/pages/orgs/policy-grid/policy-grid.component.html +++ b/console/src/app/pages/orgs/policy-grid/policy-grid.component.html @@ -81,7 +81,7 @@
- +
- \ No newline at end of file + diff --git a/internal/admin/repository/eventsourcing/eventstore/iam.go b/internal/admin/repository/eventsourcing/eventstore/iam.go index bed72cc182..130eabe886 100644 --- a/internal/admin/repository/eventsourcing/eventstore/iam.go +++ b/internal/admin/repository/eventsourcing/eventstore/iam.go @@ -9,6 +9,8 @@ import ( es_sdk "github.com/caos/zitadel/internal/eventstore/sdk" iam_es_model "github.com/caos/zitadel/internal/iam/repository/view/model" org_es "github.com/caos/zitadel/internal/org/repository/eventsourcing" + usr_model "github.com/caos/zitadel/internal/user/model" + usr_es "github.com/caos/zitadel/internal/user/repository/eventsourcing" "strings" iam_model "github.com/caos/zitadel/internal/iam/model" @@ -19,6 +21,7 @@ type IAMRepository struct { SearchLimit uint64 *iam_es.IAMEventstore OrgEvents *org_es.OrgEventstore + UserEvents *usr_es.UserEventstore View *admin_view.View SystemDefaults systemdefaults.SystemDefaults Roles []string @@ -83,7 +86,7 @@ func (repo *IAMRepository) IDPConfigByID(ctx context.Context, idpConfigID string if err != nil { return nil, err } - return iam_es_model.IdpConfigViewToModel(idp), nil + return iam_es_model.IDPConfigViewToModel(idp), nil } func (repo *IAMRepository) AddOIDCIDPConfig(ctx context.Context, idp *iam_model.IDPConfig) (*iam_model.IDPConfig, error) { idp.AggregateID = repo.SystemDefaults.IamID @@ -128,7 +131,19 @@ func (repo *IAMRepository) RemoveIDPConfig(ctx context.Context, idpConfigID stri } aggregates = append(aggregates, providerAgg) } - + externalIDPs, err := repo.View.ExternalIDPsByIDPConfigID(idpConfigID) + if err != nil { + return err + } + for _, externalIDP := range externalIDPs { + idpRemove := &usr_model.ExternalIDP{ObjectRoot: es_models.ObjectRoot{AggregateID: externalIDP.UserID}, IDPConfigID: externalIDP.IDPConfigID, UserID: externalIDP.ExternalUserID} + idpAgg := make([]*es_models.Aggregate, 0) + _, idpAgg, err = repo.UserEvents.PrepareRemoveExternalIDP(ctx, idpRemove, true) + if err != nil { + return err + } + aggregates = append(aggregates, idpAgg...) + } return es_sdk.PushAggregates(ctx, repo.Eventstore.PushAggregates, nil, aggregates...) } @@ -203,7 +218,27 @@ func (repo *IAMRepository) AddIDPProviderToLoginPolicy(ctx context.Context, prov return repo.IAMEventstore.AddIDPProviderToLoginPolicy(ctx, provider) } -func (repo *IAMRepository) RemoveIdpProviderFromIdpProvider(ctx context.Context, provider *iam_model.IDPProvider) error { +func (repo *IAMRepository) RemoveIDPProviderFromIDPProvider(ctx context.Context, provider *iam_model.IDPProvider) error { + aggregates := make([]*es_models.Aggregate, 0) provider.AggregateID = repo.SystemDefaults.IamID - return repo.IAMEventstore.RemoveIDPProviderFromLoginPolicy(ctx, provider) + _, removeAgg, err := repo.IAMEventstore.PrepareRemoveIDPProviderFromLoginPolicy(ctx, provider) + if err != nil { + return err + } + aggregates = append(aggregates, removeAgg) + + externalIDPs, err := repo.View.ExternalIDPsByIDPConfigID(provider.IdpConfigID) + if err != nil { + return err + } + for _, externalIDP := range externalIDPs { + idpRemove := &usr_model.ExternalIDP{ObjectRoot: es_models.ObjectRoot{AggregateID: externalIDP.UserID}, IDPConfigID: externalIDP.IDPConfigID, UserID: externalIDP.ExternalUserID} + idpAgg := make([]*es_models.Aggregate, 0) + _, idpAgg, err = repo.UserEvents.PrepareRemoveExternalIDP(ctx, idpRemove, true) + if err != nil { + return err + } + aggregates = append(aggregates, idpAgg...) + } + return es_sdk.PushAggregates(ctx, repo.Eventstore.PushAggregates, nil, aggregates...) } diff --git a/internal/admin/repository/eventsourcing/handler/user_external_idps.go b/internal/admin/repository/eventsourcing/handler/user_external_idps.go new file mode 100644 index 0000000000..1d64fb5a9f --- /dev/null +++ b/internal/admin/repository/eventsourcing/handler/user_external_idps.go @@ -0,0 +1,126 @@ +package handler + +import ( + "context" + "github.com/caos/logging" + "github.com/caos/zitadel/internal/config/systemdefaults" + caos_errs "github.com/caos/zitadel/internal/errors" + "github.com/caos/zitadel/internal/iam/repository/eventsourcing" + org_es "github.com/caos/zitadel/internal/org/repository/eventsourcing" + org_es_model "github.com/caos/zitadel/internal/org/repository/eventsourcing/model" + "github.com/caos/zitadel/internal/user/repository/eventsourcing/model" + usr_view_model "github.com/caos/zitadel/internal/user/repository/view/model" + + "github.com/caos/zitadel/internal/eventstore/models" + es_models "github.com/caos/zitadel/internal/eventstore/models" + "github.com/caos/zitadel/internal/eventstore/spooler" + iam_model "github.com/caos/zitadel/internal/iam/model" + iam_es_model "github.com/caos/zitadel/internal/iam/repository/eventsourcing/model" +) + +type ExternalIDP struct { + handler + systemDefaults systemdefaults.SystemDefaults + iamEvents *eventsourcing.IAMEventstore + orgEvents *org_es.OrgEventstore +} + +const ( + externalIDPTable = "adminapi.user_external_idps" +) + +func (m *ExternalIDP) ViewModel() string { + return externalIDPTable +} + +func (m *ExternalIDP) EventQuery() (*models.SearchQuery, error) { + sequence, err := m.view.GetLatestExternalIDPSequence() + if err != nil { + return nil, err + } + return es_models.NewSearchQuery(). + AggregateTypeFilter(model.UserAggregate, iam_es_model.IAMAggregate, org_es_model.OrgAggregate). + LatestSequenceFilter(sequence.CurrentSequence), nil +} + +func (m *ExternalIDP) Reduce(event *models.Event) (err error) { + switch event.AggregateType { + case model.UserAggregate: + err = m.processUser(event) + case iam_es_model.IAMAggregate, org_es_model.OrgAggregate: + err = m.processIdpConfig(event) + } + return err +} + +func (m *ExternalIDP) processUser(event *models.Event) (err error) { + externalIDP := new(usr_view_model.ExternalIDPView) + switch event.Type { + case model.HumanExternalIDPAdded: + err = externalIDP.AppendEvent(event) + if err != nil { + return err + } + err = m.fillData(externalIDP) + case model.HumanExternalIDPRemoved, model.HumanExternalIDPCascadeRemoved: + err = externalIDP.SetData(event) + if err != nil { + return err + } + return m.view.DeleteExternalIDP(externalIDP.ExternalUserID, externalIDP.IDPConfigID, event.Sequence) + default: + return m.view.ProcessedExternalIDPSequence(event.Sequence) + } + if err != nil { + return err + } + return m.view.PutExternalIDP(externalIDP, externalIDP.Sequence) +} + +func (m *ExternalIDP) processIdpConfig(event *models.Event) (err error) { + switch event.Type { + case iam_es_model.IDPConfigChanged, org_es_model.IDPConfigChanged: + config := new(iam_model.IDPConfig) + config.AppendEvent(event) + exterinalIDPs, err := m.view.ExternalIDPsByIDPConfigID(config.IDPConfigID) + if err != nil { + return err + } + if event.AggregateType == iam_es_model.IAMAggregate { + config, err = m.iamEvents.GetIDPConfig(context.Background(), config.AggregateID, config.IDPConfigID) + } else { + config, err = m.orgEvents.GetIDPConfig(context.Background(), config.AggregateID, config.IDPConfigID) + } + if err != nil { + return err + } + for _, provider := range exterinalIDPs { + m.fillConfigData(provider, config) + } + return m.view.PutExternalIDPs(event.Sequence, exterinalIDPs...) + default: + return m.view.ProcessedExternalIDPSequence(event.Sequence) + } + return nil +} + +func (m *ExternalIDP) fillData(externalIDP *usr_view_model.ExternalIDPView) error { + config, err := m.orgEvents.GetIDPConfig(context.Background(), externalIDP.ResourceOwner, externalIDP.IDPConfigID) + if caos_errs.IsNotFound(err) { + config, err = m.iamEvents.GetIDPConfig(context.Background(), m.systemDefaults.IamID, externalIDP.IDPConfigID) + } + if err != nil { + return err + } + m.fillConfigData(externalIDP, config) + return nil +} + +func (m *ExternalIDP) fillConfigData(externalIDP *usr_view_model.ExternalIDPView, config *iam_model.IDPConfig) { + externalIDP.IDPName = config.Name +} + +func (m *ExternalIDP) OnError(event *models.Event, err error) error { + logging.LogWithFields("SPOOL-4Rsu8", "id", event.AggregateID).WithError(err).Warn("something went wrong in idp provider handler") + return spooler.HandleError(event, err, m.view.GetLatestExternalIDPFailedEvent, m.view.ProcessedExternalIDPFailedEvent, m.view.ProcessedExternalIDPSequence, m.errorCountUntilSkip) +} diff --git a/internal/admin/repository/eventsourcing/repository.go b/internal/admin/repository/eventsourcing/repository.go index e1c2d0d675..28eb20f654 100644 --- a/internal/admin/repository/eventsourcing/repository.go +++ b/internal/admin/repository/eventsourcing/repository.go @@ -87,6 +87,7 @@ func Start(ctx context.Context, conf Config, systemDefaults sd.SystemDefaults, r IAMRepository: eventstore.IAMRepository{ IAMEventstore: iam, OrgEvents: org, + UserEvents: user, View: view, SystemDefaults: systemDefaults, SearchLimit: conf.SearchLimit, diff --git a/internal/admin/repository/eventsourcing/view/external_idps.go b/internal/admin/repository/eventsourcing/view/external_idps.go new file mode 100644 index 0000000000..103f4f76ef --- /dev/null +++ b/internal/admin/repository/eventsourcing/view/external_idps.go @@ -0,0 +1,73 @@ +package view + +import ( + "github.com/caos/zitadel/internal/errors" + usr_model "github.com/caos/zitadel/internal/user/model" + "github.com/caos/zitadel/internal/user/repository/view" + "github.com/caos/zitadel/internal/user/repository/view/model" + global_view "github.com/caos/zitadel/internal/view/repository" +) + +const ( + externalIDPTable = "adminapi.user_external_idps" +) + +func (v *View) ExternalIDPByExternalUserIDAndIDPConfigID(externalUserID, idpConfigID string) (*model.ExternalIDPView, error) { + return view.ExternalIDPByExternalUserIDAndIDPConfigID(v.Db, externalIDPTable, externalUserID, idpConfigID) +} + +func (v *View) ExternalIDPByExternalUserIDAndIDPConfigIDAndResourceOwner(externalUserID, idpConfigID, resourceOwner string) (*model.ExternalIDPView, error) { + return view.ExternalIDPByExternalUserIDAndIDPConfigIDAndResourceOwner(v.Db, externalIDPTable, externalUserID, idpConfigID, resourceOwner) +} + +func (v *View) ExternalIDPsByIDPConfigID(idpConfigID string) ([]*model.ExternalIDPView, error) { + return view.ExternalIDPsByIDPConfigID(v.Db, externalIDPTable, idpConfigID) +} + +func (v *View) ExternalIDPsByUserID(userID string) ([]*model.ExternalIDPView, error) { + return view.ExternalIDPsByUserID(v.Db, externalIDPTable, userID) +} + +func (v *View) SearchExternalIDPs(request *usr_model.ExternalIDPSearchRequest) ([]*model.ExternalIDPView, uint64, error) { + return view.SearchExternalIDPs(v.Db, externalIDPTable, request) +} + +func (v *View) PutExternalIDP(externalIDP *model.ExternalIDPView, sequence uint64) error { + err := view.PutExternalIDP(v.Db, externalIDPTable, externalIDP) + if err != nil { + return err + } + return v.ProcessedExternalIDPSequence(sequence) +} + +func (v *View) PutExternalIDPs(sequence uint64, externalIDPs ...*model.ExternalIDPView) error { + err := view.PutExternalIDPs(v.Db, externalIDPTable, externalIDPs...) + if err != nil { + return err + } + return v.ProcessedExternalIDPSequence(sequence) +} + +func (v *View) DeleteExternalIDP(externalUserID, idpConfigID string, eventSequence uint64) error { + err := view.DeleteExternalIDP(v.Db, externalIDPTable, externalUserID, idpConfigID) + if err != nil && !errors.IsNotFound(err) { + return err + } + return v.ProcessedExternalIDPSequence(eventSequence) +} + +func (v *View) GetLatestExternalIDPSequence() (*global_view.CurrentSequence, error) { + return v.latestSequence(externalIDPTable) +} + +func (v *View) ProcessedExternalIDPSequence(eventSequence uint64) error { + return v.saveCurrentSequence(externalIDPTable, eventSequence) +} + +func (v *View) GetLatestExternalIDPFailedEvent(sequence uint64) (*global_view.FailedEvent, error) { + return v.latestFailedEvent(externalIDPTable, sequence) +} + +func (v *View) ProcessedExternalIDPFailedEvent(failedEvent *global_view.FailedEvent) error { + return v.saveFailedEvent(failedEvent) +} diff --git a/internal/api/grpc/admin/idp_config_converter.go b/internal/api/grpc/admin/idp_config_converter.go index c772dbd689..f387a0fa84 100644 --- a/internal/api/grpc/admin/idp_config_converter.go +++ b/internal/api/grpc/admin/idp_config_converter.go @@ -13,10 +13,12 @@ func createOidcIdpToModel(idp *admin.OidcIdpConfigCreate) *iam_model.IDPConfig { LogoSrc: idp.LogoSrc, Type: iam_model.IDPConfigTypeOIDC, OIDCConfig: &iam_model.OIDCIDPConfig{ - ClientID: idp.ClientId, - ClientSecretString: idp.ClientSecret, - Issuer: idp.Issuer, - Scopes: idp.Scopes, + ClientID: idp.ClientId, + ClientSecretString: idp.ClientSecret, + Issuer: idp.Issuer, + Scopes: idp.Scopes, + IDPDisplayNameMapping: oidcMappingFieldToModel(idp.IdpDisplayNameMapping), + UsernameMapping: oidcMappingFieldToModel(idp.UsernameMapping), }, } } @@ -31,11 +33,13 @@ func updateIdpToModel(idp *admin.IdpUpdate) *iam_model.IDPConfig { func updateOidcIdpToModel(idp *admin.OidcIdpConfigUpdate) *iam_model.OIDCIDPConfig { return &iam_model.OIDCIDPConfig{ - IDPConfigID: idp.IdpId, - ClientID: idp.ClientId, - ClientSecretString: idp.ClientSecret, - Issuer: idp.Issuer, - Scopes: idp.Scopes, + IDPConfigID: idp.IdpId, + ClientID: idp.ClientId, + ClientSecretString: idp.ClientSecret, + Issuer: idp.Issuer, + Scopes: idp.Scopes, + IDPDisplayNameMapping: oidcMappingFieldToModel(idp.IdpDisplayNameMapping), + UsernameMapping: oidcMappingFieldToModel(idp.UsernameMapping), } } @@ -105,9 +109,11 @@ func idpConfigViewFromModel(idp *iam_model.IDPConfigView) *admin.IdpView_OidcCon func oidcIdpConfigViewFromModel(idp *iam_model.IDPConfigView) *admin.OidcIdpConfigView { return &admin.OidcIdpConfigView{ - ClientId: idp.OIDCClientID, - Issuer: idp.OIDCIssuer, - Scopes: idp.OIDCScopes, + ClientId: idp.OIDCClientID, + Issuer: idp.OIDCIssuer, + Scopes: idp.OIDCScopes, + IdpDisplayNameMapping: oidcMappingFieldFromModel(idp.OIDCIDPDisplayNameMapping), + UsernameMapping: oidcMappingFieldFromModel(idp.OIDCUsernameMapping), } } @@ -122,6 +128,28 @@ func idpConfigStateFromModel(state iam_model.IDPConfigState) admin.IdpState { } } +func oidcMappingFieldFromModel(field iam_model.OIDCMappingField) admin.OIDCMappingField { + switch field { + case iam_model.OIDCMappingFieldPreferredLoginName: + return admin.OIDCMappingField_OIDCMAPPINGFIELD_PREFERRED_USERNAME + case iam_model.OIDCMappingFieldEmail: + return admin.OIDCMappingField_OIDCMAPPINGFIELD_EMAIL + default: + return admin.OIDCMappingField_OIDCMAPPINGFIELD_UNSPECIFIED + } +} + +func oidcMappingFieldToModel(field admin.OIDCMappingField) iam_model.OIDCMappingField { + switch field { + case admin.OIDCMappingField_OIDCMAPPINGFIELD_PREFERRED_USERNAME: + return iam_model.OIDCMappingFieldPreferredLoginName + case admin.OIDCMappingField_OIDCMAPPINGFIELD_EMAIL: + return iam_model.OIDCMappingFieldEmail + default: + return iam_model.OIDCMappingFieldUnspecified + } +} + func idpConfigSearchRequestToModel(request *admin.IdpSearchRequest) *iam_model.IDPConfigSearchRequest { return &iam_model.IDPConfigSearchRequest{ Limit: request.Limit, diff --git a/internal/api/grpc/auth/user.go b/internal/api/grpc/auth/user.go index ed3c013d45..ad0dba523f 100644 --- a/internal/api/grpc/auth/user.go +++ b/internal/api/grpc/auth/user.go @@ -122,6 +122,19 @@ func (s *Server) ChangeMyPassword(ctx context.Context, request *auth.PasswordCha return &empty.Empty{}, err } +func (s *Server) SearchMyExternalIDPs(ctx context.Context, request *auth.ExternalIDPSearchRequest) (*auth.ExternalIDPSearchResponse, error) { + externalIDP, err := s.repo.SearchMyExternalIDPs(ctx, externalIDPSearchRequestToModel(request)) + if err != nil { + return nil, err + } + return externalIDPSearchResponseFromModel(externalIDP), nil +} + +func (s *Server) RemoveMyExternalIDP(ctx context.Context, request *auth.ExternalIDPRemoveRequest) (*empty.Empty, error) { + err := s.repo.RemoveMyExternalIDP(ctx, externalIDPRemoveToModel(ctx, request)) + return &empty.Empty{}, err +} + func (s *Server) GetMyPasswordComplexityPolicy(ctx context.Context, _ *empty.Empty) (*auth.PasswordComplexityPolicy, error) { policy, err := s.repo.GetMyPasswordComplexityPolicy(ctx) if err != nil { diff --git a/internal/api/grpc/auth/user_converter.go b/internal/api/grpc/auth/user_converter.go index f65dc32bd4..e5c585e8eb 100644 --- a/internal/api/grpc/auth/user_converter.go +++ b/internal/api/grpc/auth/user_converter.go @@ -3,7 +3,6 @@ package auth import ( "context" "encoding/json" - "github.com/caos/logging" "github.com/golang/protobuf/ptypes" "golang.org/x/text/language" @@ -242,6 +241,69 @@ func updateAddressToModel(ctx context.Context, address *auth.UpdateUserAddressRe } } +func externalIDPSearchRequestToModel(request *auth.ExternalIDPSearchRequest) *usr_model.ExternalIDPSearchRequest { + return &usr_model.ExternalIDPSearchRequest{ + Limit: request.Limit, + Offset: request.Offset, + } +} + +func externalIDPRemoveToModel(ctx context.Context, idp *auth.ExternalIDPRemoveRequest) *usr_model.ExternalIDP { + return &usr_model.ExternalIDP{ + ObjectRoot: models.ObjectRoot{AggregateID: authz.GetCtxData(ctx).UserID}, + IDPConfigID: idp.IdpConfigId, + UserID: idp.ExternalUserId, + } +} + +func externalIDPResponseFromModel(idp *usr_model.ExternalIDP) *auth.ExternalIDPResponse { + return &auth.ExternalIDPResponse{ + IdpConfigId: idp.IDPConfigID, + UserId: idp.UserID, + DisplayName: idp.DisplayName, + } +} + +func externalIDPSearchResponseFromModel(response *usr_model.ExternalIDPSearchResponse) *auth.ExternalIDPSearchResponse { + viewTimestamp, err := ptypes.TimestampProto(response.Timestamp) + logging.Log("GRPC-3h8is").OnError(err).Debug("unable to parse timestamp") + + return &auth.ExternalIDPSearchResponse{ + Offset: response.Offset, + Limit: response.Limit, + TotalResult: response.TotalResult, + ProcessedSequence: response.Sequence, + ViewTimestamp: viewTimestamp, + Result: externalIDPViewsFromModel(response.Result), + } +} + +func externalIDPViewsFromModel(externalIDPs []*usr_model.ExternalIDPView) []*auth.ExternalIDPView { + converted := make([]*auth.ExternalIDPView, len(externalIDPs)) + for i, externalIDP := range externalIDPs { + converted[i] = externalIDPViewFromModel(externalIDP) + } + return converted +} + +func externalIDPViewFromModel(externalIDP *usr_model.ExternalIDPView) *auth.ExternalIDPView { + creationDate, err := ptypes.TimestampProto(externalIDP.CreationDate) + logging.Log("GRPC-Sj8dw").OnError(err).Debug("unable to parse timestamp") + + changeDate, err := ptypes.TimestampProto(externalIDP.ChangeDate) + logging.Log("GRPC-Nf8ue").OnError(err).Debug("unable to parse timestamp") + + return &auth.ExternalIDPView{ + UserId: externalIDP.UserID, + IdpConfigId: externalIDP.IDPConfigID, + ExternalUserId: externalIDP.ExternalUserID, + ExternalUserDisplayName: externalIDP.UserDisplayName, + IdpName: externalIDP.IDPName, + CreationDate: creationDate, + ChangeDate: changeDate, + } +} + func otpFromModel(otp *usr_model.OTP) *auth.MfaOtpResponse { return &auth.MfaOtpResponse{ UserId: otp.AggregateID, diff --git a/internal/api/grpc/management/idp_config_converter.go b/internal/api/grpc/management/idp_config_converter.go index 32f35dc332..db1297d76b 100644 --- a/internal/api/grpc/management/idp_config_converter.go +++ b/internal/api/grpc/management/idp_config_converter.go @@ -13,10 +13,12 @@ func createOidcIdpToModel(idp *management.OidcIdpConfigCreate) *iam_model.IDPCon LogoSrc: idp.LogoSrc, Type: iam_model.IDPConfigTypeOIDC, OIDCConfig: &iam_model.OIDCIDPConfig{ - ClientID: idp.ClientId, - ClientSecretString: idp.ClientSecret, - Issuer: idp.Issuer, - Scopes: idp.Scopes, + ClientID: idp.ClientId, + ClientSecretString: idp.ClientSecret, + Issuer: idp.Issuer, + Scopes: idp.Scopes, + IDPDisplayNameMapping: oidcMappingFieldToModel(idp.IdpDisplayNameMapping), + UsernameMapping: oidcMappingFieldToModel(idp.UsernameMapping), }, } } @@ -31,11 +33,13 @@ func updateIdpToModel(idp *management.IdpUpdate) *iam_model.IDPConfig { func updateOidcIdpToModel(idp *management.OidcIdpConfigUpdate) *iam_model.OIDCIDPConfig { return &iam_model.OIDCIDPConfig{ - IDPConfigID: idp.IdpId, - ClientID: idp.ClientId, - ClientSecretString: idp.ClientSecret, - Issuer: idp.Issuer, - Scopes: idp.Scopes, + IDPConfigID: idp.IdpId, + ClientID: idp.ClientId, + ClientSecretString: idp.ClientSecret, + Issuer: idp.Issuer, + Scopes: idp.Scopes, + IDPDisplayNameMapping: oidcMappingFieldToModel(idp.IdpDisplayNameMapping), + UsernameMapping: oidcMappingFieldToModel(idp.UsernameMapping), } } @@ -89,9 +93,11 @@ func idpConfigFromModel(idp *iam_model.IDPConfig) *management.Idp_OidcConfig { func oidcIdpConfigFromModel(idp *iam_model.OIDCIDPConfig) *management.OidcIdpConfig { return &management.OidcIdpConfig{ - ClientId: idp.ClientID, - Issuer: idp.Issuer, - Scopes: idp.Scopes, + ClientId: idp.ClientID, + Issuer: idp.Issuer, + Scopes: idp.Scopes, + IdpDisplayNameMapping: oidcMappingFieldFromModel(idp.IDPDisplayNameMapping), + UsernameMapping: oidcMappingFieldFromModel(idp.UsernameMapping), } } @@ -106,9 +112,11 @@ func idpConfigViewFromModel(idp *iam_model.IDPConfigView) *management.IdpView_Oi func oidcIdpConfigViewFromModel(idp *iam_model.IDPConfigView) *management.OidcIdpConfigView { return &management.OidcIdpConfigView{ - ClientId: idp.OIDCClientID, - Issuer: idp.OIDCIssuer, - Scopes: idp.OIDCScopes, + ClientId: idp.OIDCClientID, + Issuer: idp.OIDCIssuer, + Scopes: idp.OIDCScopes, + IdpDisplayNameMapping: oidcMappingFieldFromModel(idp.OIDCIDPDisplayNameMapping), + UsernameMapping: oidcMappingFieldFromModel(idp.OIDCUsernameMapping), } } @@ -181,3 +189,25 @@ func idpConfigsFromView(viewIdps []*iam_model.IDPConfigView) []*management.IdpVi } return idps } + +func oidcMappingFieldFromModel(field iam_model.OIDCMappingField) management.OIDCMappingField { + switch field { + case iam_model.OIDCMappingFieldPreferredLoginName: + return management.OIDCMappingField_OIDCMAPPINGFIELD_PREFERRED_USERNAME + case iam_model.OIDCMappingFieldEmail: + return management.OIDCMappingField_OIDCMAPPINGFIELD_EMAIL + default: + return management.OIDCMappingField_OIDCMAPPINGFIELD_UNSPECIFIED + } +} + +func oidcMappingFieldToModel(field management.OIDCMappingField) iam_model.OIDCMappingField { + switch field { + case management.OIDCMappingField_OIDCMAPPINGFIELD_PREFERRED_USERNAME: + return iam_model.OIDCMappingFieldPreferredLoginName + case management.OIDCMappingField_OIDCMAPPINGFIELD_EMAIL: + return iam_model.OIDCMappingFieldEmail + default: + return iam_model.OIDCMappingFieldUnspecified + } +} diff --git a/internal/api/grpc/management/user.go b/internal/api/grpc/management/user.go index a299026937..acd1b0ef24 100644 --- a/internal/api/grpc/management/user.go +++ b/internal/api/grpc/management/user.go @@ -2,7 +2,6 @@ package management import ( "context" - "github.com/caos/zitadel/internal/api/authz" "github.com/caos/zitadel/internal/errors" "github.com/caos/zitadel/pkg/grpc/management" @@ -196,6 +195,19 @@ func (s *Server) SetInitialPassword(ctx context.Context, request *management.Pas return &empty.Empty{}, err } +func (s *Server) SearchUserExternalIDPs(ctx context.Context, request *management.ExternalIDPSearchRequest) (*management.ExternalIDPSearchResponse, error) { + externalIDP, err := s.user.SearchExternalIDPs(ctx, externalIDPSearchRequestToModel(request)) + if err != nil { + return nil, err + } + return externalIDPSearchResponseFromModel(externalIDP), nil +} + +func (s *Server) RemoveExternalIDP(ctx context.Context, request *management.ExternalIDPRemoveRequest) (*empty.Empty, error) { + err := s.user.RemoveExternalIDP(ctx, externalIDPRemoveToModel(request)) + return &empty.Empty{}, err +} + func (s *Server) GetUserMfas(ctx context.Context, userID *management.UserID) (*management.MultiFactors, error) { mfas, err := s.user.UserMfas(ctx, userID.Id) if err != nil { diff --git a/internal/api/grpc/management/user_converter.go b/internal/api/grpc/management/user_converter.go index 2b748680d9..0a4c90ef29 100644 --- a/internal/api/grpc/management/user_converter.go +++ b/internal/api/grpc/management/user_converter.go @@ -2,8 +2,8 @@ package management import ( "encoding/json" - "github.com/caos/logging" + "github.com/caos/zitadel/internal/model" "github.com/golang/protobuf/ptypes" "golang.org/x/text/language" "google.golang.org/protobuf/encoding/protojson" @@ -66,6 +66,62 @@ func passwordRequestToModel(r *management.PasswordRequest) *usr_model.Password { } } +func externalIDPSearchRequestToModel(request *management.ExternalIDPSearchRequest) *usr_model.ExternalIDPSearchRequest { + return &usr_model.ExternalIDPSearchRequest{ + Limit: request.Limit, + Offset: request.Offset, + Queries: []*usr_model.ExternalIDPSearchQuery{{Key: usr_model.ExternalIDPSearchKeyUserID, Method: model.SearchMethodEquals, Value: request.UserId}}, + } +} + +func externalIDPRemoveToModel(idp *management.ExternalIDPRemoveRequest) *usr_model.ExternalIDP { + return &usr_model.ExternalIDP{ + ObjectRoot: models.ObjectRoot{AggregateID: idp.UserId}, + IDPConfigID: idp.IdpConfigId, + UserID: idp.ExternalUserId, + } +} + +func externalIDPSearchResponseFromModel(response *usr_model.ExternalIDPSearchResponse) *management.ExternalIDPSearchResponse { + viewTimestamp, err := ptypes.TimestampProto(response.Timestamp) + logging.Log("GRPC-3h8is").OnError(err).Debug("unable to parse timestamp") + + return &management.ExternalIDPSearchResponse{ + Offset: response.Offset, + Limit: response.Limit, + TotalResult: response.TotalResult, + ProcessedSequence: response.Sequence, + ViewTimestamp: viewTimestamp, + Result: externalIDPViewsFromModel(response.Result), + } +} + +func externalIDPViewsFromModel(externalIDPs []*usr_model.ExternalIDPView) []*management.ExternalIDPView { + converted := make([]*management.ExternalIDPView, len(externalIDPs)) + for i, externalIDP := range externalIDPs { + converted[i] = externalIDPViewFromModel(externalIDP) + } + return converted +} + +func externalIDPViewFromModel(externalIDP *usr_model.ExternalIDPView) *management.ExternalIDPView { + creationDate, err := ptypes.TimestampProto(externalIDP.CreationDate) + logging.Log("GRPC-Fdu8s").OnError(err).Debug("unable to parse timestamp") + + changeDate, err := ptypes.TimestampProto(externalIDP.ChangeDate) + logging.Log("GRPC-Was7u").OnError(err).Debug("unable to parse timestamp") + + return &management.ExternalIDPView{ + UserId: externalIDP.UserID, + IdpConfigId: externalIDP.IDPConfigID, + ExternalUserId: externalIDP.ExternalUserID, + ExternalUserDisplayName: externalIDP.UserDisplayName, + IdpName: externalIDP.IDPName, + CreationDate: creationDate, + ChangeDate: changeDate, + } +} + func userSearchRequestsToModel(project *management.UserSearchRequest) *usr_model.UserSearchRequest { return &usr_model.UserSearchRequest{ Offset: project.Offset, diff --git a/internal/auth/repository/auth_request.go b/internal/auth/repository/auth_request.go index 6e3781ed22..8779b7fb7c 100644 --- a/internal/auth/repository/auth_request.go +++ b/internal/auth/repository/auth_request.go @@ -2,6 +2,8 @@ package repository import ( "context" + org_model "github.com/caos/zitadel/internal/org/model" + user_model "github.com/caos/zitadel/internal/user/model" "github.com/caos/zitadel/internal/auth_request/model" ) @@ -14,7 +16,11 @@ type AuthRequestRepository interface { SaveAuthCode(ctx context.Context, id, code, userAgentID string) error DeleteAuthRequest(ctx context.Context, id string) error CheckLoginName(ctx context.Context, id, loginName, userAgentID string) error + CheckExternalUserLogin(ctx context.Context, authReqID, userAgentID string, user *model.ExternalUser) error SelectUser(ctx context.Context, id, userID, userAgentID string) error + SelectExternalIDP(ctx context.Context, authReqID, idpConfigID, userAgentID string) error VerifyPassword(ctx context.Context, id, userID, password, userAgentID string, info *model.BrowserInfo) error VerifyMfaOTP(ctx context.Context, agentID, authRequestID, code, userAgentID string, info *model.BrowserInfo) error + LinkExternalUsers(ctx context.Context, authReqID, userAgentID string) error + AutoRegisterExternalUser(ctx context.Context, user *user_model.User, externalIDP *user_model.ExternalIDP, member *org_model.OrgMember, authReqID, userAgentID, resourceOwner string) error } diff --git a/internal/auth/repository/eventsourcing/eventstore/auth_request.go b/internal/auth/repository/eventsourcing/eventstore/auth_request.go index 4392baf6a0..2deb258719 100644 --- a/internal/auth/repository/eventsourcing/eventstore/auth_request.go +++ b/internal/auth/repository/eventsourcing/eventstore/auth_request.go @@ -2,6 +2,12 @@ package eventstore import ( "context" + "github.com/caos/zitadel/internal/api/authz" + "github.com/caos/zitadel/internal/eventstore/sdk" + iam_model "github.com/caos/zitadel/internal/iam/model" + iam_es_model "github.com/caos/zitadel/internal/iam/repository/view/model" + org_event "github.com/caos/zitadel/internal/org/repository/eventsourcing" + policy_event "github.com/caos/zitadel/internal/policy/repository/eventsourcing" "time" "github.com/caos/logging" @@ -11,6 +17,7 @@ import ( cache "github.com/caos/zitadel/internal/auth_request/repository" "github.com/caos/zitadel/internal/errors" es_models "github.com/caos/zitadel/internal/eventstore/models" + iam_view_model "github.com/caos/zitadel/internal/iam/repository/view/model" "github.com/caos/zitadel/internal/id" org_model "github.com/caos/zitadel/internal/org/model" org_view_model "github.com/caos/zitadel/internal/org/repository/view/model" @@ -22,6 +29,8 @@ import ( type AuthRequestRepo struct { UserEvents *user_event.UserEventstore + OrgEvents *org_event.OrgEventstore + PolicyEvents *policy_event.PolicyEventstore AuthRequests cache.AuthRequestCache View *view.View @@ -29,6 +38,8 @@ type AuthRequestRepo struct { UserViewProvider userViewProvider UserEventProvider userEventProvider OrgViewProvider orgViewProvider + LoginPolicyViewProvider loginPolicyViewProvider + IDPProviderViewProvider idpProviderViewProvider IdGenerator id.Generator @@ -36,6 +47,8 @@ type AuthRequestRepo struct { MfaInitSkippedLifeTime time.Duration MfaSoftwareCheckLifeTime time.Duration MfaHardwareCheckLifeTime time.Duration + + IAMID string } type userSessionViewProvider interface { @@ -46,8 +59,17 @@ type userViewProvider interface { UserByID(string) (*user_view_model.UserView, error) } +type loginPolicyViewProvider interface { + LoginPolicyByAggregateID(string) (*iam_view_model.LoginPolicyView, error) +} + +type idpProviderViewProvider interface { + IDPProvidersByAggregateID(string) ([]*iam_view_model.IDPProviderView, error) +} + type userEventProvider interface { UserEventsByID(ctx context.Context, id string, sequence uint64) ([]*es_models.Event, error) + BulkAddExternalIDPs(ctx context.Context, userID string, externalIDPs []*user_model.ExternalIDP) error } type orgViewProvider interface { @@ -73,7 +95,7 @@ func (repo *AuthRequestRepo) CreateAuthRequest(ctx context.Context, request *mod } request.Audience = ids if request.LoginHint != "" { - err = repo.checkLoginName(request, request.LoginHint) + err = repo.checkLoginName(ctx, request, request.LoginHint) logging.LogWithFields("EVENT-aG311", "login name", request.LoginHint, "id", request.ID, "applicationID", request.ApplicationID).Debug("login hint invalid") } err = repo.AuthRequests.SaveAuthRequest(ctx, request) @@ -122,13 +144,45 @@ func (repo *AuthRequestRepo) CheckLoginName(ctx context.Context, id, loginName, if err != nil { return err } - err = repo.checkLoginName(request, loginName) + err = repo.checkLoginName(ctx, request, loginName) if err != nil { return err } return repo.AuthRequests.UpdateAuthRequest(ctx, request) } +func (repo *AuthRequestRepo) SelectExternalIDP(ctx context.Context, authReqID, idpConfigID, userAgentID string) error { + request, err := repo.getAuthRequest(ctx, authReqID, userAgentID) + if err != nil { + return err + } + err = repo.checkSelectedExternalIDP(request, idpConfigID) + if err != nil { + return err + } + return repo.AuthRequests.UpdateAuthRequest(ctx, request) +} + +func (repo *AuthRequestRepo) CheckExternalUserLogin(ctx context.Context, authReqID, userAgentID string, externalUser *model.ExternalUser) error { + request, err := repo.getAuthRequest(ctx, authReqID, userAgentID) + if err != nil { + return err + } + err = repo.checkExternalUserLogin(request, externalUser.IDPConfigID, externalUser.ExternalUserID) + if errors.IsNotFound(err) { + return repo.setLinkingUser(ctx, request, externalUser) + } + if err != nil { + return err + } + return repo.AuthRequests.UpdateAuthRequest(ctx, request) +} + +func (repo *AuthRequestRepo) setLinkingUser(ctx context.Context, request *model.AuthRequest, externalUser *model.ExternalUser) error { + request.LinkingUsers = append(request.LinkingUsers, externalUser) + return repo.AuthRequests.UpdateAuthRequest(ctx, request) +} + func (repo *AuthRequestRepo) SelectUser(ctx context.Context, id, userID, userAgentID string) error { request, err := repo.getAuthRequest(ctx, id, userAgentID) if err != nil { @@ -164,6 +218,59 @@ func (repo *AuthRequestRepo) VerifyMfaOTP(ctx context.Context, authRequestID, us return repo.UserEvents.CheckMfaOTP(ctx, userID, code, request.WithCurrentInfo(info)) } +func (repo *AuthRequestRepo) LinkExternalUsers(ctx context.Context, authReqID, userAgentID string) error { + request, err := repo.getAuthRequest(ctx, authReqID, userAgentID) + if err != nil { + return err + } + err = linkExternalIDPs(ctx, repo.UserEventProvider, request) + if err != nil { + return err + } + request.LinkingUsers = nil + return repo.AuthRequests.UpdateAuthRequest(ctx, request) +} + +func (repo *AuthRequestRepo) AutoRegisterExternalUser(ctx context.Context, registerUser *user_model.User, externalIDP *user_model.ExternalIDP, orgMember *org_model.OrgMember, authReqID, userAgentID, resourceOwner string) error { + request, err := repo.getAuthRequest(ctx, authReqID, userAgentID) + if err != nil { + return err + } + policyResourceOwner := authz.GetCtxData(ctx).OrgID + if resourceOwner != "" { + policyResourceOwner = resourceOwner + } + pwPolicy, err := repo.PolicyEvents.GetPasswordComplexityPolicy(ctx, policyResourceOwner) + if err != nil { + return err + } + orgPolicy, err := repo.OrgEvents.GetOrgIAMPolicy(ctx, policyResourceOwner) + if err != nil { + return err + } + user, aggregates, err := repo.UserEvents.PrepareRegisterUser(ctx, registerUser, externalIDP, pwPolicy, orgPolicy, resourceOwner) + if err != nil { + return err + } + if orgMember != nil { + orgMember.UserID = user.AggregateID + _, memberAggregate, err := repo.OrgEvents.PrepareAddOrgMember(ctx, orgMember, policyResourceOwner) + if err != nil { + return err + } + aggregates = append(aggregates, memberAggregate) + } + + err = sdk.PushAggregates(ctx, repo.UserEvents.PushAggregates, user.AppendEvents, aggregates...) + if err != nil { + return err + } + request.UserID = user.AggregateID + request.SelectedIDPConfigID = externalIDP.IDPConfigID + request.LinkingUsers = nil + return repo.AuthRequests.UpdateAuthRequest(ctx, request) +} + func (repo *AuthRequestRepo) getAuthRequestNextSteps(ctx context.Context, id, userAgentID string, checkLoggedIn bool) (*model.AuthRequest, error) { request, err := repo.getAuthRequest(ctx, id, userAgentID) if err != nil { @@ -185,18 +292,114 @@ func (repo *AuthRequestRepo) getAuthRequest(ctx context.Context, id, userAgentID if request.AgentID != userAgentID { return nil, errors.ThrowPermissionDenied(nil, "EVENT-adk13", "Errors.AuthRequest.UserAgentNotCorresponding") } + err = repo.fillLoginPolicy(ctx, request) + if err != nil { + return nil, err + } return request, nil } -func (repo *AuthRequestRepo) checkLoginName(request *model.AuthRequest, loginName string) error { - user, err := repo.View.UserByLoginName(loginName) +func (repo *AuthRequestRepo) getLoginPolicyAndIDPProviders(ctx context.Context, orgID string) (*iam_model.LoginPolicyView, []*iam_model.IDPProviderView, error) { + policy, err := repo.getLoginPolicy(ctx, orgID) + if err != nil { + return nil, nil, err + } + if !policy.AllowExternalIDP { + return policy, nil, nil + } + idpProviders, err := getLoginPolicyIDPProviders(repo.IDPProviderViewProvider, repo.IAMID, orgID, policy.Default) + if err != nil { + return nil, nil, err + } + return policy, idpProviders, nil +} + +func (repo *AuthRequestRepo) fillLoginPolicy(ctx context.Context, request *model.AuthRequest) error { + orgID := request.UserOrgID + if orgID == "" { + orgID = request.GetScopeOrgID() + } + if orgID == "" { + orgID = repo.IAMID + } + + policy, idpProviders, err := repo.getLoginPolicyAndIDPProviders(ctx, orgID) if err != nil { return err } + request.LoginPolicy = policy + if idpProviders != nil { + request.AllowedExternalIDPs = idpProviders + } + return nil +} + +func (repo *AuthRequestRepo) checkLoginName(ctx context.Context, request *model.AuthRequest, loginName string) (err error) { + orgID := request.GetScopeOrgID() + user := new(user_view_model.UserView) + if orgID != "" { + user, err = repo.View.UserByLoginNameAndResourceOwner(loginName, orgID) + } else { + user, err = repo.View.UserByLoginName(loginName) + if err == nil { + err = repo.checkLoginPolicyWithResourceOwner(ctx, request, user) + if err != nil { + return err + } + } + } + if err != nil { + return err + } + request.SetUserInfo(user.ID, loginName, "", user.ResourceOwner) return nil } +func (repo AuthRequestRepo) checkLoginPolicyWithResourceOwner(ctx context.Context, request *model.AuthRequest, user *user_view_model.UserView) error { + loginPolicy, idpProviders, err := repo.getLoginPolicyAndIDPProviders(ctx, user.ResourceOwner) + if err != nil { + return err + } + if len(request.LinkingUsers) != 0 && !loginPolicy.AllowExternalIDP { + return errors.ThrowInvalidArgument(nil, "LOGIN-s9sio", "Errors.User.NotAllowedToLink") + } + if len(request.LinkingUsers) != 0 { + exists := linkingIDPConfigExistingInAllowedIDPs(request.LinkingUsers, idpProviders) + if !exists { + return errors.ThrowInvalidArgument(nil, "LOGIN-Dj89o", "Errors.User.NotAllowedToLink") + } + } + request.LoginPolicy = loginPolicy + request.AllowedExternalIDPs = idpProviders + return nil +} + +func (repo *AuthRequestRepo) checkSelectedExternalIDP(request *model.AuthRequest, idpConfigID string) error { + for _, externalIDP := range request.AllowedExternalIDPs { + if externalIDP.IDPConfigID == idpConfigID { + request.SelectedIDPConfigID = idpConfigID + return nil + } + } + return errors.ThrowNotFound(nil, "LOGIN-Nsm8r", "Errors.User.ExternalIDP.NotAllowed") +} + +func (repo *AuthRequestRepo) checkExternalUserLogin(request *model.AuthRequest, idpConfigID, externalUserID string) (err error) { + orgID := request.GetScopeOrgID() + externalIDP := new(user_view_model.ExternalIDPView) + if orgID != "" { + externalIDP, err = repo.View.ExternalIDPByExternalUserIDAndIDPConfigIDAndResourceOwner(externalUserID, idpConfigID, orgID) + } else { + externalIDP, err = repo.View.ExternalIDPByExternalUserIDAndIDPConfigID(externalUserID, idpConfigID) + } + if err != nil { + return err + } + request.SetUserInfo(externalIDP.UserID, "", "", externalIDP.ResourceOwner) + return nil +} + func (repo *AuthRequestRepo) nextSteps(ctx context.Context, request *model.AuthRequest, checkLoggedIn bool) ([]model.NextStep, error) { if request == nil { return nil, errors.ThrowInvalidArgument(nil, "EVENT-ds27a", "Errors.Internal") @@ -206,7 +409,11 @@ func (repo *AuthRequestRepo) nextSteps(ctx context.Context, request *model.AuthR return append(steps, &model.RedirectToCallbackStep{}), nil } if request.UserID == "" { - steps = append(steps, &model.LoginStep{}) + if request.LinkingUsers != nil && len(request.LinkingUsers) > 0 { + steps = append(steps, new(model.ExternalNotFoundOptionStep)) + return steps, nil + } + steps = append(steps, new(model.LoginStep)) if request.Prompt == model.PromptSelectAccount || request.Prompt == model.PromptUnspecified { users, err := repo.usersForUserSelection(request) if err != nil { @@ -222,23 +429,26 @@ func (repo *AuthRequestRepo) nextSteps(ctx context.Context, request *model.AuthR if err != nil { return nil, err } + request.LoginName = user.PreferredLoginName userSession, err := userSessionByIDs(ctx, repo.UserSessionViewProvider, repo.UserEventProvider, request.AgentID, user) if err != nil { return nil, err } - if user.InitRequired { - return append(steps, &model.InitUserStep{PasswordSet: user.PasswordSet}), nil - } - if !user.PasswordSet { - return append(steps, &model.InitPasswordStep{}), nil - } + if request.SelectedIDPConfigID == "" { + if user.InitRequired { + return append(steps, &model.InitUserStep{PasswordSet: user.PasswordSet}), nil + } + if !user.PasswordSet { + return append(steps, &model.InitPasswordStep{}), nil + } - if !checkVerificationTime(userSession.PasswordVerification, repo.PasswordCheckLifeTime) { - return append(steps, &model.PasswordStep{}), nil + if !checkVerificationTime(userSession.PasswordVerification, repo.PasswordCheckLifeTime) { + return append(steps, &model.PasswordStep{}), nil + } + request.PasswordVerified = true + request.AuthTime = userSession.PasswordVerification } - request.PasswordVerified = true - request.AuthTime = userSession.PasswordVerification if step, ok := repo.mfaChecked(userSession, request, user); !ok { return append(steps, step), nil @@ -258,6 +468,10 @@ func (repo *AuthRequestRepo) nextSteps(ctx context.Context, request *model.AuthR return steps, nil } + if request.LinkingUsers != nil && len(request.LinkingUsers) != 0 { + return append(steps, &model.LinkUsersStep{}), nil + + } //PLANNED: consent step return append(steps, &model.RedirectToCallbackStep{}), nil } @@ -322,6 +536,36 @@ func (repo *AuthRequestRepo) mfaSkippedOrSetUp(user *user_model.UserView) bool { return checkVerificationTime(user.MfaInitSkipped, repo.MfaInitSkippedLifeTime) } +func (repo *AuthRequestRepo) getLoginPolicy(ctx context.Context, orgID string) (*iam_model.LoginPolicyView, error) { + policy, err := repo.View.LoginPolicyByAggregateID(orgID) + if errors.IsNotFound(err) { + policy, err = repo.View.LoginPolicyByAggregateID(repo.IAMID) + if err != nil { + return nil, err + } + policy.Default = true + } + if err != nil { + return nil, err + } + return iam_es_model.LoginPolicyViewToModel(policy), err +} + +func getLoginPolicyIDPProviders(provider idpProviderViewProvider, iamID, orgID string, defaultPolicy bool) ([]*iam_model.IDPProviderView, error) { + if defaultPolicy { + idpProviders, err := provider.IDPProvidersByAggregateID(iamID) + if err != nil { + return nil, err + } + return iam_es_model.IDPProviderViewsToModel(idpProviders), nil + } + idpProviders, err := provider.IDPProvidersByAggregateID(orgID) + if err != nil { + return nil, err + } + return iam_es_model.IDPProviderViewsToModel(idpProviders), nil +} + func checkVerificationTime(verificationTime time.Time, lifetime time.Duration) bool { return verificationTime.Add(lifetime).After(time.Now().UTC()) } @@ -422,3 +666,37 @@ func userByID(ctx context.Context, viewProvider userViewProvider, eventProvider } return user_view_model.UserToModel(&userCopy), nil } + +func linkExternalIDPs(ctx context.Context, userEventProvider userEventProvider, request *model.AuthRequest) error { + externalIDPs := make([]*user_model.ExternalIDP, len(request.LinkingUsers)) + for i, linkingUser := range request.LinkingUsers { + externalIDP := &user_model.ExternalIDP{ + ObjectRoot: es_models.ObjectRoot{AggregateID: request.UserID}, + IDPConfigID: linkingUser.IDPConfigID, + UserID: linkingUser.ExternalUserID, + DisplayName: linkingUser.DisplayName, + } + externalIDPs[i] = externalIDP + } + data := authz.CtxData{ + UserID: "LOGIN", + OrgID: request.UserOrgID, + } + return userEventProvider.BulkAddExternalIDPs(authz.SetCtxData(ctx, data), request.UserID, externalIDPs) +} + +func linkingIDPConfigExistingInAllowedIDPs(linkingUsers []*model.ExternalUser, idpProviders []*iam_model.IDPProviderView) bool { + for _, linkingUser := range linkingUsers { + exists := false + for _, idp := range idpProviders { + if idp.IDPConfigID == linkingUser.IDPConfigID { + exists = true + continue + } + } + if !exists { + return false + } + } + return true +} diff --git a/internal/auth/repository/eventsourcing/eventstore/auth_request_test.go b/internal/auth/repository/eventsourcing/eventstore/auth_request_test.go index defda5dd3b..848b615b42 100644 --- a/internal/auth/repository/eventsourcing/eventstore/auth_request_test.go +++ b/internal/auth/repository/eventsourcing/eventstore/auth_request_test.go @@ -88,12 +88,20 @@ func (m *mockEventUser) UserEventsByID(ctx context.Context, id string, sequence return events, nil } +func (m *mockEventUser) BulkAddExternalIDPs(ctx context.Context, userID string, externalIDPs []*user_model.ExternalIDP) error { + return nil +} + type mockEventErrUser struct{} func (m *mockEventErrUser) UserEventsByID(ctx context.Context, id string, sequence uint64) ([]*es_models.Event, error) { return nil, errors.ThrowInternal(nil, "id", "internal error") } +func (m *mockEventErrUser) BulkAddExternalIDPs(ctx context.Context, userID string, externalIDPs []*user_model.ExternalIDP) error { + return errors.ThrowInternal(nil, "id", "internal error") +} + type mockViewUser struct { InitRequired bool PasswordSet bool @@ -185,6 +193,15 @@ func TestAuthRequestRepo_nextSteps(t *testing.T) { []model.NextStep{&model.LoginStep{}}, nil, }, + { + "user not set no active session, linking users, external user not found option", + fields{ + userSessionViewProvider: &mockViewNoUserSession{}, + }, + args{&model.AuthRequest{LinkingUsers: []*model.ExternalUser{{IDPConfigID: "IDPConfigID", ExternalUserID: "ExternalUserID"}}}, false}, + []model.NextStep{&model.ExternalNotFoundOptionStep{}}, + nil, + }, { "user not set, prompt select account and internal error, internal error", fields{ @@ -363,6 +380,24 @@ func TestAuthRequestRepo_nextSteps(t *testing.T) { []model.NextStep{&model.InitPasswordStep{}}, nil, }, + { + "external user (no password set), callback", + fields{ + userSessionViewProvider: &mockViewUserSession{ + MfaSoftwareVerification: time.Now().UTC().Add(-5 * time.Minute), + }, + userViewProvider: &mockViewUser{ + IsEmailVerified: true, + MfaMaxSetUp: int32(model.MfaLevelSoftware), + }, + userEventProvider: &mockEventUser{}, + orgViewProvider: &mockViewOrg{State: org_model.OrgStateActive}, + MfaSoftwareCheckLifeTime: 18 * time.Hour, + }, + args{&model.AuthRequest{UserID: "UserID", SelectedIDPConfigID: "IDPConfigID"}, false}, + []model.NextStep{&model.RedirectToCallbackStep{}}, + nil, + }, { "password not verified, password check step", fields{ @@ -378,6 +413,25 @@ func TestAuthRequestRepo_nextSteps(t *testing.T) { []model.NextStep{&model.PasswordStep{}}, nil, }, + { + "external user (no password check needed), callback", + fields{ + userSessionViewProvider: &mockViewUserSession{ + MfaSoftwareVerification: time.Now().UTC().Add(-5 * time.Minute), + }, + userViewProvider: &mockViewUser{ + PasswordSet: true, + IsEmailVerified: true, + MfaMaxSetUp: int32(model.MfaLevelSoftware), + }, + userEventProvider: &mockEventUser{}, + orgViewProvider: &mockViewOrg{State: org_model.OrgStateActive}, + MfaSoftwareCheckLifeTime: 18 * time.Hour, + }, + args{&model.AuthRequest{UserID: "UserID", SelectedIDPConfigID: "IDPConfigID"}, false}, + []model.NextStep{&model.RedirectToCallbackStep{}}, + nil, + }, { "mfa not verified, mfa check step", fields{ @@ -400,6 +454,28 @@ func TestAuthRequestRepo_nextSteps(t *testing.T) { }}, nil, }, + { + "external user, mfa not verified, mfa check step", + fields{ + userSessionViewProvider: &mockViewUserSession{ + PasswordVerification: time.Now().UTC().Add(-5 * time.Minute), + }, + userViewProvider: &mockViewUser{ + PasswordSet: true, + OTPState: int32(user_model.MfaStateReady), + MfaMaxSetUp: int32(model.MfaLevelSoftware), + }, + userEventProvider: &mockEventUser{}, + orgViewProvider: &mockViewOrg{State: org_model.OrgStateActive}, + PasswordCheckLifeTime: 10 * 24 * time.Hour, + MfaSoftwareCheckLifeTime: 18 * time.Hour, + }, + args{&model.AuthRequest{UserID: "UserID", SelectedIDPConfigID: "IDPConfigID"}, false}, + []model.NextStep{&model.MfaVerificationStep{ + MfaProviders: []model.MfaType{model.MfaTypeOTP}, + }}, + nil, + }, { "password change required and email verified, password change step", fields{ @@ -505,6 +581,30 @@ func TestAuthRequestRepo_nextSteps(t *testing.T) { []model.NextStep{&model.RedirectToCallbackStep{}}, nil, }, + { + "linking users, link users step", + fields{ + userSessionViewProvider: &mockViewUserSession{ + MfaSoftwareVerification: time.Now().UTC().Add(-5 * time.Minute), + }, + userViewProvider: &mockViewUser{ + PasswordSet: true, + IsEmailVerified: true, + MfaMaxSetUp: int32(model.MfaLevelSoftware), + }, + userEventProvider: &mockEventUser{}, + orgViewProvider: &mockViewOrg{State: org_model.OrgStateActive}, + MfaSoftwareCheckLifeTime: 18 * time.Hour, + }, + args{ + &model.AuthRequest{ + UserID: "UserID", + SelectedIDPConfigID: "IDPConfigID", + LinkingUsers: []*model.ExternalUser{{IDPConfigID: "IDPConfigID", ExternalUserID: "UserID", DisplayName: "DisplayName"}}, + }, false}, + []model.NextStep{&model.LinkUsersStep{}}, + nil, + }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { diff --git a/internal/auth/repository/eventsourcing/eventstore/org.go b/internal/auth/repository/eventsourcing/eventstore/org.go index 28f4df949c..fb4f46c7c4 100644 --- a/internal/auth/repository/eventsourcing/eventstore/org.go +++ b/internal/auth/repository/eventsourcing/eventstore/org.go @@ -2,8 +2,9 @@ package eventstore import ( "context" - "github.com/caos/logging" + iam_model "github.com/caos/zitadel/internal/iam/model" + iam_view_model "github.com/caos/zitadel/internal/iam/repository/view/model" auth_model "github.com/caos/zitadel/internal/auth/model" auth_view "github.com/caos/zitadel/internal/auth/repository/eventsourcing/view" @@ -41,7 +42,7 @@ func (repo *OrgRepository) SearchOrgs(ctx context.Context, request *org_model.Or result := &org_model.OrgSearchResult{ Offset: request.Offset, Limit: request.Limit, - TotalResult: uint64(count), + TotalResult: count, Result: model.OrgsToModel(members), } if err == nil { @@ -71,7 +72,7 @@ func (repo *OrgRepository) RegisterOrg(ctx context.Context, register *auth_model if err != nil { return nil, err } - user, userAggregates, err := repo.UserEventstore.PrepareRegisterUser(ctx, register.User, pwPolicy, orgPolicy, org.AggregateID) + user, userAggregates, err := repo.UserEventstore.PrepareRegisterUser(ctx, register.User, nil, pwPolicy, orgPolicy, org.AggregateID) if err != nil { return nil, err } @@ -94,6 +95,18 @@ func (repo *OrgRepository) RegisterOrg(ctx context.Context, register *auth_model return RegisterToModel(registerModel), nil } -func (repo *OrgRepository) GetOrgIamPolicy(ctx context.Context, orgID string) (*org_model.OrgIAMPolicy, error) { - return repo.OrgEventstore.GetOrgIAMPolicy(ctx, policy_model.DefaultPolicy) +func (repo *OrgRepository) GetDefaultOrgIamPolicy(ctx context.Context) *org_model.OrgIAMPolicy { + return repo.OrgEventstore.GetDefaultOrgIAMPolicy(ctx) +} + +func (repo *OrgRepository) GetOrgIamPolicy(ctx context.Context, orgID string) (*org_model.OrgIAMPolicy, error) { + return repo.OrgEventstore.GetOrgIAMPolicy(ctx, orgID) +} + +func (repo *OrgRepository) GetIDPConfigByID(ctx context.Context, idpConfigID string) (*iam_model.IDPConfigView, error) { + idpConfig, err := repo.View.IDPConfigByID(idpConfigID) + if err != nil { + return nil, err + } + return iam_view_model.IDPConfigViewToModel(idpConfig), nil } diff --git a/internal/auth/repository/eventsourcing/eventstore/user.go b/internal/auth/repository/eventsourcing/eventstore/user.go index c532b72c31..616027bf25 100644 --- a/internal/auth/repository/eventsourcing/eventstore/user.go +++ b/internal/auth/repository/eventsourcing/eventstore/user.go @@ -21,6 +21,7 @@ import ( ) type UserRepo struct { + SearchLimit uint64 Eventstore eventstore.Eventstore UserEvents *user_event.UserEventstore OrgEvents *org_event.OrgEventstore @@ -32,7 +33,15 @@ func (repo *UserRepo) Health(ctx context.Context) error { return repo.UserEvents.Health(ctx) } -func (repo *UserRepo) Register(ctx context.Context, registerUser *model.User, orgMember *org_model.OrgMember, resourceOwner string) (*model.User, error) { +func (repo *UserRepo) Register(ctx context.Context, user *model.User, orgMember *org_model.OrgMember, resourceOwner string) (*model.User, error) { + return repo.registerUser(ctx, user, nil, orgMember, resourceOwner) +} + +func (repo *UserRepo) RegisterExternalUser(ctx context.Context, user *model.User, externalIDP *model.ExternalIDP, orgMember *org_model.OrgMember, resourceOwner string) (*model.User, error) { + return repo.registerUser(ctx, user, externalIDP, orgMember, resourceOwner) +} + +func (repo *UserRepo) registerUser(ctx context.Context, registerUser *model.User, externalIDP *model.ExternalIDP, orgMember *org_model.OrgMember, resourceOwner string) (*model.User, error) { policyResourceOwner := authz.GetCtxData(ctx).OrgID if resourceOwner != "" { policyResourceOwner = resourceOwner @@ -45,7 +54,7 @@ func (repo *UserRepo) Register(ctx context.Context, registerUser *model.User, or if err != nil { return nil, err } - user, aggregates, err := repo.UserEvents.PrepareRegisterUser(ctx, registerUser, pwPolicy, orgPolicy, resourceOwner) + user, aggregates, err := repo.UserEvents.PrepareRegisterUser(ctx, registerUser, externalIDP, pwPolicy, orgPolicy, resourceOwner) if err != nil { return nil, err } @@ -87,6 +96,42 @@ func (repo *UserRepo) ChangeMyProfile(ctx context.Context, profile *model.Profil return repo.UserEvents.ChangeProfile(ctx, profile) } +func (repo *UserRepo) SearchMyExternalIDPs(ctx context.Context, request *model.ExternalIDPSearchRequest) (*model.ExternalIDPSearchResponse, error) { + request.EnsureLimit(repo.SearchLimit) + sequence, seqErr := repo.View.GetLatestExternalIDPSequence() + logging.Log("EVENT-5Jsi8").OnError(seqErr).Warn("could not read latest user sequence") + request.AppendUserQuery(authz.GetCtxData(ctx).UserID) + externalIDPS, count, err := repo.View.SearchExternalIDPs(request) + if err != nil { + return nil, err + } + result := &model.ExternalIDPSearchResponse{ + Offset: request.Offset, + Limit: request.Limit, + TotalResult: count, + Result: usr_view_model.ExternalIDPViewsToModel(externalIDPS), + } + if seqErr == nil { + result.Sequence = sequence.CurrentSequence + result.Timestamp = sequence.CurrentTimestamp + } + return result, nil +} + +func (repo *UserRepo) AddMyExternalIDP(ctx context.Context, externalIDP *model.ExternalIDP) (*model.ExternalIDP, error) { + if err := checkIDs(ctx, externalIDP.ObjectRoot); err != nil { + return nil, err + } + return repo.UserEvents.AddExternalIDP(ctx, externalIDP) +} + +func (repo *UserRepo) RemoveMyExternalIDP(ctx context.Context, externalIDP *model.ExternalIDP) error { + if err := checkIDs(ctx, externalIDP.ObjectRoot); err != nil { + return err + } + return repo.UserEvents.RemoveExternalIDP(ctx, externalIDP) +} + func (repo *UserRepo) MyEmail(ctx context.Context) (*model.Email, error) { user, err := repo.UserByID(ctx, authz.GetCtxData(ctx).UserID) if err != nil { diff --git a/internal/auth/repository/eventsourcing/handler/handler.go b/internal/auth/repository/eventsourcing/handler/handler.go index ccb94a7128..52f078cced 100644 --- a/internal/auth/repository/eventsourcing/handler/handler.go +++ b/internal/auth/repository/eventsourcing/handler/handler.go @@ -53,6 +53,10 @@ func Register(configs Configs, bulkLimit, errorCount uint64, view *view.View, ev iamEvents: repos.IamEvents, iamID: systemDefaults.IamID}, &MachineKeys{handler: handler{view, bulkLimit, configs.cycleDuration("MachineKey"), errorCount}}, + &LoginPolicy{handler: handler{view, bulkLimit, configs.cycleDuration("LoginPolicy"), errorCount}}, + &IDPConfig{handler: handler{view, bulkLimit, configs.cycleDuration("IDPConfig"), errorCount}}, + &IDPProvider{handler: handler{view, bulkLimit, configs.cycleDuration("IDPProvider"), errorCount}, systemDefaults: systemDefaults, orgEvents: repos.OrgEvents, iamEvents: repos.IamEvents}, + &ExternalIDP{handler: handler{view, bulkLimit, configs.cycleDuration("ExternalIDP"), errorCount}, systemDefaults: systemDefaults, orgEvents: repos.OrgEvents, iamEvents: repos.IamEvents}, } } diff --git a/internal/auth/repository/eventsourcing/handler/idp_config.go b/internal/auth/repository/eventsourcing/handler/idp_config.go new file mode 100644 index 0000000000..0460b32a9b --- /dev/null +++ b/internal/auth/repository/eventsourcing/handler/idp_config.go @@ -0,0 +1,82 @@ +package handler + +import ( + "github.com/caos/logging" + "github.com/caos/zitadel/internal/eventstore/models" + es_models "github.com/caos/zitadel/internal/eventstore/models" + "github.com/caos/zitadel/internal/eventstore/spooler" + iam_model "github.com/caos/zitadel/internal/iam/model" + iam_es_model "github.com/caos/zitadel/internal/iam/repository/eventsourcing/model" + iam_view_model "github.com/caos/zitadel/internal/iam/repository/view/model" + "github.com/caos/zitadel/internal/org/repository/eventsourcing/model" +) + +type IDPConfig struct { + handler +} + +const ( + idpConfigTable = "auth.idp_configs" +) + +func (m *IDPConfig) ViewModel() string { + return idpConfigTable +} + +func (m *IDPConfig) EventQuery() (*models.SearchQuery, error) { + sequence, err := m.view.GetLatestIDPConfigSequence() + if err != nil { + return nil, err + } + return es_models.NewSearchQuery(). + AggregateTypeFilter(model.OrgAggregate, iam_es_model.IAMAggregate). + LatestSequenceFilter(sequence.CurrentSequence), nil +} + +func (m *IDPConfig) Reduce(event *models.Event) (err error) { + switch event.AggregateType { + case model.OrgAggregate: + err = m.processIdpConfig(iam_model.IDPProviderTypeOrg, event) + case iam_es_model.IAMAggregate: + err = m.processIdpConfig(iam_model.IDPProviderTypeSystem, event) + } + return err +} + +func (m *IDPConfig) processIdpConfig(providerType iam_model.IDPProviderType, event *models.Event) (err error) { + idp := new(iam_view_model.IDPConfigView) + switch event.Type { + case model.IDPConfigAdded, + iam_es_model.IDPConfigAdded: + err = idp.AppendEvent(providerType, event) + case model.IDPConfigChanged, iam_es_model.IDPConfigChanged, + model.OIDCIDPConfigAdded, iam_es_model.OIDCIDPConfigAdded, + model.OIDCIDPConfigChanged, iam_es_model.OIDCIDPConfigChanged: + err = idp.SetData(event) + if err != nil { + return err + } + idp, err = m.view.IDPConfigByID(idp.IDPConfigID) + if err != nil { + return err + } + err = idp.AppendEvent(providerType, event) + case model.IDPConfigRemoved, iam_es_model.IDPConfigRemoved: + err = idp.SetData(event) + if err != nil { + return err + } + return m.view.DeleteIDPConfig(idp.IDPConfigID, event.Sequence) + default: + return m.view.ProcessedIDPConfigSequence(event.Sequence) + } + if err != nil { + return err + } + return m.view.PutIDPConfig(idp, idp.Sequence) +} + +func (m *IDPConfig) OnError(event *models.Event, err error) error { + logging.LogWithFields("SPOOL-Ejf8s", "id", event.AggregateID).WithError(err).Warn("something went wrong in idp config handler") + return spooler.HandleError(event, err, m.view.GetLatestIDPConfigFailedEvent, m.view.ProcessedIDPConfigFailedEvent, m.view.ProcessedIDPConfigSequence, m.errorCountUntilSkip) +} diff --git a/internal/auth/repository/eventsourcing/handler/idp_providers.go b/internal/auth/repository/eventsourcing/handler/idp_providers.go new file mode 100644 index 0000000000..538e6c0918 --- /dev/null +++ b/internal/auth/repository/eventsourcing/handler/idp_providers.go @@ -0,0 +1,120 @@ +package handler + +import ( + "context" + "github.com/caos/logging" + "github.com/caos/zitadel/internal/config/systemdefaults" + "github.com/caos/zitadel/internal/iam/repository/eventsourcing" + org_es "github.com/caos/zitadel/internal/org/repository/eventsourcing" + org_es_model "github.com/caos/zitadel/internal/org/repository/eventsourcing/model" + + "github.com/caos/zitadel/internal/eventstore/models" + es_models "github.com/caos/zitadel/internal/eventstore/models" + "github.com/caos/zitadel/internal/eventstore/spooler" + iam_model "github.com/caos/zitadel/internal/iam/model" + "github.com/caos/zitadel/internal/iam/repository/eventsourcing/model" + iam_view_model "github.com/caos/zitadel/internal/iam/repository/view/model" +) + +type IDPProvider struct { + handler + systemDefaults systemdefaults.SystemDefaults + iamEvents *eventsourcing.IAMEventstore + orgEvents *org_es.OrgEventstore +} + +const ( + idpProviderTable = "auth.idp_providers" +) + +func (m *IDPProvider) ViewModel() string { + return idpProviderTable +} + +func (m *IDPProvider) EventQuery() (*models.SearchQuery, error) { + sequence, err := m.view.GetLatestIDPProviderSequence() + if err != nil { + return nil, err + } + return es_models.NewSearchQuery(). + AggregateTypeFilter(model.IAMAggregate, org_es_model.OrgAggregate). + LatestSequenceFilter(sequence.CurrentSequence), nil +} + +func (m *IDPProvider) Reduce(event *models.Event) (err error) { + switch event.AggregateType { + case model.IAMAggregate, org_es_model.OrgAggregate: + err = m.processIdpProvider(event) + } + return err +} + +func (m *IDPProvider) processIdpProvider(event *models.Event) (err error) { + provider := new(iam_view_model.IDPProviderView) + switch event.Type { + case model.LoginPolicyIDPProviderAdded, org_es_model.LoginPolicyIDPProviderAdded: + err = provider.AppendEvent(event) + if err != nil { + return err + } + err = m.fillData(provider) + case model.LoginPolicyIDPProviderRemoved, model.LoginPolicyIDPProviderCascadeRemoved, + org_es_model.LoginPolicyIDPProviderRemoved, org_es_model.LoginPolicyIDPProviderCascadeRemoved: + err = provider.SetData(event) + if err != nil { + return err + } + return m.view.DeleteIDPProvider(event.AggregateID, provider.IDPConfigID, event.Sequence) + case model.IDPConfigChanged, org_es_model.IDPConfigChanged: + config := new(iam_model.IDPConfig) + config.AppendEvent(event) + providers, err := m.view.IDPProvidersByIDPConfigID(config.IDPConfigID) + if err != nil { + return err + } + if provider.IDPProviderType == int32(iam_model.IDPProviderTypeSystem) { + config, err = m.iamEvents.GetIDPConfig(context.Background(), provider.AggregateID, config.IDPConfigID) + } else { + config, err = m.orgEvents.GetIDPConfig(context.Background(), provider.AggregateID, provider.IDPConfigID) + } + if err != nil { + return err + } + for _, provider := range providers { + m.fillConfigData(provider, config) + } + return m.view.PutIDPProviders(event.Sequence, providers...) + case org_es_model.LoginPolicyRemoved: + return m.view.DeleteIDPProvidersByAggregateID(event.AggregateID, event.Sequence) + default: + return m.view.ProcessedIDPProviderSequence(event.Sequence) + } + if err != nil { + return err + } + return m.view.PutIDPProvider(provider, provider.Sequence) +} + +func (m *IDPProvider) fillData(provider *iam_view_model.IDPProviderView) (err error) { + var config *iam_model.IDPConfig + if provider.IDPProviderType == int32(iam_model.IDPProviderTypeSystem) { + config, err = m.iamEvents.GetIDPConfig(context.Background(), m.systemDefaults.IamID, provider.IDPConfigID) + } else { + config, err = m.orgEvents.GetIDPConfig(context.Background(), provider.AggregateID, provider.IDPConfigID) + } + if err != nil { + return err + } + m.fillConfigData(provider, config) + return nil +} + +func (m *IDPProvider) fillConfigData(provider *iam_view_model.IDPProviderView, config *iam_model.IDPConfig) { + provider.Name = config.Name + provider.IDPConfigType = int32(config.Type) +} + +func (m *IDPProvider) OnError(event *models.Event, err error) error { + logging.LogWithFields("SPOOL-Fjd89", "id", event.AggregateID).WithError(err).Warn("something went wrong in idp provider handler") + return spooler.HandleError(event, err, m.view.GetLatestIDPProviderFailedEvent, m.view.ProcessedIDPProviderFailedEvent, m.view.ProcessedIDPProviderSequence, m.errorCountUntilSkip) +} diff --git a/internal/auth/repository/eventsourcing/handler/login_policy.go b/internal/auth/repository/eventsourcing/handler/login_policy.go new file mode 100644 index 0000000000..824de772e3 --- /dev/null +++ b/internal/auth/repository/eventsourcing/handler/login_policy.go @@ -0,0 +1,67 @@ +package handler + +import ( + "github.com/caos/logging" + iam_es_model "github.com/caos/zitadel/internal/iam/repository/eventsourcing/model" + + "github.com/caos/zitadel/internal/eventstore/models" + es_models "github.com/caos/zitadel/internal/eventstore/models" + "github.com/caos/zitadel/internal/eventstore/spooler" + iam_model "github.com/caos/zitadel/internal/iam/repository/view/model" + "github.com/caos/zitadel/internal/org/repository/eventsourcing/model" +) + +type LoginPolicy struct { + handler +} + +const ( + loginPolicyTable = "auth.login_policies" +) + +func (m *LoginPolicy) ViewModel() string { + return loginPolicyTable +} + +func (m *LoginPolicy) EventQuery() (*models.SearchQuery, error) { + sequence, err := m.view.GetLatestLoginPolicySequence() + if err != nil { + return nil, err + } + return es_models.NewSearchQuery(). + AggregateTypeFilter(model.OrgAggregate, iam_es_model.IAMAggregate). + LatestSequenceFilter(sequence.CurrentSequence), nil +} + +func (m *LoginPolicy) Reduce(event *models.Event) (err error) { + switch event.AggregateType { + case model.OrgAggregate, iam_es_model.IAMAggregate: + err = m.processLoginPolicy(event) + } + return err +} + +func (m *LoginPolicy) processLoginPolicy(event *models.Event) (err error) { + policy := new(iam_model.LoginPolicyView) + switch event.Type { + case iam_es_model.LoginPolicyAdded, model.LoginPolicyAdded: + err = policy.AppendEvent(event) + case iam_es_model.LoginPolicyChanged, model.LoginPolicyChanged: + policy, err = m.view.LoginPolicyByAggregateID(event.AggregateID) + if err != nil { + return err + } + err = policy.AppendEvent(event) + default: + return m.view.ProcessedLoginPolicySequence(event.Sequence) + } + if err != nil { + return err + } + return m.view.PutLoginPolicy(policy, policy.Sequence) +} + +func (m *LoginPolicy) OnError(event *models.Event, err error) error { + logging.LogWithFields("SPOOL-5id9s", "id", event.AggregateID).WithError(err).Warn("something went wrong in login policy handler") + return spooler.HandleError(event, err, m.view.GetLatestLoginPolicyFailedEvent, m.view.ProcessedLoginPolicyFailedEvent, m.view.ProcessedLoginPolicySequence, m.errorCountUntilSkip) +} diff --git a/internal/auth/repository/eventsourcing/handler/user_external_idps.go b/internal/auth/repository/eventsourcing/handler/user_external_idps.go new file mode 100644 index 0000000000..44432a1c87 --- /dev/null +++ b/internal/auth/repository/eventsourcing/handler/user_external_idps.go @@ -0,0 +1,126 @@ +package handler + +import ( + "context" + "github.com/caos/logging" + "github.com/caos/zitadel/internal/config/systemdefaults" + caos_errs "github.com/caos/zitadel/internal/errors" + "github.com/caos/zitadel/internal/iam/repository/eventsourcing" + org_es "github.com/caos/zitadel/internal/org/repository/eventsourcing" + org_es_model "github.com/caos/zitadel/internal/org/repository/eventsourcing/model" + "github.com/caos/zitadel/internal/user/repository/eventsourcing/model" + usr_view_model "github.com/caos/zitadel/internal/user/repository/view/model" + + "github.com/caos/zitadel/internal/eventstore/models" + es_models "github.com/caos/zitadel/internal/eventstore/models" + "github.com/caos/zitadel/internal/eventstore/spooler" + iam_model "github.com/caos/zitadel/internal/iam/model" + iam_es_model "github.com/caos/zitadel/internal/iam/repository/eventsourcing/model" +) + +type ExternalIDP struct { + handler + systemDefaults systemdefaults.SystemDefaults + iamEvents *eventsourcing.IAMEventstore + orgEvents *org_es.OrgEventstore +} + +const ( + externalIDPTable = "auth.user_external_idps" +) + +func (m *ExternalIDP) ViewModel() string { + return externalIDPTable +} + +func (m *ExternalIDP) EventQuery() (*models.SearchQuery, error) { + sequence, err := m.view.GetLatestExternalIDPSequence() + if err != nil { + return nil, err + } + return es_models.NewSearchQuery(). + AggregateTypeFilter(model.UserAggregate, iam_es_model.IAMAggregate, org_es_model.OrgAggregate). + LatestSequenceFilter(sequence.CurrentSequence), nil +} + +func (m *ExternalIDP) Reduce(event *models.Event) (err error) { + switch event.AggregateType { + case model.UserAggregate: + err = m.processUser(event) + case iam_es_model.IAMAggregate, org_es_model.OrgAggregate: + err = m.processIdpConfig(event) + } + return err +} + +func (m *ExternalIDP) processUser(event *models.Event) (err error) { + externalIDP := new(usr_view_model.ExternalIDPView) + switch event.Type { + case model.HumanExternalIDPAdded: + err = externalIDP.AppendEvent(event) + if err != nil { + return err + } + err = m.fillData(externalIDP) + case model.HumanExternalIDPRemoved, model.HumanExternalIDPCascadeRemoved: + err = externalIDP.SetData(event) + if err != nil { + return err + } + return m.view.DeleteExternalIDP(externalIDP.ExternalUserID, externalIDP.IDPConfigID, event.Sequence) + default: + return m.view.ProcessedExternalIDPSequence(event.Sequence) + } + if err != nil { + return err + } + return m.view.PutExternalIDP(externalIDP, externalIDP.Sequence) +} + +func (m *ExternalIDP) processIdpConfig(event *models.Event) (err error) { + switch event.Type { + case iam_es_model.IDPConfigChanged, org_es_model.IDPConfigChanged: + config := new(iam_model.IDPConfig) + config.AppendEvent(event) + exterinalIDPs, err := m.view.ExternalIDPsByIDPConfigID(config.IDPConfigID) + if err != nil { + return err + } + if event.AggregateType == iam_es_model.IAMAggregate { + config, err = m.iamEvents.GetIDPConfig(context.Background(), config.AggregateID, config.IDPConfigID) + } else { + config, err = m.orgEvents.GetIDPConfig(context.Background(), config.AggregateID, config.IDPConfigID) + } + if err != nil { + return err + } + for _, provider := range exterinalIDPs { + m.fillConfigData(provider, config) + } + return m.view.PutExternalIDPs(event.Sequence, exterinalIDPs...) + default: + return m.view.ProcessedExternalIDPSequence(event.Sequence) + } + return nil +} + +func (m *ExternalIDP) fillData(externalIDP *usr_view_model.ExternalIDPView) error { + config, err := m.orgEvents.GetIDPConfig(context.Background(), externalIDP.ResourceOwner, externalIDP.IDPConfigID) + if caos_errs.IsNotFound(err) { + config, err = m.iamEvents.GetIDPConfig(context.Background(), m.systemDefaults.IamID, externalIDP.IDPConfigID) + } + if err != nil { + return err + } + m.fillConfigData(externalIDP, config) + return nil +} + +func (m *ExternalIDP) fillConfigData(externalIDP *usr_view_model.ExternalIDPView, config *iam_model.IDPConfig) { + externalIDP.IDPName = config.Name +} + +func (m *ExternalIDP) OnError(event *models.Event, err error) error { + logging.LogWithFields("SPOOL-4Rsu8", "id", event.AggregateID).WithError(err).Warn("something went wrong in idp provider handler") + return spooler.HandleError(event, err, m.view.GetLatestExternalIDPFailedEvent, m.view.ProcessedExternalIDPFailedEvent, m.view.ProcessedExternalIDPSequence, m.errorCountUntilSkip) +} diff --git a/internal/auth/repository/eventsourcing/repository.go b/internal/auth/repository/eventsourcing/repository.go index 739803fe5b..3da02dcf05 100644 --- a/internal/auth/repository/eventsourcing/repository.go +++ b/internal/auth/repository/eventsourcing/repository.go @@ -128,6 +128,7 @@ func Start(conf Config, authZ authz.Config, systemDefaults sd.SystemDefaults, au return &EsRepository{ spool, eventstore.UserRepo{ + SearchLimit: conf.SearchLimit, Eventstore: es, UserEvents: user, OrgEvents: org, @@ -136,17 +137,22 @@ func Start(conf Config, authZ authz.Config, systemDefaults sd.SystemDefaults, au }, eventstore.AuthRequestRepo{ UserEvents: user, + OrgEvents: org, + PolicyEvents: policy, AuthRequests: authReq, View: view, UserSessionViewProvider: view, UserViewProvider: view, UserEventProvider: user, OrgViewProvider: view, + IDPProviderViewProvider: view, + LoginPolicyViewProvider: view, IdGenerator: idGenerator, PasswordCheckLifeTime: systemDefaults.VerificationLifetimes.PasswordCheck.Duration, MfaInitSkippedLifeTime: systemDefaults.VerificationLifetimes.MfaInitSkip.Duration, MfaSoftwareCheckLifeTime: systemDefaults.VerificationLifetimes.MfaSoftwareCheck.Duration, MfaHardwareCheckLifeTime: systemDefaults.VerificationLifetimes.MfaHardwareCheck.Duration, + IAMID: systemDefaults.IamID, }, eventstore.TokenRepo{View: view}, eventstore.KeyRepository{ diff --git a/internal/auth/repository/eventsourcing/view/external_idps.go b/internal/auth/repository/eventsourcing/view/external_idps.go new file mode 100644 index 0000000000..70a382b3bc --- /dev/null +++ b/internal/auth/repository/eventsourcing/view/external_idps.go @@ -0,0 +1,73 @@ +package view + +import ( + "github.com/caos/zitadel/internal/errors" + usr_model "github.com/caos/zitadel/internal/user/model" + "github.com/caos/zitadel/internal/user/repository/view" + "github.com/caos/zitadel/internal/user/repository/view/model" + global_view "github.com/caos/zitadel/internal/view/repository" +) + +const ( + externalIDPTable = "auth.user_external_idps" +) + +func (v *View) ExternalIDPByExternalUserIDAndIDPConfigID(externalUserID, idpConfigID string) (*model.ExternalIDPView, error) { + return view.ExternalIDPByExternalUserIDAndIDPConfigID(v.Db, externalIDPTable, externalUserID, idpConfigID) +} + +func (v *View) ExternalIDPByExternalUserIDAndIDPConfigIDAndResourceOwner(externalUserID, idpConfigID, resourceOwner string) (*model.ExternalIDPView, error) { + return view.ExternalIDPByExternalUserIDAndIDPConfigIDAndResourceOwner(v.Db, externalIDPTable, externalUserID, idpConfigID, resourceOwner) +} + +func (v *View) ExternalIDPsByIDPConfigID(idpConfigID string) ([]*model.ExternalIDPView, error) { + return view.ExternalIDPsByIDPConfigID(v.Db, externalIDPTable, idpConfigID) +} + +func (v *View) ExternalIDPsByUserID(userID string) ([]*model.ExternalIDPView, error) { + return view.ExternalIDPsByUserID(v.Db, externalIDPTable, userID) +} + +func (v *View) SearchExternalIDPs(request *usr_model.ExternalIDPSearchRequest) ([]*model.ExternalIDPView, uint64, error) { + return view.SearchExternalIDPs(v.Db, externalIDPTable, request) +} + +func (v *View) PutExternalIDP(externalIDP *model.ExternalIDPView, sequence uint64) error { + err := view.PutExternalIDP(v.Db, externalIDPTable, externalIDP) + if err != nil { + return err + } + return v.ProcessedExternalIDPSequence(sequence) +} + +func (v *View) PutExternalIDPs(sequence uint64, externalIDPs ...*model.ExternalIDPView) error { + err := view.PutExternalIDPs(v.Db, externalIDPTable, externalIDPs...) + if err != nil { + return err + } + return v.ProcessedExternalIDPSequence(sequence) +} + +func (v *View) DeleteExternalIDP(externalUserID, idpConfigID string, eventSequence uint64) error { + err := view.DeleteExternalIDP(v.Db, externalIDPTable, externalUserID, idpConfigID) + if err != nil && !errors.IsNotFound(err) { + return err + } + return v.ProcessedExternalIDPSequence(eventSequence) +} + +func (v *View) GetLatestExternalIDPSequence() (*global_view.CurrentSequence, error) { + return v.latestSequence(externalIDPTable) +} + +func (v *View) ProcessedExternalIDPSequence(eventSequence uint64) error { + return v.saveCurrentSequence(externalIDPTable, eventSequence) +} + +func (v *View) GetLatestExternalIDPFailedEvent(sequence uint64) (*global_view.FailedEvent, error) { + return v.latestFailedEvent(externalIDPTable, sequence) +} + +func (v *View) ProcessedExternalIDPFailedEvent(failedEvent *global_view.FailedEvent) error { + return v.saveFailedEvent(failedEvent) +} diff --git a/internal/auth/repository/eventsourcing/view/idp_configs.go b/internal/auth/repository/eventsourcing/view/idp_configs.go new file mode 100644 index 0000000000..0a218f08d6 --- /dev/null +++ b/internal/auth/repository/eventsourcing/view/idp_configs.go @@ -0,0 +1,57 @@ +package view + +import ( + "github.com/caos/zitadel/internal/errors" + iam_model "github.com/caos/zitadel/internal/iam/model" + "github.com/caos/zitadel/internal/iam/repository/view" + iam_es_model "github.com/caos/zitadel/internal/iam/repository/view/model" + global_view "github.com/caos/zitadel/internal/view/repository" +) + +const ( + idpConfigTable = "auth.idp_configs" +) + +func (v *View) IDPConfigByID(idpID string) (*iam_es_model.IDPConfigView, error) { + return view.IDPByID(v.Db, idpConfigTable, idpID) +} + +func (v *View) GetIDPConfigsByAggregateID(aggregateID string) ([]*iam_es_model.IDPConfigView, error) { + return view.GetIDPConfigsByAggregateID(v.Db, idpConfigTable, aggregateID) +} + +func (v *View) SearchIDPConfigs(request *iam_model.IDPConfigSearchRequest) ([]*iam_es_model.IDPConfigView, uint64, error) { + return view.SearchIDPs(v.Db, idpConfigTable, request) +} + +func (v *View) PutIDPConfig(idp *iam_es_model.IDPConfigView, sequence uint64) error { + err := view.PutIDP(v.Db, idpConfigTable, idp) + if err != nil { + return err + } + return v.ProcessedIDPConfigSequence(sequence) +} + +func (v *View) DeleteIDPConfig(idpID string, eventSequence uint64) error { + err := view.DeleteIDP(v.Db, idpConfigTable, idpID) + if err != nil && !errors.IsNotFound(err) { + return err + } + return v.ProcessedIDPConfigSequence(eventSequence) +} + +func (v *View) GetLatestIDPConfigSequence() (*global_view.CurrentSequence, error) { + return v.latestSequence(idpConfigTable) +} + +func (v *View) ProcessedIDPConfigSequence(eventSequence uint64) error { + return v.saveCurrentSequence(idpConfigTable, eventSequence) +} + +func (v *View) GetLatestIDPConfigFailedEvent(sequence uint64) (*global_view.FailedEvent, error) { + return v.latestFailedEvent(idpConfigTable, sequence) +} + +func (v *View) ProcessedIDPConfigFailedEvent(failedEvent *global_view.FailedEvent) error { + return v.saveFailedEvent(failedEvent) +} diff --git a/internal/auth/repository/eventsourcing/view/idp_providers.go b/internal/auth/repository/eventsourcing/view/idp_providers.go new file mode 100644 index 0000000000..fc3eae06ab --- /dev/null +++ b/internal/auth/repository/eventsourcing/view/idp_providers.go @@ -0,0 +1,77 @@ +package view + +import ( + "github.com/caos/zitadel/internal/errors" + iam_model "github.com/caos/zitadel/internal/iam/model" + "github.com/caos/zitadel/internal/iam/repository/view" + "github.com/caos/zitadel/internal/iam/repository/view/model" + global_view "github.com/caos/zitadel/internal/view/repository" +) + +const ( + idpProviderTable = "auth.idp_providers" +) + +func (v *View) IDPProviderByAggregateAndIDPConfigID(aggregateID, idpConfigID string) (*model.IDPProviderView, error) { + return view.GetIDPProviderByAggregateIDAndConfigID(v.Db, idpProviderTable, aggregateID, idpConfigID) +} + +func (v *View) IDPProvidersByIDPConfigID(idpConfigID string) ([]*model.IDPProviderView, error) { + return view.IDPProvidersByIdpConfigID(v.Db, idpProviderTable, idpConfigID) +} + +func (v *View) IDPProvidersByAggregateID(aggregateID string) ([]*model.IDPProviderView, error) { + return view.IDPProvidersByAggregateID(v.Db, idpProviderTable, aggregateID) +} + +func (v *View) SearchIDPProviders(request *iam_model.IDPProviderSearchRequest) ([]*model.IDPProviderView, uint64, error) { + return view.SearchIDPProviders(v.Db, idpProviderTable, request) +} + +func (v *View) PutIDPProvider(provider *model.IDPProviderView, sequence uint64) error { + err := view.PutIDPProvider(v.Db, idpProviderTable, provider) + if err != nil { + return err + } + return v.ProcessedIDPProviderSequence(sequence) +} + +func (v *View) PutIDPProviders(sequence uint64, providers ...*model.IDPProviderView) error { + err := view.PutIDPProviders(v.Db, idpProviderTable, providers...) + if err != nil { + return err + } + return v.ProcessedIDPProviderSequence(sequence) +} + +func (v *View) DeleteIDPProvider(aggregateID, idpConfigID string, eventSequence uint64) error { + err := view.DeleteIDPProvider(v.Db, idpProviderTable, aggregateID, idpConfigID) + if err != nil && !errors.IsNotFound(err) { + return err + } + return v.ProcessedIDPProviderSequence(eventSequence) +} + +func (v *View) DeleteIDPProvidersByAggregateID(aggregateID string, eventSequence uint64) error { + err := view.DeleteIDPProvidersByAggregateID(v.Db, idpProviderTable, aggregateID) + if err != nil && !errors.IsNotFound(err) { + return err + } + return v.ProcessedIDPProviderSequence(eventSequence) +} + +func (v *View) GetLatestIDPProviderSequence() (*global_view.CurrentSequence, error) { + return v.latestSequence(idpProviderTable) +} + +func (v *View) ProcessedIDPProviderSequence(eventSequence uint64) error { + return v.saveCurrentSequence(idpProviderTable, eventSequence) +} + +func (v *View) GetLatestIDPProviderFailedEvent(sequence uint64) (*global_view.FailedEvent, error) { + return v.latestFailedEvent(idpProviderTable, sequence) +} + +func (v *View) ProcessedIDPProviderFailedEvent(failedEvent *global_view.FailedEvent) error { + return v.saveFailedEvent(failedEvent) +} diff --git a/internal/auth/repository/eventsourcing/view/login_policies.go b/internal/auth/repository/eventsourcing/view/login_policies.go new file mode 100644 index 0000000000..3a2133ddee --- /dev/null +++ b/internal/auth/repository/eventsourcing/view/login_policies.go @@ -0,0 +1,48 @@ +package view + +import ( + "github.com/caos/zitadel/internal/errors" + "github.com/caos/zitadel/internal/iam/repository/view" + "github.com/caos/zitadel/internal/iam/repository/view/model" + global_view "github.com/caos/zitadel/internal/view/repository" +) + +const ( + loginPolicyTable = "auth.login_policies" +) + +func (v *View) LoginPolicyByAggregateID(aggregateID string) (*model.LoginPolicyView, error) { + return view.GetLoginPolicyByAggregateID(v.Db, loginPolicyTable, aggregateID) +} + +func (v *View) PutLoginPolicy(policy *model.LoginPolicyView, sequence uint64) error { + err := view.PutLoginPolicy(v.Db, loginPolicyTable, policy) + if err != nil { + return err + } + return v.ProcessedLoginPolicySequence(sequence) +} + +func (v *View) DeleteLoginPolicy(aggregateID string, eventSequence uint64) error { + err := view.DeleteLoginPolicy(v.Db, loginPolicyTable, aggregateID) + if err != nil && !errors.IsNotFound(err) { + return err + } + return v.ProcessedLoginPolicySequence(eventSequence) +} + +func (v *View) GetLatestLoginPolicySequence() (*global_view.CurrentSequence, error) { + return v.latestSequence(loginPolicyTable) +} + +func (v *View) ProcessedLoginPolicySequence(eventSequence uint64) error { + return v.saveCurrentSequence(loginPolicyTable, eventSequence) +} + +func (v *View) GetLatestLoginPolicyFailedEvent(sequence uint64) (*global_view.FailedEvent, error) { + return v.latestFailedEvent(loginPolicyTable, sequence) +} + +func (v *View) ProcessedLoginPolicyFailedEvent(failedEvent *global_view.FailedEvent) error { + return v.saveFailedEvent(failedEvent) +} diff --git a/internal/auth/repository/eventsourcing/view/user.go b/internal/auth/repository/eventsourcing/view/user.go index 87a8dd6168..5472eb628d 100644 --- a/internal/auth/repository/eventsourcing/view/user.go +++ b/internal/auth/repository/eventsourcing/view/user.go @@ -23,6 +23,10 @@ func (v *View) UserByLoginName(loginName string) (*model.UserView, error) { return view.UserByLoginName(v.Db, userTable, loginName) } +func (v *View) UserByLoginNameAndResourceOwner(loginName, resourceOwner string) (*model.UserView, error) { + return view.UserByLoginNameAndResourceOwner(v.Db, userTable, loginName, resourceOwner) +} + func (v *View) UsersByOrgID(orgID string) ([]*model.UserView, error) { return view.UsersByOrgID(v.Db, userTable, orgID) } diff --git a/internal/auth/repository/org.go b/internal/auth/repository/org.go index 2c9f4cfad1..54b75b2643 100644 --- a/internal/auth/repository/org.go +++ b/internal/auth/repository/org.go @@ -3,10 +3,13 @@ package repository import ( "context" auth_model "github.com/caos/zitadel/internal/auth/model" + iam_model "github.com/caos/zitadel/internal/iam/model" org_model "github.com/caos/zitadel/internal/org/model" ) type OrgRepository interface { RegisterOrg(context.Context, *auth_model.RegisterOrg) (*auth_model.RegisterOrg, error) GetOrgIamPolicy(ctx context.Context, orgID string) (*org_model.OrgIAMPolicy, error) + GetDefaultOrgIamPolicy(ctx context.Context) *org_model.OrgIAMPolicy + GetIDPConfigByID(ctx context.Context, idpConfigID string) (*iam_model.IDPConfigView, error) } diff --git a/internal/auth/repository/user.go b/internal/auth/repository/user.go index 9b6d332483..164ca23c35 100644 --- a/internal/auth/repository/user.go +++ b/internal/auth/repository/user.go @@ -10,6 +10,7 @@ import ( type UserRepository interface { Register(ctx context.Context, user *model.User, member *org_model.OrgMember, resourceOwner string) (*model.User, error) + RegisterExternalUser(ctx context.Context, user *model.User, externalIDP *model.ExternalIDP, member *org_model.OrgMember, resourceOwner string) (*model.User, error) myUserRepo SkipMfaInit(ctx context.Context, userID string) error @@ -58,6 +59,10 @@ type myUserRepo interface { ChangeMyPassword(ctx context.Context, old, new string) error + SearchMyExternalIDPs(ctx context.Context, request *model.ExternalIDPSearchRequest) (*model.ExternalIDPSearchResponse, error) + AddMyExternalIDP(ctx context.Context, externalIDP *model.ExternalIDP) (*model.ExternalIDP, error) + RemoveMyExternalIDP(ctx context.Context, externalIDP *model.ExternalIDP) error + MyUserMfas(ctx context.Context) ([]*model.MultiFactor, error) AddMyMfaOTP(ctx context.Context) (*model.OTP, error) VerifyMyMfaOTPSetup(ctx context.Context, code string) error diff --git a/internal/auth_request/model/auth_request.go b/internal/auth_request/model/auth_request.go index a834adc34d..b1f56accf1 100644 --- a/internal/auth_request/model/auth_request.go +++ b/internal/auth_request/model/auth_request.go @@ -1,6 +1,9 @@ package model import ( + "github.com/caos/zitadel/internal/iam/model" + "golang.org/x/text/language" + "strings" "time" "github.com/caos/zitadel/internal/errors" @@ -22,17 +25,36 @@ type AuthRequest struct { MaxAuthAge uint32 Request Request - levelOfAssurance LevelOfAssurance - UserID string - LoginName string - DisplayName string - UserOrgID string - PossibleSteps []NextStep - PasswordVerified bool - MfasVerified []MfaType - Audience []string - AuthTime time.Time - Code string + levelOfAssurance LevelOfAssurance + UserID string + LoginName string + DisplayName string + UserOrgID string + SelectedIDPConfigID string + LinkingUsers []*ExternalUser + PossibleSteps []NextStep + PasswordVerified bool + MfasVerified []MfaType + Audience []string + AuthTime time.Time + Code string + LoginPolicy *model.LoginPolicyView + AllowedExternalIDPs []*model.IDPProviderView +} + +type ExternalUser struct { + IDPConfigID string + ExternalUserID string + DisplayName string + PreferredUsername string + FirstName string + LastName string + NickName string + Email string + IsEmailVerified bool + PreferredLanguage language.Tag + Phone string + IsPhoneVerified bool } type Prompt int32 @@ -103,3 +125,15 @@ func (a *AuthRequest) SetUserInfo(userID, loginName, displayName, userOrgID stri a.DisplayName = displayName a.UserOrgID = userOrgID } + +func (a *AuthRequest) GetScopeOrgID() string { + switch request := a.Request.(type) { + case *AuthRequestOIDC: + for _, scope := range request.Scopes { + if strings.HasPrefix(scope, OrgIDScope) { + strings.TrimPrefix(scope, OrgIDScope) + } + } + } + return "" +} diff --git a/internal/auth_request/model/next_step.go b/internal/auth_request/model/next_step.go index b0abc5b0ac..cbaead8e46 100644 --- a/internal/auth_request/model/next_step.go +++ b/internal/auth_request/model/next_step.go @@ -19,6 +19,8 @@ const ( NextStepMfaVerify NextStepRedirectToCallback NextStepChangeUsername + NextStepLinkUsers + NextStepExternalNotFoundOption ) type UserSessionState int32 @@ -53,6 +55,12 @@ type InitUserStep struct { PasswordSet bool } +type ExternalNotFoundOptionStep struct{} + +func (s *ExternalNotFoundOptionStep) Type() NextStepType { + return NextStepExternalNotFoundOption +} + func (s *InitUserStep) Type() NextStepType { return NextStepInitUser } @@ -104,6 +112,12 @@ func (s *MfaVerificationStep) Type() NextStepType { return NextStepMfaVerify } +type LinkUsersStep struct{} + +func (s *LinkUsersStep) Type() NextStepType { + return NextStepLinkUsers +} + type RedirectToCallbackStep struct{} func (s *RedirectToCallbackStep) Type() NextStepType { diff --git a/internal/auth_request/model/request.go b/internal/auth_request/model/request.go index 34d09d5355..5bf1f9a507 100644 --- a/internal/auth_request/model/request.go +++ b/internal/auth_request/model/request.go @@ -18,6 +18,10 @@ const ( AuthRequestTypeSAML ) +const ( + OrgIDScope = "urn:zitadel:organisation:id:" +) + type AuthRequestOIDC struct { Scopes []string ResponseType OIDCResponseType diff --git a/internal/iam/model/idp_config.go b/internal/iam/model/idp_config.go index fbc6c510b9..bf6ecd45e6 100644 --- a/internal/iam/model/idp_config.go +++ b/internal/iam/model/idp_config.go @@ -17,12 +17,14 @@ type IDPConfig struct { type OIDCIDPConfig struct { es_models.ObjectRoot - IDPConfigID string - ClientID string - ClientSecret *crypto.CryptoValue - ClientSecretString string - Issuer string - Scopes []string + IDPConfigID string + ClientID string + ClientSecret *crypto.CryptoValue + ClientSecretString string + Issuer string + Scopes []string + IDPDisplayNameMapping OIDCMappingField + UsernameMapping OIDCMappingField } type IdpConfigType int32 @@ -40,6 +42,14 @@ const ( IDPConfigStateRemoved ) +type OIDCMappingField int32 + +const ( + OIDCMappingFieldUnspecified OIDCMappingField = iota + OIDCMappingFieldPreferredLoginName + OIDCMappingFieldEmail +) + func NewIDPConfig(iamID, idpID string) *IDPConfig { return &IDPConfig{ObjectRoot: es_models.ObjectRoot{AggregateID: iamID}, IDPConfigID: idpID} } diff --git a/internal/iam/model/idp_config_view.go b/internal/iam/model/idp_config_view.go index 18dba650f9..61770b8dfa 100644 --- a/internal/iam/model/idp_config_view.go +++ b/internal/iam/model/idp_config_view.go @@ -17,11 +17,13 @@ type IDPConfigView struct { Sequence uint64 IDPProviderType IDPProviderType - IsOIDC bool - OIDCClientID string - OIDCClientSecret *crypto.CryptoValue - OIDCIssuer string - OIDCScopes []string + IsOIDC bool + OIDCClientID string + OIDCClientSecret *crypto.CryptoValue + OIDCIssuer string + OIDCScopes []string + OIDCIDPDisplayNameMapping OIDCMappingField + OIDCUsernameMapping OIDCMappingField } type IDPConfigSearchRequest struct { diff --git a/internal/iam/repository/eventsourcing/eventstore.go b/internal/iam/repository/eventsourcing/eventstore.go index 09e232cfed..405ee87f42 100644 --- a/internal/iam/repository/eventsourcing/eventstore.go +++ b/internal/iam/repository/eventsourcing/eventstore.go @@ -380,7 +380,10 @@ func (es *IAMEventstore) ChangeIDPOIDCConfig(ctx context.Context, config *iam_mo return nil, caos_errs.ThrowPreconditionFailed(nil, "EVENT-Fms8w", "Errors.IAM.IdpIsNotOIDC") } if config.ClientSecretString != "" { - err = idp.OIDCConfig.CryptSecret(es.secretCrypto) + err = config.CryptSecret(es.secretCrypto) + if err != nil { + return nil, err + } } else { config.ClientSecret = nil } @@ -467,20 +470,31 @@ func (es *IAMEventstore) AddIDPProviderToLoginPolicy(ctx context.Context, provid return nil, caos_errs.ThrowInternal(nil, "EVENT-Slf9s", "Errors.Internal") } -func (es *IAMEventstore) RemoveIDPProviderFromLoginPolicy(ctx context.Context, provider *iam_model.IDPProvider) error { +func (es *IAMEventstore) PrepareRemoveIDPProviderFromLoginPolicy(ctx context.Context, provider *iam_model.IDPProvider) (*model.IAM, *models.Aggregate, error) { if provider == nil || !provider.IsValid() { - return caos_errs.ThrowPreconditionFailed(nil, "EVENT-Esi8c", "Errors.IdpProviderInvalid") + return nil, nil, caos_errs.ThrowPreconditionFailed(nil, "EVENT-Esi8c", "Errors.IdpProviderInvalid") } iam, err := es.IAMByID(ctx, provider.AggregateID) if err != nil { - return err + return nil, nil, err } if _, m := iam.DefaultLoginPolicy.GetIdpProvider(provider.IdpConfigID); m == nil { - return caos_errs.ThrowPreconditionFailed(nil, "EVENT-29skr", "Errors.IAM.LoginPolicy.IdpProviderNotExisting") + return nil, nil, caos_errs.ThrowPreconditionFailed(nil, "EVENT-29skr", "Errors.IAM.LoginPolicy.IdpProviderNotExisting") } repoIam := model.IAMFromModel(iam) - addAggregate := LoginPolicyIDPProviderRemovedAggregate(es.Eventstore.AggregateCreator(), repoIam, &model.IDPProviderID{provider.IdpConfigID}) - err = es_sdk.Push(ctx, es.PushAggregates, repoIam.AppendEvents, addAggregate) + removeAgg, err := LoginPolicyIDPProviderRemovedAggregate(ctx, es.Eventstore.AggregateCreator(), repoIam, &model.IDPProviderID{provider.IdpConfigID}) + if err != nil { + return nil, nil, err + } + return repoIam, removeAgg, nil +} + +func (es *IAMEventstore) RemoveIDPProviderFromLoginPolicy(ctx context.Context, provider *iam_model.IDPProvider) error { + repoIam, removeAgg, err := es.PrepareRemoveIDPProviderFromLoginPolicy(ctx, provider) + if err != nil { + return err + } + err = es_sdk.PushAggregates(ctx, es.PushAggregates, repoIam.AppendEvents, removeAgg) if err != nil { return err } diff --git a/internal/iam/repository/eventsourcing/iam.go b/internal/iam/repository/eventsourcing/iam.go index ba963b145a..3e3a0c2064 100644 --- a/internal/iam/repository/eventsourcing/iam.go +++ b/internal/iam/repository/eventsourcing/iam.go @@ -285,17 +285,15 @@ func LoginPolicyIDPProviderAddedAggregate(aggCreator *es_models.AggregateCreator } } -func LoginPolicyIDPProviderRemovedAggregate(aggCreator *es_models.AggregateCreator, existing *model.IAM, provider *model.IDPProviderID) func(ctx context.Context) (*es_models.Aggregate, error) { - return func(ctx context.Context) (*es_models.Aggregate, error) { - if provider == nil || existing == nil { - return nil, errors.ThrowPreconditionFailed(nil, "EVENT-Sml9d", "Errors.Internal") - } - agg, err := IAMAggregate(ctx, aggCreator, existing) - if err != nil { - return nil, err - } - return agg.AppendEvent(model.LoginPolicyIDPProviderRemoved, provider) +func LoginPolicyIDPProviderRemovedAggregate(ctx context.Context, aggCreator *es_models.AggregateCreator, existing *model.IAM, provider *model.IDPProviderID) (*es_models.Aggregate, error) { + if provider == nil || existing == nil { + return nil, errors.ThrowPreconditionFailed(nil, "EVENT-Sml9d", "Errors.Internal") } + agg, err := IAMAggregate(ctx, aggCreator, existing) + if err != nil { + return nil, err + } + return agg.AppendEvent(model.LoginPolicyIDPProviderRemoved, provider) } func checkExistingLoginPolicyValidation() func(...*es_models.Event) error { diff --git a/internal/iam/repository/eventsourcing/iam_test.go b/internal/iam/repository/eventsourcing/iam_test.go index 92f90530a7..4f48f5edf0 100644 --- a/internal/iam/repository/eventsourcing/iam_test.go +++ b/internal/iam/repository/eventsourcing/iam_test.go @@ -1447,7 +1447,7 @@ func TestLoginPolicyIdpProviderRemovedAggregate(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - agg, err := LoginPolicyIDPProviderRemovedAggregate(tt.args.aggCreator, tt.args.existingIAM, tt.args.newProviderID)(tt.args.ctx) + agg, err := LoginPolicyIDPProviderRemovedAggregate(tt.args.ctx, tt.args.aggCreator, tt.args.existingIAM, tt.args.newProviderID) if !tt.res.wantErr && len(agg.Events) != tt.res.eventLen { t.Errorf("got wrong event len: expected: %v, actual: %v ", tt.res.eventLen, len(agg.Events)) diff --git a/internal/iam/repository/eventsourcing/model/idp_config.go b/internal/iam/repository/eventsourcing/model/idp_config.go index 96c7425c39..433b25351a 100644 --- a/internal/iam/repository/eventsourcing/model/idp_config.go +++ b/internal/iam/repository/eventsourcing/model/idp_config.go @@ -10,11 +10,12 @@ import ( type IDPConfig struct { es_models.ObjectRoot - IDPConfigID string `json:"idpConfigId"` - State int32 `json:"-"` - Name string `json:"name,omitempty"` - Type int32 `json:"idpType,omitempty"` - LogoSrc []byte `json:"logoSrc,omitempty"` + IDPConfigID string `json:"idpConfigId"` + State int32 `json:"-"` + Name string `json:"name,omitempty"` + Type int32 `json:"idpType,omitempty"` + LogoSrc []byte `json:"logoSrc,omitempty"` + OIDCIDPConfig *OIDCIDPConfig `json:"-"` } diff --git a/internal/iam/repository/eventsourcing/model/oidc_idp_config.go b/internal/iam/repository/eventsourcing/model/oidc_idp_config.go index d334ba41b9..ecdda1b32c 100644 --- a/internal/iam/repository/eventsourcing/model/oidc_idp_config.go +++ b/internal/iam/repository/eventsourcing/model/oidc_idp_config.go @@ -12,11 +12,13 @@ import ( type OIDCIDPConfig struct { es_models.ObjectRoot - IDPConfigID string `json:"idpConfigId"` - ClientID string `json:"clientId"` - ClientSecret *crypto.CryptoValue `json:"clientSecret,omitempty"` - Issuer string `json:"issuer,omitempty"` - Scopes pq.StringArray `json:"scopes,omitempty"` + IDPConfigID string `json:"idpConfigId"` + ClientID string `json:"clientId"` + ClientSecret *crypto.CryptoValue `json:"clientSecret,omitempty"` + Issuer string `json:"issuer,omitempty"` + Scopes pq.StringArray `json:"scopes,omitempty"` + IDPDisplayNameMapping int32 `json:"idpDisplayNameMapping,omitempty"` + UsernameMapping int32 `json:"usernameMapping,omitempty"` } func (c *OIDCIDPConfig) Changes(changed *OIDCIDPConfig) map[string]interface{} { @@ -25,7 +27,7 @@ func (c *OIDCIDPConfig) Changes(changed *OIDCIDPConfig) map[string]interface{} { if c.ClientID != changed.ClientID { changes["clientId"] = changed.ClientID } - if c.ClientSecret != nil { + if c.ClientSecret != nil && c.ClientSecret != changed.ClientSecret { changes["clientSecret"] = changed.ClientSecret } if c.Issuer != changed.Issuer { @@ -34,28 +36,38 @@ func (c *OIDCIDPConfig) Changes(changed *OIDCIDPConfig) map[string]interface{} { if !reflect.DeepEqual(c.Scopes, changed.Scopes) { changes["scopes"] = changed.Scopes } + if c.IDPDisplayNameMapping != changed.IDPDisplayNameMapping { + changes["idpDisplayNameMapping"] = changed.IDPDisplayNameMapping + } + if c.UsernameMapping != changed.UsernameMapping { + changes["usernameMapping"] = changed.UsernameMapping + } return changes } func OIDCIDPConfigFromModel(config *model.OIDCIDPConfig) *OIDCIDPConfig { return &OIDCIDPConfig{ - ObjectRoot: config.ObjectRoot, - IDPConfigID: config.IDPConfigID, - ClientID: config.ClientID, - ClientSecret: config.ClientSecret, - Issuer: config.Issuer, - Scopes: config.Scopes, + ObjectRoot: config.ObjectRoot, + IDPConfigID: config.IDPConfigID, + ClientID: config.ClientID, + ClientSecret: config.ClientSecret, + Issuer: config.Issuer, + Scopes: config.Scopes, + IDPDisplayNameMapping: int32(config.IDPDisplayNameMapping), + UsernameMapping: int32(config.UsernameMapping), } } func OIDCIDPConfigToModel(config *OIDCIDPConfig) *model.OIDCIDPConfig { return &model.OIDCIDPConfig{ - ObjectRoot: config.ObjectRoot, - IDPConfigID: config.IDPConfigID, - ClientID: config.ClientID, - ClientSecret: config.ClientSecret, - Issuer: config.Issuer, - Scopes: config.Scopes, + ObjectRoot: config.ObjectRoot, + IDPConfigID: config.IDPConfigID, + ClientID: config.ClientID, + ClientSecret: config.ClientSecret, + Issuer: config.Issuer, + Scopes: config.Scopes, + IDPDisplayNameMapping: model.OIDCMappingField(config.IDPDisplayNameMapping), + UsernameMapping: model.OIDCMappingField(config.UsernameMapping), } } diff --git a/internal/iam/repository/view/idp_provider_view.go b/internal/iam/repository/view/idp_provider_view.go index b7a4bff024..88301dd3ee 100644 --- a/internal/iam/repository/view/idp_provider_view.go +++ b/internal/iam/repository/view/idp_provider_view.go @@ -22,7 +22,7 @@ func GetIDPProviderByAggregateIDAndConfigID(db *gorm.DB, table, aggregateID, idp } func IDPProvidersByIdpConfigID(db *gorm.DB, table string, idpConfigID string) ([]*model.IDPProviderView, error) { - members := make([]*model.IDPProviderView, 0) + providers := make([]*model.IDPProviderView, 0) queries := []*iam_model.IDPProviderSearchQuery{ { Key: iam_model.IDPProviderSearchKeyIdpConfigID, @@ -31,11 +31,28 @@ func IDPProvidersByIdpConfigID(db *gorm.DB, table string, idpConfigID string) ([ }, } query := repository.PrepareSearchQuery(table, model.IDPProviderSearchRequest{Queries: queries}) - _, err := query(db, &members) + _, err := query(db, &providers) if err != nil { return nil, err } - return members, nil + return providers, nil +} + +func IDPProvidersByAggregateID(db *gorm.DB, table string, aggregateID string) ([]*model.IDPProviderView, error) { + providers := make([]*model.IDPProviderView, 0) + queries := []*iam_model.IDPProviderSearchQuery{ + { + Key: iam_model.IDPProviderSearchKeyAggregateID, + Value: aggregateID, + Method: global_model.SearchMethodEquals, + }, + } + query := repository.PrepareSearchQuery(table, model.IDPProviderSearchRequest{Queries: queries}) + _, err := query(db, &providers) + if err != nil { + return nil, err + } + return providers, nil } func SearchIDPProviders(db *gorm.DB, table string, req *iam_model.IDPProviderSearchRequest) ([]*model.IDPProviderView, uint64, error) { diff --git a/internal/iam/repository/view/idp_view.go b/internal/iam/repository/view/idp_view.go index dc6fd73424..44fcd93edf 100644 --- a/internal/iam/repository/view/idp_view.go +++ b/internal/iam/repository/view/idp_view.go @@ -20,6 +20,23 @@ func IDPByID(db *gorm.DB, table, idpID string) (*model.IDPConfigView, error) { return idp, err } +func GetIDPConfigsByAggregateID(db *gorm.DB, table string, aggregateID string) ([]*model.IDPConfigView, error) { + idps := make([]*model.IDPConfigView, 0) + queries := []*iam_model.IDPConfigSearchQuery{ + { + Key: iam_model.IDPConfigSearchKeyAggregateID, + Value: aggregateID, + Method: global_model.SearchMethodEquals, + }, + } + query := repository.PrepareSearchQuery(table, model.IDPConfigSearchRequest{Queries: queries}) + _, err := query(db, &idps) + if err != nil { + return nil, err + } + return idps, nil +} + func SearchIDPs(db *gorm.DB, table string, req *iam_model.IDPConfigSearchRequest) ([]*model.IDPConfigView, uint64, error) { idps := make([]*model.IDPConfigView, 0) query := repository.PrepareSearchQuery(table, model.IDPConfigSearchRequest{Limit: req.Limit, Offset: req.Offset, Queries: req.Queries}) diff --git a/internal/iam/repository/view/model/idp_config.go b/internal/iam/repository/view/model/idp_config.go index d85181a04d..5587e8af47 100644 --- a/internal/iam/repository/view/model/idp_config.go +++ b/internal/iam/repository/view/model/idp_config.go @@ -32,55 +32,61 @@ type IDPConfigView struct { IDPState int32 `json:"-" gorm:"column:idp_state"` IDPProviderType int32 `json:"-" gorm:"column:idp_provider_type"` - IsOIDC bool `json:"-" gorm:"column:is_oidc"` - OIDCClientID string `json:"clientId" gorm:"column:oidc_client_id"` - OIDCClientSecret *crypto.CryptoValue `json:"clientSecret" gorm:"column:oidc_client_secret"` - OIDCIssuer string `json:"issuer" gorm:"column:oidc_issuer"` - OIDCScopes pq.StringArray `json:"scopes" gorm:"column:oidc_scopes"` + IsOIDC bool `json:"-" gorm:"column:is_oidc"` + OIDCClientID string `json:"clientId" gorm:"column:oidc_client_id"` + OIDCClientSecret *crypto.CryptoValue `json:"clientSecret" gorm:"column:oidc_client_secret"` + OIDCIssuer string `json:"issuer" gorm:"column:oidc_issuer"` + OIDCScopes pq.StringArray `json:"scopes" gorm:"column:oidc_scopes"` + OIDCIDPDisplayNameMapping int32 `json:"idpDisplayNameMapping" gorm:"column:oidc_idp_display_name_mapping"` + OIDCUsernameMapping int32 `json:"usernameMapping" gorm:"column:oidc_idp_username_mapping"` Sequence uint64 `json:"-" gorm:"column:sequence"` } func IDPConfigViewFromModel(idp *model.IDPConfigView) *IDPConfigView { return &IDPConfigView{ - IDPConfigID: idp.IDPConfigID, - AggregateID: idp.AggregateID, - Name: idp.Name, - LogoSrc: idp.LogoSrc, - Sequence: idp.Sequence, - CreationDate: idp.CreationDate, - ChangeDate: idp.ChangeDate, - IDPProviderType: int32(idp.IDPProviderType), - IsOIDC: idp.IsOIDC, - OIDCClientID: idp.OIDCClientID, - OIDCClientSecret: idp.OIDCClientSecret, - OIDCIssuer: idp.OIDCIssuer, - OIDCScopes: idp.OIDCScopes, + IDPConfigID: idp.IDPConfigID, + AggregateID: idp.AggregateID, + Name: idp.Name, + LogoSrc: idp.LogoSrc, + Sequence: idp.Sequence, + CreationDate: idp.CreationDate, + ChangeDate: idp.ChangeDate, + IDPProviderType: int32(idp.IDPProviderType), + IsOIDC: idp.IsOIDC, + OIDCClientID: idp.OIDCClientID, + OIDCClientSecret: idp.OIDCClientSecret, + OIDCIssuer: idp.OIDCIssuer, + OIDCScopes: idp.OIDCScopes, + OIDCIDPDisplayNameMapping: int32(idp.OIDCIDPDisplayNameMapping), + OIDCUsernameMapping: int32(idp.OIDCUsernameMapping), } } -func IdpConfigViewToModel(idp *IDPConfigView) *model.IDPConfigView { +func IDPConfigViewToModel(idp *IDPConfigView) *model.IDPConfigView { return &model.IDPConfigView{ - IDPConfigID: idp.IDPConfigID, - AggregateID: idp.AggregateID, - Name: idp.Name, - LogoSrc: idp.LogoSrc, - Sequence: idp.Sequence, - CreationDate: idp.CreationDate, - ChangeDate: idp.ChangeDate, - IDPProviderType: model.IDPProviderType(idp.IDPProviderType), - IsOIDC: idp.IsOIDC, - OIDCClientID: idp.OIDCClientID, - OIDCClientSecret: idp.OIDCClientSecret, - OIDCIssuer: idp.OIDCIssuer, - OIDCScopes: idp.OIDCScopes, + IDPConfigID: idp.IDPConfigID, + AggregateID: idp.AggregateID, + Name: idp.Name, + LogoSrc: idp.LogoSrc, + Sequence: idp.Sequence, + CreationDate: idp.CreationDate, + ChangeDate: idp.ChangeDate, + IDPProviderType: model.IDPProviderType(idp.IDPProviderType), + IsOIDC: idp.IsOIDC, + OIDCClientID: idp.OIDCClientID, + OIDCClientSecret: idp.OIDCClientSecret, + OIDCIssuer: idp.OIDCIssuer, + OIDCScopes: idp.OIDCScopes, + OIDCIDPDisplayNameMapping: model.OIDCMappingField(idp.OIDCIDPDisplayNameMapping), + OIDCUsernameMapping: model.OIDCMappingField(idp.OIDCUsernameMapping), } } func IdpConfigViewsToModel(idps []*IDPConfigView) []*model.IDPConfigView { result := make([]*model.IDPConfigView, len(idps)) for i, idp := range idps { - result[i] = IdpConfigViewToModel(idp) + result[i] = IDPConfigViewToModel(idp) } return result } diff --git a/internal/iam/repository/view/model/idp_provider.go b/internal/iam/repository/view/model/idp_provider.go index c6b5fe280e..57fa265419 100644 --- a/internal/iam/repository/view/model/idp_provider.go +++ b/internal/iam/repository/view/model/idp_provider.go @@ -39,6 +39,7 @@ func IDPProviderViewFromModel(policy *model.IDPProviderView) *IDPProviderView { CreationDate: policy.CreationDate, ChangeDate: policy.ChangeDate, Name: policy.Name, + IDPConfigID: policy.IDPConfigID, IDPConfigType: int32(policy.IDPConfigType), IDPProviderType: int32(policy.IDPProviderType), } @@ -51,6 +52,7 @@ func IDPProviderViewToModel(policy *IDPProviderView) *model.IDPProviderView { CreationDate: policy.CreationDate, ChangeDate: policy.ChangeDate, Name: policy.Name, + IDPConfigID: policy.IDPConfigID, IDPConfigType: model.IdpConfigType(policy.IDPConfigType), IDPProviderType: model.IDPProviderType(policy.IDPProviderType), } diff --git a/internal/management/repository/eventsourcing/eventstore/org.go b/internal/management/repository/eventsourcing/eventstore/org.go index 462d5724b3..2108fabedf 100644 --- a/internal/management/repository/eventsourcing/eventstore/org.go +++ b/internal/management/repository/eventsourcing/eventstore/org.go @@ -8,6 +8,7 @@ import ( iam_model "github.com/caos/zitadel/internal/iam/model" iam_es_model "github.com/caos/zitadel/internal/iam/repository/view/model" iam_view_model "github.com/caos/zitadel/internal/iam/repository/view/model" + usr_model "github.com/caos/zitadel/internal/user/model" "strings" "github.com/caos/zitadel/internal/api/authz" @@ -218,7 +219,7 @@ func (repo *OrgRepository) IDPConfigByID(ctx context.Context, idpConfigID string if err != nil { return nil, err } - return iam_view_model.IdpConfigViewToModel(idp), nil + return iam_view_model.IDPConfigViewToModel(idp), nil } func (repo *OrgRepository) AddOIDCIDPConfig(ctx context.Context, idp *iam_model.IDPConfig) (*iam_model.IDPConfig, error) { idp.AggregateID = authz.GetCtxData(ctx).OrgID @@ -239,8 +240,27 @@ func (repo *OrgRepository) ReactivateIDPConfig(ctx context.Context, idpConfigID } func (repo *OrgRepository) RemoveIDPConfig(ctx context.Context, idpConfigID string) error { + aggregates := make([]*es_models.Aggregate, 0) idp := iam_model.NewIDPConfig(authz.GetCtxData(ctx).OrgID, idpConfigID) - return repo.OrgEventstore.RemoveIDPConfig(ctx, idp) + _, agg, err := repo.OrgEventstore.PrepareRemoveIDPConfig(ctx, idp) + if err != nil { + + } + aggregates = append(aggregates, agg) + externalIDPs, err := repo.View.ExternalIDPsByIDPConfigID(idpConfigID) + if err != nil { + return err + } + for _, externalIDP := range externalIDPs { + idpRemove := &usr_model.ExternalIDP{ObjectRoot: es_models.ObjectRoot{AggregateID: externalIDP.UserID}, IDPConfigID: externalIDP.IDPConfigID, UserID: externalIDP.ExternalUserID} + idpAgg := make([]*es_models.Aggregate, 0) + _, idpAgg, err = repo.UserEvents.PrepareRemoveExternalIDP(ctx, idpRemove, true) + if err != nil { + return err + } + aggregates = append(aggregates, idpAgg...) + } + return sdk.PushAggregates(ctx, repo.Eventstore.PushAggregates, nil, aggregates...) } func (repo *OrgRepository) ChangeOIDCIDPConfig(ctx context.Context, oidcConfig *iam_model.OIDCIDPConfig) (*iam_model.OIDCIDPConfig, error) { @@ -338,6 +358,25 @@ func (repo *OrgRepository) AddIDPProviderToLoginPolicy(ctx context.Context, prov } func (repo *OrgRepository) RemoveIDPProviderFromIdpProvider(ctx context.Context, provider *iam_model.IDPProvider) error { + aggregates := make([]*es_models.Aggregate, 0) provider.AggregateID = authz.GetCtxData(ctx).OrgID - return repo.OrgEventstore.RemoveIDPProviderFromLoginPolicy(ctx, provider) + _, agg, err := repo.OrgEventstore.PrepareRemoveIDPProviderFromLoginPolicy(ctx, provider, false) + if err != nil { + return err + } + aggregates = append(aggregates, agg) + externalIDPs, err := repo.View.ExternalIDPsByIDPConfigID(provider.IdpConfigID) + if err != nil { + return err + } + for _, externalIDP := range externalIDPs { + idpRemove := &usr_model.ExternalIDP{ObjectRoot: es_models.ObjectRoot{AggregateID: externalIDP.UserID}, IDPConfigID: externalIDP.IDPConfigID, UserID: externalIDP.ExternalUserID} + idpAgg := make([]*es_models.Aggregate, 0) + _, idpAgg, err = repo.UserEvents.PrepareRemoveExternalIDP(ctx, idpRemove, true) + if err != nil { + return err + } + aggregates = append(aggregates, idpAgg...) + } + return sdk.PushAggregates(ctx, repo.Eventstore.PushAggregates, nil, aggregates...) } diff --git a/internal/management/repository/eventsourcing/eventstore/user.go b/internal/management/repository/eventsourcing/eventstore/user.go index e8e285c316..6dc41cb564 100644 --- a/internal/management/repository/eventsourcing/eventstore/user.go +++ b/internal/management/repository/eventsourcing/eventstore/user.go @@ -181,6 +181,31 @@ func (repo *UserRepo) ProfileByID(ctx context.Context, userID string) (*usr_mode return user.GetProfile() } +func (repo *UserRepo) SearchExternalIDPs(ctx context.Context, request *usr_model.ExternalIDPSearchRequest) (*usr_model.ExternalIDPSearchResponse, error) { + request.EnsureLimit(repo.SearchLimit) + sequence, seqErr := repo.View.GetLatestExternalIDPSequence() + logging.Log("EVENT-Qs7uf").OnError(seqErr).Warn("could not read latest external idp sequence") + externalIDPS, count, err := repo.View.SearchExternalIDPs(request) + if err != nil { + return nil, err + } + result := &usr_model.ExternalIDPSearchResponse{ + Offset: request.Offset, + Limit: request.Limit, + TotalResult: count, + Result: model.ExternalIDPViewsToModel(externalIDPS), + } + if seqErr == nil { + result.Sequence = sequence.CurrentSequence + result.Timestamp = sequence.CurrentTimestamp + } + return result, nil +} + +func (repo *UserRepo) RemoveExternalIDP(ctx context.Context, externalIDP *usr_model.ExternalIDP) error { + return repo.UserEvents.RemoveExternalIDP(ctx, externalIDP) +} + func (repo *UserRepo) ChangeMachine(ctx context.Context, machine *usr_model.Machine) (*usr_model.Machine, error) { return repo.UserEvents.ChangeMachine(ctx, machine) } diff --git a/internal/management/repository/eventsourcing/handler/handler.go b/internal/management/repository/eventsourcing/handler/handler.go index 5f2074210e..8b34cfe490 100644 --- a/internal/management/repository/eventsourcing/handler/handler.go +++ b/internal/management/repository/eventsourcing/handler/handler.go @@ -52,6 +52,7 @@ func Register(configs Configs, bulkLimit, errorCount uint64, view *view.View, ev &IDPConfig{handler: handler{view, bulkLimit, configs.cycleDuration("IDPConfig"), errorCount}}, &LoginPolicy{handler: handler{view, bulkLimit, configs.cycleDuration("LoginPolicy"), errorCount}}, &IDPProvider{handler: handler{view, bulkLimit, configs.cycleDuration("IDPProvider"), errorCount}, systemDefaults: defaults, iamEvents: repos.IamEvents, orgEvents: repos.OrgEvents}, + &ExternalIDP{handler: handler{view, bulkLimit, configs.cycleDuration("ExternalIDP"), errorCount}, systemDefaults: defaults, iamEvents: repos.IamEvents, orgEvents: repos.OrgEvents}, } } diff --git a/internal/management/repository/eventsourcing/handler/user_external_idps.go b/internal/management/repository/eventsourcing/handler/user_external_idps.go new file mode 100644 index 0000000000..91e8fa91b1 --- /dev/null +++ b/internal/management/repository/eventsourcing/handler/user_external_idps.go @@ -0,0 +1,126 @@ +package handler + +import ( + "context" + "github.com/caos/logging" + "github.com/caos/zitadel/internal/config/systemdefaults" + caos_errs "github.com/caos/zitadel/internal/errors" + "github.com/caos/zitadel/internal/iam/repository/eventsourcing" + org_es "github.com/caos/zitadel/internal/org/repository/eventsourcing" + org_es_model "github.com/caos/zitadel/internal/org/repository/eventsourcing/model" + "github.com/caos/zitadel/internal/user/repository/eventsourcing/model" + usr_view_model "github.com/caos/zitadel/internal/user/repository/view/model" + + "github.com/caos/zitadel/internal/eventstore/models" + es_models "github.com/caos/zitadel/internal/eventstore/models" + "github.com/caos/zitadel/internal/eventstore/spooler" + iam_model "github.com/caos/zitadel/internal/iam/model" + iam_es_model "github.com/caos/zitadel/internal/iam/repository/eventsourcing/model" +) + +type ExternalIDP struct { + handler + systemDefaults systemdefaults.SystemDefaults + iamEvents *eventsourcing.IAMEventstore + orgEvents *org_es.OrgEventstore +} + +const ( + externalIDPTable = "management.user_external_idps" +) + +func (m *ExternalIDP) ViewModel() string { + return externalIDPTable +} + +func (m *ExternalIDP) EventQuery() (*models.SearchQuery, error) { + sequence, err := m.view.GetLatestExternalIDPSequence() + if err != nil { + return nil, err + } + return es_models.NewSearchQuery(). + AggregateTypeFilter(model.UserAggregate, iam_es_model.IAMAggregate, org_es_model.OrgAggregate). + LatestSequenceFilter(sequence.CurrentSequence), nil +} + +func (m *ExternalIDP) Reduce(event *models.Event) (err error) { + switch event.AggregateType { + case model.UserAggregate: + err = m.processUser(event) + case iam_es_model.IAMAggregate, org_es_model.OrgAggregate: + err = m.processIdpConfig(event) + } + return err +} + +func (m *ExternalIDP) processUser(event *models.Event) (err error) { + externalIDP := new(usr_view_model.ExternalIDPView) + switch event.Type { + case model.HumanExternalIDPAdded: + err = externalIDP.AppendEvent(event) + if err != nil { + return err + } + err = m.fillData(externalIDP) + case model.HumanExternalIDPRemoved, model.HumanExternalIDPCascadeRemoved: + err = externalIDP.SetData(event) + if err != nil { + return err + } + return m.view.DeleteExternalIDP(externalIDP.ExternalUserID, externalIDP.IDPConfigID, event.Sequence) + default: + return m.view.ProcessedExternalIDPSequence(event.Sequence) + } + if err != nil { + return err + } + return m.view.PutExternalIDP(externalIDP, externalIDP.Sequence) +} + +func (m *ExternalIDP) processIdpConfig(event *models.Event) (err error) { + switch event.Type { + case iam_es_model.IDPConfigChanged, org_es_model.IDPConfigChanged: + config := new(iam_model.IDPConfig) + config.AppendEvent(event) + exterinalIDPs, err := m.view.ExternalIDPsByIDPConfigID(config.IDPConfigID) + if err != nil { + return err + } + if event.AggregateType == iam_es_model.IAMAggregate { + config, err = m.iamEvents.GetIDPConfig(context.Background(), config.AggregateID, config.IDPConfigID) + } else { + config, err = m.orgEvents.GetIDPConfig(context.Background(), config.AggregateID, config.IDPConfigID) + } + if err != nil { + return err + } + for _, provider := range exterinalIDPs { + m.fillConfigData(provider, config) + } + return m.view.PutExternalIDPs(event.Sequence, exterinalIDPs...) + default: + return m.view.ProcessedExternalIDPSequence(event.Sequence) + } + return nil +} + +func (m *ExternalIDP) fillData(externalIDP *usr_view_model.ExternalIDPView) error { + config, err := m.orgEvents.GetIDPConfig(context.Background(), externalIDP.ResourceOwner, externalIDP.IDPConfigID) + if caos_errs.IsNotFound(err) { + config, err = m.iamEvents.GetIDPConfig(context.Background(), m.systemDefaults.IamID, externalIDP.IDPConfigID) + } + if err != nil { + return err + } + m.fillConfigData(externalIDP, config) + return nil +} + +func (m *ExternalIDP) fillConfigData(externalIDP *usr_view_model.ExternalIDPView, config *iam_model.IDPConfig) { + externalIDP.IDPName = config.Name +} + +func (m *ExternalIDP) OnError(event *models.Event, err error) error { + logging.LogWithFields("SPOOL-4Rsu8", "id", event.AggregateID).WithError(err).Warn("something went wrong in idp provider handler") + return spooler.HandleError(event, err, m.view.GetLatestExternalIDPFailedEvent, m.view.ProcessedExternalIDPFailedEvent, m.view.ProcessedExternalIDPSequence, m.errorCountUntilSkip) +} diff --git a/internal/management/repository/eventsourcing/view/external_idps.go b/internal/management/repository/eventsourcing/view/external_idps.go new file mode 100644 index 0000000000..650c8111db --- /dev/null +++ b/internal/management/repository/eventsourcing/view/external_idps.go @@ -0,0 +1,73 @@ +package view + +import ( + "github.com/caos/zitadel/internal/errors" + usr_model "github.com/caos/zitadel/internal/user/model" + "github.com/caos/zitadel/internal/user/repository/view" + "github.com/caos/zitadel/internal/user/repository/view/model" + global_view "github.com/caos/zitadel/internal/view/repository" +) + +const ( + externalIDPTable = "management.user_external_idps" +) + +func (v *View) ExternalIDPByExternalUserIDAndIDPConfigID(externalUserID, idpConfigID string) (*model.ExternalIDPView, error) { + return view.ExternalIDPByExternalUserIDAndIDPConfigID(v.Db, externalIDPTable, externalUserID, idpConfigID) +} + +func (v *View) ExternalIDPByExternalUserIDAndIDPConfigIDAndResourceOwner(externalUserID, idpConfigID, resourceOwner string) (*model.ExternalIDPView, error) { + return view.ExternalIDPByExternalUserIDAndIDPConfigIDAndResourceOwner(v.Db, externalIDPTable, externalUserID, idpConfigID, resourceOwner) +} + +func (v *View) ExternalIDPsByIDPConfigID(idpConfigID string) ([]*model.ExternalIDPView, error) { + return view.ExternalIDPsByIDPConfigID(v.Db, externalIDPTable, idpConfigID) +} + +func (v *View) ExternalIDPsByUserID(userID string) ([]*model.ExternalIDPView, error) { + return view.ExternalIDPsByUserID(v.Db, externalIDPTable, userID) +} + +func (v *View) SearchExternalIDPs(request *usr_model.ExternalIDPSearchRequest) ([]*model.ExternalIDPView, uint64, error) { + return view.SearchExternalIDPs(v.Db, externalIDPTable, request) +} + +func (v *View) PutExternalIDP(externalIDP *model.ExternalIDPView, sequence uint64) error { + err := view.PutExternalIDP(v.Db, externalIDPTable, externalIDP) + if err != nil { + return err + } + return v.ProcessedExternalIDPSequence(sequence) +} + +func (v *View) PutExternalIDPs(sequence uint64, externalIDPs ...*model.ExternalIDPView) error { + err := view.PutExternalIDPs(v.Db, externalIDPTable, externalIDPs...) + if err != nil { + return err + } + return v.ProcessedExternalIDPSequence(sequence) +} + +func (v *View) DeleteExternalIDP(externalUserID, idpConfigID string, eventSequence uint64) error { + err := view.DeleteExternalIDP(v.Db, externalIDPTable, externalUserID, idpConfigID) + if err != nil && !errors.IsNotFound(err) { + return err + } + return v.ProcessedExternalIDPSequence(eventSequence) +} + +func (v *View) GetLatestExternalIDPSequence() (*global_view.CurrentSequence, error) { + return v.latestSequence(externalIDPTable) +} + +func (v *View) ProcessedExternalIDPSequence(eventSequence uint64) error { + return v.saveCurrentSequence(externalIDPTable, eventSequence) +} + +func (v *View) GetLatestExternalIDPFailedEvent(sequence uint64) (*global_view.FailedEvent, error) { + return v.latestFailedEvent(externalIDPTable, sequence) +} + +func (v *View) ProcessedExternalIDPFailedEvent(failedEvent *global_view.FailedEvent) error { + return v.saveFailedEvent(failedEvent) +} diff --git a/internal/management/repository/user.go b/internal/management/repository/user.go index 8cb90db9ff..8b75ee119e 100644 --- a/internal/management/repository/user.go +++ b/internal/management/repository/user.go @@ -31,6 +31,9 @@ type UserRepository interface { UserMfas(ctx context.Context, userID string) ([]*model.MultiFactor, error) + SearchExternalIDPs(ctx context.Context, request *model.ExternalIDPSearchRequest) (*model.ExternalIDPSearchResponse, error) + RemoveExternalIDP(ctx context.Context, externalIDP *model.ExternalIDP) error + SearchMachineKeys(ctx context.Context, request *model.MachineKeySearchRequest) (*model.MachineKeySearchResponse, error) GetMachineKey(ctx context.Context, userID, keyID string) (*model.MachineKeyView, error) ChangeMachine(ctx context.Context, machine *model.Machine) (*model.Machine, error) diff --git a/internal/org/repository/eventsourcing/eventstore.go b/internal/org/repository/eventsourcing/eventstore.go index 083310122a..b65e5aac3d 100644 --- a/internal/org/repository/eventsourcing/eventstore.go +++ b/internal/org/repository/eventsourcing/eventstore.go @@ -464,6 +464,10 @@ func (es *OrgEventstore) RemoveOrgMember(ctx context.Context, member *org_model. return es_sdk.Push(ctx, es.PushAggregates, repoMember.AppendEvents, orgAggregate) } +func (es *OrgEventstore) GetDefaultOrgIAMPolicy(ctx context.Context) *org_model.OrgIAMPolicy { + return es.defaultOrgIamPolicy +} + func (es *OrgEventstore) GetOrgIAMPolicy(ctx context.Context, orgID string) (*org_model.OrgIAMPolicy, error) { existingOrg, err := es.OrgByID(ctx, org_model.NewOrg(orgID)) if err != nil && !errors.IsNotFound(err) { diff --git a/internal/org/repository/eventsourcing/org.go b/internal/org/repository/eventsourcing/org.go index 97c6f1956e..aa035a16a3 100644 --- a/internal/org/repository/eventsourcing/org.go +++ b/internal/org/repository/eventsourcing/org.go @@ -386,7 +386,9 @@ func IDPConfigRemovedAggregate(ctx context.Context, aggCreator *es_models.Aggreg if err != nil { return nil, err } + agg, err = agg.AppendEvent(model.IDPConfigRemoved, &iam_es_model.IDPConfigID{IDPConfigID: idp.IDPConfigID}) + if err != nil { return nil, err } diff --git a/internal/static/i18n/de.yaml b/internal/static/i18n/de.yaml index fb0212ca48..c890aac789 100644 --- a/internal/static/i18n/de.yaml +++ b/internal/static/i18n/de.yaml @@ -26,6 +26,7 @@ Errors: AddressNotFound: Addresse nicht gefunden NotHuman: Der Benutzer muss eine Person sein NotMachine: Der Benutzer muss technisch sein + NotAllowedToLink: Der Benutzer darf nicht mit einem externen Login Provider verlinkt werden Username: Reservied: Benutzername ist bereits vergeben Code: @@ -45,6 +46,11 @@ Errors: HasUpper: Passwort beinhaltet keinen Grossbuchstaben HasNumber: Passwort beinhaltet keine Nummer HasSymbol: Passwort beinhaltet kein Symbol + ExternalIDP: + Invalid: Externer IDP ungültig + IDPConfigNotExisting: IDP Provider ungültig für diese Organisation + NotAllowed: Externer IDP ist auf dieser Organisation nicht erlaubt. + MinimumExternalIDPNeeded: Mindestens ein IDP muss hinzugefügt werden. Mfa: Otp: AlreadyReady: Multifaktor OTP (OneTimePassword) ist bereits eingerichtet diff --git a/internal/static/i18n/en.yaml b/internal/static/i18n/en.yaml index 583063d5ca..2dfdb41373 100644 --- a/internal/static/i18n/en.yaml +++ b/internal/static/i18n/en.yaml @@ -26,6 +26,7 @@ Errors: AddressNotFound: Address not found NotHuman: The User must be personal NotMachine: The User must be technical + NotAllowedToLink: User is not allowed to link with external login provider Username: Reservied: Username is already taken Code: @@ -45,6 +46,11 @@ Errors: HasUpper: Password must contain upper case HasNumber: Password must contain number HasSymbol: Password must contain symbol + ExternalIDP: + Invalid: Externer IDP invalid + IDPConfigNotExisting: IDP provider invalid for this organisation + NotAllowed: External IDP not allowed on this organisation + MinimumExternalIDPNeeded: At least one IDP must be added Mfa: Otp: AlreadyReady: Multifactor OTP (OneTimePassword) is already set up @@ -97,7 +103,7 @@ Errors: MemberInvalid: Project member is invalid MemberAlreadyExists: Project member already exists MemberNotExisting: Project member doesn't exist - MinimumOneRoleNeeded: At least one role should be added + MinimumOneRoleNeeded: At least one role must be added RoleAlreadyExists: Role already exists RoleInvalid: Role is invalid RoleNotExisting: Role doesn't exist diff --git a/internal/ui/login/handler/auth_request.go b/internal/ui/login/handler/auth_request.go index 0fd9da68cd..f3c3d4b8d1 100644 --- a/internal/ui/login/handler/auth_request.go +++ b/internal/ui/login/handler/auth_request.go @@ -28,3 +28,7 @@ func (l *Login) getAuthRequestAndParseData(r *http.Request, data interface{}) (* err = l.parser.Parse(r, data) return authReq, err } + +func (l *Login) getParseData(r *http.Request, data interface{}) error { + return l.parser.Parse(r, data) +} diff --git a/internal/ui/login/handler/external_login_handler.go b/internal/ui/login/handler/external_login_handler.go new file mode 100644 index 0000000000..80265a94e7 --- /dev/null +++ b/internal/ui/login/handler/external_login_handler.go @@ -0,0 +1,269 @@ +package handler + +import ( + "github.com/caos/oidc/pkg/oidc" + "github.com/caos/oidc/pkg/rp" + http_mw "github.com/caos/zitadel/internal/api/http/middleware" + "github.com/caos/zitadel/internal/auth_request/model" + "github.com/caos/zitadel/internal/crypto" + caos_errors "github.com/caos/zitadel/internal/errors" + "github.com/caos/zitadel/internal/eventstore/models" + iam_model "github.com/caos/zitadel/internal/iam/model" + org_model "github.com/caos/zitadel/internal/org/model" + usr_model "github.com/caos/zitadel/internal/user/model" + "net/http" + "strings" + "time" +) + +const ( + queryIDPConfigID = "idpConfigID" + tmplExternalNotFoundOption = "externalnotfoundoption" +) + +type externalIDPData struct { + IDPConfigID string `schema:"idpConfigID"` +} + +type externalIDPCallbackData struct { + State string `schema:"state"` + Code string `schema:"code"` +} + +type externalNotFoundOptionFormData struct { + Link bool `schema:"link"` + AutoRegister bool `schema:"autoregister"` +} + +type externalNotFoundOptionData struct { + baseData +} + +func (l *Login) handleExternalLogin(w http.ResponseWriter, r *http.Request) { + data := new(externalIDPData) + authReq, err := l.getAuthRequestAndParseData(r, data) + if err != nil { + l.renderError(w, r, authReq, err) + return + } + if authReq == nil { + http.Redirect(w, r, l.zitadelURL, http.StatusFound) + return + } + idpConfig, err := l.getIDPConfigByID(r, data.IDPConfigID) + if err != nil { + l.renderError(w, r, authReq, err) + return + } + userAgentID, _ := http_mw.UserAgentIDFromCtx(r.Context()) + err = l.authRepo.SelectExternalIDP(r.Context(), authReq.ID, idpConfig.IDPConfigID, userAgentID) + if err != nil { + l.renderLogin(w, r, authReq, err) + return + } + if !idpConfig.IsOIDC { + l.renderError(w, r, authReq, caos_errors.ThrowInternal(nil, "LOGIN-Rio9s", "Errors.User.ExternalIDP.IDPTypeNotImplemented")) + return + } + l.handleOIDCAuthorize(w, r, authReq, idpConfig, EndpointExternalLoginCallback) +} + +func (l *Login) handleOIDCAuthorize(w http.ResponseWriter, r *http.Request, authReq *model.AuthRequest, idpConfig *iam_model.IDPConfigView, callbackEndpoint string) { + provider := l.getRPConfig(w, r, authReq, idpConfig, callbackEndpoint) + http.Redirect(w, r, rp.AuthURL(authReq.ID, provider), http.StatusFound) +} + +func (l *Login) handleExternalLoginCallback(w http.ResponseWriter, r *http.Request) { + data := new(externalIDPCallbackData) + err := l.getParseData(r, data) + if err != nil { + l.renderError(w, r, nil, err) + return + } + userAgentID, _ := http_mw.UserAgentIDFromCtx(r.Context()) + authReq, err := l.authRepo.AuthRequestByID(r.Context(), data.State, userAgentID) + if err != nil { + l.renderError(w, r, authReq, err) + return + } + idpConfig, err := l.authRepo.GetIDPConfigByID(r.Context(), authReq.SelectedIDPConfigID) + if err != nil { + l.renderError(w, r, authReq, err) + return + } + provider := l.getRPConfig(w, r, authReq, idpConfig, EndpointExternalLoginCallback) + tokens, err := rp.CodeExchange(r.Context(), data.Code, provider) + if err != nil { + l.renderLogin(w, r, authReq, err) + return + } + l.handleExternalUserAuthenticated(w, r, authReq, idpConfig, userAgentID, tokens) +} + +func (l *Login) getRPConfig(w http.ResponseWriter, r *http.Request, authReq *model.AuthRequest, idpConfig *iam_model.IDPConfigView, callbackEndpoint string) rp.RelayingParty { + oidcClientSecret, err := crypto.DecryptString(idpConfig.OIDCClientSecret, l.IDPConfigAesCrypto) + if err != nil { + l.renderError(w, r, authReq, err) + return nil + } + provider, err := rp.NewRelayingPartyOIDC(idpConfig.OIDCIssuer, idpConfig.OIDCClientID, oidcClientSecret, l.baseURL+callbackEndpoint, idpConfig.OIDCScopes, rp.WithVerifierOpts(rp.WithIssuedAtOffset(3*time.Second))) + if err != nil { + l.renderError(w, r, authReq, err) + return nil + } + return provider +} + +func (l *Login) handleExternalUserAuthenticated(w http.ResponseWriter, r *http.Request, authReq *model.AuthRequest, idpConfig *iam_model.IDPConfigView, userAgentID string, tokens *oidc.Tokens) { + externalUser := l.mapTokenToLoginUser(tokens, idpConfig) + err := l.authRepo.CheckExternalUserLogin(r.Context(), authReq.ID, userAgentID, externalUser) + if err != nil { + l.renderExternalNotFoundOption(w, r, authReq, nil) + return + } + l.renderNextStep(w, r, authReq) +} + +func (l *Login) renderExternalNotFoundOption(w http.ResponseWriter, r *http.Request, authReq *model.AuthRequest, err error) { + var errType, errMessage string + if err != nil { + errMessage = l.getErrorMessage(r, err) + } + data := externalNotFoundOptionData{ + baseData: l.getBaseData(r, authReq, "ExternalNotFoundOption", errType, errMessage), + } + l.renderer.RenderTemplate(w, r, l.renderer.Templates[tmplExternalNotFoundOption], data, nil) +} + +func (l *Login) handleExternalNotFoundOptionCheck(w http.ResponseWriter, r *http.Request) { + data := new(externalNotFoundOptionFormData) + authReq, err := l.getAuthRequestAndParseData(r, data) + if err != nil { + l.renderError(w, r, authReq, err) + return + } + if data.Link { + l.renderLogin(w, r, authReq, nil) + return + } + l.handleAutoRegister(w, r, authReq) +} + +func (l *Login) handleAutoRegister(w http.ResponseWriter, r *http.Request, authReq *model.AuthRequest) { + orgIamPolicy, err := l.getOrgIamPolicy(r, authReq.GetScopeOrgID()) + if err != nil { + l.renderExternalNotFoundOption(w, r, authReq, err) + return + } + iam, err := l.authRepo.GetIAM(r.Context()) + if err != nil { + l.renderExternalNotFoundOption(w, r, authReq, err) + return + } + resourceOwner := iam.GlobalOrgID + member := &org_model.OrgMember{ + ObjectRoot: models.ObjectRoot{AggregateID: iam.GlobalOrgID}, + Roles: []string{orgProjectCreatorRole}, + } + if authReq.GetScopeOrgID() != iam.GlobalOrgID && authReq.GetScopeOrgID() != "" { + member = nil + resourceOwner = authReq.GetScopeOrgID() + } + + idpConfig, err := l.authRepo.GetIDPConfigByID(r.Context(), authReq.SelectedIDPConfigID) + if err != nil { + l.renderExternalNotFoundOption(w, r, authReq, err) + return + } + + userAgentID, _ := http_mw.UserAgentIDFromCtx(r.Context()) + user, externalIDP := l.mapExternalUserToLoginUser(orgIamPolicy, authReq.LinkingUsers[len(authReq.LinkingUsers)-1], idpConfig) + err = l.authRepo.AutoRegisterExternalUser(setContext(r.Context(), resourceOwner), user, externalIDP, member, authReq.ID, userAgentID, resourceOwner) + if err != nil { + l.renderExternalNotFoundOption(w, r, authReq, err) + return + } + l.renderNextStep(w, r, authReq) +} + +func (l *Login) mapTokenToLoginUser(tokens *oidc.Tokens, idpConfig *iam_model.IDPConfigView) *model.ExternalUser { + displayName := tokens.IDTokenClaims.PreferredUsername + switch idpConfig.OIDCIDPDisplayNameMapping { + case iam_model.OIDCMappingFieldEmail: + if tokens.IDTokenClaims.EmailVerified && tokens.IDTokenClaims.Email != "" { + displayName = tokens.IDTokenClaims.Email + } + } + + externalUser := &model.ExternalUser{ + IDPConfigID: idpConfig.IDPConfigID, + ExternalUserID: tokens.IDTokenClaims.Subject, + PreferredUsername: tokens.IDTokenClaims.PreferredUsername, + DisplayName: displayName, + FirstName: tokens.IDTokenClaims.GivenName, + LastName: tokens.IDTokenClaims.FamilyName, + NickName: tokens.IDTokenClaims.Nickname, + Email: tokens.IDTokenClaims.Email, + IsEmailVerified: tokens.IDTokenClaims.EmailVerified, + } + + if tokens.IDTokenClaims.PhoneNumber != "" { + externalUser.Phone = tokens.IDTokenClaims.PhoneNumber + externalUser.IsPhoneVerified = tokens.IDTokenClaims.PhoneNumberVerified + } + return externalUser +} + +func (l *Login) mapExternalUserToLoginUser(orgIamPolicy *org_model.OrgIAMPolicy, linkingUser *model.ExternalUser, idpConfig *iam_model.IDPConfigView) (*usr_model.User, *usr_model.ExternalIDP) { + username := linkingUser.PreferredUsername + switch idpConfig.OIDCUsernameMapping { + case iam_model.OIDCMappingFieldEmail: + if linkingUser.IsEmailVerified && linkingUser.Email != "" { + username = linkingUser.Email + } + } + + if orgIamPolicy.UserLoginMustBeDomain { + splittedUsername := strings.Split(username, "@") + if len(splittedUsername) > 1 { + username = splittedUsername[0] + } + } + + user := &usr_model.User{ + UserName: username, + Human: &usr_model.Human{ + Profile: &usr_model.Profile{ + FirstName: linkingUser.FirstName, + LastName: linkingUser.LastName, + PreferredLanguage: linkingUser.PreferredLanguage, + NickName: linkingUser.NickName, + }, + Email: &usr_model.Email{ + EmailAddress: linkingUser.Email, + IsEmailVerified: linkingUser.IsEmailVerified, + }, + }, + } + if linkingUser.Phone != "" { + user.Phone = &usr_model.Phone{ + PhoneNumber: linkingUser.Phone, + IsPhoneVerified: linkingUser.IsPhoneVerified, + } + } + + displayName := linkingUser.PreferredUsername + switch idpConfig.OIDCIDPDisplayNameMapping { + case iam_model.OIDCMappingFieldEmail: + if linkingUser.IsEmailVerified && linkingUser.Email != "" { + displayName = linkingUser.Email + } + } + + externalIDP := &usr_model.ExternalIDP{ + IDPConfigID: idpConfig.IDPConfigID, + UserID: linkingUser.ExternalUserID, + DisplayName: displayName, + } + return user, externalIDP +} diff --git a/internal/ui/login/handler/external_register_handler.go b/internal/ui/login/handler/external_register_handler.go new file mode 100644 index 0000000000..e5cdc8bb04 --- /dev/null +++ b/internal/ui/login/handler/external_register_handler.go @@ -0,0 +1,155 @@ +package handler + +import ( + "github.com/caos/oidc/pkg/oidc" + "github.com/caos/oidc/pkg/rp" + http_mw "github.com/caos/zitadel/internal/api/http/middleware" + "github.com/caos/zitadel/internal/auth_request/model" + caos_errors "github.com/caos/zitadel/internal/errors" + "github.com/caos/zitadel/internal/eventstore/models" + iam_model "github.com/caos/zitadel/internal/iam/model" + org_model "github.com/caos/zitadel/internal/org/model" + usr_model "github.com/caos/zitadel/internal/user/model" + "net/http" + "strings" +) + +func (l *Login) handleExternalRegister(w http.ResponseWriter, r *http.Request) { + data := new(externalIDPData) + authReq, err := l.getAuthRequestAndParseData(r, data) + if err != nil { + l.renderError(w, r, authReq, err) + return + } + if authReq == nil { + http.Redirect(w, r, l.zitadelURL, http.StatusFound) + return + } + idpConfig, err := l.getIDPConfigByID(r, data.IDPConfigID) + if err != nil { + l.renderError(w, r, authReq, err) + return + } + userAgentID, _ := http_mw.UserAgentIDFromCtx(r.Context()) + err = l.authRepo.SelectExternalIDP(r.Context(), authReq.ID, idpConfig.IDPConfigID, userAgentID) + if err != nil { + l.renderLogin(w, r, authReq, err) + return + } + if !idpConfig.IsOIDC { + l.renderError(w, r, authReq, caos_errors.ThrowInternal(nil, "LOGIN-Rio9s", "Errors.User.ExternalIDP.IDPTypeNotImplemented")) + return + } + l.handleOIDCAuthorize(w, r, authReq, idpConfig, EndpointExternalRegisterCallback) +} + +func (l *Login) handleExternalRegisterCallback(w http.ResponseWriter, r *http.Request) { + data := new(externalIDPCallbackData) + err := l.getParseData(r, data) + if err != nil { + l.renderError(w, r, nil, err) + return + } + userAgentID, _ := http_mw.UserAgentIDFromCtx(r.Context()) + authReq, err := l.authRepo.AuthRequestByID(r.Context(), data.State, userAgentID) + if err != nil { + l.renderError(w, r, authReq, err) + return + } + idpConfig, err := l.authRepo.GetIDPConfigByID(r.Context(), authReq.SelectedIDPConfigID) + if err != nil { + l.renderError(w, r, authReq, err) + return + } + provider := l.getRPConfig(w, r, authReq, idpConfig, EndpointExternalRegisterCallback) + tokens, err := rp.CodeExchange(r.Context(), data.Code, provider) + if err != nil { + l.renderRegisterOption(w, r, authReq, err) + return + } + l.handleExternalUserRegister(w, r, authReq, idpConfig, userAgentID, tokens) +} + +func (l *Login) handleExternalUserRegister(w http.ResponseWriter, r *http.Request, authReq *model.AuthRequest, idpConfig *iam_model.IDPConfigView, userAgentID string, tokens *oidc.Tokens) { + orgIamPolicy, err := l.getOrgIamPolicy(r, authReq.GetScopeOrgID()) + if err != nil { + l.renderRegisterOption(w, r, authReq, err) + return + } + iam, err := l.authRepo.GetIAM(r.Context()) + if err != nil { + l.renderRegisterOption(w, r, authReq, err) + return + } + resourceOwner := iam.GlobalOrgID + member := &org_model.OrgMember{ + ObjectRoot: models.ObjectRoot{AggregateID: iam.GlobalOrgID}, + Roles: []string{orgProjectCreatorRole}, + } + if authReq.GetScopeOrgID() != iam.GlobalOrgID && authReq.GetScopeOrgID() != "" { + member = nil + resourceOwner = authReq.GetScopeOrgID() + } + + user, externalIDP := l.mapTokenToLoginUserAndExternalIDP(orgIamPolicy, tokens, idpConfig) + _, err = l.authRepo.RegisterExternalUser(setContext(r.Context(), resourceOwner), user, externalIDP, member, resourceOwner) + if err != nil { + l.renderRegisterOption(w, r, authReq, err) + return + } + l.renderNextStep(w, r, authReq) +} + +func (l *Login) mapTokenToLoginUserAndExternalIDP(orgIamPolicy *org_model.OrgIAMPolicy, tokens *oidc.Tokens, idpConfig *iam_model.IDPConfigView) (*usr_model.User, *usr_model.ExternalIDP) { + username := tokens.IDTokenClaims.PreferredUsername + switch idpConfig.OIDCUsernameMapping { + case iam_model.OIDCMappingFieldEmail: + if tokens.IDTokenClaims.EmailVerified && tokens.IDTokenClaims.Email != "" { + username = tokens.IDTokenClaims.Email + } + } + + if orgIamPolicy.UserLoginMustBeDomain { + splittedUsername := strings.Split(username, "@") + if len(splittedUsername) > 1 { + username = splittedUsername[0] + } + } + + user := &usr_model.User{ + UserName: username, + Human: &usr_model.Human{ + Profile: &usr_model.Profile{ + FirstName: tokens.IDTokenClaims.GivenName, + LastName: tokens.IDTokenClaims.FamilyName, + PreferredLanguage: tokens.IDTokenClaims.Locale, + NickName: tokens.IDTokenClaims.Nickname, + }, + Email: &usr_model.Email{ + EmailAddress: tokens.IDTokenClaims.Email, + IsEmailVerified: tokens.IDTokenClaims.EmailVerified, + }, + }, + } + if tokens.IDTokenClaims.PhoneNumber != "" { + user.Phone = &usr_model.Phone{ + PhoneNumber: tokens.IDTokenClaims.PhoneNumber, + IsPhoneVerified: tokens.IDTokenClaims.PhoneNumberVerified, + } + } + + displayName := tokens.IDTokenClaims.PreferredUsername + switch idpConfig.OIDCIDPDisplayNameMapping { + case iam_model.OIDCMappingFieldEmail: + if tokens.IDTokenClaims.EmailVerified && tokens.IDTokenClaims.Email != "" { + displayName = tokens.IDTokenClaims.Email + } + } + + externalIDP := &usr_model.ExternalIDP{ + IDPConfigID: idpConfig.IDPConfigID, + UserID: tokens.IDTokenClaims.Subject, + DisplayName: displayName, + } + return user, externalIDP +} diff --git a/internal/ui/login/handler/link_users_handler.go b/internal/ui/login/handler/link_users_handler.go new file mode 100644 index 0000000000..ca238486bb --- /dev/null +++ b/internal/ui/login/handler/link_users_handler.go @@ -0,0 +1,24 @@ +package handler + +import ( + http_mw "github.com/caos/zitadel/internal/api/http/middleware" + "net/http" + + "github.com/caos/zitadel/internal/auth_request/model" +) + +const ( + tmplLinkUsersDone = "linkusersdone" +) + +func (l *Login) linkUsers(w http.ResponseWriter, r *http.Request, authReq *model.AuthRequest, err error) { + userAgentID, _ := http_mw.UserAgentIDFromCtx(r.Context()) + err = l.authRepo.LinkExternalUsers(setContext(r.Context(), authReq.UserOrgID), authReq.ID, userAgentID) + l.renderLinkUsersDone(w, r, authReq, err) +} + +func (l *Login) renderLinkUsersDone(w http.ResponseWriter, r *http.Request, authReq *model.AuthRequest, err error) { + var errType, errMessage string + data := l.getUserData(r, authReq, "Linking Users Done", errType, errMessage) + l.renderer.RenderTemplate(w, r, l.renderer.Templates[tmplLinkUsersDone], data, nil) +} diff --git a/internal/ui/login/handler/login.go b/internal/ui/login/handler/login.go index 1ca76e0f81..4322c9c27f 100644 --- a/internal/ui/login/handler/login.go +++ b/internal/ui/login/handler/login.go @@ -2,6 +2,7 @@ package handler import ( "context" + "github.com/caos/zitadel/internal/config/systemdefaults" "net" "net/http" @@ -28,11 +29,14 @@ type Login struct { renderer *Renderer parser *form.Parser authRepo auth_repository.Repository + baseURL string zitadelURL string oidcAuthCallbackURL string + IDPConfigAesCrypto crypto.EncryptionAlgorithm } type Config struct { + BaseURL string OidcAuthCallbackURL string ZitadelURL string LanguageCookieName string @@ -53,11 +57,17 @@ const ( handlerPrefix = "/login" ) -func CreateLogin(config Config, authRepo *eventsourcing.EsRepository, localDevMode bool) (*Login, string) { +func CreateLogin(config Config, authRepo *eventsourcing.EsRepository, systemDefaults systemdefaults.SystemDefaults, localDevMode bool) (*Login, string) { + aesCrypto, err := crypto.NewAESCrypto(systemDefaults.IDPConfigVerificationKey) + if err != nil { + logging.Log("HANDL-s90ew").WithError(err).Debug("error create new aes crypto") + } login := &Login{ oidcAuthCallbackURL: config.OidcAuthCallbackURL, + baseURL: config.BaseURL, zitadelURL: config.ZitadelURL, authRepo: authRepo, + IDPConfigAesCrypto: aesCrypto, } prefix := "" if localDevMode { diff --git a/internal/ui/login/handler/login_handler.go b/internal/ui/login/handler/login_handler.go index 6fc7930c6e..08e950116e 100644 --- a/internal/ui/login/handler/login_handler.go +++ b/internal/ui/login/handler/login_handler.go @@ -30,12 +30,12 @@ func (l *Login) handleLogin(w http.ResponseWriter, r *http.Request) { } func (l *Login) handleLoginName(w http.ResponseWriter, r *http.Request) { - authSession, err := l.getAuthRequest(r) + authReq, err := l.getAuthRequest(r) if err != nil { - l.renderError(w, r, authSession, err) + l.renderError(w, r, authReq, err) return } - l.renderLogin(w, r, authSession, nil) + l.renderLogin(w, r, authReq, nil) } func (l *Login) handleLoginNameCheck(w http.ResponseWriter, r *http.Request) { @@ -46,6 +46,10 @@ func (l *Login) handleLoginNameCheck(w http.ResponseWriter, r *http.Request) { return } if data.Register { + if authReq.LoginPolicy != nil && authReq.LoginPolicy.AllowExternalIDP && authReq.AllowedExternalIDPs != nil && len(authReq.AllowedExternalIDPs) > 0 { + l.handleRegisterOption(w, r) + return + } l.handleRegister(w, r) return } diff --git a/internal/ui/login/handler/org_iam_policy_handler.go b/internal/ui/login/handler/org_iam_policy_handler.go deleted file mode 100644 index 3fd4b4179c..0000000000 --- a/internal/ui/login/handler/org_iam_policy_handler.go +++ /dev/null @@ -1,10 +0,0 @@ -package handler - -import ( - org_model "github.com/caos/zitadel/internal/org/model" - "net/http" -) - -func (l *Login) getOrgIamPolicy(r *http.Request, orgID string) (*org_model.OrgIAMPolicy, error) { - return l.authRepo.GetOrgIamPolicy(r.Context(), orgID) -} diff --git a/internal/ui/login/handler/policy_handler.go b/internal/ui/login/handler/policy_handler.go new file mode 100644 index 0000000000..b9741240ee --- /dev/null +++ b/internal/ui/login/handler/policy_handler.go @@ -0,0 +1,18 @@ +package handler + +import ( + iam_model "github.com/caos/zitadel/internal/iam/model" + org_model "github.com/caos/zitadel/internal/org/model" + "net/http" +) + +func (l *Login) getOrgIamPolicy(r *http.Request, orgID string) (*org_model.OrgIAMPolicy, error) { + if orgID == "" { + return l.authRepo.GetDefaultOrgIamPolicy(r.Context()), nil + } + return l.authRepo.GetOrgIamPolicy(r.Context(), orgID) +} + +func (l *Login) getIDPConfigByID(r *http.Request, idpConfigID string) (*iam_model.IDPConfigView, error) { + return l.authRepo.GetIDPConfigByID(r.Context(), idpConfigID) +} diff --git a/internal/ui/login/handler/register_handler.go b/internal/ui/login/handler/register_handler.go index 0d1b6f2f39..e8ffdf0508 100644 --- a/internal/ui/login/handler/register_handler.go +++ b/internal/ui/login/handler/register_handler.go @@ -66,11 +66,16 @@ func (l *Login) handleRegisterCheck(w http.ResponseWriter, r *http.Request) { return } + resourceOwner := iam.GlobalOrgID member := &org_model.OrgMember{ ObjectRoot: models.ObjectRoot{AggregateID: iam.GlobalOrgID}, Roles: []string{orgProjectCreatorRole}, } - user, err := l.authRepo.Register(setContext(r.Context(), iam.GlobalOrgID), data.toUserModel(), member, iam.GlobalOrgID) + if authRequest.GetScopeOrgID() != "" && authRequest.GetScopeOrgID() != iam.GlobalOrgID { + member = nil + resourceOwner = authRequest.GetScopeOrgID() + } + user, err := l.authRepo.Register(setContext(r.Context(), resourceOwner), data.toUserModel(), member, resourceOwner) if err != nil { l.renderRegister(w, r, authRequest, data, err) return diff --git a/internal/ui/login/handler/register_option_handler.go b/internal/ui/login/handler/register_option_handler.go new file mode 100644 index 0000000000..b915da4269 --- /dev/null +++ b/internal/ui/login/handler/register_option_handler.go @@ -0,0 +1,53 @@ +package handler + +import ( + "github.com/caos/zitadel/internal/auth_request/model" + "net/http" +) + +const ( + tmplRegisterOption = "registeroption" +) + +type registerOptionFormData struct { + UsernamePassword bool `schema:"usernamepassword"` +} + +type registerOptionData struct { + baseData +} + +func (l *Login) handleRegisterOption(w http.ResponseWriter, r *http.Request) { + data := new(registerOptionFormData) + authRequest, err := l.getAuthRequestAndParseData(r, data) + if err != nil { + l.renderError(w, r, authRequest, err) + return + } + l.renderRegisterOption(w, r, authRequest, nil) +} + +func (l *Login) renderRegisterOption(w http.ResponseWriter, r *http.Request, authReq *model.AuthRequest, err error) { + var errType, errMessage string + if err != nil { + errMessage = l.getErrorMessage(r, err) + } + data := registerOptionData{ + baseData: l.getBaseData(r, authReq, "RegisterOption", errType, errMessage), + } + l.renderer.RenderTemplate(w, r, l.renderer.Templates[tmplRegisterOption], data, nil) +} + +func (l *Login) handleRegisterOptionCheck(w http.ResponseWriter, r *http.Request) { + data := new(registerOptionFormData) + authReq, err := l.getAuthRequestAndParseData(r, data) + if err != nil { + l.renderError(w, r, authReq, err) + return + } + if data.UsernamePassword { + l.handleRegister(w, r) + return + } + l.handleRegisterOption(w, r) +} diff --git a/internal/ui/login/handler/renderer.go b/internal/ui/login/handler/renderer.go index 76f19e2872..01fd185353 100644 --- a/internal/ui/login/handler/renderer.go +++ b/internal/ui/login/handler/renderer.go @@ -3,14 +3,14 @@ package handler import ( "errors" "fmt" + "github.com/caos/logging" + iam_model "github.com/caos/zitadel/internal/iam/model" + "github.com/gorilla/csrf" + "golang.org/x/text/language" "html/template" "net/http" "path" - "github.com/caos/logging" - "github.com/gorilla/csrf" - "golang.org/x/text/language" - http_mw "github.com/caos/zitadel/internal/api/http/middleware" "github.com/caos/zitadel/internal/auth_request/model" caos_errs "github.com/caos/zitadel/internal/errors" @@ -32,28 +32,31 @@ func CreateRenderer(pathPrefix string, staticDir http.FileSystem, cookieName str pathPrefix: pathPrefix, } tmplMapping := map[string]string{ - tmplError: "error.html", - tmplLogin: "login.html", - tmplUserSelection: "select_user.html", - tmplPassword: "password.html", - tmplMfaVerify: "mfa_verify.html", - tmplMfaPrompt: "mfa_prompt.html", - tmplMfaInitVerify: "mfa_init_verify.html", - tmplMfaInitDone: "mfa_init_done.html", - tmplMailVerification: "mail_verification.html", - tmplMailVerified: "mail_verified.html", - tmplInitPassword: "init_password.html", - tmplInitPasswordDone: "init_password_done.html", - tmplInitUser: "init_user.html", - tmplInitUserDone: "init_user_done.html", - tmplPasswordResetDone: "password_reset_done.html", - tmplChangePassword: "change_password.html", - tmplChangePasswordDone: "change_password_done.html", - tmplRegister: "register.html", - tmplLogoutDone: "logout_done.html", - tmplRegisterOrg: "register_org.html", - tmplChangeUsername: "change_username.html", - tmplChangeUsernameDone: "change_username_done.html", + tmplError: "error.html", + tmplLogin: "login.html", + tmplUserSelection: "select_user.html", + tmplPassword: "password.html", + tmplMfaVerify: "mfa_verify.html", + tmplMfaPrompt: "mfa_prompt.html", + tmplMfaInitVerify: "mfa_init_verify.html", + tmplMfaInitDone: "mfa_init_done.html", + tmplMailVerification: "mail_verification.html", + tmplMailVerified: "mail_verified.html", + tmplInitPassword: "init_password.html", + tmplInitPasswordDone: "init_password_done.html", + tmplInitUser: "init_user.html", + tmplInitUserDone: "init_user_done.html", + tmplPasswordResetDone: "password_reset_done.html", + tmplChangePassword: "change_password.html", + tmplChangePasswordDone: "change_password_done.html", + tmplRegisterOption: "register_option.html", + tmplRegister: "register.html", + tmplLogoutDone: "logout_done.html", + tmplRegisterOrg: "register_org.html", + tmplChangeUsername: "change_username.html", + tmplChangeUsernameDone: "change_username_done.html", + tmplLinkUsersDone: "link_users_done.html", + tmplExternalNotFoundOption: "external_not_found_option.html", } funcs := map[string]interface{}{ "resourceUrl": func(file string) string { @@ -65,6 +68,12 @@ func CreateRenderer(pathPrefix string, staticDir http.FileSystem, cookieName str "loginUrl": func() string { return path.Join(r.pathPrefix, EndpointLogin) }, + "externalIDPAuthURL": func(authReqID, idpConfigID string) string { + return path.Join(r.pathPrefix, fmt.Sprintf("%s?%s=%s&%s=%s", EndpointExternalLogin, queryAuthRequestID, authReqID, queryIDPConfigID, idpConfigID)) + }, + "externalIDPRegisterURL": func(authReqID, idpConfigID string) string { + return path.Join(r.pathPrefix, fmt.Sprintf("%s?%s=%s&%s=%s", EndpointExternalRegister, queryAuthRequestID, authReqID, queryIDPConfigID, idpConfigID)) + }, "registerUrl": func(id string) string { return path.Join(r.pathPrefix, fmt.Sprintf("%s?%s=%s", EndpointRegister, queryAuthRequestID, id)) }, @@ -107,6 +116,9 @@ func CreateRenderer(pathPrefix string, staticDir http.FileSystem, cookieName str "changePasswordUrl": func() string { return path.Join(r.pathPrefix, EndpointChangePassword) }, + "registerOptionUrl": func() string { + return path.Join(r.pathPrefix, EndpointRegisterOption) + }, "registrationUrl": func() string { return path.Join(r.pathPrefix, EndpointRegister) }, @@ -116,6 +128,9 @@ func CreateRenderer(pathPrefix string, staticDir http.FileSystem, cookieName str "changeUsernameUrl": func() string { return path.Join(r.pathPrefix, EndpointChangeUsername) }, + "externalNotFoundOptionUrl": func() string { + return path.Join(r.pathPrefix, EndpointExternalNotFoundOption) + }, "selectedLanguage": func(l string) bool { return false }, @@ -186,6 +201,10 @@ func (l *Login) chooseNextStep(w http.ResponseWriter, r *http.Request, authReq * l.renderInitUser(w, r, authReq, "", "", step.PasswordSet, nil) case *model.ChangeUsernameStep: l.renderChangeUsername(w, r, authReq, nil) + case *model.LinkUsersStep: + l.linkUsers(w, r, authReq, err) + case *model.ExternalNotFoundOptionStep: + l.renderExternalNotFoundOption(w, r, authReq, err) default: l.renderInternalError(w, r, authReq, caos_errs.ThrowInternal(nil, "APP-ds3QF", "step no possible")) } @@ -204,11 +223,12 @@ func (l *Login) getUserData(r *http.Request, authReq *model.AuthRequest, title s return userData{ baseData: l.getBaseData(r, authReq, title, errType, errMessage), profileData: l.getProfileData(authReq), + Linking: len(authReq.LinkingUsers) > 0, } } func (l *Login) getBaseData(r *http.Request, authReq *model.AuthRequest, title string, errType, errMessage string) baseData { - return baseData{ + baseData := baseData{ errorData: errorData{ ErrType: errType, ErrMessage: errMessage, @@ -217,10 +237,16 @@ func (l *Login) getBaseData(r *http.Request, authReq *model.AuthRequest, title s Title: title, Theme: l.getTheme(r), ThemeMode: l.getThemeMode(r), + OrgID: l.getOrgID(authReq), AuthReqID: getRequestID(authReq, r), CSRF: csrf.TemplateField(r), Nonce: http_mw.GetNonce(r), } + if authReq != nil { + baseData.LoginPolicy = authReq.LoginPolicy + baseData.IDPProviders = authReq.AllowedExternalIDPs + } + return baseData } func (l *Login) getProfileData(authReq *model.AuthRequest) profileData { @@ -253,6 +279,19 @@ func (l *Login) getThemeMode(r *http.Request) string { return "" //TODO: impl } +func (l *Login) getOrgID(authReq *model.AuthRequest) string { + if authReq == nil { + return "" + } + if authReq.UserOrgID != "" { + return authReq.UserOrgID + } + if authReq.Request == nil { + return "" + } + return authReq.GetScopeOrgID() +} + func getRequestID(authReq *model.AuthRequest, r *http.Request) string { if authReq != nil { return authReq.ID @@ -275,13 +314,16 @@ func (l *Login) cspErrorHandler(err error) http.Handler { type baseData struct { errorData - Lang string - Title string - Theme string - ThemeMode string - AuthReqID string - CSRF template.HTML - Nonce string + Lang string + Title string + Theme string + ThemeMode string + OrgID string + AuthReqID string + CSRF template.HTML + Nonce string + LoginPolicy *iam_model.LoginPolicyView + IDPProviders []*iam_model.IDPProviderView } type errorData struct { @@ -295,6 +337,7 @@ type userData struct { PasswordChecked string MfaProviders []model.MfaType SelectedMfaProvider model.MfaType + Linking bool } type profileData struct { @@ -315,7 +358,8 @@ type passwordData struct { type userSelectionData struct { baseData - Users []model.UserSelection + Users []model.UserSelection + Linking bool } type mfaData struct { diff --git a/internal/ui/login/handler/router.go b/internal/ui/login/handler/router.go index abea7b49b6..7b1651b9eb 100644 --- a/internal/ui/login/handler/router.go +++ b/internal/ui/login/handler/router.go @@ -7,26 +7,32 @@ import ( ) const ( - EndpointRoot = "/" - EndpointHealthz = "/healthz" - EndpointReadiness = "/ready" - EndpointLogin = "/login" - EndpointLoginName = "/loginname" - EndpointUserSelection = "/userselection" - EndpointChangeUsername = "/username/change" - EndpointPassword = "/password" - EndpointInitPassword = "/password/init" - EndpointChangePassword = "/password/change" - EndpointPasswordReset = "/password/reset" - EndpointInitUser = "/user/init" - EndpointMfaVerify = "/mfa/verify" - EndpointMfaPrompt = "/mfa/prompt" - EndpointMfaInitVerify = "/mfa/init/verify" - EndpointMailVerification = "/mail/verification" - EndpointMailVerified = "/mail/verified" - EndpointRegister = "/register" - EndpointRegisterOrg = "/register/org" - EndpointLogoutDone = "/logout/done" + EndpointRoot = "/" + EndpointHealthz = "/healthz" + EndpointReadiness = "/ready" + EndpointLogin = "/login" + EndpointExternalLogin = "/login/externalidp" + EndpointExternalLoginCallback = "/login/externalidp/callback" + EndpointLoginName = "/loginname" + EndpointUserSelection = "/userselection" + EndpointChangeUsername = "/username/change" + EndpointPassword = "/password" + EndpointInitPassword = "/password/init" + EndpointChangePassword = "/password/change" + EndpointPasswordReset = "/password/reset" + EndpointInitUser = "/user/init" + EndpointMfaVerify = "/mfa/verify" + EndpointMfaPrompt = "/mfa/prompt" + EndpointMfaInitVerify = "/mfa/init/verify" + EndpointMailVerification = "/mail/verification" + EndpointMailVerified = "/mail/verified" + EndpointRegisterOption = "/register/option" + EndpointRegister = "/register" + EndpointExternalRegister = "/register/externalidp" + EndpointExternalRegisterCallback = "/register/externalidp/callback" + EndpointRegisterOrg = "/register/org" + EndpointLogoutDone = "/logout/done" + EndpointExternalNotFoundOption = "/externaluser/option" EndpointResources = "/resources" ) @@ -38,6 +44,8 @@ func CreateRouter(login *Login, staticDir http.FileSystem, interceptors ...mux.M router.HandleFunc(EndpointHealthz, login.handleHealthz).Methods(http.MethodGet) router.HandleFunc(EndpointReadiness, login.handleReadiness).Methods(http.MethodGet) router.HandleFunc(EndpointLogin, login.handleLogin).Methods(http.MethodGet, http.MethodPost) + router.HandleFunc(EndpointExternalLogin, login.handleExternalLogin).Methods(http.MethodGet) + router.HandleFunc(EndpointExternalLoginCallback, login.handleExternalLoginCallback).Methods(http.MethodGet) router.HandleFunc(EndpointLoginName, login.handleLoginName).Methods(http.MethodGet) router.HandleFunc(EndpointLoginName, login.handleLoginNameCheck).Methods(http.MethodPost) router.HandleFunc(EndpointUserSelection, login.handleSelectUser).Methods(http.MethodPost) @@ -55,8 +63,13 @@ func CreateRouter(login *Login, staticDir http.FileSystem, interceptors ...mux.M router.HandleFunc(EndpointMailVerification, login.handleMailVerification).Methods(http.MethodGet) router.HandleFunc(EndpointMailVerification, login.handleMailVerificationCheck).Methods(http.MethodPost) router.HandleFunc(EndpointChangePassword, login.handleChangePassword).Methods(http.MethodPost) + router.HandleFunc(EndpointRegisterOption, login.handleRegisterOption).Methods(http.MethodGet) + router.HandleFunc(EndpointRegisterOption, login.handleRegisterOptionCheck).Methods(http.MethodPost) + router.HandleFunc(EndpointExternalNotFoundOption, login.handleExternalNotFoundOptionCheck).Methods(http.MethodPost) router.HandleFunc(EndpointRegister, login.handleRegister).Methods(http.MethodGet) router.HandleFunc(EndpointRegister, login.handleRegisterCheck).Methods(http.MethodPost) + router.HandleFunc(EndpointExternalRegister, login.handleExternalRegister).Methods(http.MethodGet) + router.HandleFunc(EndpointExternalRegisterCallback, login.handleExternalRegisterCallback).Methods(http.MethodGet) router.HandleFunc(EndpointLogoutDone, login.handleLogoutDone).Methods(http.MethodGet) router.PathPrefix(EndpointResources).Handler(login.handleResources(staticDir)).Methods(http.MethodGet) router.HandleFunc(EndpointRegisterOrg, login.handleRegisterOrg).Methods(http.MethodGet) diff --git a/internal/ui/login/handler/select_user_handler.go b/internal/ui/login/handler/select_user_handler.go index 1327c62298..088c963439 100644 --- a/internal/ui/login/handler/select_user_handler.go +++ b/internal/ui/login/handler/select_user_handler.go @@ -19,6 +19,7 @@ func (l *Login) renderUserSelection(w http.ResponseWriter, r *http.Request, auth data := userSelectionData{ baseData: l.getBaseData(r, authReq, "Select User", "", ""), Users: selectionData.Users, + Linking: len(authReq.LinkingUsers) > 0, } l.renderer.RenderTemplate(w, r, l.renderer.Templates[tmplUserSelection], data, nil) } diff --git a/internal/ui/login/login.go b/internal/ui/login/login.go index b076b21a79..0d28b56006 100644 --- a/internal/ui/login/login.go +++ b/internal/ui/login/login.go @@ -2,6 +2,7 @@ package login import ( "github.com/caos/zitadel/internal/auth/repository/eventsourcing" + "github.com/caos/zitadel/internal/config/systemdefaults" "github.com/caos/zitadel/internal/ui/login/handler" ) @@ -9,6 +10,6 @@ type Config struct { Handler handler.Config } -func Start(config Config, authRepo *eventsourcing.EsRepository, localDevMode bool) (*handler.Login, string) { - return handler.CreateLogin(config.Handler, authRepo, localDevMode) +func Start(config Config, authRepo *eventsourcing.EsRepository, systemdefaults systemdefaults.SystemDefaults, localDevMode bool) (*handler.Login, string) { + return handler.CreateLogin(config.Handler, authRepo, systemdefaults, localDevMode) } diff --git a/internal/ui/login/static/i18n/de.yaml b/internal/ui/login/static/i18n/de.yaml index 46b2839594..a88ecf6757 100644 --- a/internal/ui/login/static/i18n/de.yaml +++ b/internal/ui/login/static/i18n/de.yaml @@ -11,12 +11,17 @@ Password: Login: Title: Anmeldung Description: Gib deine Benutzerdaten ein. + TitleLinking: Anmeldung für Benutzer Linking + DescriptionLinking: Gib deine Benutzerdaten ein um den externen Benutzer mit einem ZITADEL Benutzer zu linken. Loginname: Loginname LoginnamePlaceHolder: username@domain + ExternalLogin: Melde dich mit einem externen Benutzer an UserSelection: Title: Account auswählen Description: Wähle deinen Account aus. + TitleLinking: Account auswählen um zu verlinken + DescriptionLinking: Wähle deinen Account, um diesen mit deinem externen Benutzer zu verlinken. OtherUser: Anderer Benutzer SessionState0: aktiv SessionState1: inaktiv @@ -103,6 +108,11 @@ EmailVerificationDone: Title: E-Mail Verifizierung Description: Deine E-Mail Adresse wurde erfolgreich verifiziert. +RegisterOption: + Title: Registrations Möglichkeiten + Description: Wähle aus wie du dich registrieren möchtest. + RegisterUsernamePassword: Mit Benutzername Passwort + Registration: Title: Registration Description: Gib deine Benutzerangaben an. Die E-Mail Adresse wird als Benutzernamen verwendet. @@ -147,6 +157,16 @@ RegistrationOrg: TosLinkText: AGBs TosLink: https://zitadel.ch/pdf/agb.pdf +LinkingUsersDone: + Title: Benutzerlinking + Description: Benuzterlinking erledigt. + +ExternalNotFoundOption: + Title: Externer Benutzer + Description: Externer Benutzer konnte nicht gefunden werden. Willst du deinen Benutzer mit einem bestehenden verlinken oder diesen als neuen Benutzer registrieren. + Link: Verlinken + AutoRegister: Automatisches registrieren + LogoutDone: Title: Ausgeloggt Description: Du wurdest erfolgreich ausgeloggt. @@ -173,6 +193,7 @@ Errors: UserIDMissing: UserID ist leer Invalid: Userdaten sind ungültig DomainNotAllowedAsUsername: Domäne ist bereits reserviert und kann nicht verwendet werden + NotAllowedToLink: Der Benutzer darf nicht mit einem externen Login Provider verlinkt werden Password: ConfirmationWrong: Passwort Bestätigung stimmt nicht überein Empty: Passwort ist leer @@ -202,5 +223,7 @@ Errors: NotReady: Multifaktor OTP (OneTimePassword) ist nicht bereit Locked: Benutzer ist gesperrt NotActive: Benutzer ist nicht aktiv + ExternalIDP: + IDPTypeNotImplemented: IDP Typ ist nicht implementiert optional: (optional) diff --git a/internal/ui/login/static/i18n/en.yaml b/internal/ui/login/static/i18n/en.yaml index 0300789ce4..c21db87b1c 100644 --- a/internal/ui/login/static/i18n/en.yaml +++ b/internal/ui/login/static/i18n/en.yaml @@ -1,12 +1,17 @@ Login: Title: Login Description: Enter your logindata. + TitleLinking: Login for userlinking + DescriptionLinking: Enter your login data to link your external user with a ZITADEL user. Loginname: Loginname LoginnamePlaceHolder: username@domain + ExternalLogin: Login with an external user. UserSelection: Title: Select account Description: Select your account. + TitleLinking: Select account for userlinking + DescriptionLinking: Select your account to link with your external user. OtherUser: Other User SessionState0: active SessionState1: inactive @@ -103,6 +108,11 @@ EmailVerificationDone: Title: E-Mail Verification Description: Your email address has been successfully verified. +RegistrationOption: + Title: Registration Options + Description: Choose how you'd like to register + RegisterUsernamePassword: With username password + Registration: Title: Registration Description: Enter your Userdata. Your email address will be used as loginname. @@ -147,11 +157,20 @@ RegistrationOrg: TosLinkText: TOS TosLink: https://zitadel.ch/pdf/tos.pdf - LogoutDone: Title: Logged out Description: You have logged out successfully. +LinkingUsersDone: + Title: Userlinking + Description: Userlinking done. + +ExternalNotFoundOption: + Title: External User + Description: External user not found. Do you want to link your user or auto register a new one. + Link: Link + AutoRegister: Auto register + Actions: Login: login Next: next @@ -163,7 +182,6 @@ Actions: Cancel: cancel Save: save - Errors: Internal: An internal error occured AuthRequest: @@ -175,6 +193,7 @@ Errors: UserIDMissing: UserID is empty Invalid: Invalid userdata DomainNotAllowedAsUsername: Domain is already reserved and cannot be used + NotAllowedToLink: User is not allowed to link with external login provider Password: ConfirmationWrong: Passwordconfirmation is wrong Empty: Password is empty @@ -204,6 +223,8 @@ Errors: NotReady: Multifactor OTP (OneTimePassword) isn't ready Locked: User is locked NotActive: User is not active + ExternalIDP: + IDPTypeNotImplemented: IDP Type is not implemented optional: (optional) diff --git a/internal/ui/login/static/resources/themes/caos/css/dark.css b/internal/ui/login/static/resources/themes/caos/css/dark.css index 1e2926e23e..ea9bdd761a 100644 --- a/internal/ui/login/static/resources/themes/caos/css/dark.css +++ b/internal/ui/login/static/resources/themes/caos/css/dark.css @@ -73,7 +73,7 @@ *, *::before, *::after { box-sizing: border-box; font-family: Lato; - font-size: 18px; + font-size: 16px; font-weight: 400; } @@ -97,6 +97,7 @@ h1 { font-family: Aileron; font-weight: 300; font-size: 40px; + text-align: center; } h2 { @@ -122,7 +123,13 @@ header .logo { margin: 30px; } -.content { +.head { + width: 100%; + max-width: 1000px; + margin: auto; +} + +.content form { margin: auto; padding: 20px; width: 100%; @@ -137,11 +144,14 @@ a { a:hover { color: #f60075; } +a.tos-link { + font-size: 14px; +} -button { +button, .button { background-color: #282828; color: #760038; - border: 2px solid #760038; + border: 1px solid #760038; border-radius: 5px; width: 100%; max-width: 600px; @@ -149,36 +159,39 @@ button { transition: all 0.3s ease 0s; cursor: pointer; outline: none; + display: inline-block; + text-align: center; + line-height: 40px; } -button:hover { +button:hover, .button:hover { background-color: #f60075; color: #282828; - border: 2px solid #f60075; + border: 1px solid #f60075; } -button.primary { +button.primary, .button.primary { background-color: #760038; color: white; border: none; } -button.primary:hover { +button.primary:hover, .button.primary:hover { background-color: #f60075; } -button:disabled { - background-color: #505050; - border: 2px solid #505050; +button:disabled, .button:disabled { + background-color: #999999; + border: 1px solid #999999; } -button:disabled:hover { - background-color: #505050; - border: 2px solid #505050; +button:disabled:hover, .button:disabled:hover { + background-color: #999999; + border: 1px solid #999999; } input:not([type=radio]), select { background-color: #252525; color: white; height: 50px; - border: 2px solid #505050; + border: 1px solid #999999; border-radius: 5px; - padding-left: 15px; + padding-left: 8px; } form button.user-selection .profile-image, .login-profile .profile-image { @@ -213,7 +226,7 @@ form button.user-selection:hover .profile-image, .login-profile:hover .profile-i text-align: center; } .login-profile .names div:first-of-type { - font-size: 40px; + font-size: 26px; font-weight: 300; } .login-profile .names div:nth-of-type(2) { @@ -244,20 +257,21 @@ form .field.check-box { display: flex; } form .field.check-box input[type=checkbox] { - height: 20px; + height: 16px; vertical-align: middle; } form .field.check-box label { - height: 20px; + height: 16px; text-transform: inherit; display: inline-block; padding: 2px 0 0 15px; width: 100%; + color: white; } form label { color: #898989; text-transform: uppercase; - font-size: 0.9rem; + font-size: 0.8rem; margin-bottom: 3px; } form label span.optional { @@ -301,7 +315,7 @@ form button.user-selection .sessionstate { height: 20px; width: 20px; border-radius: 20px; - border-color: #505050; + border-color: #999999; border-style: solid; border-width: 1px; position: absolute; @@ -362,6 +376,7 @@ form ul#passwordcomplexity { flex-wrap: wrap; padding: 0; list-style: none; + margin-bottom: 0; } form ul#passwordcomplexity li { flex: 1 0 50%; @@ -444,4 +459,8 @@ footer { padding: 10px; } +.error { + color: #F20D6B; +} + /*# sourceMappingURL=dark.css.map */ diff --git a/internal/ui/login/static/resources/themes/caos/css/dark.css.map b/internal/ui/login/static/resources/themes/caos/css/dark.css.map index 468dd95445..ff3a62044f 100644 --- a/internal/ui/login/static/resources/themes/caos/css/dark.css.map +++ b/internal/ui/login/static/resources/themes/caos/css/dark.css.map @@ -1 +1 @@ -{"version":3,"sourceRoot":"","sources":["../../scss/fonts.scss","../../scss/main.scss","../../scss/caos/variables.scss","../../scss/variables.scss"],"names":[],"mappings":"AACA;EACI;EACA;;AAIJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAIJ;EACI;EACA;EACA;EACA;AAA6D;EAC7D;;AC5EJ;EACI;EACA,aCMW;EDLX;EACA;;;AAGJ;EACI;;;AAGJ;EACI;EACA;EACA;EACA,kBCDc;EDEd,OCDQ;EDER;EACA;EACA;;;AAMJ;EACI,OCXQ;EDYR,aClBS;EDmBT;EACA,WEzBS;;;AF4Bb;EACI,OClBQ;EDmBR,aCzBS;ED0BT;EACA,WE/BU;;;AFkCd;EACI;EACA;;;AAGJ;EACI;;AAEA;EACI;EACA;EACA;EACA;EACA;;;AAIR;EACI;EACA;EACA;EACA;;;AAGJ;EACI,OChDW;EDiDX;EACA;;AAEA;EACI,OCpDY;;;ADwDpB;EACI,kBC5Dc;ED6Dd,OC3DW;ED4DX;EACA;EACA;EACA;EACA,QE7EU;EF8EV;EACA;EACA;;AACA;EACI,kBCpEY;EDqEZ,OCxEU;EDyEV;;AAGJ;EACI,kBC3EO;ED4EP,OC7EI;ED8EJ;;AACA;EACI,kBC9EQ;;ADkFhB;EACI,kBEzEW;EF0EX;;AAEA;EACI,kBE7EO;EF8EP;;;AAKZ;EACI,kBEnFmB;EFoFnB,OCjGQ;EDkGR,QE9GU;EF+GV;EACA;EACA;;;AAIA;EACI;EACA;EACA;EACA;EE9GN;;AACA;EFyGE;IExGA;IACA;;;AF+GA;EElHF;;AACA;EFiHE;IEhHA;IACA;;;;AFsHA;EACI;EACA;;AAGJ;EACI;EACA;;AAEA;EACI,WE7IC;EF8ID;;AAGJ;EACI;EACA;EACA;EACA,OE/HC;;;AFqIT;EACI;EACA;;AAGJ;EACI;;AAEA;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAIR;EACI;;AAEA;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAIR;EACI,OE5KK;EF6KL;EACA;EACA;;AAEA;EACI;EACA;;AAIR;EACI;;AAEA;EACI;;AAGJ;EACI;;AAIR;EACI;EACA;EACA,OCjNI;EDkNJ;EACA;EACA;EACA;;AAEA;EACI;EACA,kBE5MW;;AF+Mf;EACI;;AAIR;EACI;;AAKA;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA,cErOO;EFsOP;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;;AAKR;EACI;;AAEA;EACI;;AAEA;EACI;;AAEJ;EACI,OEjQP;;AFwQL;EACI;;AAEJ;EACI;EACA;EACA;EACA;EE3RV;;AACA;EFsRM;IErRJ;IACA;;;AF6RQ;EACI;EACA;EElSd;;AACA;EF+RU;IE9RR;IACA;;;AFoSI;EACI;EACA;;AAIR;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA,OE3SN;;AFgTE;EACI,OElTL;;AFuTP;EACI;;AACA;EACI;EACA;;;AAKZ;EACI;EACA;;;AAGJ;EACI;;AAEA;EACI,MC1VI;;AD6VR;EACI,MC/VU;;;ADoWd;EACI;EACA;;;AAIR;EAEQ;EAEJ;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;AAAkB;EAClB;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;AACA;EACA;AAEA;EACA;AAEA;EACA;;;AAGJ;EACI;EACA;EACA","file":"dark.css"} \ No newline at end of file +{"version":3,"sourceRoot":"","sources":["../../scss/fonts.scss","../../scss/main.scss","../../scss/caos/variables.scss","../../scss/variables.scss"],"names":[],"mappings":"AACA;EACI;EACA;;AAIJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAIJ;EACI;EACA;EACA;EACA;AAA6D;EAC7D;;AC5EJ;EACI;EACA,aCMW;EDLX;EACA;;;AAGJ;EACI;;;AAGJ;EACI;EACA;EACA;EACA,kBCDc;EDEd,OCDQ;EDER;EACA;EACA;;;AAMJ;EACI,OCXQ;EDYR,aClBS;EDmBT;EACA,WEzBS;EF0BT;;;AAGJ;EACI,OCnBQ;EDoBR,aC1BS;ED2BT;EACA,WEhCU;;;AFmCd;EACI;EACA;;;AAGJ;EACI;;AAEA;EACI;EACA;EACA;EACA;EACA;;;AAIR;EACI;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;;;AAGJ;EACI,OCvDW;EDwDX;EACA;;AAEA;EACI,OC3DY;;AD8DhB;EACI;;;AAIR;EACI,kBCvEc;EDwEd,OCtEW;EDuEX;EACA;EACA;EACA;EACA,QExFU;EFyFV;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI,kBCnFY;EDoFZ,OCvFU;EDwFV;;AAGJ;EACI,kBC1FO;ED2FP,OC5FI;ED6FJ;;AACA;EACI,kBC7FQ;;ADiGhB;EACI,kBEvFW;EFwFX;;AAEA;EACI,kBE3FO;EF4FP;;;AAOZ;EACI,kBEnGmB;EFoGnB,OClHQ;EDmHR,QE/HU;EFgIV;EACA;EACA;;;AAIA;EACI;EACA;EACA;EACA;EE9HN;;AACA;EFyHE;IExHA;IACA;;;AF+HA;EElIF;;AACA;EFiIE;IEhIA;IACA;;;;AFsIA;EACI;EACA;;AAGJ;EACI;EACA;;AAEA;EACI,WE5JE;EF6JF;;AAGJ;EACI;EACA;EACA;EACA,OE/IC;;;AFqJT;EACI;EACA;;AAGJ;EACI;;AAEA;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAIR;EACI;;AAEA;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA,OCpMA;;ADwMR;EACI,OE7LK;EF8LL;EACA;EACA;;AAEA;EACI;EACA;;AAIR;EACI;;AAEA;EACI;;AAGJ;EACI;;AAIR;EACI;EACA;EACA,OCnOI;EDoOJ;EACA;EACA;EACA;;AAEA;EACI;EACA,kBE7NW;;AFgOf;EACI;;AAIR;EACI;;AAKA;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA,cEtPO;EFuPP;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;;AAKR;EACI;;AAEA;EACI;;AAEA;EACI;;AAEJ;EACI,OElRP;;AFyRL;EACI;;AAEJ;EACI;EACA;EACA;EACA;EE5SV;;AACA;EFuSM;IEtSJ;IACA;;;AF8SQ;EACI;EACA;EEnTd;;AACA;EFgTU;IE/SR;IACA;;;AFqTI;EACI;EACA;;AAIR;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA,OE7TN;;AFkUE;EACI,OEpUL;;AFyUP;EACI;;AACA;EACI;EACA;;;AAKZ;EACI;EACA;;;AAGJ;EACI;;AAEA;EACI,MC7WI;;ADgXR;EACI,MClXU;;;ADuXd;EACI;EACA;;;AAIR;EAEQ;EAEJ;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;AAAkB;EAClB;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;AACA;EACA;AAEA;EACA;AAEA;EACA;;;AAGJ;EACI;EACA;EACA;;;AAGJ;EACI,OEpZO","file":"dark.css"} \ No newline at end of file diff --git a/internal/ui/login/static/resources/themes/caos/css/light.css b/internal/ui/login/static/resources/themes/caos/css/light.css index 38002f6538..1f1a0b1767 100644 --- a/internal/ui/login/static/resources/themes/caos/css/light.css +++ b/internal/ui/login/static/resources/themes/caos/css/light.css @@ -73,7 +73,7 @@ *, *::before, *::after { box-sizing: border-box; font-family: Lato; - font-size: 18px; + font-size: 16px; font-weight: 400; } @@ -97,6 +97,7 @@ h1 { font-family: Aileron; font-weight: 300; font-size: 40px; + text-align: center; } h2 { @@ -122,7 +123,13 @@ header .logo { margin: 30px; } -.content { +.head { + width: 100%; + max-width: 1000px; + margin: auto; +} + +.content form { margin: auto; padding: 20px; width: 100%; @@ -137,11 +144,14 @@ a { a:hover { color: #f60075; } +a.tos-link { + font-size: 14px; +} -button { +button, .button { background-color: #282828; color: #760038; - border: 2px solid #760038; + border: 1px solid #760038; border-radius: 5px; width: 100%; max-width: 600px; @@ -149,36 +159,39 @@ button { transition: all 0.3s ease 0s; cursor: pointer; outline: none; + display: inline-block; + text-align: center; + line-height: 40px; } -button:hover { +button:hover, .button:hover { background-color: #f60075; color: #282828; - border: 2px solid #f60075; + border: 1px solid #f60075; } -button.primary { +button.primary, .button.primary { background-color: #760038; color: white; border: none; } -button.primary:hover { +button.primary:hover, .button.primary:hover { background-color: #f60075; } -button:disabled { - background-color: #505050; - border: 2px solid #505050; +button:disabled, .button:disabled { + background-color: #999999; + border: 1px solid #999999; } -button:disabled:hover { - background-color: #505050; - border: 2px solid #505050; +button:disabled:hover, .button:disabled:hover { + background-color: #999999; + border: 1px solid #999999; } input:not([type=radio]), select { background-color: #252525; color: white; height: 50px; - border: 2px solid #505050; + border: 1px solid #999999; border-radius: 5px; - padding-left: 15px; + padding-left: 8px; } form button.user-selection .profile-image, .login-profile .profile-image { @@ -213,7 +226,7 @@ form button.user-selection:hover .profile-image, .login-profile:hover .profile-i text-align: center; } .login-profile .names div:first-of-type { - font-size: 40px; + font-size: 26px; font-weight: 300; } .login-profile .names div:nth-of-type(2) { @@ -244,20 +257,21 @@ form .field.check-box { display: flex; } form .field.check-box input[type=checkbox] { - height: 20px; + height: 16px; vertical-align: middle; } form .field.check-box label { - height: 20px; + height: 16px; text-transform: inherit; display: inline-block; padding: 2px 0 0 15px; width: 100%; + color: white; } form label { color: #898989; text-transform: uppercase; - font-size: 0.9rem; + font-size: 0.8rem; margin-bottom: 3px; } form label span.optional { @@ -301,7 +315,7 @@ form button.user-selection .sessionstate { height: 20px; width: 20px; border-radius: 20px; - border-color: #505050; + border-color: #999999; border-style: solid; border-width: 1px; position: absolute; @@ -362,6 +376,7 @@ form ul#passwordcomplexity { flex-wrap: wrap; padding: 0; list-style: none; + margin-bottom: 0; } form ul#passwordcomplexity li { flex: 1 0 50%; @@ -444,6 +459,10 @@ footer { padding: 10px; } +.error { + color: #F20D6B; +} + html { background-color: white; color: #282828; @@ -454,66 +473,75 @@ html header .logo { html h1, html h2 { color: #282828; } -html button { +html button, html .button { background-color: white; color: #760038; - border: 2px solid #760038; + border: 1px solid #760038; } -html button:hover { +html button:hover, html .button:hover { background-color: #f60075; - border: 2px solid #f60075; + border: 1px solid #f60075; + color: #FFFFFF; } -html button.primary { +html button.primary, html .button.primary { background-color: #760038; - color: white; + color: #FFFFFF; border: none; box-shadow: 0px 10px 30px #760038; } -html button.primary:hover { +html button.primary:hover, html .button.primary:hover { background-color: #f60075; } -html button.clean { +html button:disabled, html .button:disabled { + background-color: #999999; + border: 1px solid #999999; +} +html button:disabled:hover, html .button:disabled:hover { + background-color: #999999; + border: 1px solid #999999; +} +html button.clean, html .button.clean { color: #282828; } -html button.clean:hover { +html button.clean:hover, html .button.clean:hover { border: none; background-color: #FFFFFF; } -html button.user-selection .profile-image { +html button.user-selection .profile-image, html .button.user-selection .profile-image { background-image: url("../../../images/icon-user-light.png"); } @media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx) { - html button.user-selection .profile-image { + html button.user-selection .profile-image, html .button.user-selection .profile-image { background-image: url("../../../images/icon-user-light@2x.png"); background-size: 80px 80px; } } -html button.user-selection:hover { +html button.user-selection:hover, html .button.user-selection:hover { background-color: #FFFFFF; } -html button.user-selection:hover .profile-image { +html button.user-selection:hover .profile-image, html .button.user-selection:hover .profile-image { background-image: url("../../../images/icon-user-light-hover.png"); } @media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx) { - html button.user-selection:hover .profile-image { + html button.user-selection:hover .profile-image, html .button.user-selection:hover .profile-image { background-image: url("../../../images/icon-user-light-hover@2x.png"); background-size: 80px 80px; } } -html button.other-user .other-user-image { +html button.other-user .other-user-image, html .button.other-user .other-user-image { background-image: url("../../../images/icon-newuser-light.png"); } @media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx) { - html button.other-user .other-user-image { + html button.other-user .other-user-image, html .button.other-user .other-user-image { background-image: url("../../../images/icon-newuser-light@2x.png"); background-size: 80px 60px; } } -html button.other-user:hover .other-user-image { +html button.other-user:hover .other-user-image, html .button.other-user:hover .other-user-image { background-image: url("../../../images/icon-newuser-light-hover.png"); } @media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx) { - html button.other-user:hover .other-user-image { + html button.other-user:hover .other-user-image, html .button.other-user:hover .other-user-image { background-image: url("../../../images/icon-newuser-light-hover@2x.png"); background-size: 80px 60px; } @@ -532,4 +560,41 @@ html footer { background-image: url("../gradientdeco-full.svg"); } +form .field.check-box label { + color: #282828; +} +form ul#passwordcomplexity li i { + color: #50CA3D; +} +form ul#passwordcomplexity li.invalid i { + color: #F20D6B; +} + +.login-profile .profile-image, form button.user-selection .profile-image { + background-image: url("../../../images/icon-user-light.png"); +} +@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx) { + .login-profile .profile-image, form button.user-selection .profile-image { + background-image: url("../../../images/icon-user-light@2x.png"); + background-size: 80px 80px; + } +} +.login-profile:hover .profile-image, form button.user-selection:hover .profile-image { + background-image: url("../../../images/icon-user-light-hover.png"); +} +@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx) { + .login-profile:hover .profile-image, form button.user-selection:hover .profile-image { + background-image: url("../../../images/icon-user-light-hover@2x.png"); + background-size: 80px 80px; + } +} + +.free-tier { + border: 2px solid #F20D6B; +} + +.error { + color: #F20D6B; +} + /*# sourceMappingURL=light.css.map */ diff --git a/internal/ui/login/static/resources/themes/caos/css/light.css.map b/internal/ui/login/static/resources/themes/caos/css/light.css.map index 3ee84bba40..5bf7e126f4 100644 --- a/internal/ui/login/static/resources/themes/caos/css/light.css.map +++ b/internal/ui/login/static/resources/themes/caos/css/light.css.map @@ -1 +1 @@ -{"version":3,"sourceRoot":"","sources":["../../scss/fonts.scss","../../scss/main.scss","../../scss/caos/variables.scss","../../scss/variables.scss","../../scss/light.scss"],"names":[],"mappings":"AACA;EACI;EACA;;AAIJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAIJ;EACI;EACA;EACA;EACA;AAA6D;EAC7D;;AC5EJ;EACI;EACA,aCMW;EDLX;EACA;;;AAGJ;EACI;;;AAGJ;EACI;EACA;EACA;EACA,kBCDc;EDEd,OCDQ;EDER;EACA;EACA;;;AAMJ;EACI,OCXQ;EDYR,aClBS;EDmBT;EACA,WEzBS;;;AF4Bb;EACI,OClBQ;EDmBR,aCzBS;ED0BT;EACA,WE/BU;;;AFkCd;EACI;EACA;;;AAGJ;EACI;;AAEA;EACI;EACA;EACA;EACA;EACA;;;AAIR;EACI;EACA;EACA;EACA;;;AAGJ;EACI,OChDW;EDiDX;EACA;;AAEA;EACI,OCpDY;;;ADwDpB;EACI,kBC5Dc;ED6Dd,OC3DW;ED4DX;EACA;EACA;EACA;EACA,QE7EU;EF8EV;EACA;EACA;;AACA;EACI,kBCpEY;EDqEZ,OCxEU;EDyEV;;AAGJ;EACI,kBC3EO;ED4EP,OC7EI;ED8EJ;;AACA;EACI,kBC9EQ;;ADkFhB;EACI,kBEzEW;EF0EX;;AAEA;EACI,kBE7EO;EF8EP;;;AAKZ;EACI,kBEnFmB;EFoFnB,OCjGQ;EDkGR,QE9GU;EF+GV;EACA;EACA;;;AAIA;EACI;EACA;EACA;EACA;EE9GN;;AACA;EFyGE;IExGA;IACA;;;AF+GA;EElHF;;AACA;EFiHE;IEhHA;IACA;;;;AFsHA;EACI;EACA;;AAGJ;EACI;EACA;;AAEA;EACI,WE7IC;EF8ID;;AAGJ;EACI;EACA;EACA;EACA,OE/HC;;;AFqIT;EACI;EACA;;AAGJ;EACI;;AAEA;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAIR;EACI;;AAEA;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAIR;EACI,OE5KK;EF6KL;EACA;EACA;;AAEA;EACI;EACA;;AAIR;EACI;;AAEA;EACI;;AAGJ;EACI;;AAIR;EACI;EACA;EACA,OCjNI;EDkNJ;EACA;EACA;EACA;;AAEA;EACI;EACA,kBE5MW;;AF+Mf;EACI;;AAIR;EACI;;AAKA;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA,cErOO;EFsOP;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;;AAKR;EACI;;AAEA;EACI;;AAEA;EACI;;AAEJ;EACI,OEjQP;;AFwQL;EACI;;AAEJ;EACI;EACA;EACA;EACA;EE3RV;;AACA;EFsRM;IErRJ;IACA;;;AF6RQ;EACI;EACA;EElSd;;AACA;EF+RU;IE9RR;IACA;;;AFoSI;EACI;EACA;;AAIR;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA,OE3SN;;AFgTE;EACI,OElTL;;AFuTP;EACI;;AACA;EACI;EACA;;;AAKZ;EACI;EACA;;;AAGJ;EACI;;AAEA;EACI,MC1VI;;AD6VR;EACI,MC/VU;;;ADoWd;EACI;EACA;;;AAIR;EAEQ;EAEJ;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;AAAkB;EAClB;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;AACA;EACA;AAEA;EACA;AAEA;EACA;;;AAGJ;EACI;EACA;EACA;;;AG/ZJ;EACI,kBFeQ;EEdR,OFac;;AERd;EACI;;AAGJ;EACI,OFGU;;AEAd;EACI;EACA;EACA;;AAEA;EACI,kBFIa;EEHb;;AAGJ;EACI,kBFTG;EEUH,OFXA;EEYA;EACA;;AACA;EACI,kBFbI;;AEiBZ;EACI,OFrBM;;AEuBN;EACI;EACA,kBDEY;;ACGhB;ED9BV;;AACA;EC6BU;ID5BR;IACA;;;AC+BQ;EACI,kBDRY;;ACUZ;EDrCd;;AACA;ECoCc;IDnCZ;IACA;;;ACyCQ;ED5CV;;AACA;EC2CU;ID1CR;IACA;;;AC8CY;EDjDd;;AACA;ECgDc;ID/CZ;IACA;;;ACqDA;EACI,kBD9BoB;EC+BpB,OF1DU;;AE8DV;EACI,MF/DM;;AEkEV;EACI,MFlEA;;AEsER;EAEQ","file":"light.css"} \ No newline at end of file +{"version":3,"sourceRoot":"","sources":["../../scss/fonts.scss","../../scss/main.scss","../../scss/caos/variables.scss","../../scss/variables.scss","../../scss/light.scss"],"names":[],"mappings":"AACA;EACI;EACA;;AAIJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAIJ;EACI;EACA;EACA;EACA;AAA6D;EAC7D;;AC5EJ;EACI;EACA,aCMW;EDLX;EACA;;;AAGJ;EACI;;;AAGJ;EACI;EACA;EACA;EACA,kBCDc;EDEd,OCDQ;EDER;EACA;EACA;;;AAMJ;EACI,OCXQ;EDYR,aClBS;EDmBT;EACA,WEzBS;EF0BT;;;AAGJ;EACI,OCnBQ;EDoBR,aC1BS;ED2BT;EACA,WEhCU;;;AFmCd;EACI;EACA;;;AAGJ;EACI;;AAEA;EACI;EACA;EACA;EACA;EACA;;;AAIR;EACI;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;;;AAGJ;EACI,OCvDW;EDwDX;EACA;;AAEA;EACI,OC3DY;;AD8DhB;EACI;;;AAIR;EACI,kBCvEc;EDwEd,OCtEW;EDuEX;EACA;EACA;EACA;EACA,QExFU;EFyFV;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI,kBCnFY;EDoFZ,OCvFU;EDwFV;;AAGJ;EACI,kBC1FO;ED2FP,OC5FI;ED6FJ;;AACA;EACI,kBC7FQ;;ADiGhB;EACI,kBEvFW;EFwFX;;AAEA;EACI,kBE3FO;EF4FP;;;AAOZ;EACI,kBEnGmB;EFoGnB,OClHQ;EDmHR,QE/HU;EFgIV;EACA;EACA;;;AAIA;EACI;EACA;EACA;EACA;EE9HN;;AACA;EFyHE;IExHA;IACA;;;AF+HA;EElIF;;AACA;EFiIE;IEhIA;IACA;;;;AFsIA;EACI;EACA;;AAGJ;EACI;EACA;;AAEA;EACI,WE5JE;EF6JF;;AAGJ;EACI;EACA;EACA;EACA,OE/IC;;;AFqJT;EACI;EACA;;AAGJ;EACI;;AAEA;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAIR;EACI;;AAEA;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA,OCpMA;;ADwMR;EACI,OE7LK;EF8LL;EACA;EACA;;AAEA;EACI;EACA;;AAIR;EACI;;AAEA;EACI;;AAGJ;EACI;;AAIR;EACI;EACA;EACA,OCnOI;EDoOJ;EACA;EACA;EACA;;AAEA;EACI;EACA,kBE7NW;;AFgOf;EACI;;AAIR;EACI;;AAKA;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA,cEtPO;EFuPP;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;;AAKR;EACI;;AAEA;EACI;;AAEA;EACI;;AAEJ;EACI,OElRP;;AFyRL;EACI;;AAEJ;EACI;EACA;EACA;EACA;EE5SV;;AACA;EFuSM;IEtSJ;IACA;;;AF8SQ;EACI;EACA;EEnTd;;AACA;EFgTU;IE/SR;IACA;;;AFqTI;EACI;EACA;;AAIR;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA,OE7TN;;AFkUE;EACI,OEpUL;;AFyUP;EACI;;AACA;EACI;EACA;;;AAKZ;EACI;EACA;;;AAGJ;EACI;;AAEA;EACI,MC7WI;;ADgXR;EACI,MClXU;;;ADuXd;EACI;EACA;;;AAIR;EAEQ;EAEJ;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;AAAkB;EAClB;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;AACA;EACA;AAEA;EACA;AAEA;EACA;;;AAGJ;EACI;EACA;EACA;;;AAGJ;EACI,OEpZO;;;AClCX;EACI,kBFeQ;EEdR,OFac;;AERd;EACI;;AAGJ;EACI,OFGU;;AEAd;EACI;EACA;EACA;;AAEA;EACI,kBFIa;EEHb;EACA,ODqBgB;;AClBpB;EACI,kBFVG;EEWH,ODgBgB;ECfhB;EACA;;AACA;EACI,kBFdI;;AEkBZ;EACI,kBDRO;ECSP;;AAEA;EACI,kBDZG;ECaH;;AAIR;EACI,OFhCM;;AEkCN;EACI;EACA,kBDPY;;ACYhB;EDxCV;;AACA;ECuCU;IDtCR;IACA;;;ACyCQ;EACI,kBDjBY;;ACmBZ;ED/Cd;;AACA;EC8Cc;ID7CZ;IACA;;;ACmDQ;EDtDV;;AACA;ECqDU;IDpDR;IACA;;;ACwDY;ED3Dd;;AACA;EC0Dc;IDzDZ;IACA;;;AC+DA;EACI,kBDvCoB;ECwCpB,OFrEU;;AEyEV;EACI,MF1EM;;AE6EV;EACI,MF7EA;;AEiFR;EAEQ;;;AAMR;EACI,OF3FU;;AE+Fb;EACI,OD9DM;;ACkEN;EACI,ODpEG;;;AC4EZ;ED5GF;;AACA;EC2GE;ID1GA;IACA;;;AC6GA;EDhHF;;AACA;EC+GE;ID9GA;IACA;;;;ACkHJ;EACI;;;AAGJ;EACI,OD1FY","file":"light.css"} \ No newline at end of file diff --git a/internal/ui/login/static/resources/themes/scss/light.scss b/internal/ui/login/static/resources/themes/scss/light.scss index e017c7778c..0b55a06ab6 100644 --- a/internal/ui/login/static/resources/themes/scss/light.scss +++ b/internal/ui/login/static/resources/themes/scss/light.scss @@ -14,19 +14,20 @@ html { color: $fontColorLight; } - button { + button, .button { background-color: $backgroundColorLight; color: $primaryColorLight; - border: 2px solid $primaryColorLight; + border: 1px solid $primaryColorLight; &:hover { background-color: $primaryColorHoverLight; - border: 2px solid $primaryColorHoverLight; + border: 1px solid $primaryColorHoverLight; + color: $buttonBackgroundColorHoverLight } &.primary { background-color: $primaryColor; - color: $fontColor; + color: $buttonBackgroundColorHoverLight; border: none; box-shadow: 0px 10px 30px $primaryColor; &:hover { @@ -34,6 +35,16 @@ html { } } + &:disabled { + background-color: $inputBorderColor; + border: 1px solid $inputBorderColor; + + &:hover { + background-color: $inputBorderColor; + border: 1px solid $inputBorderColor; + } + } + &.clean { color: $fontColorLight; @@ -90,4 +101,41 @@ html { background-image: url($footerimgLight); } } +} + +form { + .field.check-box label { + color: $fontColorLight; + } + + ul#passwordcomplexity li { + i { + color: $okColorLight; + } + + &.invalid { + i { + color: $nokColorLight; + } + } + } +} + + +%profile-image { + .profile-image { + @include retina-background-image($profileImgLight, "png", false, 80px, 80px); + } + + &:hover .profile-image { + @include retina-background-image($profileImgLight, "png", true, 80px, 80px); + } +} + +.free-tier { + border: 2px solid $nokColorLight; +} + +.error { + color: $nokColorLight; } \ No newline at end of file diff --git a/internal/ui/login/static/resources/themes/scss/main.scss b/internal/ui/login/static/resources/themes/scss/main.scss index 9e8a0a6e1e..1b21a4fba8 100644 --- a/internal/ui/login/static/resources/themes/scss/main.scss +++ b/internal/ui/login/static/resources/themes/scss/main.scss @@ -3,7 +3,7 @@ *, *::before, *::after { box-sizing: border-box; font-family: $standardFont; - font-size: 18px; + font-size: 16px; font-weight: 400; } @@ -30,6 +30,7 @@ h1 { font-family: $headerFont; font-weight: 300; font-size: $headerSize; + text-align: center; } h2 { @@ -56,7 +57,13 @@ header { } } -.content { +.head { + width: 100%; + max-width: 1000px; + margin: auto; +} + +.content form { margin: auto; padding: 20px; width: 100%; @@ -71,12 +78,16 @@ a { &:hover { color: $primaryColorHover; } + + &.tos-link { + font-size: 14px; + } } -button { +button, .button { background-color: $backgroundColor; color: $primaryColor; - border: 2px solid $primaryColor; + border: 1px solid $primaryColor; border-radius: 5px; width: 100%; max-width: 600px; @@ -84,10 +95,14 @@ button { transition: all 0.3s ease 0s; cursor: pointer; outline: none; + display: inline-block; + text-align: center; + line-height: 40px; + &:hover { background-color: $primaryColorHover; color: $backgroundColor; - border: 2px solid $primaryColorHover; + border: 1px solid $primaryColorHover; } &.primary { @@ -101,22 +116,24 @@ button { &:disabled { background-color: $inputBorderColor; - border: 2px solid $inputBorderColor; + border: 1px solid $inputBorderColor; &:hover { background-color: $inputBorderColor; - border: 2px solid $inputBorderColor; + border: 1px solid $inputBorderColor; } } } + + input:not([type='radio']), select { background-color: $inputBackgroundColor; color: $fontColor; height: $inputHeight; - border: 2px solid $inputBorderColor; + border: 1px solid $inputBorderColor; border-radius: 5px; - padding-left: 15px; + padding-left: 8px; } %profile-image { @@ -145,7 +162,7 @@ input:not([type='radio']), select { text-align: center; div:first-of-type { - font-size: $headerSize; + font-size: $header3Size; font-weight: 300; } @@ -184,23 +201,24 @@ form { display: flex; input[type='checkbox'] { - height: 20px; + height: 16px; vertical-align: middle; } & label { - height: 20px; + height: 16px; text-transform: inherit; display: inline-block; padding: 2px 0 0 15px; width: 100%; + color: $fontColor; } } label { color: $labelColor; text-transform: uppercase; - font-size: 0.9rem; + font-size: 0.8rem; margin-bottom: 3px; span.optional { @@ -320,6 +338,7 @@ form { flex-wrap: wrap; padding: 0; list-style: none; + margin-bottom: 0; li { flex: 1 0 50%; @@ -412,7 +431,11 @@ footer { } .free-tier { - border: 2px solid #F20D6B; + border: 2px solid $nokColor; border-radius: 5px; padding: 10px; +} + +.error { + color: $nokColor; } \ No newline at end of file diff --git a/internal/ui/login/static/resources/themes/scss/variables.scss b/internal/ui/login/static/resources/themes/scss/variables.scss index f1e7c2df67..1cbd3c65b5 100644 --- a/internal/ui/login/static/resources/themes/scss/variables.scss +++ b/internal/ui/login/static/resources/themes/scss/variables.scss @@ -6,6 +6,7 @@ $headerFont: Lato; $inputHeight: 50px; $headerSize: 40px; $header2Size: 30px; +$header3Size: 26px; $retina: "only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx)"; @mixin retina-background-image($file, $type, $hover, $width, $height) { @@ -27,13 +28,14 @@ $fontColor: #BBBBC8; $primaryColor: #3574C6; $primaryColorHover: lighten($primaryColor, 10%); $labelColor: #898989; -$inputBorderColor: #505050; +$inputBorderColor: #999999; $inputBackgroundColor: #252525; $buttonBackgroundColorHover: $inputBackgroundColor; $profileImgDark: "../../../images/icon-user-dark"; $otherUserImgDark: "../../../images/icon-newuser-dark"; $nokColor: #F20D6B; $okColor: #0DF279; +$errorColor: red; // ----- LIGHT-THEME -------- @@ -44,4 +46,6 @@ $primaryColorHoverLight: lighten($primaryColorLight, 10%); $inputBackgroundColorLight: #FFFFFF; $buttonBackgroundColorHoverLight: $inputBackgroundColorLight; $profileImgLight: "../../../images/icon-user-light"; -$otherUserImgLight: "../../../images/icon-newuser-light"; \ No newline at end of file +$otherUserImgLight: "../../../images/icon-newuser-light"; +$nokColorLight: #F20D6B; +$okColorLight: #50CA3D; \ No newline at end of file diff --git a/internal/ui/login/static/resources/themes/zitadel/css/dark.css b/internal/ui/login/static/resources/themes/zitadel/css/dark.css index 3e1296f671..037a0e6b6e 100644 --- a/internal/ui/login/static/resources/themes/zitadel/css/dark.css +++ b/internal/ui/login/static/resources/themes/zitadel/css/dark.css @@ -73,7 +73,7 @@ *, *::before, *::after { box-sizing: border-box; font-family: Lato; - font-size: 18px; + font-size: 16px; font-weight: 400; } @@ -98,6 +98,7 @@ h1 { font-family: Lato; font-weight: 300; font-size: 40px; + text-align: center; } h2 { @@ -123,7 +124,13 @@ header .logo { margin: 30px; } -.content { +.head { + width: 100%; + max-width: 1000px; + margin: auto; +} + +.content form { margin: auto; padding: 20px; width: 100%; @@ -138,11 +145,14 @@ a { a:hover { color: #5b8fd3; } +a.tos-link { + font-size: 14px; +} -button { +button, .button { background-color: #282828; color: #3574C6; - border: 2px solid #3574C6; + border: 1px solid #3574C6; border-radius: 5px; width: 100%; max-width: 600px; @@ -150,36 +160,39 @@ button { transition: all 0.3s ease 0s; cursor: pointer; outline: none; + display: inline-block; + text-align: center; + line-height: 40px; } -button:hover { +button:hover, .button:hover { background-color: #5b8fd3; color: #282828; - border: 2px solid #5b8fd3; + border: 1px solid #5b8fd3; } -button.primary { +button.primary, .button.primary { background-color: #3574C6; color: #BBBBC8; border: none; } -button.primary:hover { +button.primary:hover, .button.primary:hover { background-color: #5b8fd3; } -button:disabled { - background-color: #505050; - border: 2px solid #505050; +button:disabled, .button:disabled { + background-color: #999999; + border: 1px solid #999999; } -button:disabled:hover { - background-color: #505050; - border: 2px solid #505050; +button:disabled:hover, .button:disabled:hover { + background-color: #999999; + border: 1px solid #999999; } input:not([type=radio]), select { background-color: #252525; color: #BBBBC8; height: 50px; - border: 2px solid #505050; + border: 1px solid #999999; border-radius: 5px; - padding-left: 15px; + padding-left: 8px; } form button.user-selection .profile-image, .login-profile .profile-image { @@ -214,7 +227,7 @@ form button.user-selection:hover .profile-image, .login-profile:hover .profile-i text-align: center; } .login-profile .names div:first-of-type { - font-size: 40px; + font-size: 26px; font-weight: 300; } .login-profile .names div:nth-of-type(2) { @@ -245,20 +258,21 @@ form .field.check-box { display: flex; } form .field.check-box input[type=checkbox] { - height: 20px; + height: 16px; vertical-align: middle; } form .field.check-box label { - height: 20px; + height: 16px; text-transform: inherit; display: inline-block; padding: 2px 0 0 15px; width: 100%; + color: #BBBBC8; } form label { color: #898989; text-transform: uppercase; - font-size: 0.9rem; + font-size: 0.8rem; margin-bottom: 3px; } form label span.optional { @@ -302,7 +316,7 @@ form button.user-selection .sessionstate { height: 20px; width: 20px; border-radius: 20px; - border-color: #505050; + border-color: #999999; border-style: solid; border-width: 1px; position: absolute; @@ -363,6 +377,7 @@ form ul#passwordcomplexity { flex-wrap: wrap; padding: 0; list-style: none; + margin-bottom: 0; } form ul#passwordcomplexity li { flex: 1 0 50%; @@ -444,4 +459,8 @@ footer { padding: 10px; } +.error { + color: #F20D6B; +} + /*# sourceMappingURL=dark.css.map */ diff --git a/internal/ui/login/static/resources/themes/zitadel/css/dark.css.map b/internal/ui/login/static/resources/themes/zitadel/css/dark.css.map index a3cfe47781..3e41e2309a 100644 --- a/internal/ui/login/static/resources/themes/zitadel/css/dark.css.map +++ b/internal/ui/login/static/resources/themes/zitadel/css/dark.css.map @@ -1 +1 @@ -{"version":3,"sourceRoot":"","sources":["../../scss/fonts.scss","../../scss/main.scss","../../scss/variables.scss"],"names":[],"mappings":"AACA;EACI;EACA;;AAIJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAIJ;EACI;EACA;EACA;EACA;AAA6D;EAC7D;;AC5EJ;EACI;EACA,aCHW;EDIX;EACA;;;AAGJ;EACI;;;AAGJ;EACI;EACA;EACA;EACA,kBCOc;EDNd,OCOQ;EDNR;EACA;EACA;EAEI;;;AAIR;EACI,OCHQ;EDIR,aC3BS;ED4BT;EACA,WCzBS;;;AD4Bb;EACI,OCVQ;EDWR,aClCS;EDmCT;EACA,WC/BU;;;ADkCd;EACI;EACA;;;AAGJ;EACI;;AAEA;EACI;EACA;EACA;EACA;EACA;;;AAIR;EACI;EACA;EACA;EACA;;;AAGJ;EACI,OCxCW;EDyCX;EACA;;AAEA;EACI,OC5CY;;;ADgDpB;EACI,kBCpDc;EDqDd,OCnDW;EDoDX;EACA;EACA;EACA;EACA,QC7EU;ED8EV;EACA;EACA;;AACA;EACI,kBC5DY;ED6DZ,OChEU;EDiEV;;AAGJ;EACI,kBCnEO;EDoEP,OCrEI;EDsEJ;;AACA;EACI,kBCtEQ;;AD0EhB;EACI,kBCzEW;ED0EX;;AAEA;EACI,kBC7EO;ED8EP;;;AAKZ;EACI,kBCnFmB;EDoFnB,OCzFQ;ED0FR,QC9GU;ED+GV;EACA;EACA;;;AAIA;EACI;EACA;EACA;EACA;EC9GN;;AACA;EDyGE;ICxGA;IACA;;;AD+GA;EClHF;;AACA;EDiHE;IChHA;IACA;;;;ADsHA;EACI;EACA;;AAGJ;EACI;EACA;;AAEA;EACI,WC7IC;ED8ID;;AAGJ;EACI;EACA;EACA;EACA,OC/HC;;;ADqIT;EACI;EACA;;AAGJ;EACI;;AAEA;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAIR;EACI;;AAEA;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAIR;EACI,OC5KK;ED6KL;EACA;EACA;;AAEA;EACI;EACA;;AAIR;EACI;;AAEA;EACI;;AAGJ;EACI;;AAIR;EACI;EACA;EACA,OCzMI;ED0MJ;EACA;EACA;EACA;;AAEA;EACI;EACA,kBC5MW;;AD+Mf;EACI;;AAIR;EACI;;AAKA;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA,cCrOO;EDsOP;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;;AAKR;EACI;;AAEA;EACI;;AAEA;EACI;;AAEJ;EACI,OCjQP;;ADwQL;EACI;;AAEJ;EACI;EACA;EACA;EACA;EC3RV;;AACA;EDsRM;ICrRJ;IACA;;;AD6RQ;EACI;EACA;EClSd;;AACA;ED+RU;IC9RR;IACA;;;ADoSI;EACI;EACA;;AAIR;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA,OC3SN;;ADgTE;EACI,OClTL;;ADuTP;EACI;;AACA;EACI;EACA;;;AAKZ;EACI;EACA;;;AAGJ;EACI;;AAEA;EACI,MClVI;;ADqVR;EACI,MCvVU;;;AD4Vd;EACI;EACA;;;AAIR;EAII;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;AAAkB;EAClB;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;AACA;EACA;AAEA;EACA;AAEA;EACA;;;AAGJ;EACI;EACA;EACA","file":"dark.css"} \ No newline at end of file +{"version":3,"sourceRoot":"","sources":["../../scss/fonts.scss","../../scss/main.scss","../../scss/variables.scss"],"names":[],"mappings":"AACA;EACI;EACA;;AAIJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAIJ;EACI;EACA;EACA;EACA;AAA6D;EAC7D;;AC5EJ;EACI;EACA,aCHW;EDIX;EACA;;;AAGJ;EACI;;;AAGJ;EACI;EACA;EACA;EACA,kBCQc;EDPd,OCQQ;EDPR;EACA;EACA;EAEI;;;AAIR;EACI,OCFQ;EDGR,aC3BS;ED4BT;EACA,WCzBS;ED0BT;;;AAGJ;EACI,OCVQ;EDWR,aCnCS;EDoCT;EACA,WChCU;;;ADmCd;EACI;EACA;;;AAGJ;EACI;;AAEA;EACI;EACA;EACA;EACA;EACA;;;AAIR;EACI;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;;;AAGJ;EACI,OC9CW;ED+CX;EACA;;AAEA;EACI,OClDY;;ADqDhB;EACI;;;AAIR;EACI,kBC9Dc;ED+Dd,OC7DW;ED8DX;EACA;EACA;EACA;EACA,QCxFU;EDyFV;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI,kBC1EY;ED2EZ,OC9EU;ED+EV;;AAGJ;EACI,kBCjFO;EDkFP,OCnFI;EDoFJ;;AACA;EACI,kBCpFQ;;ADwFhB;EACI,kBCvFW;EDwFX;;AAEA;EACI,kBC3FO;ED4FP;;;AAOZ;EACI,kBCnGmB;EDoGnB,OCzGQ;ED0GR,QC/HU;EDgIV;EACA;EACA;;;AAIA;EACI;EACA;EACA;EACA;EC9HN;;AACA;EDyHE;ICxHA;IACA;;;AD+HA;EClIF;;AACA;EDiIE;IChIA;IACA;;;;ADsIA;EACI;EACA;;AAGJ;EACI;EACA;;AAEA;EACI,WC5JE;ED6JF;;AAGJ;EACI;EACA;EACA;EACA,OC/IC;;;ADqJT;EACI;EACA;;AAGJ;EACI;;AAEA;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAIR;EACI;;AAEA;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA,OC3LA;;AD+LR;EACI,OC7LK;ED8LL;EACA;EACA;;AAEA;EACI;EACA;;AAIR;EACI;;AAEA;EACI;;AAGJ;EACI;;AAIR;EACI;EACA;EACA,OC1NI;ED2NJ;EACA;EACA;EACA;;AAEA;EACI;EACA,kBC7NW;;ADgOf;EACI;;AAIR;EACI;;AAKA;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA,cCtPO;EDuPP;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;;AAKR;EACI;;AAEA;EACI;;AAEA;EACI;;AAEJ;EACI,OClRP;;ADyRL;EACI;;AAEJ;EACI;EACA;EACA;EACA;EC5SV;;AACA;EDuSM;ICtSJ;IACA;;;AD8SQ;EACI;EACA;ECnTd;;AACA;EDgTU;IC/SR;IACA;;;ADqTI;EACI;EACA;;AAIR;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA,OC7TN;;ADkUE;EACI,OCpUL;;ADyUP;EACI;;AACA;EACI;EACA;;;AAKZ;EACI;EACA;;;AAGJ;EACI;;AAEA;EACI,MCpWI;;ADuWR;EACI,MCzWU;;;AD8Wd;EACI;EACA;;;AAIR;EAII;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;AAAkB;EAClB;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;AACA;EACA;AAEA;EACA;AAEA;EACA;;;AAGJ;EACI;EACA;EACA;;;AAGJ;EACI,OCpZO","file":"dark.css"} \ No newline at end of file diff --git a/internal/ui/login/static/resources/themes/zitadel/css/light.css b/internal/ui/login/static/resources/themes/zitadel/css/light.css index db877bbd37..3b6763a38d 100644 --- a/internal/ui/login/static/resources/themes/zitadel/css/light.css +++ b/internal/ui/login/static/resources/themes/zitadel/css/light.css @@ -73,7 +73,7 @@ *, *::before, *::after { box-sizing: border-box; font-family: Lato; - font-size: 18px; + font-size: 16px; font-weight: 400; } @@ -98,6 +98,7 @@ h1 { font-family: Lato; font-weight: 300; font-size: 40px; + text-align: center; } h2 { @@ -123,7 +124,13 @@ header .logo { margin: 30px; } -.content { +.head { + width: 100%; + max-width: 1000px; + margin: auto; +} + +.content form { margin: auto; padding: 20px; width: 100%; @@ -138,11 +145,14 @@ a { a:hover { color: #5b8fd3; } +a.tos-link { + font-size: 14px; +} -button { +button, .button { background-color: #282828; color: #3574C6; - border: 2px solid #3574C6; + border: 1px solid #3574C6; border-radius: 5px; width: 100%; max-width: 600px; @@ -150,36 +160,39 @@ button { transition: all 0.3s ease 0s; cursor: pointer; outline: none; + display: inline-block; + text-align: center; + line-height: 40px; } -button:hover { +button:hover, .button:hover { background-color: #5b8fd3; color: #282828; - border: 2px solid #5b8fd3; + border: 1px solid #5b8fd3; } -button.primary { +button.primary, .button.primary { background-color: #3574C6; color: #BBBBC8; border: none; } -button.primary:hover { +button.primary:hover, .button.primary:hover { background-color: #5b8fd3; } -button:disabled { - background-color: #505050; - border: 2px solid #505050; +button:disabled, .button:disabled { + background-color: #999999; + border: 1px solid #999999; } -button:disabled:hover { - background-color: #505050; - border: 2px solid #505050; +button:disabled:hover, .button:disabled:hover { + background-color: #999999; + border: 1px solid #999999; } input:not([type=radio]), select { background-color: #252525; color: #BBBBC8; height: 50px; - border: 2px solid #505050; + border: 1px solid #999999; border-radius: 5px; - padding-left: 15px; + padding-left: 8px; } form button.user-selection .profile-image, .login-profile .profile-image { @@ -214,7 +227,7 @@ form button.user-selection:hover .profile-image, .login-profile:hover .profile-i text-align: center; } .login-profile .names div:first-of-type { - font-size: 40px; + font-size: 26px; font-weight: 300; } .login-profile .names div:nth-of-type(2) { @@ -245,20 +258,21 @@ form .field.check-box { display: flex; } form .field.check-box input[type=checkbox] { - height: 20px; + height: 16px; vertical-align: middle; } form .field.check-box label { - height: 20px; + height: 16px; text-transform: inherit; display: inline-block; padding: 2px 0 0 15px; width: 100%; + color: #BBBBC8; } form label { color: #898989; text-transform: uppercase; - font-size: 0.9rem; + font-size: 0.8rem; margin-bottom: 3px; } form label span.optional { @@ -302,7 +316,7 @@ form button.user-selection .sessionstate { height: 20px; width: 20px; border-radius: 20px; - border-color: #505050; + border-color: #999999; border-style: solid; border-width: 1px; position: absolute; @@ -363,6 +377,7 @@ form ul#passwordcomplexity { flex-wrap: wrap; padding: 0; list-style: none; + margin-bottom: 0; } form ul#passwordcomplexity li { flex: 1 0 50%; @@ -444,6 +459,10 @@ footer { padding: 10px; } +.error { + color: #F20D6B; +} + html { background-color: #f5f5f5; color: #282828; @@ -455,66 +474,75 @@ html header .logo { html h1, html h2 { color: #282828; } -html button { +html button, html .button { background-color: #f5f5f5; color: #3574C6; - border: 2px solid #3574C6; + border: 1px solid #3574C6; } -html button:hover { +html button:hover, html .button:hover { background-color: #5b8fd3; - border: 2px solid #5b8fd3; + border: 1px solid #5b8fd3; + color: #FFFFFF; } -html button.primary { +html button.primary, html .button.primary { background-color: #3574C6; - color: #BBBBC8; + color: #FFFFFF; border: none; box-shadow: 0px 10px 30px #3574C6; } -html button.primary:hover { +html button.primary:hover, html .button.primary:hover { background-color: #5b8fd3; } -html button.clean { +html button:disabled, html .button:disabled { + background-color: #999999; + border: 1px solid #999999; +} +html button:disabled:hover, html .button:disabled:hover { + background-color: #999999; + border: 1px solid #999999; +} +html button.clean, html .button.clean { color: #282828; } -html button.clean:hover { +html button.clean:hover, html .button.clean:hover { border: none; background-color: #FFFFFF; } -html button.user-selection .profile-image { +html button.user-selection .profile-image, html .button.user-selection .profile-image { background-image: url("../../../images/icon-user-light.png"); } @media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx) { - html button.user-selection .profile-image { + html button.user-selection .profile-image, html .button.user-selection .profile-image { background-image: url("../../../images/icon-user-light@2x.png"); background-size: 80px 80px; } } -html button.user-selection:hover { +html button.user-selection:hover, html .button.user-selection:hover { background-color: #FFFFFF; } -html button.user-selection:hover .profile-image { +html button.user-selection:hover .profile-image, html .button.user-selection:hover .profile-image { background-image: url("../../../images/icon-user-light-hover.png"); } @media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx) { - html button.user-selection:hover .profile-image { + html button.user-selection:hover .profile-image, html .button.user-selection:hover .profile-image { background-image: url("../../../images/icon-user-light-hover@2x.png"); background-size: 80px 80px; } } -html button.other-user .other-user-image { +html button.other-user .other-user-image, html .button.other-user .other-user-image { background-image: url("../../../images/icon-newuser-light.png"); } @media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx) { - html button.other-user .other-user-image { + html button.other-user .other-user-image, html .button.other-user .other-user-image { background-image: url("../../../images/icon-newuser-light@2x.png"); background-size: 80px 60px; } } -html button.other-user:hover .other-user-image { +html button.other-user:hover .other-user-image, html .button.other-user:hover .other-user-image { background-image: url("../../../images/icon-newuser-light-hover.png"); } @media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx) { - html button.other-user:hover .other-user-image { + html button.other-user:hover .other-user-image, html .button.other-user:hover .other-user-image { background-image: url("../../../images/icon-newuser-light-hover@2x.png"); background-size: 80px 60px; } @@ -529,5 +557,41 @@ html #qrcode svg rect.color { html #qrcode svg rect.bg-color { fill: #f5f5f5; } +form .field.check-box label { + color: #282828; +} +form ul#passwordcomplexity li i { + color: #50CA3D; +} +form ul#passwordcomplexity li.invalid i { + color: #F20D6B; +} + +.login-profile .profile-image, form button.user-selection .profile-image { + background-image: url("../../../images/icon-user-light.png"); +} +@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx) { + .login-profile .profile-image, form button.user-selection .profile-image { + background-image: url("../../../images/icon-user-light@2x.png"); + background-size: 80px 80px; + } +} +.login-profile:hover .profile-image, form button.user-selection:hover .profile-image { + background-image: url("../../../images/icon-user-light-hover.png"); +} +@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx) { + .login-profile:hover .profile-image, form button.user-selection:hover .profile-image { + background-image: url("../../../images/icon-user-light-hover@2x.png"); + background-size: 80px 80px; + } +} + +.free-tier { + border: 2px solid #F20D6B; +} + +.error { + color: #F20D6B; +} /*# sourceMappingURL=light.css.map */ diff --git a/internal/ui/login/static/resources/themes/zitadel/css/light.css.map b/internal/ui/login/static/resources/themes/zitadel/css/light.css.map index 7f5b22b3c7..ddbb08b558 100644 --- a/internal/ui/login/static/resources/themes/zitadel/css/light.css.map +++ b/internal/ui/login/static/resources/themes/zitadel/css/light.css.map @@ -1 +1 @@ -{"version":3,"sourceRoot":"","sources":["../../scss/fonts.scss","../../scss/main.scss","../../scss/variables.scss","../../scss/light.scss"],"names":[],"mappings":"AACA;EACI;EACA;;AAIJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAIJ;EACI;EACA;EACA;EACA;AAA6D;EAC7D;;AC5EJ;EACI;EACA,aCHW;EDIX;EACA;;;AAGJ;EACI;;;AAGJ;EACI;EACA;EACA;EACA,kBCOc;EDNd,OCOQ;EDNR;EACA;EACA;EAEI;;;AAIR;EACI,OCHQ;EDIR,aC3BS;ED4BT;EACA,WCzBS;;;AD4Bb;EACI,OCVQ;EDWR,aClCS;EDmCT;EACA,WC/BU;;;ADkCd;EACI;EACA;;;AAGJ;EACI;;AAEA;EACI;EACA;EACA;EACA;EACA;;;AAIR;EACI;EACA;EACA;EACA;;;AAGJ;EACI,OCxCW;EDyCX;EACA;;AAEA;EACI,OC5CY;;;ADgDpB;EACI,kBCpDc;EDqDd,OCnDW;EDoDX;EACA;EACA;EACA;EACA,QC7EU;ED8EV;EACA;EACA;;AACA;EACI,kBC5DY;ED6DZ,OChEU;EDiEV;;AAGJ;EACI,kBCnEO;EDoEP,OCrEI;EDsEJ;;AACA;EACI,kBCtEQ;;AD0EhB;EACI,kBCzEW;ED0EX;;AAEA;EACI,kBC7EO;ED8EP;;;AAKZ;EACI,kBCnFmB;EDoFnB,OCzFQ;ED0FR,QC9GU;ED+GV;EACA;EACA;;;AAIA;EACI;EACA;EACA;EACA;EC9GN;;AACA;EDyGE;ICxGA;IACA;;;AD+GA;EClHF;;AACA;EDiHE;IChHA;IACA;;;;ADsHA;EACI;EACA;;AAGJ;EACI;EACA;;AAEA;EACI,WC7IC;ED8ID;;AAGJ;EACI;EACA;EACA;EACA,OC/HC;;;ADqIT;EACI;EACA;;AAGJ;EACI;;AAEA;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAIR;EACI;;AAEA;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAIR;EACI,OC5KK;ED6KL;EACA;EACA;;AAEA;EACI;EACA;;AAIR;EACI;;AAEA;EACI;;AAGJ;EACI;;AAIR;EACI;EACA;EACA,OCzMI;ED0MJ;EACA;EACA;EACA;;AAEA;EACI;EACA,kBC5MW;;AD+Mf;EACI;;AAIR;EACI;;AAKA;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA,cCrOO;EDsOP;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;;AAKR;EACI;;AAEA;EACI;;AAEA;EACI;;AAEJ;EACI,OCjQP;;ADwQL;EACI;;AAEJ;EACI;EACA;EACA;EACA;EC3RV;;AACA;EDsRM;ICrRJ;IACA;;;AD6RQ;EACI;EACA;EClSd;;AACA;ED+RU;IC9RR;IACA;;;ADoSI;EACI;EACA;;AAIR;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA,OC3SN;;ADgTE;EACI,OClTL;;ADuTP;EACI;;AACA;EACI;EACA;;;AAKZ;EACI;EACA;;;AAGJ;EACI;;AAEA;EACI,MClVI;;ADqVR;EACI,MCvVU;;;AD4Vd;EACI;EACA;;;AAIR;EAII;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;AAAkB;EAClB;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;AACA;EACA;AAEA;EACA;AAEA;EACA;;;AAGJ;EACI;EACA;EACA;;;AE/ZJ;EACI,kBDqCmB;ECpCnB,ODqBc;ECnBV;;AAGJ;EACI;;AAGJ;EACI,ODWU;;ACRd;EACI,kBDsBe;ECrBf,ODQO;ECPP;;AAEA;EACI,kBDoBa;ECnBb;;AAGJ;EACI,kBDDG;ECEH,ODHA;ECIA;EACA;;AACA;EACI,kBDLI;;ACSZ;EACI,ODbM;;ACeN;EACI;EACA,kBDEY;;ACGhB;ED9BV;;AACA;EC6BU;ID5BR;IACA;;;AC+BQ;EACI,kBDRY;;ACUZ;EDrCd;;AACA;ECoCc;IDnCZ;IACA;;;ACyCQ;ED5CV;;AACA;EC2CU;ID1CR;IACA;;;AC8CY;EDjDd;;AACA;ECgDc;ID/CZ;IACA;;;ACqDA;EACI,kBD9BoB;EC+BpB,ODlDU;;ACsDV;EACI,MDvDM;;AC0DV;EACI,MD5CW","file":"light.css"} \ No newline at end of file +{"version":3,"sourceRoot":"","sources":["../../scss/fonts.scss","../../scss/main.scss","../../scss/variables.scss","../../scss/light.scss"],"names":[],"mappings":"AACA;EACI;EACA;;AAIJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAIJ;EACI;EACA;EACA;EACA;AAA6D;EAC7D;;AC5EJ;EACI;EACA,aCHW;EDIX;EACA;;;AAGJ;EACI;;;AAGJ;EACI;EACA;EACA;EACA,kBCQc;EDPd,OCQQ;EDPR;EACA;EACA;EAEI;;;AAIR;EACI,OCFQ;EDGR,aC3BS;ED4BT;EACA,WCzBS;ED0BT;;;AAGJ;EACI,OCVQ;EDWR,aCnCS;EDoCT;EACA,WChCU;;;ADmCd;EACI;EACA;;;AAGJ;EACI;;AAEA;EACI;EACA;EACA;EACA;EACA;;;AAIR;EACI;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;;;AAGJ;EACI,OC9CW;ED+CX;EACA;;AAEA;EACI,OClDY;;ADqDhB;EACI;;;AAIR;EACI,kBC9Dc;ED+Dd,OC7DW;ED8DX;EACA;EACA;EACA;EACA,QCxFU;EDyFV;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI,kBC1EY;ED2EZ,OC9EU;ED+EV;;AAGJ;EACI,kBCjFO;EDkFP,OCnFI;EDoFJ;;AACA;EACI,kBCpFQ;;ADwFhB;EACI,kBCvFW;EDwFX;;AAEA;EACI,kBC3FO;ED4FP;;;AAOZ;EACI,kBCnGmB;EDoGnB,OCzGQ;ED0GR,QC/HU;EDgIV;EACA;EACA;;;AAIA;EACI;EACA;EACA;EACA;EC9HN;;AACA;EDyHE;ICxHA;IACA;;;AD+HA;EClIF;;AACA;EDiIE;IChIA;IACA;;;;ADsIA;EACI;EACA;;AAGJ;EACI;EACA;;AAEA;EACI,WC5JE;ED6JF;;AAGJ;EACI;EACA;EACA;EACA,OC/IC;;;ADqJT;EACI;EACA;;AAGJ;EACI;;AAEA;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAIR;EACI;;AAEA;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA,OC3LA;;AD+LR;EACI,OC7LK;ED8LL;EACA;EACA;;AAEA;EACI;EACA;;AAIR;EACI;;AAEA;EACI;;AAGJ;EACI;;AAIR;EACI;EACA;EACA,OC1NI;ED2NJ;EACA;EACA;EACA;;AAEA;EACI;EACA,kBC7NW;;ADgOf;EACI;;AAIR;EACI;;AAKA;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA,cCtPO;EDuPP;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;;AAKR;EACI;;AAEA;EACI;;AAEA;EACI;;AAEJ;EACI,OClRP;;ADyRL;EACI;;AAEJ;EACI;EACA;EACA;EACA;EC5SV;;AACA;EDuSM;ICtSJ;IACA;;;AD8SQ;EACI;EACA;ECnTd;;AACA;EDgTU;IC/SR;IACA;;;ADqTI;EACI;EACA;;AAIR;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA,OC7TN;;ADkUE;EACI,OCpUL;;ADyUP;EACI;;AACA;EACI;EACA;;;AAKZ;EACI;EACA;;;AAGJ;EACI;;AAEA;EACI,MCpWI;;ADuWR;EACI,MCzWU;;;AD8Wd;EACI;EACA;;;AAIR;EAII;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;AAAkB;EAClB;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;AACA;EACA;AAEA;EACA;AAEA;EACA;;;AAGJ;EACI;EACA;EACA;;;AAGJ;EACI,OCpZO;;;AClCX;EACI,kBDuCmB;ECtCnB,ODsBc;ECpBV;;AAGJ;EACI;;AAGJ;EACI,ODYU;;ACTd;EACI,kBDwBe;ECvBf,ODSO;ECRP;;AAEA;EACI,kBDsBa;ECrBb;EACA,ODqBgB;;AClBpB;EACI,kBDDG;ECEH,ODgBgB;ECfhB;EACA;;AACA;EACI,kBDLI;;ACSZ;EACI,kBDRO;ECSP;;AAEA;EACI,kBDZG;ECaH;;AAIR;EACI,ODvBM;;ACyBN;EACI;EACA,kBDPY;;ACYhB;EDxCV;;AACA;ECuCU;IDtCR;IACA;;;ACyCQ;EACI,kBDjBY;;ACmBZ;ED/Cd;;AACA;EC8Cc;ID7CZ;IACA;;;ACmDQ;EDtDV;;AACA;ECqDU;IDpDR;IACA;;;ACwDY;ED3Dd;;AACA;EC0Dc;IDzDZ;IACA;;;AC+DA;EACI,kBDvCoB;ECwCpB,OD5DU;;ACgEV;EACI,MDjEM;;ACoEV;EACI,MDrDW;;ACiEnB;EACI,ODlFU;;ACsFb;EACI,OD9DM;;ACkEN;EACI,ODpEG;;;AC4EZ;ED5GF;;AACA;EC2GE;ID1GA;IACA;;;AC6GA;EDhHF;;AACA;EC+GE;ID9GA;IACA;;;;ACkHJ;EACI;;;AAGJ;EACI,OD1FY","file":"light.css"} \ No newline at end of file diff --git a/internal/ui/login/static/templates/change_password.html b/internal/ui/login/static/templates/change_password.html index 03316276e7..5bb0d8c0a8 100644 --- a/internal/ui/login/static/templates/change_password.html +++ b/internal/ui/login/static/templates/change_password.html @@ -1,8 +1,10 @@ {{template "main-top" .}} -{{ template "user-profile" . }} +
+ {{ template "user-profile" . }} -

{{t "PasswordChange.Description"}}

+

{{t "PasswordChange.Description"}}

+
@@ -42,8 +44,8 @@
- - + + {{t "Actions.Cancel"}}
diff --git a/internal/ui/login/static/templates/change_password_done.html b/internal/ui/login/static/templates/change_password_done.html index 2e06b42630..c450468c5d 100644 --- a/internal/ui/login/static/templates/change_password_done.html +++ b/internal/ui/login/static/templates/change_password_done.html @@ -1,8 +1,10 @@ {{template "main-top" .}} -{{ template "user-profile" . }} +
+ {{ template "user-profile" . }} -

{{t "PasswordChangeDone.Description"}}

+

{{t "PasswordChangeDone.Description"}}

+
@@ -13,8 +15,8 @@
- - + + {{t "Actions.Cancel"}}
diff --git a/internal/ui/login/static/templates/change_username.html b/internal/ui/login/static/templates/change_username.html index 06b7aa7214..9dd7cfa136 100644 --- a/internal/ui/login/static/templates/change_username.html +++ b/internal/ui/login/static/templates/change_username.html @@ -1,8 +1,10 @@ {{template "main-top" .}} -{{ template "user-profile" . }} +
+ {{ template "user-profile" . }} -

{{t "UsernameChange.Description"}}

+

{{t "UsernameChange.Description"}}

+
@@ -21,8 +23,8 @@
- - + + {{t "Actions.Cancel"}}
diff --git a/internal/ui/login/static/templates/change_username_done.html b/internal/ui/login/static/templates/change_username_done.html index b75d8f0d5a..dcd5d89613 100644 --- a/internal/ui/login/static/templates/change_username_done.html +++ b/internal/ui/login/static/templates/change_username_done.html @@ -1,8 +1,10 @@ {{template "main-top" .}} -{{ template "user-profile" . }} +
+ {{ template "user-profile" . }} -

{{t "UsernameChangeDone.Description"}}

+

{{t "UsernameChangeDone.Description"}}

+
diff --git a/internal/ui/login/static/templates/external_not_found_option.html b/internal/ui/login/static/templates/external_not_found_option.html new file mode 100644 index 0000000000..a56525c689 --- /dev/null +++ b/internal/ui/login/static/templates/external_not_found_option.html @@ -0,0 +1,31 @@ + +{{template "main-top" .}} + +
+

{{t "ExternalNotFoundOption.Title"}}

+

{{t "ExternalNotFoundOption.Description"}}

+
+ + + + {{ .CSRF }} + + + +
+ + + + {{t "Actions.Back"}} + +
+ + {{template "error-message" .}} +
+ + + + + +{{template "main-bottom" .}} + \ No newline at end of file diff --git a/internal/ui/login/static/templates/init_password.html b/internal/ui/login/static/templates/init_password.html index b25505330d..446bca767c 100644 --- a/internal/ui/login/static/templates/init_password.html +++ b/internal/ui/login/static/templates/init_password.html @@ -1,8 +1,10 @@ {{template "main-top" .}} -{{ template "user-profile" . }} +
+ {{ template "user-profile" . }} -

{{t "InitPassword.Description" }}

+

{{t "InitPassword.Description" }}

+
@@ -47,8 +49,8 @@
- - + + {{t "Actions.Cancel"}}
diff --git a/internal/ui/login/static/templates/init_password_done.html b/internal/ui/login/static/templates/init_password_done.html index d47891313a..05d4b14ca2 100644 --- a/internal/ui/login/static/templates/init_password_done.html +++ b/internal/ui/login/static/templates/init_password_done.html @@ -1,8 +1,10 @@ {{template "main-top" .}} -{{ template "user-profile" . }} +
+ {{ template "user-profile" . }} -

{{t "PasswordSetDone.Description"}}

+

{{t "PasswordSetDone.Description"}}

+
@@ -12,8 +14,8 @@
- - + + {{t "Actions.Cancel"}}
diff --git a/internal/ui/login/static/templates/init_user.html b/internal/ui/login/static/templates/init_user.html index 6d20f81d37..09c919c725 100644 --- a/internal/ui/login/static/templates/init_user.html +++ b/internal/ui/login/static/templates/init_user.html @@ -1,8 +1,10 @@ {{template "main-top" .}} -{{ template "user-profile" . }} +
+ {{ template "user-profile" . }} -

{{t "InitUser.Description" }}

+

{{t "InitUser.Description" }}

+
@@ -49,8 +51,8 @@ value="false" class="primary right">{{t "Actions.Next"}} - - + + {{t "Actions.Cancel"}}
diff --git a/internal/ui/login/static/templates/init_user_done.html b/internal/ui/login/static/templates/init_user_done.html index d44ea84d81..4b7e2527ec 100644 --- a/internal/ui/login/static/templates/init_user_done.html +++ b/internal/ui/login/static/templates/init_user_done.html @@ -1,8 +1,10 @@ {{template "main-top" .}} -{{ template "user-profile" . }} +
+ {{ template "user-profile" . }} -

{{t "InitUserDone.Description"}}

+

{{t "InitUserDone.Description"}}

+
@@ -12,8 +14,8 @@
- - + + {{t "Actions.Cancel"}}
diff --git a/internal/ui/login/static/templates/link_users_done.html b/internal/ui/login/static/templates/link_users_done.html new file mode 100644 index 0000000000..6101d08422 --- /dev/null +++ b/internal/ui/login/static/templates/link_users_done.html @@ -0,0 +1,25 @@ +{{template "main-top" .}} + +
+ {{ template "user-profile" . }} + +

{{t "LinkingUsersDone.Description"}}

+
+ +
+ + {{ .CSRF }} + + + +
+ + + {{t "Actions.Cancel"}} + +
+
+ + +{{template "main-bottom" .}} + \ No newline at end of file diff --git a/internal/ui/login/static/templates/login.html b/internal/ui/login/static/templates/login.html index d2743d76ba..ab28a8eb77 100644 --- a/internal/ui/login/static/templates/login.html +++ b/internal/ui/login/static/templates/login.html @@ -1,8 +1,16 @@ {{template "main-top" .}} -

{{t "Login.Title"}}

-

{{t "Login.Description"}}

+
+ {{if .Linking}} +

{{t "Login.TitleLinking"}}

+

{{t "Login.DescriptionLinking"}}

+ {{else}} +

{{t "Login.Title"}}

+

{{t "Login.Description"}}

+ {{end}} +
+
@@ -10,19 +18,36 @@ + {{if .LoginPolicy.AllowUsernamePassword }}
+ {{end}} {{template "error-message" .}}
- - + + {{if .LoginPolicy.AllowRegister}} + + {{end}}
+ + {{if .LoginPolicy.AllowExternalIDP}} +
+

{{t "Login.ExternalLogin"}}

+ + {{ $reqid := .AuthReqID}} + {{range $provider := .IDPProviders}} + + {{$provider.Name}} + + {{end}} +
+ {{end}}
diff --git a/internal/ui/login/static/templates/logout_done.html b/internal/ui/login/static/templates/logout_done.html index 0519a42284..4c492356e2 100644 --- a/internal/ui/login/static/templates/logout_done.html +++ b/internal/ui/login/static/templates/logout_done.html @@ -1,8 +1,9 @@ {{template "main-top" .}} - -

{{t "LogoutDone.Title"}}

-

{{t "LogoutDone.Description"}}

+
+

{{t "LogoutDone.Title"}}

+

{{t "LogoutDone.Description"}}

+
{{ .CSRF }} diff --git a/internal/ui/login/static/templates/mail_verification.html b/internal/ui/login/static/templates/mail_verification.html index dcc1faf81a..916aab69e9 100644 --- a/internal/ui/login/static/templates/mail_verification.html +++ b/internal/ui/login/static/templates/mail_verification.html @@ -1,8 +1,10 @@ {{template "main-top" .}} -{{ template "user-profile" . }} +
+ {{ template "user-profile" . }} -

{{t "EmailVerification.Description"}}

+

{{t "EmailVerification.Description"}}

+
@@ -25,8 +27,8 @@ {{ if .UserID }} {{ end }} - - + + {{t "Actions.Cancel"}}
diff --git a/internal/ui/login/static/templates/mail_verified.html b/internal/ui/login/static/templates/mail_verified.html index a90c705b44..7aa54d49cb 100644 --- a/internal/ui/login/static/templates/mail_verified.html +++ b/internal/ui/login/static/templates/mail_verified.html @@ -1,8 +1,10 @@ {{template "main-top" .}} -{{ template "user-profile" . }} +
+ {{ template "user-profile" . }} -

{{t "EmailVerificationDone.Description"}}

+

{{t "EmailVerificationDone.Description"}}

+
@@ -13,8 +15,8 @@
- - + + {{t "Actions.Cancel"}}
diff --git a/internal/ui/login/static/templates/mfa_init_done.html b/internal/ui/login/static/templates/mfa_init_done.html index f78fc564c3..0a233c35ba 100644 --- a/internal/ui/login/static/templates/mfa_init_done.html +++ b/internal/ui/login/static/templates/mfa_init_done.html @@ -1,8 +1,10 @@ {{template "main-top" .}} -{{ template "user-profile" . }} +
+ {{ template "user-profile" . }} -

{{t "MfaInitDone.Description"}}

+

{{t "MfaInitDone.Description"}}

+
@@ -13,8 +15,8 @@
- - + + {{t "Actions.Cancel"}}
diff --git a/internal/ui/login/static/templates/mfa_init_verify.html b/internal/ui/login/static/templates/mfa_init_verify.html index 2c05d015ba..ab70e39fe6 100644 --- a/internal/ui/login/static/templates/mfa_init_verify.html +++ b/internal/ui/login/static/templates/mfa_init_verify.html @@ -1,8 +1,10 @@ {{template "main-top" .}} -{{ template "user-profile" . }} +
+ {{ template "user-profile" . }} -

{{t "MfaInitVerify.Description"}}

+

{{t "MfaInitVerify.Description"}}

+
@@ -35,11 +37,11 @@
- - + + {{t "Actions.Back"}} - - + + {{t "Actions.Cancel"}}
diff --git a/internal/ui/login/static/templates/mfa_prompt.html b/internal/ui/login/static/templates/mfa_prompt.html index 6f5515702b..cf9dac3b68 100644 --- a/internal/ui/login/static/templates/mfa_prompt.html +++ b/internal/ui/login/static/templates/mfa_prompt.html @@ -1,8 +1,10 @@ {{template "main-top" .}} -{{ template "user-profile" . }} +
+ {{ template "user-profile" . }} -

{{t "MfaPrompt.Description"}}

+

{{t "MfaPrompt.Description"}}

+
@@ -25,8 +27,8 @@ {{if not .MfaRequired}} {{end}} - - + + {{t "Actions.Cancel"}}
diff --git a/internal/ui/login/static/templates/mfa_verify.html b/internal/ui/login/static/templates/mfa_verify.html index c905d86479..eae77ba47e 100644 --- a/internal/ui/login/static/templates/mfa_verify.html +++ b/internal/ui/login/static/templates/mfa_verify.html @@ -1,8 +1,10 @@ {{template "main-top" .}} -{{ template "user-profile" . }} +
+ {{ template "user-profile" . }} -

{{t "MfaVerify.Description"}}

+

{{t "MfaVerify.Description"}}

+
@@ -22,8 +24,8 @@
- - + + {{t "Actions.Cancel"}}
diff --git a/internal/ui/login/static/templates/password.html b/internal/ui/login/static/templates/password.html index 0cdaf65b61..511da72dec 100644 --- a/internal/ui/login/static/templates/password.html +++ b/internal/ui/login/static/templates/password.html @@ -1,8 +1,10 @@ {{template "main-top" .}} -{{ template "user-profile" . }} +
+ {{ template "user-profile" . }} -

{{t "Password.Description"}}

+

{{t "Password.Description"}}

+
@@ -25,8 +27,8 @@ - - + + {{t "Actions.ForgotPassword"}}
diff --git a/internal/ui/login/static/templates/password_reset_done.html b/internal/ui/login/static/templates/password_reset_done.html index ba93b24852..55a3cc9b57 100644 --- a/internal/ui/login/static/templates/password_reset_done.html +++ b/internal/ui/login/static/templates/password_reset_done.html @@ -1,8 +1,10 @@ {{template "main-top" .}} -{{ template "user-profile" . }} +
+ {{ template "user-profile" . }} -

{{t "PasswordResetDone.Description"}}

+

{{t "PasswordResetDone.Description"}}

+
diff --git a/internal/ui/login/static/templates/register.html b/internal/ui/login/static/templates/register.html index f96606e861..2a5d987321 100644 --- a/internal/ui/login/static/templates/register.html +++ b/internal/ui/login/static/templates/register.html @@ -1,7 +1,10 @@ {{template "main-top" .}} -

{{t "Registration.Title"}}

-

{{t "Registration.Description"}}

+
+

{{t "Registration.Title"}}

+

{{t "Registration.Description"}}

+
+ @@ -62,7 +65,7 @@ @@ -72,8 +75,8 @@
- - + + {{t "Actions.Back"}}
diff --git a/internal/ui/login/static/templates/register_option.html b/internal/ui/login/static/templates/register_option.html new file mode 100644 index 0000000000..6e5d8e889a --- /dev/null +++ b/internal/ui/login/static/templates/register_option.html @@ -0,0 +1,40 @@ + +{{template "main-top" .}} + +
+

{{t "RegisterOption.Title"}}

+

{{t "RegisterOption.Description"}}

+
+ +
+ + {{ .CSRF }} + + + +
+ {{if .LoginPolicy.AllowUsernamePassword }} + + {{end}} + {{if .LoginPolicy.AllowExternalIDP}} + {{ $reqid := .AuthReqID}} + {{range $provider := .IDPProviders}} + + {{$provider.Name}} + + {{end}} + {{end}} + + {{t "Actions.Back"}} + +
+ + {{template "error-message" .}} +
+ + + + + +{{template "main-bottom" .}} + \ No newline at end of file diff --git a/internal/ui/login/static/templates/register_org.html b/internal/ui/login/static/templates/register_org.html index 128eaaad7f..fc0aeea156 100644 --- a/internal/ui/login/static/templates/register_org.html +++ b/internal/ui/login/static/templates/register_org.html @@ -1,8 +1,10 @@ {{template "main-top" .}} -

{{t "RegistrationOrg.Title"}}

-

{{t "RegistrationOrg.FreeTillEndOfYear"}}

-

{{t "RegistrationOrg.Description"}}

+
+

{{t "RegistrationOrg.Title"}}

+

{{t "RegistrationOrg.FreeTillEndOfYear"}}

+

{{t "RegistrationOrg.Description"}}

+
@@ -61,7 +63,7 @@ diff --git a/internal/ui/login/static/templates/select_user.html b/internal/ui/login/static/templates/select_user.html index ea439da96f..26f7c02ec1 100644 --- a/internal/ui/login/static/templates/select_user.html +++ b/internal/ui/login/static/templates/select_user.html @@ -1,8 +1,15 @@ {{template "main-top" .}} +
+ {{if .Linking}} +

{{t "UserSelection.TitleLinking"}}

+

{{t "UserSelection.DescriptionLinking"}}

+ {{else}} +

{{t "UserSelection.Title"}}

+

{{t "UserSelection.Description"}}

+ {{end}} +
-

{{t "UserSelection.Title"}}

-

{{t "UserSelection.Description"}}

diff --git a/internal/ui/login/static/templates/user_profile.html b/internal/ui/login/static/templates/user_profile.html index 7728af0d4c..4cb5641487 100644 --- a/internal/ui/login/static/templates/user_profile.html +++ b/internal/ui/login/static/templates/user_profile.html @@ -1,13 +1,13 @@ {{define "user-profile"}} -{{if .LoginName}} -
-
-
- {{if .DisplayName}} -
{{.DisplayName}}
- {{end}} -
{{.LoginName}}
+ {{if .LoginName}} + -
-{{end}} + {{end}} {{end}} \ No newline at end of file diff --git a/internal/user/model/external_idp.go b/internal/user/model/external_idp.go new file mode 100644 index 0000000000..2c67f9d495 --- /dev/null +++ b/internal/user/model/external_idp.go @@ -0,0 +1,17 @@ +package model + +import ( + es_models "github.com/caos/zitadel/internal/eventstore/models" +) + +type ExternalIDP struct { + es_models.ObjectRoot + + IDPConfigID string + UserID string + DisplayName string +} + +func (idp *ExternalIDP) IsValid() bool { + return idp.AggregateID != "" && idp.IDPConfigID != "" && idp.UserID != "" +} diff --git a/internal/user/model/external_idp_view.go b/internal/user/model/external_idp_view.go new file mode 100644 index 0000000000..9d66247de5 --- /dev/null +++ b/internal/user/model/external_idp_view.go @@ -0,0 +1,61 @@ +package model + +import ( + "github.com/caos/zitadel/internal/model" + "time" +) + +type ExternalIDPView struct { + UserID string + IDPConfigID string + ExternalUserID string + IDPName string + UserDisplayName string + CreationDate time.Time + ChangeDate time.Time + ResourceOwner string + Sequence uint64 +} + +type ExternalIDPSearchRequest struct { + Offset uint64 + Limit uint64 + SortingColumn ExternalIDPSearchKey + Asc bool + Queries []*ExternalIDPSearchQuery +} + +type ExternalIDPSearchKey int32 + +const ( + ExternalIDPSearchKeyUnspecified ExternalIDPSearchKey = iota + ExternalIDPSearchKeyExternalUserID + ExternalIDPSearchKeyUserID + ExternalIDPSearchKeyIdpConfigID + ExternalIDPSearchKeyResourceOwner +) + +type ExternalIDPSearchQuery struct { + Key ExternalIDPSearchKey + Method model.SearchMethod + Value interface{} +} + +type ExternalIDPSearchResponse struct { + Offset uint64 + Limit uint64 + TotalResult uint64 + Result []*ExternalIDPView + Sequence uint64 + Timestamp time.Time +} + +func (r *ExternalIDPSearchRequest) EnsureLimit(limit uint64) { + if r.Limit == 0 || r.Limit > limit { + r.Limit = limit + } +} + +func (r *ExternalIDPSearchRequest) AppendUserQuery(userID string) { + r.Queries = append(r.Queries, &ExternalIDPSearchQuery{Key: ExternalIDPSearchKeyUserID, Method: model.SearchMethodEquals, Value: userID}) +} diff --git a/internal/user/model/user_human.go b/internal/user/model/user_human.go index e9f5b6ab18..93efa82f83 100644 --- a/internal/user/model/user_human.go +++ b/internal/user/model/user_human.go @@ -15,6 +15,7 @@ type Human struct { *Email *Phone *Address + ExternalIDPs []*ExternalIDP InitCode *InitUserCode EmailCode *EmailCode PhoneCode *PhoneCode @@ -45,11 +46,11 @@ func (u *Human) SetNamesAsDisplayname() { } func (u *Human) IsValid() bool { - return u.Profile != nil && u.FirstName != "" && u.LastName != "" && u.Email != nil && u.Email.IsValid() && u.Phone == nil || (u.Phone != nil && u.Phone.IsValid()) + return u.Profile != nil && u.FirstName != "" && u.LastName != "" && u.Email != nil && u.Email.IsValid() && u.Phone == nil || (u.Phone != nil && u.Phone.PhoneNumber != "" && u.Phone.IsValid()) } func (u *Human) IsInitialState() bool { - return u.Email == nil || !u.IsEmailVerified || u.Password == nil || u.SecretString == "" + return u.Email == nil || !u.IsEmailVerified || (u.ExternalIDPs == nil || len(u.ExternalIDPs) == 0) && (u.Password == nil || u.SecretString == "") } func (u *Human) IsOTPReady() bool { @@ -96,3 +97,12 @@ func (init *InitUserCode) GenerateInitUserCode(generator crypto.Generator) error init.Expiry = generator.Expiry() return nil } + +func (u *Human) GetExternalIDP(externalIDP *ExternalIDP) (int, *ExternalIDP) { + for i, idp := range u.ExternalIDPs { + if idp.UserID == externalIDP.UserID { + return i, idp + } + } + return -1, nil +} diff --git a/internal/user/repository/eventsourcing/eventstore.go b/internal/user/repository/eventsourcing/eventstore.go index ec5bee1889..d0425de443 100644 --- a/internal/user/repository/eventsourcing/eventstore.go +++ b/internal/user/repository/eventsourcing/eventstore.go @@ -190,16 +190,17 @@ func (es *UserEventstore) CreateUser(ctx context.Context, user *usr_model.User, return model.UserToModel(repoUser), nil } -func (es *UserEventstore) PrepareRegisterUser(ctx context.Context, user *usr_model.User, policy *policy_model.PasswordComplexityPolicy, orgIAMPolicy *org_model.OrgIAMPolicy, resourceOwner string) (*model.User, []*es_models.Aggregate, error) { +func (es *UserEventstore) PrepareRegisterUser(ctx context.Context, user *usr_model.User, externalIDP *usr_model.ExternalIDP, policy *policy_model.PasswordComplexityPolicy, orgIAMPolicy *org_model.OrgIAMPolicy, resourceOwner string) (*model.User, []*es_models.Aggregate, error) { if user.Human == nil { return nil, nil, caos_errs.ThrowInvalidArgument(nil, "EVENT-ht8Ux", "Errors.User.Invalid") } + err := user.CheckOrgIAMPolicy(orgIAMPolicy) if err != nil { return nil, nil, err } user.SetNamesAsDisplayname() - if !user.IsValid() || user.Password == nil || user.SecretString == "" { + if !user.IsValid() || externalIDP == nil && (user.Password == nil || user.SecretString == "") { return nil, nil, caos_errs.ThrowPreconditionFailed(nil, "EVENT-9dk45", "Errors.User.Invalid") } id, err := es.idGenerator.Next() @@ -207,7 +208,13 @@ func (es *UserEventstore) PrepareRegisterUser(ctx context.Context, user *usr_mod return nil, nil, err } user.AggregateID = id - + if externalIDP != nil { + externalIDP.AggregateID = id + if !externalIDP.IsValid() { + return nil, nil, errors.ThrowPreconditionFailed(nil, "EVENT-4Dj9s", "Errors.User.ExternalIDP.Invalid") + } + user.ExternalIDPs = append(user.ExternalIDPs, externalIDP) + } err = user.HashPasswordIfExisting(policy, es.PasswordAlg, false) if err != nil { return nil, nil, err @@ -218,14 +225,15 @@ func (es *UserEventstore) PrepareRegisterUser(ctx context.Context, user *usr_mod } repoUser := model.UserFromModel(user) + repoExternalIDP := model.ExternalIDPFromModel(externalIDP) repoInitCode := model.InitCodeFromModel(user.InitCode) - aggregates, err := UserRegisterAggregate(ctx, es.AggregateCreator(), repoUser, resourceOwner, repoInitCode, orgIAMPolicy.UserLoginMustBeDomain) + aggregates, err := UserRegisterAggregate(ctx, es.AggregateCreator(), repoUser, repoExternalIDP, resourceOwner, repoInitCode, orgIAMPolicy.UserLoginMustBeDomain) return repoUser, aggregates, err } func (es *UserEventstore) RegisterUser(ctx context.Context, user *usr_model.User, pwPolicy *policy_model.PasswordComplexityPolicy, orgIAMPolicy *org_model.OrgIAMPolicy, resourceOwner string) (*usr_model.User, error) { - repoUser, createAggregates, err := es.PrepareRegisterUser(ctx, user, pwPolicy, orgIAMPolicy, resourceOwner) + repoUser, createAggregates, err := es.PrepareRegisterUser(ctx, user, nil, pwPolicy, orgIAMPolicy, resourceOwner) if err != nil { return nil, err } @@ -691,6 +699,103 @@ func (es *UserEventstore) PasswordCodeSent(ctx context.Context, userID string) e return nil } +func (es *UserEventstore) AddExternalIDP(ctx context.Context, externalIDP *usr_model.ExternalIDP) (*usr_model.ExternalIDP, error) { + if externalIDP == nil || !externalIDP.IsValid() { + return nil, errors.ThrowPreconditionFailed(nil, "EVENT-Ek9s", "Errors.User.ExternalIDP.Invalid") + } + existingUser, err := es.UserByID(ctx, externalIDP.AggregateID) + if err != nil { + return nil, err + } + if existingUser.Human == nil { + return nil, errors.ThrowPreconditionFailed(nil, "EVENT-Cnk8s", "Errors.User.NotHuman") + } + repoUser := model.UserFromModel(existingUser) + repoExternalIDP := model.ExternalIDPFromModel(externalIDP) + aggregates, err := ExternalIDPAddedAggregate(ctx, es.Eventstore.AggregateCreator(), repoUser, repoExternalIDP) + if err != nil { + return nil, err + } + err = es_sdk.PushAggregates(ctx, es.PushAggregates, repoUser.AppendEvents, aggregates...) + if err != nil { + return nil, err + } + + es.userCache.cacheUser(repoUser) + if _, idp := model.GetExternalIDP(repoUser.ExternalIDPs, externalIDP.UserID); idp != nil { + return model.ExternalIDPToModel(idp), nil + } + return nil, errors.ThrowInternal(nil, "EVENT-Msi9d", "Errors.Internal") +} + +func (es *UserEventstore) BulkAddExternalIDPs(ctx context.Context, userID string, externalIDPs []*usr_model.ExternalIDP) error { + if externalIDPs == nil || len(externalIDPs) == 0 { + return errors.ThrowPreconditionFailed(nil, "EVENT-Ek9s", "Errors.User.ExternalIDP.MinimumExternalIDPNeeded") + } + for _, externalIDP := range externalIDPs { + if !externalIDP.IsValid() { + return caos_errs.ThrowPreconditionFailed(nil, "EVENT-idue3", "Errors.User.ExternalIDP.Invalid") + } + } + existingUser, err := es.UserByID(ctx, userID) + if err != nil { + return err + } + if existingUser.Human == nil { + return errors.ThrowPreconditionFailed(nil, "EVENT-Cnk8s", "Errors.User.NotHuman") + } + repoUser := model.UserFromModel(existingUser) + repoExternalIDPs := model.ExternalIDPsFromModel(externalIDPs) + aggregates, err := ExternalIDPAddedAggregate(ctx, es.Eventstore.AggregateCreator(), repoUser, repoExternalIDPs...) + if err != nil { + return err + } + err = es_sdk.PushAggregates(ctx, es.PushAggregates, repoUser.AppendEvents, aggregates...) + if err != nil { + return err + } + + es.userCache.cacheUser(repoUser) + return nil +} + +func (es *UserEventstore) PrepareRemoveExternalIDP(ctx context.Context, externalIDP *usr_model.ExternalIDP, cascade bool) (*model.User, []*es_models.Aggregate, error) { + if externalIDP == nil || !externalIDP.IsValid() { + return nil, nil, errors.ThrowPreconditionFailed(nil, "EVENT-Cm8sj", "Errors.User.ExternalIDP.Invalid") + } + existingUser, err := es.UserByID(ctx, externalIDP.AggregateID) + if err != nil { + return nil, nil, err + } + if existingUser.Human == nil { + return nil, nil, errors.ThrowPreconditionFailed(nil, "EVENT-E8iod", "Errors.User.NotHuman") + } + _, existingIDP := existingUser.GetExternalIDP(externalIDP) + if existingIDP == nil { + return nil, nil, errors.ThrowPreconditionFailed(nil, "EVENT-3Dh7s", "Errors.User.ExternalIDP.NotOnUser") + } + repoUser := model.UserFromModel(existingUser) + repoExternalIDP := model.ExternalIDPFromModel(externalIDP) + agg, err := ExternalIDPRemovedAggregate(ctx, es.Eventstore.AggregateCreator(), repoUser, repoExternalIDP, cascade) + if err != nil { + return nil, nil, err + } + return repoUser, agg, err +} + +func (es *UserEventstore) RemoveExternalIDP(ctx context.Context, externalIDP *usr_model.ExternalIDP) error { + repoUser, aggregates, err := es.PrepareRemoveExternalIDP(ctx, externalIDP, false) + if err != nil { + return err + } + err = es_sdk.PushAggregates(ctx, es.PushAggregates, repoUser.AppendEvents, aggregates...) + if err != nil { + return err + } + es.userCache.cacheUser(repoUser) + return nil +} + func (es *UserEventstore) ProfileByID(ctx context.Context, userID string) (*usr_model.Profile, error) { if userID == "" { return nil, caos_errs.ThrowPreconditionFailed(nil, "EVENT-di834", "Errors.User.UserIDMissing") diff --git a/internal/user/repository/eventsourcing/eventstore_mock_test.go b/internal/user/repository/eventsourcing/eventstore_mock_test.go index 0955e7eab4..44c8daff5c 100644 --- a/internal/user/repository/eventsourcing/eventstore_mock_test.go +++ b/internal/user/repository/eventsourcing/eventstore_mock_test.go @@ -458,6 +458,30 @@ func GetMockManipulateUserWithOTP(ctrl *gomock.Controller, decrypt, verified boo return es } +func GetMockManipulateUserWithExternalIDP(ctrl *gomock.Controller) *UserEventstore { + user := model.Human{ + Profile: &model.Profile{ + DisplayName: "DisplayName", + }, + } + externalIDP := model.ExternalIDP{ + IDPConfigID: "IDPConfigID", + UserID: "UserID", + DisplayName: "DisplayName", + } + dataUser, _ := json.Marshal(user) + dataIDP, _ := json.Marshal(externalIDP) + events := []*es_models.Event{ + {AggregateID: "AggregateID", AggregateVersion: "v1", Sequence: 1, Type: model.UserAdded, Data: dataUser}, + {AggregateID: "AggregateID", AggregateVersion: "v1", Sequence: 1, Type: model.HumanExternalIDPAdded, Data: dataIDP}, + } + mockEs := mock.NewMockEventstore(ctrl) + mockEs.EXPECT().FilterEvents(gomock.Any(), gomock.Any()).Return(events, nil) + mockEs.EXPECT().AggregateCreator().Return(es_models.NewAggregateCreator("TEST")) + mockEs.EXPECT().PushAggregates(gomock.Any(), gomock.Any()).Return(nil) + return GetMockedEventstore(ctrl, mockEs) +} + func GetMockManipulateUserNoEvents(ctrl *gomock.Controller) *UserEventstore { events := []*es_models.Event{} mockEs := mock.NewMockEventstore(ctrl) diff --git a/internal/user/repository/eventsourcing/eventstore_test.go b/internal/user/repository/eventsourcing/eventstore_test.go index d264325641..2d1265341e 100644 --- a/internal/user/repository/eventsourcing/eventstore_test.go +++ b/internal/user/repository/eventsourcing/eventstore_test.go @@ -1967,6 +1967,191 @@ func TestPasswordCodeSent(t *testing.T) { } } +func TestAddExternalIDP(t *testing.T) { + ctrl := gomock.NewController(t) + type args struct { + es *UserEventstore + ctx context.Context + externalIDP *model.ExternalIDP + } + type res struct { + errFunc func(err error) bool + } + tests := []struct { + name string + args args + res res + }{ + { + name: "add ok", + args: args{ + es: GetMockManipulateUser(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + externalIDP: &model.ExternalIDP{ + ObjectRoot: es_models.ObjectRoot{ + AggregateID: "AggregateID", + }, + IDPConfigID: "IDPConfigID", + UserID: "UserID", + DisplayName: "DisplayName", + }, + }, + }, + { + name: "invalid idp", + args: args{ + es: GetMockManipulateUser(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + externalIDP: &model.ExternalIDP{ + ObjectRoot: es_models.ObjectRoot{ + AggregateID: "AggregateID", + }, + UserID: "UserID", + DisplayName: "DisplayName", + }, + }, + res: res{ + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "existing user not found", + args: args{ + es: GetMockManipulateUserNoEvents(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + externalIDP: &model.ExternalIDP{ + ObjectRoot: es_models.ObjectRoot{ + AggregateID: "AggregateID", + }, + IDPConfigID: "IDPConfigID", + UserID: "UserID", + DisplayName: "DisplayName", + }, + }, + res: res{ + errFunc: caos_errs.IsNotFound, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + result, err := tt.args.es.AddExternalIDP(tt.args.ctx, tt.args.externalIDP) + + if tt.res.errFunc == nil && result.AggregateID == "" { + t.Errorf("result has no id") + } + if tt.res.errFunc == nil && result.IDPConfigID == "" { + t.Errorf("result has no idpconfig") + } + if tt.res.errFunc == nil && result.UserID == "" { + t.Errorf("result has no UserID") + } + if tt.res.errFunc == nil && result == nil { + t.Errorf("got wrong result change required: actual: %v ", result) + } + if tt.res.errFunc != nil && !tt.res.errFunc(err) { + t.Errorf("got wrong err: %v ", err) + } + }) + } +} + +func TestRemoveExternalIDP(t *testing.T) { + ctrl := gomock.NewController(t) + type args struct { + es *UserEventstore + ctx context.Context + externalIDP *model.ExternalIDP + } + type res struct { + errFunc func(err error) bool + } + tests := []struct { + name string + args args + res res + }{ + { + name: "remove ok", + args: args{ + es: GetMockManipulateUserWithExternalIDP(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + externalIDP: &model.ExternalIDP{ + ObjectRoot: es_models.ObjectRoot{ + AggregateID: "AggregateID", + }, + IDPConfigID: "IDPConfigID", + UserID: "UserID", + }, + }, + }, + { + name: "invalid idp", + args: args{ + es: GetMockManipulateUser(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + externalIDP: &model.ExternalIDP{ + ObjectRoot: es_models.ObjectRoot{ + AggregateID: "AggregateID", + }, + UserID: "UserID", + DisplayName: "DisplayName", + }, + }, + res: res{ + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "remove external idp not existing", + args: args{ + es: GetMockManipulateUser(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + externalIDP: &model.ExternalIDP{ + ObjectRoot: es_models.ObjectRoot{ + AggregateID: "AggregateID", + }, + IDPConfigID: "IDPConfigID", + UserID: "UserID", + }, + }, + res: res{ + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "existing user not found", + args: args{ + es: GetMockManipulateUserNoEvents(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + externalIDP: &model.ExternalIDP{ + ObjectRoot: es_models.ObjectRoot{ + AggregateID: "AggregateID", + }, + IDPConfigID: "IDPConfigID", + UserID: "UserID", + DisplayName: "DisplayName", + }, + }, + res: res{ + errFunc: caos_errs.IsNotFound, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + err := tt.args.es.RemoveExternalIDP(tt.args.ctx, tt.args.externalIDP) + + if tt.res.errFunc == nil && err != nil { + t.Errorf("should not get err, %v", err) + } + if tt.res.errFunc != nil && !tt.res.errFunc(err) { + t.Errorf("got wrong err: %v ", err) + } + }) + } +} + func TestProfileByID(t *testing.T) { ctrl := gomock.NewController(t) type args struct { diff --git a/internal/user/repository/eventsourcing/model/external_idp.go b/internal/user/repository/eventsourcing/model/external_idp.go new file mode 100644 index 0000000000..c3e46f5c5c --- /dev/null +++ b/internal/user/repository/eventsourcing/model/external_idp.go @@ -0,0 +1,96 @@ +package model + +import ( + "encoding/json" + "github.com/caos/logging" + caos_errs "github.com/caos/zitadel/internal/errors" + es_models "github.com/caos/zitadel/internal/eventstore/models" + "github.com/caos/zitadel/internal/user/model" +) + +type ExternalIDP struct { + es_models.ObjectRoot + + IDPConfigID string `json:"idpConfigId,omitempty"` + UserID string `json:"userId,omitempty"` + DisplayName string `json:"displayName,omitempty"` +} + +func GetExternalIDP(idps []*ExternalIDP, id string) (int, *ExternalIDP) { + for i, idp := range idps { + if idp.UserID == id { + return i, idp + } + } + return -1, nil +} + +func ExternalIDPsToModel(externalIDPs []*ExternalIDP) []*model.ExternalIDP { + convertedIDPs := make([]*model.ExternalIDP, len(externalIDPs)) + for i, m := range externalIDPs { + convertedIDPs[i] = ExternalIDPToModel(m) + } + return convertedIDPs +} + +func ExternalIDPsFromModel(externalIDPs []*model.ExternalIDP) []*ExternalIDP { + convertedIDPs := make([]*ExternalIDP, len(externalIDPs)) + for i, m := range externalIDPs { + convertedIDPs[i] = ExternalIDPFromModel(m) + } + return convertedIDPs +} + +func ExternalIDPFromModel(idp *model.ExternalIDP) *ExternalIDP { + if idp == nil { + return nil + } + return &ExternalIDP{ + ObjectRoot: idp.ObjectRoot, + IDPConfigID: idp.IDPConfigID, + UserID: idp.UserID, + DisplayName: idp.DisplayName, + } +} + +func ExternalIDPToModel(idp *ExternalIDP) *model.ExternalIDP { + return &model.ExternalIDP{ + ObjectRoot: idp.ObjectRoot, + IDPConfigID: idp.IDPConfigID, + UserID: idp.UserID, + } +} + +func (u *Human) appendExternalIDPAddedEvent(event *es_models.Event) error { + idp := new(ExternalIDP) + err := idp.setData(event) + if err != nil { + return err + } + idp.ObjectRoot.CreationDate = event.CreationDate + u.ExternalIDPs = append(u.ExternalIDPs, idp) + return nil +} + +func (u *Human) appendExternalIDPRemovedEvent(event *es_models.Event) error { + idp := new(ExternalIDP) + err := idp.setData(event) + if err != nil { + return err + } + if i, externalIdp := GetExternalIDP(u.ExternalIDPs, idp.UserID); externalIdp != nil { + u.ExternalIDPs[i] = u.ExternalIDPs[len(u.ExternalIDPs)-1] + u.ExternalIDPs[len(u.ExternalIDPs)-1] = nil + u.ExternalIDPs = u.ExternalIDPs[:len(u.ExternalIDPs)-1] + } + return nil +} + +func (pw *ExternalIDP) setData(event *es_models.Event) error { + pw.ObjectRoot.AppendEvent(event) + if err := json.Unmarshal(event.Data, pw); err != nil { + logging.Log("EVEN-Msi9d").WithError(err).Error("could not unmarshal event data") + return caos_errs.ThrowInternal(err, "MODEL-A9osf", "could not unmarshal event") + } + return nil +} diff --git a/internal/user/repository/eventsourcing/model/external_idp_test.go b/internal/user/repository/eventsourcing/model/external_idp_test.go new file mode 100644 index 0000000000..c9e6ecec55 --- /dev/null +++ b/internal/user/repository/eventsourcing/model/external_idp_test.go @@ -0,0 +1,89 @@ +package model + +import ( + "encoding/json" + es_models "github.com/caos/zitadel/internal/eventstore/models" + "testing" +) + +func TestAppendExternalIDPAddedEvent(t *testing.T) { + type args struct { + user *Human + externalIDP *ExternalIDP + event *es_models.Event + } + tests := []struct { + name string + args args + result *Human + }{ + { + name: "append external idp added event", + args: args{ + user: &Human{}, + externalIDP: &ExternalIDP{IDPConfigID: "IDPConfigID", UserID: "UserID", DisplayName: "DisplayName"}, + event: &es_models.Event{}, + }, + result: &Human{ExternalIDPs: []*ExternalIDP{{IDPConfigID: "IDPConfigID", UserID: "UserID", DisplayName: "DisplayName"}}}, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if tt.args.externalIDP != nil { + data, _ := json.Marshal(tt.args.externalIDP) + tt.args.event.Data = data + } + tt.args.user.appendExternalIDPAddedEvent(tt.args.event) + if len(tt.args.user.ExternalIDPs) == 0 { + t.Error("got wrong result expected external idps on user ") + } + if tt.args.user.ExternalIDPs[0].UserID != tt.result.ExternalIDPs[0].UserID { + t.Errorf("got wrong result: expected: %v, actual: %v ", tt.result.ExternalIDPs[0].UserID, tt.args.user.ExternalIDPs[0].UserID) + } + if tt.args.user.ExternalIDPs[0].IDPConfigID != tt.result.ExternalIDPs[0].IDPConfigID { + t.Errorf("got wrong result: expected: %v, actual: %v ", tt.result.ExternalIDPs[0].IDPConfigID, tt.args.user.ExternalIDPs[0].IDPConfigID) + } + if tt.args.user.ExternalIDPs[0].DisplayName != tt.result.ExternalIDPs[0].DisplayName { + t.Errorf("got wrong result: expected: %v, actual: %v ", tt.result.ExternalIDPs[0].DisplayName, tt.args.user.ExternalIDPs[0].IDPConfigID) + } + }) + } +} + +func TestAppendExternalIDPRemovedEvent(t *testing.T) { + type args struct { + user *Human + externalIDP *ExternalIDP + event *es_models.Event + } + tests := []struct { + name string + args args + result *Human + }{ + { + name: "append external idp removed event", + args: args{ + user: &Human{ + ExternalIDPs: []*ExternalIDP{ + {IDPConfigID: "IDPConfigID", UserID: "UserID", DisplayName: "DisplayName"}, + }}, + externalIDP: &ExternalIDP{UserID: "UserID"}, + event: &es_models.Event{}, + }, + result: &Human{}, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if tt.args.externalIDP != nil { + data, _ := json.Marshal(tt.args.externalIDP) + tt.args.event.Data = data + } + tt.args.user.appendExternalIDPRemovedEvent(tt.args.event) + if len(tt.args.user.ExternalIDPs) != 0 { + t.Error("got wrong result expected 0 external idps on user ") + } + }) + } +} diff --git a/internal/user/repository/eventsourcing/model/types.go b/internal/user/repository/eventsourcing/model/types.go index 191aa735e9..3571538d8f 100644 --- a/internal/user/repository/eventsourcing/model/types.go +++ b/internal/user/repository/eventsourcing/model/types.go @@ -4,8 +4,9 @@ import "github.com/caos/zitadel/internal/eventstore/models" //aggregates const ( - UserAggregate models.AggregateType = "user" - UserUserNameAggregate models.AggregateType = "user.username" + UserAggregate models.AggregateType = "user" + UserUserNameAggregate models.AggregateType = "user.username" + UserExternalIDPAggregate models.AggregateType = "user.human.externalidp" ) // the following consts are for user v1 events @@ -83,6 +84,13 @@ const ( HumanPasswordCheckSucceeded models.EventType = "user.human.password.check.succeeded" HumanPasswordCheckFailed models.EventType = "user.human.password.check.failed" + HumanExternalIDPReserved models.EventType = "user.human.externalidp.reserved" + HumanExternalIDPReleased models.EventType = "user.human.externalidp.released" + + HumanExternalIDPAdded models.EventType = "user.human.externalidp.added" + HumanExternalIDPRemoved models.EventType = "user.human.externalidp.removed" + HumanExternalIDPCascadeRemoved models.EventType = "user.human.externalidp.cascade.removed" + HumanEmailChanged models.EventType = "user.human.email.changed" HumanEmailVerified models.EventType = "user.human.email.verified" HumanEmailVerificationFailed models.EventType = "user.human.email.verification.failed" diff --git a/internal/user/repository/eventsourcing/model/user_human.go b/internal/user/repository/eventsourcing/model/user_human.go index 7324356eca..d707ff5b67 100644 --- a/internal/user/repository/eventsourcing/model/user_human.go +++ b/internal/user/repository/eventsourcing/model/user_human.go @@ -19,11 +19,12 @@ type Human struct { *Email *Phone *Address - InitCode *InitUserCode `json:"-"` - EmailCode *EmailCode `json:"-"` - PhoneCode *PhoneCode `json:"-"` - PasswordCode *PasswordCode `json:"-"` - OTP *OTP `json:"-"` + ExternalIDPs []*ExternalIDP `json:"-"` + InitCode *InitUserCode `json:"-"` + EmailCode *EmailCode `json:"-"` + PhoneCode *PhoneCode `json:"-"` + PasswordCode *PasswordCode `json:"-"` + OTP *OTP `json:"-"` } type InitUserCode struct { @@ -52,6 +53,9 @@ func HumanFromModel(user *model.Human) *Human { if user.OTP != nil { human.OTP = OTPFromModel(user.OTP) } + if user.ExternalIDPs != nil { + human.ExternalIDPs = ExternalIDPsFromModel(user.ExternalIDPs) + } return human } @@ -72,6 +76,9 @@ func HumanToModel(user *Human) *model.Human { if user.Address != nil { human.Address = AddressToModel(user.Address) } + if user.ExternalIDPs != nil { + human.ExternalIDPs = ExternalIDPsToModel(user.ExternalIDPs) + } if user.InitCode != nil { human.InitCode = InitCodeToModel(user.InitCode) } @@ -169,6 +176,10 @@ func (h *Human) AppendEvent(event *es_models.Event) (err error) { case MFAOTPRemoved, HumanMFAOTPRemoved: h.appendOTPRemovedEvent() + case HumanExternalIDPAdded: + err = h.appendExternalIDPAddedEvent(event) + case HumanExternalIDPRemoved, HumanExternalIDPCascadeRemoved: + err = h.appendExternalIDPRemovedEvent(event) } if err != nil { return err diff --git a/internal/user/repository/eventsourcing/user.go b/internal/user/repository/eventsourcing/user.go index edbefe383d..ca79d9add5 100644 --- a/internal/user/repository/eventsourcing/user.go +++ b/internal/user/repository/eventsourcing/user.go @@ -2,9 +2,10 @@ package eventsourcing import ( "context" + "github.com/caos/zitadel/internal/api/authz" + iam_es_model "github.com/caos/zitadel/internal/iam/repository/eventsourcing/model" "strings" - "github.com/caos/zitadel/internal/api/authz" "github.com/caos/zitadel/internal/errors" es_models "github.com/caos/zitadel/internal/eventstore/models" es_sdk "github.com/caos/zitadel/internal/eventstore/sdk" @@ -34,6 +35,14 @@ func UserUserNameUniqueQuery(userName string) *es_models.SearchQuery { SetLimit(1) } +func UserExternalIDPUniqueQuery(externalIDPUserID string) *es_models.SearchQuery { + return es_models.NewSearchQuery(). + AggregateTypeFilter(model.UserExternalIDPAggregate). + AggregateIDFilter(externalIDPUserID). + OrderDesc(). + SetLimit(1) +} + func UserAggregate(ctx context.Context, aggCreator *es_models.AggregateCreator, user *model.User) (*es_models.Aggregate, error) { if user == nil { return nil, errors.ThrowPreconditionFailed(nil, "EVENT-dis83", "Errors.Internal") @@ -148,8 +157,8 @@ func HumanCreateAggregate(ctx context.Context, aggCreator *es_models.AggregateCr return append(uniqueAggregates, agg), nil } -func UserRegisterAggregate(ctx context.Context, aggCreator *es_models.AggregateCreator, user *model.User, resourceOwner string, initCode *model.InitUserCode, userLoginMustBeDomain bool) ([]*es_models.Aggregate, error) { - if user == nil || resourceOwner == "" || initCode == nil { +func UserRegisterAggregate(ctx context.Context, aggCreator *es_models.AggregateCreator, user *model.User, externalIDP *model.ExternalIDP, resourceOwner string, initCode *model.InitUserCode, userLoginMustBeDomain bool) ([]*es_models.Aggregate, error) { + if user == nil || resourceOwner == "" { return nil, errors.ThrowPreconditionFailed(nil, "EVENT-duxk2", "user, resourceowner, initcode must be set") } @@ -157,32 +166,62 @@ func UserRegisterAggregate(ctx context.Context, aggCreator *es_models.AggregateC return nil, errors.ThrowPreconditionFailed(nil, "EVENT-ekuEA", "user must be type human") } + aggregates := make([]*es_models.Aggregate, 0) agg, err := UserAggregateOverwriteContext(ctx, aggCreator, user, resourceOwner, user.AggregateID) if err != nil { return nil, err } - if !userLoginMustBeDomain { - validationQuery := es_models.NewSearchQuery(). - AggregateTypeFilter(org_es_model.OrgAggregate). - AggregateIDsFilter() - - validation := addUserNameValidation(user.UserName) - agg.SetPrecondition(validationQuery, validation) - } agg, err = agg.AppendEvent(model.HumanRegistered, user) if err != nil { return nil, err } - agg, err = agg.AppendEvent(model.InitializedHumanCodeAdded, initCode) - if err != nil { - return nil, err + if initCode != nil { + agg, err = agg.AppendEvent(model.InitializedHumanCodeAdded, initCode) + if err != nil { + return nil, err + } } + if user.Email != nil && user.EmailAddress != "" && user.IsEmailVerified { + agg, err = agg.AppendEvent(model.HumanEmailVerified, nil) + if err != nil { + return nil, err + } + } + + if externalIDP != nil { + validationQuery := es_models.NewSearchQuery(). + AggregateTypeFilter(org_es_model.OrgAggregate, iam_es_model.IAMAggregate). + AggregateIDsFilter() + + if !userLoginMustBeDomain { + validation := addUserNameAndIDPConfigExistingValidation(user.UserName, externalIDP) + agg.SetPrecondition(validationQuery, validation) + } else { + validation := addIDPConfigExistingValidation(externalIDP) + agg.SetPrecondition(validationQuery, validation) + } + + agg, err = agg.AppendEvent(model.HumanExternalIDPAdded, externalIDP) + uniqueExternalIDPAggregate, err := reservedUniqueExternalIDPAggregate(ctx, aggCreator, resourceOwner, externalIDP) + if err != nil { + return nil, err + } + aggregates = append(aggregates, uniqueExternalIDPAggregate) + } else if !userLoginMustBeDomain { + validationQuery := es_models.NewSearchQuery(). + AggregateTypeFilter(org_es_model.OrgAggregate). + AggregateIDsFilter() + validation := addUserNameValidation(user.UserName) + agg.SetPrecondition(validationQuery, validation) + } + uniqueAggregates, err := getUniqueUserAggregates(ctx, aggCreator, user.UserName, user.EmailAddress, resourceOwner, userLoginMustBeDomain) if err != nil { return nil, err } - return append(uniqueAggregates, agg), nil + aggregates = append(aggregates, uniqueAggregates...) + return append(aggregates, agg), nil } func getUniqueUserAggregates(ctx context.Context, aggCreator *es_models.AggregateCreator, userName, emailAddress, resourceOwner string, userLoginMustBeDomain bool) ([]*es_models.Aggregate, error) { @@ -726,6 +765,86 @@ func DomainClaimedSentAggregate(aggCreator *es_models.AggregateCreator, user *mo } } +func ExternalIDPAddedAggregate(ctx context.Context, aggCreator *es_models.AggregateCreator, user *model.User, externalIDPs ...*model.ExternalIDP) ([]*es_models.Aggregate, error) { + if externalIDPs == nil { + return nil, errors.ThrowPreconditionFailed(nil, "EVENT-Di9os", "Errors.Internal") + } + aggregates := make([]*es_models.Aggregate, 0) + agg, err := UserAggregate(ctx, aggCreator, user) + if err != nil { + return nil, err + } + validationQuery := es_models.NewSearchQuery(). + AggregateTypeFilter(org_es_model.OrgAggregate, iam_es_model.IAMAggregate). + AggregateIDsFilter() + + validation := addIDPConfigExistingValidation(externalIDPs...) + agg.SetPrecondition(validationQuery, validation) + for _, externalIDP := range externalIDPs { + agg, err = agg.AppendEvent(model.HumanExternalIDPAdded, externalIDP) + uniqueAggregate, err := reservedUniqueExternalIDPAggregate(ctx, aggCreator, "", externalIDP) + if err != nil { + return nil, err + } + aggregates = append(aggregates, uniqueAggregate) + } + return append(aggregates, agg), nil +} + +func ExternalIDPRemovedAggregate(ctx context.Context, aggCreator *es_models.AggregateCreator, user *model.User, externalIDP *model.ExternalIDP, cascade bool) ([]*es_models.Aggregate, error) { + if externalIDP == nil { + return nil, errors.ThrowPreconditionFailed(nil, "EVENT-Mlo0s", "Errors.Internal") + } + + aggregates := make([]*es_models.Aggregate, 0) + agg, err := UserAggregate(ctx, aggCreator, user) + if err != nil { + return nil, err + } + if cascade { + agg, err = agg.AppendEvent(model.HumanExternalIDPCascadeRemoved, externalIDP) + } else { + agg, err = agg.AppendEvent(model.HumanExternalIDPRemoved, externalIDP) + } + uniqueReleasedAggregate, err := releasedUniqueExternalIDPAggregate(ctx, aggCreator, externalIDP) + if err != nil { + return nil, err + } + aggregates = append(aggregates, uniqueReleasedAggregate) + return append(aggregates, agg), nil +} + +func reservedUniqueExternalIDPAggregate(ctx context.Context, aggCreator *es_models.AggregateCreator, resourceOwner string, externalIDP *model.ExternalIDP) (*es_models.Aggregate, error) { + uniqueExternlIDP := externalIDP.IDPConfigID + externalIDP.UserID + aggregate, err := aggCreator.NewAggregate(ctx, uniqueExternlIDP, model.UserExternalIDPAggregate, model.UserVersion, 0) + if resourceOwner != "" { + aggregate, err = aggCreator.NewAggregate(ctx, uniqueExternlIDP, model.UserExternalIDPAggregate, model.UserVersion, 0, es_models.OverwriteResourceOwner(resourceOwner)) + } + if err != nil { + return nil, err + } + aggregate, err = aggregate.AppendEvent(model.HumanExternalIDPReserved, nil) + if err != nil { + return nil, err + } + + return aggregate.SetPrecondition(UserExternalIDPUniqueQuery(uniqueExternlIDP), isEventValidation(aggregate, model.HumanExternalIDPReserved)), nil +} + +func releasedUniqueExternalIDPAggregate(ctx context.Context, aggCreator *es_models.AggregateCreator, externalIDP *model.ExternalIDP) (aggregate *es_models.Aggregate, err error) { + uniqueExternlIDP := externalIDP.IDPConfigID + externalIDP.UserID + aggregate, err = aggCreator.NewAggregate(ctx, uniqueExternlIDP, model.UserExternalIDPAggregate, model.UserVersion, 0) + if err != nil { + return nil, err + } + aggregate, err = aggregate.AppendEvent(model.HumanExternalIDPReleased, nil) + if err != nil { + return nil, err + } + + return aggregate.SetPrecondition(UserExternalIDPUniqueQuery(uniqueExternlIDP), isEventValidation(aggregate, model.HumanExternalIDPReleased)), nil +} + func UsernameChangedAggregates(ctx context.Context, aggCreator *es_models.AggregateCreator, user *model.User, oldUsername string, userLoginMustBeDomain bool) ([]*es_models.Aggregate, error) { aggregates, err := changeUniqueUserNameAggregate(ctx, aggCreator, user.ResourceOwner, oldUsername, user.UserName, userLoginMustBeDomain) if err != nil { @@ -768,41 +887,178 @@ func addUserNameValidation(userName string) func(...*es_models.Event) error { return func(events ...*es_models.Event) error { domains := make([]*org_es_model.OrgDomain, 0) for _, event := range events { - switch event.Type { - case org_es_model.OrgDomainAdded: - domain := new(org_es_model.OrgDomain) - domain.SetData(event) - domains = append(domains, domain) - case org_es_model.OrgDomainVerified: - domain := new(org_es_model.OrgDomain) - domain.SetData(event) - for _, d := range domains { - if d.Domain == domain.Domain { - d.Verified = true - } - } - case org_es_model.OrgDomainRemoved: - domain := new(org_es_model.OrgDomain) - domain.SetData(event) - for i, d := range domains { - if d.Domain == domain.Domain { - domains[i] = domains[len(domains)-1] - domains[len(domains)-1] = nil - domains = domains[:len(domains)-1] - break - } - } - } + domains = handleDomainEvents(domains, event) + } + return handleCheckDomainAllowedAsUsername(domains, userName) + } +} + +func handleDomainEvents(domains []*org_es_model.OrgDomain, event *es_models.Event) []*org_es_model.OrgDomain { + switch event.Type { + case org_es_model.OrgDomainAdded: + domain := new(org_es_model.OrgDomain) + domain.SetData(event) + domains = append(domains, domain) + case org_es_model.OrgDomainVerified: + domain := new(org_es_model.OrgDomain) + domain.SetData(event) + for _, d := range domains { + if d.Domain == domain.Domain { + d.Verified = true + } + } + case org_es_model.OrgDomainRemoved: + domain := new(org_es_model.OrgDomain) + domain.SetData(event) + for i, d := range domains { + if d.Domain == domain.Domain { + domains[i] = domains[len(domains)-1] + domains[len(domains)-1] = nil + domains = domains[:len(domains)-1] + break + } + } + } + return domains +} + +func handleCheckDomainAllowedAsUsername(domains []*org_es_model.OrgDomain, userName string) error { + split := strings.Split(userName, "@") + if len(split) != 2 { + return nil + } + for _, d := range domains { + if d.Verified && d.Domain == split[1] { + return errors.ThrowPreconditionFailed(nil, "EVENT-us5Zw", "Errors.User.DomainNotAllowedAsUsername") + } + } + return nil +} + +func addIDPConfigExistingValidation(externalIDPs ...*model.ExternalIDP) func(...*es_models.Event) error { + return func(events ...*es_models.Event) error { + iamLoginPolicy := new(iam_es_model.LoginPolicy) + orgPolicyExisting := false + orgLoginPolicy := new(iam_es_model.LoginPolicy) + for _, event := range events { + switch event.AggregateType { + case org_es_model.OrgAggregate: + orgPolicyExisting = handleOrgLoginPolicy(event, orgPolicyExisting, orgLoginPolicy) + case iam_es_model.IAMAggregate: + handleIAMLoginPolicy(event, iamLoginPolicy) + } + } + return handleIDPConfigExisting(iamLoginPolicy, orgLoginPolicy, orgPolicyExisting, externalIDPs...) + } +} + +func handleIDPConfigExisting(iamLoginPolicy, orgLoginPolicy *iam_es_model.LoginPolicy, orgPolicyExisting bool, externalIDPs ...*model.ExternalIDP) error { + if orgPolicyExisting { + if !orgLoginPolicy.AllowExternalIdp { + return errors.ThrowPreconditionFailed(nil, "EVENT-Wmi9s", "Errors.User.ExternalIDP.NotAllowed") + } + for _, externalIDP := range externalIDPs { + existing := false + for _, provider := range orgLoginPolicy.IDPProviders { + if provider.IDPConfigID == externalIDP.IDPConfigID { + existing = true + break + } + } + if !existing { + return errors.ThrowPreconditionFailed(nil, "EVENT-Ms9it", "Errors.User.ExternalIDP.IDPConfigNotExisting") + } + } + } + if !iamLoginPolicy.AllowExternalIdp { + return errors.ThrowPreconditionFailed(nil, "EVENT-Ns7uf", "Errors.User.ExternalIDP.NotAllowed") + } + for _, externalIDP := range externalIDPs { + existing := false + for _, provider := range iamLoginPolicy.IDPProviders { + if provider.IDPConfigID == externalIDP.IDPConfigID { + existing = true + break + } + } + if !existing { + return errors.ThrowPreconditionFailed(nil, "EVENT-Ms9it", "Errors.User.ExternalIDP.IDPConfigNotExisting") + } + } + return nil +} + +func addUserNameAndIDPConfigExistingValidation(userName string, externalIDP *model.ExternalIDP) func(...*es_models.Event) error { + return func(events ...*es_models.Event) error { + domains := make([]*org_es_model.OrgDomain, 0) + iamLoginPolicy := new(iam_es_model.LoginPolicy) + orgPolicyExisting := false + orgLoginPolicy := new(iam_es_model.LoginPolicy) + + for _, event := range events { + domains = handleDomainEvents(domains, event) + + switch event.AggregateType { + case org_es_model.OrgAggregate: + orgPolicyExisting = handleOrgLoginPolicy(event, orgPolicyExisting, orgLoginPolicy) + case iam_es_model.IAMAggregate: + handleIAMLoginPolicy(event, iamLoginPolicy) + } + } + err := handleCheckDomainAllowedAsUsername(domains, userName) + if err != nil { + return err + } + return handleIDPConfigExisting(iamLoginPolicy, orgLoginPolicy, orgPolicyExisting, externalIDP) + } +} + +func handleOrgLoginPolicy(event *es_models.Event, orgPolicyExisting bool, orgLoginPolicy *iam_es_model.LoginPolicy) bool { + switch event.Type { + case org_es_model.LoginPolicyAdded: + orgPolicyExisting = true + orgLoginPolicy.SetData(event) + case org_es_model.LoginPolicyChanged: + orgLoginPolicy.SetData(event) + case org_es_model.LoginPolicyRemoved: + orgPolicyExisting = false + case org_es_model.LoginPolicyIDPProviderAdded: + idp := new(iam_es_model.IDPProvider) + idp.SetData(event) + orgLoginPolicy.IDPProviders = append(orgLoginPolicy.IDPProviders, idp) + case org_es_model.LoginPolicyIDPProviderRemoved, org_es_model.LoginPolicyIDPProviderCascadeRemoved: + idp := new(iam_es_model.IDPProvider) + idp.SetData(event) + for i, provider := range orgLoginPolicy.IDPProviders { + if provider.IDPConfigID == idp.IDPConfigID { + orgLoginPolicy.IDPProviders[i] = orgLoginPolicy.IDPProviders[len(orgLoginPolicy.IDPProviders)-1] + orgLoginPolicy.IDPProviders[len(orgLoginPolicy.IDPProviders)-1] = nil + orgLoginPolicy.IDPProviders = orgLoginPolicy.IDPProviders[:len(orgLoginPolicy.IDPProviders)-1] + break + } + } + } + return orgPolicyExisting +} + +func handleIAMLoginPolicy(event *es_models.Event, iamLoginPolicy *iam_es_model.LoginPolicy) { + switch event.Type { + case iam_es_model.LoginPolicyAdded, iam_es_model.LoginPolicyChanged: + iamLoginPolicy.SetData(event) + case iam_es_model.LoginPolicyIDPProviderAdded: + idp := new(iam_es_model.IDPProvider) + idp.SetData(event) + iamLoginPolicy.IDPProviders = append(iamLoginPolicy.IDPProviders, idp) + case iam_es_model.LoginPolicyIDPProviderRemoved, iam_es_model.LoginPolicyIDPProviderCascadeRemoved: + idp := new(iam_es_model.IDPProvider) + idp.SetData(event) + for i, provider := range iamLoginPolicy.IDPProviders { + if provider.IDPConfigID == idp.IDPConfigID { + iamLoginPolicy.IDPProviders[i] = iamLoginPolicy.IDPProviders[len(iamLoginPolicy.IDPProviders)-1] + iamLoginPolicy.IDPProviders[len(iamLoginPolicy.IDPProviders)-1] = nil + iamLoginPolicy.IDPProviders = iamLoginPolicy.IDPProviders[:len(iamLoginPolicy.IDPProviders)-1] + break + } } - split := strings.Split(userName, "@") - if len(split) != 2 { - return nil - } - for _, d := range domains { - if d.Verified && d.Domain == split[1] { - return errors.ThrowPreconditionFailed(nil, "EVENT-us5Zw", "Errors.User.DomainNotAllowedAsUsername") - } - } - return nil } } diff --git a/internal/user/repository/eventsourcing/user_test.go b/internal/user/repository/eventsourcing/user_test.go index bd7be4d19a..7d4b978ef6 100644 --- a/internal/user/repository/eventsourcing/user_test.go +++ b/internal/user/repository/eventsourcing/user_test.go @@ -358,6 +358,7 @@ func TestUserRegisterAggregate(t *testing.T) { type args struct { ctx context.Context user *model.User + externalIDP *model.ExternalIDP initCode *model.InitUserCode resourceOwner string aggCreator *models.AggregateCreator @@ -365,6 +366,7 @@ func TestUserRegisterAggregate(t *testing.T) { type res struct { eventLen int eventTypes []models.EventType + aggLen int errFunc func(err error) bool } tests := []struct { @@ -391,6 +393,29 @@ func TestUserRegisterAggregate(t *testing.T) { res: res{ eventLen: 2, eventTypes: []models.EventType{model.HumanRegistered, model.InitializedHumanCodeAdded}, + aggLen: 2, + }, + }, + { + name: "user register with erxternalIDP aggregate ok", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + user: &model.User{ + ObjectRoot: models.ObjectRoot{AggregateID: "ID"}, + UserName: "UserName", + Human: &model.Human{ + Profile: &model.Profile{DisplayName: "DisplayName"}, + Email: &model.Email{EmailAddress: "EmailAddress"}, + }, + }, + externalIDP: &model.ExternalIDP{IDPConfigID: "IDPConfigID"}, + resourceOwner: "newResourceowner", + aggCreator: models.NewAggregateCreator("Test"), + }, + res: res{ + eventLen: 2, + eventTypes: []models.EventType{model.HumanRegistered, model.HumanExternalIDPAdded}, + aggLen: 3, }, }, { @@ -406,25 +431,6 @@ func TestUserRegisterAggregate(t *testing.T) { errFunc: caos_errs.IsPreconditionFailed, }, }, - { - name: "code nil", - args: args{ - ctx: authz.NewMockContext("orgID", "userID"), - resourceOwner: "newResourceowner", - user: &model.User{ - ObjectRoot: models.ObjectRoot{AggregateID: "ID"}, - UserName: "UserName", - Human: &model.Human{ - Profile: &model.Profile{DisplayName: "DisplayName"}, - Email: &model.Email{EmailAddress: "EmailAddress"}, - }, - }, - aggCreator: models.NewAggregateCreator("Test"), - }, - res: res{ - errFunc: caos_errs.IsPreconditionFailed, - }, - }, { name: "create with init code", args: args{ @@ -444,6 +450,7 @@ func TestUserRegisterAggregate(t *testing.T) { res: res{ eventLen: 2, eventTypes: []models.EventType{model.HumanRegistered, model.InitializedHumanCodeAdded}, + aggLen: 2, }, }, { @@ -468,16 +475,20 @@ func TestUserRegisterAggregate(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - aggregates, err := UserRegisterAggregate(tt.args.ctx, tt.args.aggCreator, tt.args.user, tt.args.resourceOwner, tt.args.initCode, false) + aggregates, err := UserRegisterAggregate(tt.args.ctx, tt.args.aggCreator, tt.args.user, tt.args.externalIDP, tt.args.resourceOwner, tt.args.initCode, false) - if tt.res.errFunc == nil && len(aggregates[1].Events) != tt.res.eventLen { - t.Errorf("got wrong event len: expected: %v, actual: %v ", tt.res.eventLen, len(aggregates[1].Events)) + if tt.res.errFunc == nil && len(aggregates) != tt.res.aggLen { + t.Errorf("got wrong aggregates len: expected: %v, actual: %v ", tt.res.aggLen, len(aggregates)) + } + + if tt.res.errFunc == nil && len(aggregates[tt.res.aggLen-1].Events) != tt.res.eventLen { + t.Errorf("got wrong event len: expected: %v, actual: %v ", tt.res.eventLen, len(aggregates[tt.res.aggLen-1].Events)) } for i := 0; i < tt.res.eventLen; i++ { - if tt.res.errFunc == nil && aggregates[1].Events[i].Type != tt.res.eventTypes[i] { - t.Errorf("got wrong event type: expected: %v, actual: %v ", tt.res.eventTypes[i], aggregates[1].Events[i].Type.String()) + if tt.res.errFunc == nil && aggregates[tt.res.aggLen-1].Events[i].Type != tt.res.eventTypes[i] { + t.Errorf("got wrong event type: expected: %v, actual: %v ", tt.res.eventTypes[i], aggregates[tt.res.aggLen-1].Events[i].Type.String()) } - if tt.res.errFunc == nil && aggregates[1].Events[i].Data == nil { + if tt.res.errFunc == nil && aggregates[tt.res.aggLen-1].Events[i].Data == nil { t.Errorf("should have data in event") } } @@ -2274,3 +2285,136 @@ func TestOTPRemoveAggregate(t *testing.T) { }) } } + +func TestExternalIDPAddedAggregates(t *testing.T) { + type res struct { + aggregateCount int + isErr func(error) bool + } + type args struct { + ctx context.Context + aggCreator *models.AggregateCreator + user *model.User + externalIDP *model.ExternalIDP + } + tests := []struct { + name string + args args + res res + }{ + { + name: "no user error", + args: args{ + ctx: authz.NewMockContext("org", "user"), + aggCreator: models.NewAggregateCreator("test"), + user: nil, + }, + res: res{ + aggregateCount: 0, + isErr: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "user add external idp successful", + args: args{ + ctx: authz.NewMockContext("org", "user"), + aggCreator: models.NewAggregateCreator("test"), + user: &model.User{ + ObjectRoot: models.ObjectRoot{ + AggregateID: "AggregateID", + Sequence: 5, + }, + }, + externalIDP: &model.ExternalIDP{ + IDPConfigID: "IDPConfigID", + UserID: "UserID", + DisplayName: "DisplayName", + }, + }, + res: res{ + aggregateCount: 2, + isErr: nil, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got, err := ExternalIDPAddedAggregate(tt.args.ctx, tt.args.aggCreator, tt.args.user, tt.args.externalIDP) + if tt.res.isErr == nil && err != nil { + t.Errorf("no error expected got %T: %v", err, err) + } + if tt.res.isErr != nil && !tt.res.isErr(err) { + t.Errorf("wrong error got %T: %v", err, err) + } + if tt.res.isErr == nil && len(got) != tt.res.aggregateCount { + t.Errorf("ExternalIDPAddedAggregate() aggregate count = %d, wanted count %d", len(got), tt.res.aggregateCount) + } + }) + } +} + +func TestExternalIDPRemovedAggregates(t *testing.T) { + type res struct { + aggregateCount int + isErr func(error) bool + } + type args struct { + ctx context.Context + aggCreator *models.AggregateCreator + user *model.User + externalIDP *model.ExternalIDP + } + tests := []struct { + name string + args args + res res + }{ + { + name: "no user error", + args: args{ + ctx: authz.NewMockContext("org", "user"), + aggCreator: models.NewAggregateCreator("test"), + user: nil, + }, + res: res{ + aggregateCount: 0, + isErr: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "user removed external idp successful", + args: args{ + ctx: authz.NewMockContext("org", "user"), + aggCreator: models.NewAggregateCreator("test"), + user: &model.User{ + ObjectRoot: models.ObjectRoot{ + AggregateID: "AggregateID", + Sequence: 5, + }, + }, + externalIDP: &model.ExternalIDP{ + IDPConfigID: "IDPConfigID", + UserID: "UserID", + }, + }, + res: res{ + aggregateCount: 2, + isErr: nil, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got, err := ExternalIDPRemovedAggregate(tt.args.ctx, tt.args.aggCreator, tt.args.user, tt.args.externalIDP, false) + if tt.res.isErr == nil && err != nil { + t.Errorf("no error expected got %T: %v", err, err) + } + if tt.res.isErr != nil && !tt.res.isErr(err) { + t.Errorf("wrong error got %T: %v", err, err) + } + if tt.res.isErr == nil && len(got) != tt.res.aggregateCount { + t.Errorf("ExternalIDPRemovedAggregate() aggregate count = %d, wanted count %d", len(got), tt.res.aggregateCount) + } + }) + } +} diff --git a/internal/user/repository/view/external_idp_view.go b/internal/user/repository/view/external_idp_view.go new file mode 100644 index 0000000000..cd1e5d5f78 --- /dev/null +++ b/internal/user/repository/view/external_idp_view.go @@ -0,0 +1,117 @@ +package view + +import ( + "github.com/caos/zitadel/internal/view/repository" + + "github.com/jinzhu/gorm" + + caos_errs "github.com/caos/zitadel/internal/errors" + global_model "github.com/caos/zitadel/internal/model" + usr_model "github.com/caos/zitadel/internal/user/model" + "github.com/caos/zitadel/internal/user/repository/view/model" +) + +func ExternalIDPByExternalUserIDAndIDPConfigID(db *gorm.DB, table, externalUserID, idpConfigID string) (*model.ExternalIDPView, error) { + user := new(model.ExternalIDPView) + userIDQuery := &model.ExternalIDPSearchQuery{ + Key: usr_model.ExternalIDPSearchKeyExternalUserID, + Method: global_model.SearchMethodEquals, + Value: externalUserID, + } + idpConfigIDQuery := &model.ExternalIDPSearchQuery{ + Key: usr_model.ExternalIDPSearchKeyIdpConfigID, + Method: global_model.SearchMethodEquals, + Value: idpConfigID, + } + query := repository.PrepareGetByQuery(table, userIDQuery, idpConfigIDQuery) + err := query(db, user) + if caos_errs.IsNotFound(err) { + return nil, caos_errs.ThrowNotFound(nil, "VIEW-Mso9f", "Errors.ExternalIDP.NotFound") + } + return user, err +} + +func ExternalIDPByExternalUserIDAndIDPConfigIDAndResourceOwner(db *gorm.DB, table, externalUserID, idpConfigID, resourceOwner string) (*model.ExternalIDPView, error) { + user := new(model.ExternalIDPView) + userIDQuery := &model.ExternalIDPSearchQuery{ + Key: usr_model.ExternalIDPSearchKeyExternalUserID, + Method: global_model.SearchMethodEquals, + Value: externalUserID, + } + idpConfigIDQuery := &model.ExternalIDPSearchQuery{ + Key: usr_model.ExternalIDPSearchKeyIdpConfigID, + Method: global_model.SearchMethodEquals, + Value: idpConfigID, + } + resourceOwnerQuery := &model.ExternalIDPSearchQuery{ + Key: usr_model.ExternalIDPSearchKeyResourceOwner, + Method: global_model.SearchMethodEquals, + Value: resourceOwner, + } + query := repository.PrepareGetByQuery(table, userIDQuery, idpConfigIDQuery, resourceOwnerQuery) + err := query(db, user) + if caos_errs.IsNotFound(err) { + return nil, caos_errs.ThrowNotFound(nil, "VIEW-Sf8sd", "Errors.ExternalIDP.NotFound") + } + return user, err +} + +func ExternalIDPsByIDPConfigID(db *gorm.DB, table, idpConfigID string) ([]*model.ExternalIDPView, error) { + externalIDPs := make([]*model.ExternalIDPView, 0) + orgIDQuery := &usr_model.ExternalIDPSearchQuery{ + Key: usr_model.ExternalIDPSearchKeyIdpConfigID, + Method: global_model.SearchMethodEquals, + Value: idpConfigID, + } + query := repository.PrepareSearchQuery(table, model.ExternalIDPSearchRequest{ + Queries: []*usr_model.ExternalIDPSearchQuery{orgIDQuery}, + }) + _, err := query(db, &externalIDPs) + return externalIDPs, err +} + +func ExternalIDPsByUserID(db *gorm.DB, table, userID string) ([]*model.ExternalIDPView, error) { + externalIDPs := make([]*model.ExternalIDPView, 0) + orgIDQuery := &usr_model.ExternalIDPSearchQuery{ + Key: usr_model.ExternalIDPSearchKeyUserID, + Method: global_model.SearchMethodEquals, + Value: userID, + } + query := repository.PrepareSearchQuery(table, model.ExternalIDPSearchRequest{ + Queries: []*usr_model.ExternalIDPSearchQuery{orgIDQuery}, + }) + _, err := query(db, &externalIDPs) + return externalIDPs, err +} + +func SearchExternalIDPs(db *gorm.DB, table string, req *usr_model.ExternalIDPSearchRequest) ([]*model.ExternalIDPView, uint64, error) { + externalIDPs := make([]*model.ExternalIDPView, 0) + query := repository.PrepareSearchQuery(table, model.ExternalIDPSearchRequest{Limit: req.Limit, Offset: req.Offset, Queries: req.Queries}) + count, err := query(db, &externalIDPs) + if err != nil { + return nil, 0, err + } + return externalIDPs, count, nil +} + +func PutExternalIDPs(db *gorm.DB, table string, externalIDPs ...*model.ExternalIDPView) error { + save := repository.PrepareBulkSave(table) + u := make([]interface{}, len(externalIDPs)) + for i, idp := range externalIDPs { + u[i] = idp + } + return save(db, u...) +} + +func PutExternalIDP(db *gorm.DB, table string, idp *model.ExternalIDPView) error { + save := repository.PrepareSave(table) + return save(db, idp) +} + +func DeleteExternalIDP(db *gorm.DB, table, externalUserID, idpConfigID string) error { + delete := repository.PrepareDeleteByKeys(table, + repository.Key{Key: model.ExternalIDPSearchKey(usr_model.ExternalIDPSearchKeyExternalUserID), Value: externalUserID}, + repository.Key{Key: model.ExternalIDPSearchKey(usr_model.ExternalIDPSearchKeyIdpConfigID), Value: idpConfigID}, + ) + return delete(db) +} diff --git a/internal/user/repository/view/model/external_idp_query.go b/internal/user/repository/view/model/external_idp_query.go new file mode 100644 index 0000000000..809a9e7f77 --- /dev/null +++ b/internal/user/repository/view/model/external_idp_query.go @@ -0,0 +1,65 @@ +package model + +import ( + global_model "github.com/caos/zitadel/internal/model" + usr_model "github.com/caos/zitadel/internal/user/model" + "github.com/caos/zitadel/internal/view/repository" +) + +type ExternalIDPSearchRequest usr_model.ExternalIDPSearchRequest +type ExternalIDPSearchQuery usr_model.ExternalIDPSearchQuery +type ExternalIDPSearchKey usr_model.ExternalIDPSearchKey + +func (req ExternalIDPSearchRequest) GetLimit() uint64 { + return req.Limit +} + +func (req ExternalIDPSearchRequest) GetOffset() uint64 { + return req.Offset +} + +func (req ExternalIDPSearchRequest) GetSortingColumn() repository.ColumnKey { + if req.SortingColumn == usr_model.ExternalIDPSearchKeyUnspecified { + return nil + } + return ExternalIDPSearchKey(req.SortingColumn) +} + +func (req ExternalIDPSearchRequest) GetAsc() bool { + return req.Asc +} + +func (req ExternalIDPSearchRequest) GetQueries() []repository.SearchQuery { + result := make([]repository.SearchQuery, len(req.Queries)) + for i, q := range req.Queries { + result[i] = ExternalIDPSearchQuery{Key: q.Key, Value: q.Value, Method: q.Method} + } + return result +} + +func (req ExternalIDPSearchQuery) GetKey() repository.ColumnKey { + return ExternalIDPSearchKey(req.Key) +} + +func (req ExternalIDPSearchQuery) GetMethod() global_model.SearchMethod { + return req.Method +} + +func (req ExternalIDPSearchQuery) GetValue() interface{} { + return req.Value +} + +func (key ExternalIDPSearchKey) ToColumnName() string { + switch usr_model.ExternalIDPSearchKey(key) { + case usr_model.ExternalIDPSearchKeyExternalUserID: + return ExternalIDPKeyExternalUserID + case usr_model.ExternalIDPSearchKeyUserID: + return ExternalIDPKeyUserID + case usr_model.ExternalIDPSearchKeyIdpConfigID: + return ExternalIDPKeyIDPConfigID + case usr_model.ExternalIDPSearchKeyResourceOwner: + return ExternalIDPKeyResourceOwner + default: + return "" + } +} diff --git a/internal/user/repository/view/model/external_idps.go b/internal/user/repository/view/model/external_idps.go new file mode 100644 index 0000000000..5ed8b0532d --- /dev/null +++ b/internal/user/repository/view/model/external_idps.go @@ -0,0 +1,91 @@ +package model + +import ( + "encoding/json" + "github.com/caos/logging" + caos_errs "github.com/caos/zitadel/internal/errors" + "github.com/caos/zitadel/internal/eventstore/models" + "github.com/caos/zitadel/internal/user/model" + es_model "github.com/caos/zitadel/internal/user/repository/eventsourcing/model" + "time" +) + +const ( + ExternalIDPKeyExternalUserID = "external_user_id" + ExternalIDPKeyUserID = "user_id" + ExternalIDPKeyIDPConfigID = "idp_config_id" + ExternalIDPKeyResourceOwner = "resource_owner" +) + +type ExternalIDPView struct { + ExternalUserID string `json:"userID" gorm:"column:external_user_id;primary_key"` + IDPConfigID string `json:"idpConfigID" gorm:"column:idp_config_id;primary_key"` + UserID string `json:"-" gorm:"column:user_id"` + IDPName string `json:"-" gorm:"column:idp_name"` + UserDisplayName string `json:"displayName" gorm:"column:user_display_name"` + CreationDate time.Time `json:"-" gorm:"column:creation_date"` + ChangeDate time.Time `json:"-" gorm:"column:change_date"` + ResourceOwner string `json:"-" gorm:"column:resource_owner"` + Sequence uint64 `json:"-" gorm:"column:sequence"` +} + +func ExternalIDPViewFromModel(externalIDP *model.ExternalIDPView) *ExternalIDPView { + return &ExternalIDPView{ + UserID: externalIDP.UserID, + IDPConfigID: externalIDP.IDPConfigID, + ExternalUserID: externalIDP.ExternalUserID, + IDPName: externalIDP.IDPName, + UserDisplayName: externalIDP.UserDisplayName, + Sequence: externalIDP.Sequence, + CreationDate: externalIDP.CreationDate, + ChangeDate: externalIDP.ChangeDate, + ResourceOwner: externalIDP.ResourceOwner, + } +} + +func ExternalIDPViewToModel(externalIDP *ExternalIDPView) *model.ExternalIDPView { + return &model.ExternalIDPView{ + UserID: externalIDP.UserID, + IDPConfigID: externalIDP.IDPConfigID, + ExternalUserID: externalIDP.ExternalUserID, + IDPName: externalIDP.IDPName, + UserDisplayName: externalIDP.UserDisplayName, + Sequence: externalIDP.Sequence, + CreationDate: externalIDP.CreationDate, + ChangeDate: externalIDP.ChangeDate, + ResourceOwner: externalIDP.ResourceOwner, + } +} + +func ExternalIDPViewsToModel(externalIDPs []*ExternalIDPView) []*model.ExternalIDPView { + result := make([]*model.ExternalIDPView, len(externalIDPs)) + for i, r := range externalIDPs { + result[i] = ExternalIDPViewToModel(r) + } + return result +} + +func (i *ExternalIDPView) AppendEvent(event *models.Event) (err error) { + i.Sequence = event.Sequence + i.ChangeDate = event.CreationDate + switch event.Type { + case es_model.HumanExternalIDPAdded: + i.setRootData(event) + i.CreationDate = event.CreationDate + err = i.SetData(event) + } + return err +} + +func (r *ExternalIDPView) setRootData(event *models.Event) { + r.UserID = event.AggregateID + r.ResourceOwner = event.ResourceOwner +} + +func (r *ExternalIDPView) SetData(event *models.Event) error { + if err := json.Unmarshal(event.Data, r); err != nil { + logging.Log("EVEN-48sfs").WithError(err).Error("could not unmarshal event data") + return caos_errs.ThrowInternal(err, "MODEL-Hs8uf", "Could not unmarshal data") + } + return nil +} diff --git a/internal/user/repository/view/user_view.go b/internal/user/repository/view/user_view.go index 65c8e97192..9ae31f354c 100644 --- a/internal/user/repository/view/user_view.go +++ b/internal/user/repository/view/user_view.go @@ -46,6 +46,26 @@ func UserByLoginName(db *gorm.DB, table, loginName string) (*model.UserView, err return user, err } +func UserByLoginNameAndResourceOwner(db *gorm.DB, table, loginName, resourceOwner string) (*model.UserView, error) { + user := new(model.UserView) + loginNameQuery := &model.UserSearchQuery{ + Key: usr_model.UserSearchKeyLoginNames, + Method: global_model.SearchMethodListContains, + Value: loginName, + } + resourceOwnerQuery := &model.UserSearchQuery{ + Key: usr_model.UserSearchKeyResourceOwner, + Method: global_model.SearchMethodEquals, + Value: resourceOwner, + } + query := repository.PrepareGetByQuery(table, loginNameQuery, resourceOwnerQuery) + err := query(db, user) + if caos_errs.IsNotFound(err) { + return nil, caos_errs.ThrowNotFound(nil, "VIEW-AD4qs", "Errors.User.NotFound") + } + return user, err +} + func UsersByOrgID(db *gorm.DB, table, orgID string) ([]*model.UserView, error) { users := make([]*model.UserView, 0) orgIDQuery := &usr_model.UserSearchQuery{ diff --git a/migrations/cockroach/V1.14__auth_loginpolicy.sql b/migrations/cockroach/V1.14__auth_loginpolicy.sql new file mode 100644 index 0000000000..5aeb109a96 --- /dev/null +++ b/migrations/cockroach/V1.14__auth_loginpolicy.sql @@ -0,0 +1,105 @@ +ALTER TABLE adminapi.idp_configs ADD COLUMN oidc_idp_display_name_mapping SMALLINT; +ALTER TABLE adminapi.idp_configs ADD COLUMN oidc_idp_username_mapping SMALLINT; + +ALTER TABLE management.idp_configs ADD COLUMN oidc_idp_display_name_mapping SMALLINT; +ALTER TABLE management.idp_configs ADD COLUMN oidc_idp_username_mapping SMALLINT; + +CREATE TABLE auth.idp_configs ( + idp_config_id TEXT, + + creation_date TIMESTAMPTZ, + change_date TIMESTAMPTZ, + sequence BIGINT, + aggregate_id TEXT, + name TEXT, + logo_src BYTES, + idp_state SMALLINT, + idp_provider_type SMALLINT, + + is_oidc BOOLEAN, + oidc_client_id TEXT, + oidc_client_secret JSONB, + oidc_issuer TEXT, + oidc_scopes TEXT ARRAY, + oidc_idp_display_name_mapping SMALLINT, + oidc_idp_username_mapping SMALLINT, + + PRIMARY KEY (idp_config_id) +); + + +CREATE TABLE auth.login_policies ( + aggregate_id TEXT, + + creation_date TIMESTAMPTZ, + change_date TIMESTAMPTZ, + login_policy_state SMALLINT, + sequence BIGINT, + + allow_register BOOLEAN, + allow_username_password BOOLEAN, + allow_external_idp BOOLEAN, + + PRIMARY KEY (aggregate_id) +); + +CREATE TABLE auth.idp_providers ( + aggregate_id TEXT, + idp_config_id TEXT, + + creation_date TIMESTAMPTZ, + change_date TIMESTAMPTZ, + sequence BIGINT, + + name string, + idp_config_type SMALLINT, + idp_provider_type SMALLINT, + + PRIMARY KEY (aggregate_id, idp_config_id) +); + + +CREATE TABLE auth.user_external_idps ( + external_user_id TEXT, + idp_config_id TEXT, + user_id TEXT, + idp_name TEXT, + user_display_name TEXT, + + creation_date TIMESTAMPTZ, + change_date TIMESTAMPTZ, + sequence BIGINT, + resource_owner TEXT, + + PRIMARY KEY (external_user_id, idp_config_id) +); + +CREATE TABLE management.user_external_idps ( + idp_config_id TEXT, + external_user_id TEXT, + user_id TEXT, + idp_name TEXT, + user_display_name TEXT, + + creation_date TIMESTAMPTZ, + change_date TIMESTAMPTZ, + sequence BIGINT, + resource_owner TEXT, + + PRIMARY KEY (external_user_id, idp_config_id) +); + +CREATE TABLE adminapi.user_external_idps ( + idp_config_id TEXT, + external_user_id TEXT, + user_id TEXT, + idp_name TEXT, + user_display_name TEXT, + + creation_date TIMESTAMPTZ, + change_date TIMESTAMPTZ, + sequence BIGINT, + resource_owner TEXT, + + PRIMARY KEY (external_user_id, idp_config_id) +); \ No newline at end of file diff --git a/pkg/grpc/admin/admin.pb.go b/pkg/grpc/admin/admin.pb.go index 91b7bd6d75..d28d012bef 100644 --- a/pkg/grpc/admin/admin.pb.go +++ b/pkg/grpc/admin/admin.pb.go @@ -522,6 +522,55 @@ func (IdpState) EnumDescriptor() ([]byte, []int) { return file_admin_proto_rawDescGZIP(), []int{8} } +type OIDCMappingField int32 + +const ( + OIDCMappingField_OIDCMAPPINGFIELD_UNSPECIFIED OIDCMappingField = 0 + OIDCMappingField_OIDCMAPPINGFIELD_PREFERRED_USERNAME OIDCMappingField = 1 + OIDCMappingField_OIDCMAPPINGFIELD_EMAIL OIDCMappingField = 2 +) + +// Enum value maps for OIDCMappingField. +var ( + OIDCMappingField_name = map[int32]string{ + 0: "OIDCMAPPINGFIELD_UNSPECIFIED", + 1: "OIDCMAPPINGFIELD_PREFERRED_USERNAME", + 2: "OIDCMAPPINGFIELD_EMAIL", + } + OIDCMappingField_value = map[string]int32{ + "OIDCMAPPINGFIELD_UNSPECIFIED": 0, + "OIDCMAPPINGFIELD_PREFERRED_USERNAME": 1, + "OIDCMAPPINGFIELD_EMAIL": 2, + } +) + +func (x OIDCMappingField) Enum() *OIDCMappingField { + p := new(OIDCMappingField) + *p = x + return p +} + +func (x OIDCMappingField) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (OIDCMappingField) Descriptor() protoreflect.EnumDescriptor { + return file_admin_proto_enumTypes[9].Descriptor() +} + +func (OIDCMappingField) Type() protoreflect.EnumType { + return &file_admin_proto_enumTypes[9] +} + +func (x OIDCMappingField) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use OIDCMappingField.Descriptor instead. +func (OIDCMappingField) EnumDescriptor() ([]byte, []int) { + return file_admin_proto_rawDescGZIP(), []int{9} +} + type IdpSearchKey int32 const ( @@ -555,11 +604,11 @@ func (x IdpSearchKey) String() string { } func (IdpSearchKey) Descriptor() protoreflect.EnumDescriptor { - return file_admin_proto_enumTypes[9].Descriptor() + return file_admin_proto_enumTypes[10].Descriptor() } func (IdpSearchKey) Type() protoreflect.EnumType { - return &file_admin_proto_enumTypes[9] + return &file_admin_proto_enumTypes[10] } func (x IdpSearchKey) Number() protoreflect.EnumNumber { @@ -568,7 +617,7 @@ func (x IdpSearchKey) Number() protoreflect.EnumNumber { // Deprecated: Use IdpSearchKey.Descriptor instead. func (IdpSearchKey) EnumDescriptor() ([]byte, []int) { - return file_admin_proto_rawDescGZIP(), []int{9} + return file_admin_proto_rawDescGZIP(), []int{10} } type IdpType int32 @@ -604,11 +653,11 @@ func (x IdpType) String() string { } func (IdpType) Descriptor() protoreflect.EnumDescriptor { - return file_admin_proto_enumTypes[10].Descriptor() + return file_admin_proto_enumTypes[11].Descriptor() } func (IdpType) Type() protoreflect.EnumType { - return &file_admin_proto_enumTypes[10] + return &file_admin_proto_enumTypes[11] } func (x IdpType) Number() protoreflect.EnumNumber { @@ -617,7 +666,7 @@ func (x IdpType) Number() protoreflect.EnumNumber { // Deprecated: Use IdpType.Descriptor instead. func (IdpType) EnumDescriptor() ([]byte, []int) { - return file_admin_proto_rawDescGZIP(), []int{10} + return file_admin_proto_rawDescGZIP(), []int{11} } type OrgID struct { @@ -3471,12 +3520,14 @@ type OidcIdpConfigCreate struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - LogoSrc []byte `protobuf:"bytes,2,opt,name=logo_src,json=logoSrc,proto3" json:"logo_src,omitempty"` - ClientId string `protobuf:"bytes,3,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` - ClientSecret string `protobuf:"bytes,4,opt,name=client_secret,json=clientSecret,proto3" json:"client_secret,omitempty"` - Issuer string `protobuf:"bytes,5,opt,name=issuer,proto3" json:"issuer,omitempty"` - Scopes []string `protobuf:"bytes,6,rep,name=scopes,proto3" json:"scopes,omitempty"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + LogoSrc []byte `protobuf:"bytes,2,opt,name=logo_src,json=logoSrc,proto3" json:"logo_src,omitempty"` + ClientId string `protobuf:"bytes,3,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` + ClientSecret string `protobuf:"bytes,4,opt,name=client_secret,json=clientSecret,proto3" json:"client_secret,omitempty"` + Issuer string `protobuf:"bytes,5,opt,name=issuer,proto3" json:"issuer,omitempty"` + Scopes []string `protobuf:"bytes,6,rep,name=scopes,proto3" json:"scopes,omitempty"` + IdpDisplayNameMapping OIDCMappingField `protobuf:"varint,7,opt,name=idp_display_name_mapping,json=idpDisplayNameMapping,proto3,enum=caos.zitadel.admin.api.v1.OIDCMappingField" json:"idp_display_name_mapping,omitempty"` + UsernameMapping OIDCMappingField `protobuf:"varint,8,opt,name=username_mapping,json=usernameMapping,proto3,enum=caos.zitadel.admin.api.v1.OIDCMappingField" json:"username_mapping,omitempty"` } func (x *OidcIdpConfigCreate) Reset() { @@ -3553,16 +3604,32 @@ func (x *OidcIdpConfigCreate) GetScopes() []string { return nil } +func (x *OidcIdpConfigCreate) GetIdpDisplayNameMapping() OIDCMappingField { + if x != nil { + return x.IdpDisplayNameMapping + } + return OIDCMappingField_OIDCMAPPINGFIELD_UNSPECIFIED +} + +func (x *OidcIdpConfigCreate) GetUsernameMapping() OIDCMappingField { + if x != nil { + return x.UsernameMapping + } + return OIDCMappingField_OIDCMAPPINGFIELD_UNSPECIFIED +} + type OidcIdpConfigUpdate struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - IdpId string `protobuf:"bytes,1,opt,name=idp_id,json=idpId,proto3" json:"idp_id,omitempty"` - ClientId string `protobuf:"bytes,2,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` - ClientSecret string `protobuf:"bytes,3,opt,name=client_secret,json=clientSecret,proto3" json:"client_secret,omitempty"` - Issuer string `protobuf:"bytes,4,opt,name=issuer,proto3" json:"issuer,omitempty"` - Scopes []string `protobuf:"bytes,5,rep,name=scopes,proto3" json:"scopes,omitempty"` + IdpId string `protobuf:"bytes,1,opt,name=idp_id,json=idpId,proto3" json:"idp_id,omitempty"` + ClientId string `protobuf:"bytes,2,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` + ClientSecret string `protobuf:"bytes,3,opt,name=client_secret,json=clientSecret,proto3" json:"client_secret,omitempty"` + Issuer string `protobuf:"bytes,4,opt,name=issuer,proto3" json:"issuer,omitempty"` + Scopes []string `protobuf:"bytes,5,rep,name=scopes,proto3" json:"scopes,omitempty"` + IdpDisplayNameMapping OIDCMappingField `protobuf:"varint,6,opt,name=idp_display_name_mapping,json=idpDisplayNameMapping,proto3,enum=caos.zitadel.admin.api.v1.OIDCMappingField" json:"idp_display_name_mapping,omitempty"` + UsernameMapping OIDCMappingField `protobuf:"varint,7,opt,name=username_mapping,json=usernameMapping,proto3,enum=caos.zitadel.admin.api.v1.OIDCMappingField" json:"username_mapping,omitempty"` } func (x *OidcIdpConfigUpdate) Reset() { @@ -3632,6 +3699,20 @@ func (x *OidcIdpConfigUpdate) GetScopes() []string { return nil } +func (x *OidcIdpConfigUpdate) GetIdpDisplayNameMapping() OIDCMappingField { + if x != nil { + return x.IdpDisplayNameMapping + } + return OIDCMappingField_OIDCMAPPINGFIELD_UNSPECIFIED +} + +func (x *OidcIdpConfigUpdate) GetUsernameMapping() OIDCMappingField { + if x != nil { + return x.UsernameMapping + } + return OIDCMappingField_OIDCMAPPINGFIELD_UNSPECIFIED +} + type IdpSearchResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -3846,9 +3927,11 @@ type OidcIdpConfigView struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ClientId string `protobuf:"bytes,1,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` - Issuer string `protobuf:"bytes,2,opt,name=issuer,proto3" json:"issuer,omitempty"` - Scopes []string `protobuf:"bytes,3,rep,name=scopes,proto3" json:"scopes,omitempty"` + ClientId string `protobuf:"bytes,1,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` + Issuer string `protobuf:"bytes,2,opt,name=issuer,proto3" json:"issuer,omitempty"` + Scopes []string `protobuf:"bytes,3,rep,name=scopes,proto3" json:"scopes,omitempty"` + IdpDisplayNameMapping OIDCMappingField `protobuf:"varint,4,opt,name=idp_display_name_mapping,json=idpDisplayNameMapping,proto3,enum=caos.zitadel.admin.api.v1.OIDCMappingField" json:"idp_display_name_mapping,omitempty"` + UsernameMapping OIDCMappingField `protobuf:"varint,5,opt,name=username_mapping,json=usernameMapping,proto3,enum=caos.zitadel.admin.api.v1.OIDCMappingField" json:"username_mapping,omitempty"` } func (x *OidcIdpConfigView) Reset() { @@ -3904,6 +3987,20 @@ func (x *OidcIdpConfigView) GetScopes() []string { return nil } +func (x *OidcIdpConfigView) GetIdpDisplayNameMapping() OIDCMappingField { + if x != nil { + return x.IdpDisplayNameMapping + } + return OIDCMappingField_OIDCMAPPINGFIELD_UNSPECIFIED +} + +func (x *OidcIdpConfigView) GetUsernameMapping() OIDCMappingField { + if x != nil { + return x.UsernameMapping + } + return OIDCMappingField_OIDCMAPPINGFIELD_UNSPECIFIED +} + type IdpSearchRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -4876,7 +4973,7 @@ var file_admin_proto_rawDesc = []byte{ 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x22, 0xe6, 0x01, 0x0a, 0x13, 0x4f, + 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x22, 0xa4, 0x03, 0x0a, 0x13, 0x4f, 0x69, 0x64, 0x63, 0x49, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0xc8, 0x01, 0x52, 0x04, 0x6e, 0x61, @@ -4891,543 +4988,586 @@ var file_admin_proto_rawDesc = []byte{ 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0xc8, 0x01, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x6f, - 0x70, 0x65, 0x73, 0x22, 0xbf, 0x01, 0x0a, 0x13, 0x4f, 0x69, 0x64, 0x63, 0x49, 0x64, 0x70, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x06, 0x69, - 0x64, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, - 0x72, 0x02, 0x10, 0x01, 0x52, 0x05, 0x69, 0x64, 0x70, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x09, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, - 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0xc8, 0x01, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, - 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x22, 0x0a, 0x06, 0x69, 0x73, 0x73, - 0x75, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, - 0x10, 0x01, 0x18, 0xc8, 0x01, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x12, 0x16, 0x0a, - 0x06, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x73, - 0x63, 0x6f, 0x70, 0x65, 0x73, 0x22, 0x92, 0x02, 0x0a, 0x11, 0x49, 0x64, 0x70, 0x53, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x3a, 0x0a, 0x06, - 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, - 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x56, 0x69, 0x65, 0x77, - 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x2d, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x63, - 0x65, 0x73, 0x73, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x53, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x41, 0x0a, 0x0e, 0x76, 0x69, 0x65, 0x77, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 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, 0x0d, 0x76, 0x69, 0x65, - 0x77, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x81, 0x03, 0x0a, 0x07, 0x49, - 0x64, 0x70, 0x56, 0x69, 0x65, 0x77, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x39, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, + 0x70, 0x65, 0x73, 0x12, 0x64, 0x0a, 0x18, 0x69, 0x64, 0x70, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6c, + 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x49, 0x64, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, - 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, - 0x74, 0x65, 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, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, - 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, - 0x65, 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, 0x70, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6c, 0x6f, 0x67, 0x6f, 0x5f, 0x73, 0x72, 0x63, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6c, 0x6f, 0x67, 0x6f, 0x53, 0x72, 0x63, 0x12, 0x4f, - 0x0a, 0x0b, 0x6f, 0x69, 0x64, 0x63, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, + 0x31, 0x2e, 0x4f, 0x49, 0x44, 0x43, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x52, 0x15, 0x69, 0x64, 0x70, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, + 0x6d, 0x65, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x56, 0x0a, 0x10, 0x75, 0x73, 0x65, + 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x4f, 0x69, 0x64, 0x63, 0x49, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x56, 0x69, 0x65, - 0x77, 0x48, 0x00, 0x52, 0x0a, 0x6f, 0x69, 0x64, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, - 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x69, - 0x64, 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x22, 0x60, - 0x0a, 0x11, 0x4f, 0x69, 0x64, 0x63, 0x49, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x56, - 0x69, 0x65, 0x77, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, - 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x6f, 0x70, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, - 0x22, 0x85, 0x01, 0x0a, 0x10, 0x49, 0x64, 0x70, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, - 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x69, - 0x6d, 0x69, 0x74, 0x12, 0x43, 0x0a, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, - 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x49, 0x64, 0x70, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, - 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x22, 0xac, 0x01, 0x0a, 0x0e, 0x49, 0x64, 0x70, - 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x43, 0x0a, 0x03, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, + 0x4f, 0x49, 0x44, 0x43, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x52, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x22, 0xfd, 0x02, 0x0a, 0x13, 0x4f, 0x69, 0x64, 0x63, 0x49, 0x64, 0x70, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x06, 0x69, 0x64, 0x70, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, + 0x10, 0x01, 0x52, 0x05, 0x69, 0x64, 0x70, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x09, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, + 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0xc8, 0x01, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, + 0x72, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x22, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, + 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, + 0x18, 0xc8, 0x01, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, + 0x63, 0x6f, 0x70, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x6f, + 0x70, 0x65, 0x73, 0x12, 0x64, 0x0a, 0x18, 0x69, 0x64, 0x70, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6c, + 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, + 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x4f, 0x49, 0x44, 0x43, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x52, 0x15, 0x69, 0x64, 0x70, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, + 0x6d, 0x65, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x56, 0x0a, 0x10, 0x75, 0x73, 0x65, + 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, + 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x4f, 0x49, 0x44, 0x43, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x52, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x22, 0x92, 0x02, 0x0a, 0x11, 0x49, 0x64, 0x70, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, + 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x72, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x3a, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x65, - 0x79, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x82, 0x01, 0x02, 0x20, 0x00, 0x52, 0x03, 0x6b, 0x65, 0x79, - 0x12, 0x3f, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x27, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, - 0x64, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xa1, 0x01, 0x0a, 0x12, 0x44, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x36, - 0x0a, 0x17, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, - 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x15, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x50, 0x61, - 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, - 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x2c, 0x0a, - 0x12, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, - 0x69, 0x64, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x61, 0x6c, 0x6c, 0x6f, 0x77, - 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x64, 0x70, 0x22, 0x3c, 0x0a, 0x0d, 0x49, - 0x64, 0x70, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, 0x44, 0x12, 0x2b, 0x0a, 0x0d, - 0x69, 0x64, 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0b, 0x69, 0x64, - 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x64, 0x22, 0xa5, 0x01, 0x0a, 0x16, 0x44, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x56, 0x69, 0x65, 0x77, 0x12, 0x36, 0x0a, 0x17, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x75, 0x73, - 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, - 0x6e, 0x61, 0x6d, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x25, 0x0a, 0x0e, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x12, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x65, 0x78, 0x74, - 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x10, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x64, - 0x70, 0x22, 0x81, 0x01, 0x0a, 0x0f, 0x49, 0x64, 0x70, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x72, 0x56, 0x69, 0x65, 0x77, 0x12, 0x22, 0x0a, 0x0d, 0x69, 0x64, 0x70, 0x5f, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x64, - 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x36, 0x0a, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x63, 0x61, - 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0xa2, 0x02, 0x0a, 0x19, 0x49, 0x64, 0x70, 0x50, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x12, 0x42, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x04, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, - 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x49, 0x64, 0x70, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, - 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x2d, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x63, - 0x65, 0x73, 0x73, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x53, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x41, 0x0a, 0x0e, 0x76, 0x69, 0x65, 0x77, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 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, 0x0d, 0x76, 0x69, 0x65, - 0x77, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x48, 0x0a, 0x18, 0x49, 0x64, - 0x70, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, - 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x2a, 0x50, 0x0a, 0x08, 0x4f, 0x72, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x12, 0x18, 0x0a, 0x14, 0x4f, 0x52, 0x47, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, - 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4f, 0x52, - 0x47, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, - 0x15, 0x0a, 0x11, 0x4f, 0x52, 0x47, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x49, 0x4e, 0x41, 0x43, - 0x54, 0x49, 0x56, 0x45, 0x10, 0x02, 0x2a, 0x74, 0x0a, 0x0c, 0x4f, 0x72, 0x67, 0x53, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x12, 0x1c, 0x0a, 0x18, 0x4f, 0x52, 0x47, 0x53, 0x45, 0x41, - 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, - 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x4f, 0x52, 0x47, 0x53, 0x45, 0x41, 0x52, 0x43, - 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x4f, - 0x52, 0x47, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x44, 0x4f, 0x4d, 0x41, - 0x49, 0x4e, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x4f, 0x52, 0x47, 0x53, 0x45, 0x41, 0x52, 0x43, - 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0x03, 0x2a, 0x6c, 0x0a, 0x0f, - 0x4f, 0x72, 0x67, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, - 0x1a, 0x0a, 0x16, 0x4f, 0x52, 0x47, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4d, 0x45, 0x54, 0x48, - 0x4f, 0x44, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x53, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x4f, - 0x52, 0x47, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x53, - 0x54, 0x41, 0x52, 0x54, 0x53, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, - 0x4f, 0x52, 0x47, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, - 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x53, 0x10, 0x02, 0x2a, 0xaf, 0x01, 0x0a, 0x09, 0x55, - 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x55, 0x53, 0x45, 0x52, - 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, - 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x55, 0x53, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x45, - 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x55, 0x53, 0x45, - 0x52, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x49, 0x4e, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, - 0x02, 0x12, 0x15, 0x0a, 0x11, 0x55, 0x53, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x44, - 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x55, 0x53, 0x45, 0x52, - 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4c, 0x4f, 0x43, 0x4b, 0x45, 0x44, 0x10, 0x04, 0x12, 0x15, - 0x0a, 0x11, 0x55, 0x53, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x55, 0x53, 0x50, - 0x45, 0x4e, 0x44, 0x10, 0x05, 0x12, 0x15, 0x0a, 0x11, 0x55, 0x53, 0x45, 0x52, 0x53, 0x54, 0x41, - 0x54, 0x45, 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x49, 0x41, 0x4c, 0x10, 0x06, 0x2a, 0x58, 0x0a, 0x06, - 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x12, 0x47, 0x45, 0x4e, 0x44, 0x45, 0x52, - 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x11, - 0x0a, 0x0d, 0x47, 0x45, 0x4e, 0x44, 0x45, 0x52, 0x5f, 0x46, 0x45, 0x4d, 0x41, 0x4c, 0x45, 0x10, - 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x47, 0x45, 0x4e, 0x44, 0x45, 0x52, 0x5f, 0x4d, 0x41, 0x4c, 0x45, - 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x47, 0x45, 0x4e, 0x44, 0x45, 0x52, 0x5f, 0x44, 0x49, 0x56, - 0x45, 0x52, 0x53, 0x45, 0x10, 0x03, 0x2a, 0x41, 0x0a, 0x0e, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, - 0x65, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x4d, 0x41, 0x43, 0x48, - 0x49, 0x4e, 0x45, 0x4b, 0x45, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, - 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4d, 0x41, 0x43, 0x48, 0x49, 0x4e, 0x45, 0x4b, - 0x45, 0x59, 0x5f, 0x4a, 0x53, 0x4f, 0x4e, 0x10, 0x01, 0x2a, 0xbb, 0x01, 0x0a, 0x12, 0x49, 0x61, - 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x65, 0x79, - 0x12, 0x22, 0x0a, 0x1e, 0x49, 0x41, 0x4d, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x53, 0x45, 0x41, - 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, - 0x45, 0x44, 0x10, 0x00, 0x12, 0x21, 0x0a, 0x1d, 0x49, 0x41, 0x4d, 0x4d, 0x45, 0x4d, 0x42, 0x45, - 0x52, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, - 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x49, 0x41, 0x4d, 0x4d, 0x45, - 0x4d, 0x42, 0x45, 0x52, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x4c, 0x41, - 0x53, 0x54, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x49, 0x41, 0x4d, - 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, - 0x45, 0x4d, 0x41, 0x49, 0x4c, 0x10, 0x03, 0x12, 0x1e, 0x0a, 0x1a, 0x49, 0x41, 0x4d, 0x4d, 0x45, - 0x4d, 0x42, 0x45, 0x52, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x55, 0x53, - 0x45, 0x52, 0x5f, 0x49, 0x44, 0x10, 0x04, 0x2a, 0xea, 0x02, 0x0a, 0x0c, 0x53, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x45, 0x41, 0x52, - 0x43, 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x53, 0x10, - 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, - 0x44, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x53, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x10, 0x01, 0x12, - 0x19, 0x0a, 0x15, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, - 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x53, 0x10, 0x02, 0x12, 0x23, 0x0a, 0x1f, 0x53, 0x45, - 0x41, 0x52, 0x43, 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, - 0x53, 0x5f, 0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x5f, 0x43, 0x41, 0x53, 0x45, 0x10, 0x03, 0x12, - 0x28, 0x0a, 0x24, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, - 0x53, 0x54, 0x41, 0x52, 0x54, 0x53, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x49, 0x47, 0x4e, 0x4f, - 0x52, 0x45, 0x5f, 0x43, 0x41, 0x53, 0x45, 0x10, 0x04, 0x12, 0x25, 0x0a, 0x21, 0x53, 0x45, 0x41, - 0x52, 0x43, 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, - 0x4e, 0x53, 0x5f, 0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x5f, 0x43, 0x41, 0x53, 0x45, 0x10, 0x05, - 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, - 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x53, 0x10, 0x06, 0x12, 0x1d, 0x0a, - 0x19, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x47, 0x52, - 0x45, 0x41, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x48, 0x41, 0x4e, 0x10, 0x07, 0x12, 0x1a, 0x0a, 0x16, - 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x4c, 0x45, 0x53, - 0x53, 0x5f, 0x54, 0x48, 0x41, 0x4e, 0x10, 0x08, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x45, 0x41, 0x52, - 0x43, 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x49, 0x53, 0x5f, 0x4f, 0x4e, 0x45, 0x5f, - 0x4f, 0x46, 0x10, 0x09, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4d, 0x45, - 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, - 0x4e, 0x53, 0x10, 0x0a, 0x2a, 0x62, 0x0a, 0x08, 0x49, 0x64, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x12, 0x1e, 0x0a, 0x1a, 0x49, 0x44, 0x50, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x53, 0x54, 0x41, - 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, - 0x12, 0x19, 0x0a, 0x15, 0x49, 0x44, 0x50, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x53, 0x54, 0x41, - 0x54, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x49, - 0x44, 0x50, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x49, 0x4e, - 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x02, 0x2a, 0x63, 0x0a, 0x0c, 0x49, 0x64, 0x70, 0x53, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x12, 0x1c, 0x0a, 0x18, 0x49, 0x44, 0x50, 0x53, - 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, - 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x49, 0x44, 0x50, 0x53, 0x45, 0x41, - 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x49, 0x44, 0x50, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, - 0x47, 0x5f, 0x49, 0x44, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x49, 0x44, 0x50, 0x53, 0x45, 0x41, - 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x02, 0x2a, 0x46, 0x0a, - 0x07, 0x49, 0x64, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x49, 0x44, 0x50, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x49, 0x44, 0x50, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x49, 0x44, - 0x43, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x49, 0x44, 0x50, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, - 0x41, 0x4d, 0x4c, 0x10, 0x02, 0x32, 0x86, 0x25, 0x0a, 0x0c, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x4b, 0x0a, 0x07, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, - 0x7a, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x22, 0x10, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0a, 0x12, 0x08, 0x2f, 0x68, 0x65, 0x61, 0x6c, - 0x74, 0x68, 0x7a, 0x12, 0x47, 0x0a, 0x05, 0x52, 0x65, 0x61, 0x64, 0x79, 0x12, 0x16, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x0e, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x08, 0x12, 0x06, 0x2f, 0x72, 0x65, 0x61, 0x64, 0x79, 0x12, 0x4e, 0x0a, 0x08, - 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x1a, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x22, 0x11, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x0b, 0x12, 0x09, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x12, 0x8f, 0x01, 0x0a, - 0x0b, 0x49, 0x73, 0x4f, 0x72, 0x67, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x12, 0x2b, 0x2e, 0x63, - 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4f, - 0x72, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x63, 0x61, 0x6f, 0x73, - 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4f, 0x72, 0x67, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x12, - 0x0f, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x5f, 0x69, 0x73, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, - 0x82, 0xb5, 0x18, 0x0a, 0x0a, 0x08, 0x69, 0x61, 0x6d, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0x70, - 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x42, 0x79, 0x49, 0x44, 0x12, 0x20, 0x2e, 0x63, - 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x49, 0x44, 0x1a, 0x1e, - 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x22, 0x20, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0c, 0x12, 0x0a, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x69, - 0x64, 0x7d, 0x82, 0xb5, 0x18, 0x0a, 0x0a, 0x08, 0x69, 0x61, 0x6d, 0x2e, 0x72, 0x65, 0x61, 0x64, - 0x12, 0x8f, 0x01, 0x0a, 0x0a, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4f, 0x72, 0x67, 0x73, 0x12, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x56, 0x69, 0x65, 0x77, 0x52, 0x06, 0x72, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x12, 0x2d, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, + 0x64, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x11, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x53, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x12, 0x41, 0x0a, 0x0e, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 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, 0x0d, 0x76, 0x69, 0x65, 0x77, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x81, 0x03, 0x0a, 0x07, 0x49, 0x64, 0x70, 0x56, 0x69, + 0x65, 0x77, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, + 0x69, 0x64, 0x12, 0x39, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x23, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, + 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, + 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3f, 0x0a, + 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 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, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x3b, + 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 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, 0x70, 0x52, + 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x19, 0x0a, 0x08, 0x6c, 0x6f, 0x67, 0x6f, 0x5f, 0x73, 0x72, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x07, 0x6c, 0x6f, 0x67, 0x6f, 0x53, 0x72, 0x63, 0x12, 0x4f, 0x0a, 0x0b, 0x6f, 0x69, + 0x64, 0x63, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2c, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x69, 0x64, 0x63, + 0x49, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x56, 0x69, 0x65, 0x77, 0x48, 0x00, 0x52, + 0x0a, 0x6f, 0x69, 0x64, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x73, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x69, 0x64, 0x70, 0x5f, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x22, 0x9e, 0x02, 0x0a, 0x11, 0x4f, + 0x69, 0x64, 0x63, 0x49, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x56, 0x69, 0x65, 0x77, + 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, + 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, + 0x73, 0x73, 0x75, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x12, 0x64, 0x0a, + 0x18, 0x69, 0x64, 0x70, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x53, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x63, - 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x53, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x12, 0x22, 0x0d, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0a, 0x0a, 0x08, 0x69, 0x61, 0x6d, 0x2e, 0x72, 0x65, - 0x61, 0x64, 0x12, 0x8b, 0x01, 0x0a, 0x08, 0x53, 0x65, 0x74, 0x55, 0x70, 0x4f, 0x72, 0x67, 0x12, - 0x2a, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x53, - 0x65, 0x74, 0x55, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x63, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x49, 0x44, 0x43, + 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x15, 0x69, 0x64, + 0x70, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x70, 0x70, + 0x69, 0x6e, 0x67, 0x12, 0x56, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x5f, + 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, + 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x49, 0x44, 0x43, 0x4d, 0x61, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x0f, 0x75, 0x73, 0x65, 0x72, + 0x6e, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x22, 0x85, 0x01, 0x0a, 0x10, + 0x49, 0x64, 0x70, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x43, + 0x0a, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x29, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x53, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x07, 0x71, 0x75, 0x65, 0x72, + 0x69, 0x65, 0x73, 0x22, 0xac, 0x01, 0x0a, 0x0e, 0x49, 0x64, 0x70, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x43, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, + 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x49, 0x64, 0x70, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x42, 0x08, 0xfa, 0x42, + 0x05, 0x82, 0x01, 0x02, 0x20, 0x00, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x3f, 0x0a, 0x06, 0x6d, + 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x53, 0x65, 0x74, 0x55, 0x70, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, - 0x22, 0x0c, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x5f, 0x73, 0x65, 0x74, 0x75, 0x70, 0x3a, 0x01, - 0x2a, 0x82, 0xb5, 0x18, 0x0b, 0x0a, 0x09, 0x69, 0x61, 0x6d, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, - 0x12, 0x9c, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x49, 0x61, 0x6d, 0x50, 0x6f, - 0x6c, 0x69, 0x63, 0x79, 0x12, 0x29, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4d, 0x65, + 0x74, 0x68, 0x6f, 0x64, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x14, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0xa1, 0x01, 0x0a, 0x12, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4c, 0x6f, + 0x67, 0x69, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x36, 0x0a, 0x17, 0x61, 0x6c, 0x6c, + 0x6f, 0x77, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x73, 0x73, + 0x77, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, + 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, + 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x12, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x70, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x45, 0x78, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x6c, 0x49, 0x64, 0x70, 0x22, 0x3c, 0x0a, 0x0d, 0x49, 0x64, 0x70, 0x50, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, 0x44, 0x12, 0x2b, 0x0a, 0x0d, 0x69, 0x64, 0x70, 0x5f, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, + 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0b, 0x69, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x49, 0x64, 0x22, 0xa5, 0x01, 0x0a, 0x16, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x56, 0x69, 0x65, 0x77, 0x12, + 0x36, 0x0a, 0x17, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, + 0x65, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x15, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x50, + 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, + 0x5f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x2c, + 0x0a, 0x12, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x5f, 0x69, 0x64, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x64, 0x70, 0x22, 0x81, 0x01, 0x0a, + 0x0f, 0x49, 0x64, 0x70, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, + 0x12, 0x22, 0x0a, 0x0d, 0x69, 0x64, 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x36, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, + 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x22, 0xa2, 0x02, 0x0a, 0x19, 0x49, 0x64, 0x70, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x21, 0x0a, 0x0c, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, + 0x42, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x2a, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x50, + 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x52, 0x06, 0x72, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x12, 0x2d, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, + 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x11, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x65, 0x12, 0x41, 0x0a, 0x0e, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 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, 0x0d, 0x76, 0x69, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x48, 0x0a, 0x18, 0x49, 0x64, 0x70, 0x50, 0x72, 0x6f, 0x76, + 0x69, 0x64, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x2a, + 0x50, 0x0a, 0x08, 0x4f, 0x72, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x14, 0x4f, + 0x52, 0x47, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4f, 0x52, 0x47, 0x53, 0x54, 0x41, 0x54, + 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x4f, 0x52, + 0x47, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x49, 0x4e, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, + 0x02, 0x2a, 0x74, 0x0a, 0x0c, 0x4f, 0x72, 0x67, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x65, + 0x79, 0x12, 0x1c, 0x0a, 0x18, 0x4f, 0x52, 0x47, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, + 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x15, 0x0a, 0x11, 0x4f, 0x52, 0x47, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, + 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x4f, 0x52, 0x47, 0x53, 0x45, 0x41, + 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x44, 0x4f, 0x4d, 0x41, 0x49, 0x4e, 0x10, 0x02, 0x12, + 0x16, 0x0a, 0x12, 0x4f, 0x52, 0x47, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0x03, 0x2a, 0x6c, 0x0a, 0x0f, 0x4f, 0x72, 0x67, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1a, 0x0a, 0x16, 0x4f, 0x52, + 0x47, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x45, 0x51, + 0x55, 0x41, 0x4c, 0x53, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x4f, 0x52, 0x47, 0x53, 0x45, 0x41, + 0x52, 0x43, 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x53, + 0x5f, 0x57, 0x49, 0x54, 0x48, 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x4f, 0x52, 0x47, 0x53, 0x45, + 0x41, 0x52, 0x43, 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x41, + 0x49, 0x4e, 0x53, 0x10, 0x02, 0x2a, 0xaf, 0x01, 0x0a, 0x09, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x55, 0x53, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x45, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, + 0x0a, 0x10, 0x55, 0x53, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, + 0x56, 0x45, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x55, 0x53, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, + 0x45, 0x5f, 0x49, 0x4e, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, + 0x55, 0x53, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, + 0x44, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x55, 0x53, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x45, + 0x5f, 0x4c, 0x4f, 0x43, 0x4b, 0x45, 0x44, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x55, 0x53, 0x45, + 0x52, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x55, 0x53, 0x50, 0x45, 0x4e, 0x44, 0x10, 0x05, + 0x12, 0x15, 0x0a, 0x11, 0x55, 0x53, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x49, 0x4e, + 0x49, 0x54, 0x49, 0x41, 0x4c, 0x10, 0x06, 0x2a, 0x58, 0x0a, 0x06, 0x47, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x12, 0x16, 0x0a, 0x12, 0x47, 0x45, 0x4e, 0x44, 0x45, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x47, 0x45, 0x4e, + 0x44, 0x45, 0x52, 0x5f, 0x46, 0x45, 0x4d, 0x41, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, + 0x47, 0x45, 0x4e, 0x44, 0x45, 0x52, 0x5f, 0x4d, 0x41, 0x4c, 0x45, 0x10, 0x02, 0x12, 0x12, 0x0a, + 0x0e, 0x47, 0x45, 0x4e, 0x44, 0x45, 0x52, 0x5f, 0x44, 0x49, 0x56, 0x45, 0x52, 0x53, 0x45, 0x10, + 0x03, 0x2a, 0x41, 0x0a, 0x0e, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x4b, 0x65, 0x79, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x4d, 0x41, 0x43, 0x48, 0x49, 0x4e, 0x45, 0x4b, 0x45, + 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x13, 0x0a, 0x0f, 0x4d, 0x41, 0x43, 0x48, 0x49, 0x4e, 0x45, 0x4b, 0x45, 0x59, 0x5f, 0x4a, 0x53, + 0x4f, 0x4e, 0x10, 0x01, 0x2a, 0xbb, 0x01, 0x0a, 0x12, 0x49, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x12, 0x22, 0x0a, 0x1e, 0x49, + 0x41, 0x4d, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, + 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x21, 0x0a, 0x1d, 0x49, 0x41, 0x4d, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x53, 0x45, 0x41, 0x52, + 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x5f, 0x4e, 0x41, 0x4d, 0x45, + 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x49, 0x41, 0x4d, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x53, + 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x4c, 0x41, 0x53, 0x54, 0x5f, 0x4e, 0x41, + 0x4d, 0x45, 0x10, 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x49, 0x41, 0x4d, 0x4d, 0x45, 0x4d, 0x42, 0x45, + 0x52, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x45, 0x4d, 0x41, 0x49, 0x4c, + 0x10, 0x03, 0x12, 0x1e, 0x0a, 0x1a, 0x49, 0x41, 0x4d, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x53, + 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x49, 0x44, + 0x10, 0x04, 0x2a, 0xea, 0x02, 0x0a, 0x0c, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4d, 0x65, 0x74, + 0x68, 0x6f, 0x64, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4d, 0x45, 0x54, + 0x48, 0x4f, 0x44, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x53, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, + 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x53, 0x54, 0x41, + 0x52, 0x54, 0x53, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x45, + 0x41, 0x52, 0x43, 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x41, + 0x49, 0x4e, 0x53, 0x10, 0x02, 0x12, 0x23, 0x0a, 0x1f, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4d, + 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x53, 0x5f, 0x49, 0x47, 0x4e, + 0x4f, 0x52, 0x45, 0x5f, 0x43, 0x41, 0x53, 0x45, 0x10, 0x03, 0x12, 0x28, 0x0a, 0x24, 0x53, 0x45, + 0x41, 0x52, 0x43, 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, + 0x53, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x5f, 0x43, 0x41, + 0x53, 0x45, 0x10, 0x04, 0x12, 0x25, 0x0a, 0x21, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4d, 0x45, + 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x53, 0x5f, 0x49, 0x47, + 0x4e, 0x4f, 0x52, 0x45, 0x5f, 0x43, 0x41, 0x53, 0x45, 0x10, 0x05, 0x12, 0x1b, 0x0a, 0x17, 0x53, + 0x45, 0x41, 0x52, 0x43, 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, + 0x45, 0x51, 0x55, 0x41, 0x4c, 0x53, 0x10, 0x06, 0x12, 0x1d, 0x0a, 0x19, 0x53, 0x45, 0x41, 0x52, + 0x43, 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x47, 0x52, 0x45, 0x41, 0x54, 0x45, 0x52, + 0x5f, 0x54, 0x48, 0x41, 0x4e, 0x10, 0x07, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x45, 0x41, 0x52, 0x43, + 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x4c, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x48, 0x41, + 0x4e, 0x10, 0x08, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4d, 0x45, 0x54, + 0x48, 0x4f, 0x44, 0x5f, 0x49, 0x53, 0x5f, 0x4f, 0x4e, 0x45, 0x5f, 0x4f, 0x46, 0x10, 0x09, 0x12, + 0x1e, 0x0a, 0x1a, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, + 0x4c, 0x49, 0x53, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x53, 0x10, 0x0a, 0x2a, + 0x62, 0x0a, 0x08, 0x49, 0x64, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x1a, 0x49, + 0x44, 0x50, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, + 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x49, + 0x44, 0x50, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x41, 0x43, + 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x49, 0x44, 0x50, 0x43, 0x4f, 0x4e, + 0x46, 0x49, 0x47, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x49, 0x4e, 0x41, 0x43, 0x54, 0x49, 0x56, + 0x45, 0x10, 0x02, 0x2a, 0x79, 0x0a, 0x10, 0x4f, 0x49, 0x44, 0x43, 0x4d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x20, 0x0a, 0x1c, 0x4f, 0x49, 0x44, 0x43, 0x4d, + 0x41, 0x50, 0x50, 0x49, 0x4e, 0x47, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x27, 0x0a, 0x23, 0x4f, 0x49, 0x44, + 0x43, 0x4d, 0x41, 0x50, 0x50, 0x49, 0x4e, 0x47, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x50, 0x52, + 0x45, 0x46, 0x45, 0x52, 0x52, 0x45, 0x44, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x4e, 0x41, 0x4d, 0x45, + 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x4f, 0x49, 0x44, 0x43, 0x4d, 0x41, 0x50, 0x50, 0x49, 0x4e, + 0x47, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x45, 0x4d, 0x41, 0x49, 0x4c, 0x10, 0x02, 0x2a, 0x63, + 0x0a, 0x0c, 0x49, 0x64, 0x70, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x12, 0x1c, + 0x0a, 0x18, 0x49, 0x44, 0x50, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, + 0x49, 0x44, 0x50, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x49, 0x44, 0x50, + 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x5f, 0x49, 0x44, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, + 0x49, 0x44, 0x50, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x4e, 0x41, 0x4d, + 0x45, 0x10, 0x02, 0x2a, 0x46, 0x0a, 0x07, 0x49, 0x64, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, + 0x0a, 0x13, 0x49, 0x44, 0x50, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x49, 0x44, 0x50, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x4f, 0x49, 0x44, 0x43, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x49, 0x44, 0x50, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x41, 0x4d, 0x4c, 0x10, 0x02, 0x32, 0x86, 0x25, 0x0a, 0x0c, + 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x4b, 0x0a, 0x07, + 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, + 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x10, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0a, 0x12, + 0x08, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a, 0x12, 0x47, 0x0a, 0x05, 0x52, 0x65, 0x61, + 0x64, 0x79, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x22, 0x0e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x08, 0x12, 0x06, 0x2f, 0x72, 0x65, 0x61, + 0x64, 0x79, 0x12, 0x4e, 0x0a, 0x08, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x12, 0x16, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x22, + 0x11, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0b, 0x12, 0x09, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x65, 0x12, 0x8f, 0x01, 0x0a, 0x0b, 0x49, 0x73, 0x4f, 0x72, 0x67, 0x55, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x12, 0x2b, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, + 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, + 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4f, 0x72, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2c, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x4f, 0x72, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x12, 0x0f, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x5f, 0x69, 0x73, + 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x82, 0xb5, 0x18, 0x0a, 0x0a, 0x08, 0x69, 0x61, 0x6d, 0x2e, + 0x72, 0x65, 0x61, 0x64, 0x12, 0x70, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x42, 0x79, + 0x49, 0x44, 0x12, 0x20, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, + 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, + 0x72, 0x67, 0x49, 0x44, 0x1a, 0x1e, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x4f, 0x72, 0x67, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x44, 0x1a, - 0x27, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x49, - 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x35, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, - 0x12, 0x18, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, - 0x2f, 0x69, 0x61, 0x6d, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x82, 0xb5, 0x18, 0x11, 0x0a, 0x0f, - 0x69, 0x61, 0x6d, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, - 0xa8, 0x01, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x49, 0x61, 0x6d, - 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x2e, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, - 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, - 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, - 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x22, 0x18, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, - 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x69, 0x61, 0x6d, 0x70, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x12, 0x0a, 0x10, 0x69, 0x61, 0x6d, 0x2e, 0x70, 0x6f, - 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0xa8, 0x01, 0x0a, 0x12, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x12, 0x2e, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, + 0x2e, 0x4f, 0x72, 0x67, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0c, 0x12, 0x0a, 0x2f, 0x6f, + 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x82, 0xb5, 0x18, 0x0a, 0x0a, 0x08, 0x69, 0x61, + 0x6d, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0x8f, 0x01, 0x0a, 0x0a, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x4f, 0x72, 0x67, 0x73, 0x12, 0x2b, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, + 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, + 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, + 0x72, 0x67, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x22, 0x0d, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, + 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0a, 0x0a, 0x08, + 0x69, 0x61, 0x6d, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0x8b, 0x01, 0x0a, 0x08, 0x53, 0x65, 0x74, + 0x55, 0x70, 0x4f, 0x72, 0x67, 0x12, 0x2a, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, + 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x53, 0x65, 0x74, 0x55, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2b, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, - 0x67, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x27, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, - 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, - 0x67, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x1d, 0x1a, 0x18, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, - 0x64, 0x7d, 0x2f, 0x69, 0x61, 0x6d, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x3a, 0x01, 0x2a, 0x82, - 0xb5, 0x18, 0x12, 0x0a, 0x10, 0x69, 0x61, 0x6d, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, - 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x90, 0x01, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x4f, 0x72, 0x67, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x29, 0x2e, 0x63, + 0x67, 0x53, 0x65, 0x74, 0x55, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x22, 0x0c, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x5f, 0x73, + 0x65, 0x74, 0x75, 0x70, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0b, 0x0a, 0x09, 0x69, 0x61, 0x6d, + 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x9c, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4f, 0x72, + 0x67, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x29, 0x2e, 0x63, 0x61, 0x6f, + 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x49, 0x44, 0x1a, 0x27, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, + 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x35, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x12, 0x18, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, + 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x69, 0x61, 0x6d, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x82, 0xb5, 0x18, 0x11, 0x0a, 0x0f, 0x69, 0x61, 0x6d, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0xa8, 0x01, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x4f, 0x72, 0x67, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x2e, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x49, 0x61, 0x6d, 0x50, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x44, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, - 0x37, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x2a, 0x18, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, - 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x69, 0x61, 0x6d, 0x70, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x82, 0xb5, 0x18, 0x13, 0x0a, 0x11, 0x69, 0x61, 0x6d, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x2e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x83, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, - 0x49, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x16, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x29, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, - 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x49, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, - 0x73, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, 0x2f, 0x6d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x73, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x82, 0xb5, 0x18, 0x11, 0x0a, 0x0f, 0x69, - 0x61, 0x6d, 0x2e, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0x8f, - 0x01, 0x0a, 0x0c, 0x41, 0x64, 0x64, 0x49, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, - 0x2e, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x49, - 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x24, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x61, 0x6d, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0d, 0x22, 0x08, 0x2f, - 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x12, 0x0a, 0x10, - 0x69, 0x61, 0x6d, 0x2e, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, - 0x12, 0x9f, 0x01, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x61, 0x6d, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x12, 0x31, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, - 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x63, + 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x49, 0x61, 0x6d, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x22, 0x18, 0x2f, + 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x69, 0x61, + 0x6d, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x12, 0x0a, 0x10, + 0x69, 0x61, 0x6d, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, + 0x12, 0xa8, 0x01, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x49, 0x61, + 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x2e, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x33, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x1a, 0x12, 0x2f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x2f, - 0x7b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x12, - 0x0a, 0x10, 0x69, 0x61, 0x6d, 0x2e, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x77, 0x72, 0x69, - 0x74, 0x65, 0x12, 0x8f, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x61, 0x6d, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x31, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, - 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x2a, 0x12, 0x2f, 0x6d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x82, 0xb5, 0x18, - 0x13, 0x0a, 0x11, 0x69, 0x61, 0x6d, 0x2e, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x64, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x12, 0xab, 0x01, 0x0a, 0x10, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x49, - 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x31, 0x2e, 0x63, 0x61, 0x6f, 0x73, - 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x63, + 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, + 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x1a, 0x18, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, + 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x69, 0x61, 0x6d, 0x70, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x12, 0x0a, 0x10, 0x69, 0x61, 0x6d, 0x2e, 0x70, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x90, 0x01, 0x0a, 0x12, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x12, 0x29, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, + 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, + 0x72, 0x67, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x44, 0x1a, 0x16, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x37, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x2a, 0x18, 0x2f, + 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x69, 0x61, + 0x6d, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x82, 0xb5, 0x18, 0x13, 0x0a, 0x11, 0x69, 0x61, 0x6d, + 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x83, + 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x49, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, + 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x29, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x30, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x22, 0x10, 0x2f, 0x6d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x73, 0x2f, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, - 0x11, 0x0a, 0x0f, 0x69, 0x61, 0x6d, 0x2e, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x72, 0x65, - 0x61, 0x64, 0x12, 0x62, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x56, 0x69, 0x65, 0x77, 0x73, 0x12, 0x16, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x20, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, - 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x73, 0x22, 0x1c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x08, - 0x12, 0x06, 0x2f, 0x76, 0x69, 0x65, 0x77, 0x73, 0x82, 0xb5, 0x18, 0x0a, 0x0a, 0x08, 0x69, 0x61, - 0x6d, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0x7c, 0x0a, 0x09, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x56, - 0x69, 0x65, 0x77, 0x12, 0x21, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, - 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x56, 0x69, 0x65, 0x77, 0x49, 0x44, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x34, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x22, 0x1d, 0x2f, 0x76, 0x69, 0x65, 0x77, 0x73, 0x2f, 0x7b, - 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x7d, 0x2f, 0x7b, 0x76, 0x69, 0x65, 0x77, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x82, 0xb5, 0x18, 0x0b, 0x0a, 0x09, 0x69, 0x61, 0x6d, 0x2e, 0x77, - 0x72, 0x69, 0x74, 0x65, 0x12, 0x77, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x46, 0x61, 0x69, 0x6c, 0x65, - 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, - 0x27, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x69, 0x6c, - 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, - 0x12, 0x0d, 0x2f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x82, - 0xb5, 0x18, 0x0a, 0x0a, 0x08, 0x69, 0x61, 0x6d, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0xa4, 0x01, - 0x0a, 0x11, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x12, 0x28, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, - 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x1a, 0x16, 0x2e, + 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x12, + 0x0e, 0x2f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x82, + 0xb5, 0x18, 0x11, 0x0a, 0x0f, 0x69, 0x61, 0x6d, 0x2e, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x2e, + 0x72, 0x65, 0x61, 0x64, 0x12, 0x8f, 0x01, 0x0a, 0x0c, 0x41, 0x64, 0x64, 0x49, 0x61, 0x6d, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2e, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, + 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x41, 0x64, 0x64, 0x49, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, + 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x49, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x29, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x0d, 0x22, 0x08, 0x2f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x3a, 0x01, 0x2a, + 0x82, 0xb5, 0x18, 0x12, 0x0a, 0x10, 0x69, 0x61, 0x6d, 0x2e, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x9f, 0x01, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x49, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x31, 0x2e, 0x63, 0x61, 0x6f, + 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x61, 0x6d, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, + 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x61, 0x6d, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x1a, 0x12, 0x2f, 0x6d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, + 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x12, 0x0a, 0x10, 0x69, 0x61, 0x6d, 0x2e, 0x6d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x8f, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x49, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x31, 0x2e, 0x63, + 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, + 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x2a, + 0x12, 0x2f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x69, 0x64, 0x7d, 0x82, 0xb5, 0x18, 0x13, 0x0a, 0x11, 0x69, 0x61, 0x6d, 0x2e, 0x6d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x2e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0xab, 0x01, 0x0a, 0x10, 0x53, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x49, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, + 0x31, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x61, 0x6d, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, + 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, + 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x30, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x22, 0x10, + 0x2f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x2f, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x11, 0x0a, 0x0f, 0x69, 0x61, 0x6d, 0x2e, 0x6d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0x62, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x56, + 0x69, 0x65, 0x77, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x20, 0x2e, 0x63, + 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x73, 0x22, 0x1c, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x08, 0x12, 0x06, 0x2f, 0x76, 0x69, 0x65, 0x77, 0x73, 0x82, 0xb5, + 0x18, 0x0a, 0x0a, 0x08, 0x69, 0x61, 0x6d, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0x7c, 0x0a, 0x09, + 0x43, 0x6c, 0x65, 0x61, 0x72, 0x56, 0x69, 0x65, 0x77, 0x12, 0x21, 0x2e, 0x63, 0x61, 0x6f, 0x73, + 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x49, 0x44, 0x1a, 0x16, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x22, 0x34, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x22, 0x1d, 0x2f, 0x76, + 0x69, 0x65, 0x77, 0x73, 0x2f, 0x7b, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x7d, 0x2f, + 0x7b, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x82, 0xb5, 0x18, 0x0b, 0x0a, + 0x09, 0x69, 0x61, 0x6d, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x77, 0x0a, 0x0f, 0x47, 0x65, + 0x74, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x4d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x38, 0x2a, 0x36, 0x2f, - 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x64, 0x61, - 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x7d, 0x2f, 0x7b, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x7d, 0x2f, 0x7b, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x7d, 0x82, 0xb5, 0x18, 0x0b, 0x0a, 0x09, 0x69, 0x61, 0x6d, 0x2e, 0x77, - 0x72, 0x69, 0x74, 0x65, 0x12, 0x75, 0x0a, 0x07, 0x49, 0x64, 0x70, 0x42, 0x79, 0x49, 0x44, 0x12, - 0x20, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x49, - 0x44, 0x1a, 0x22, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x27, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, + 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x23, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x12, 0x0d, 0x2f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x73, 0x82, 0xb5, 0x18, 0x0a, 0x0a, 0x08, 0x69, 0x61, 0x6d, 0x2e, 0x72, + 0x65, 0x61, 0x64, 0x12, 0xa4, 0x01, 0x0a, 0x11, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x61, + 0x69, 0x6c, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x28, 0x2e, 0x63, 0x61, 0x6f, 0x73, + 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x49, 0x44, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x4d, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x38, 0x2a, 0x36, 0x2f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x2f, 0x7b, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x7d, 0x2f, 0x7b, 0x76, + 0x69, 0x65, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x7b, 0x66, 0x61, 0x69, 0x6c, 0x65, + 0x64, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x7d, 0x82, 0xb5, 0x18, 0x0b, 0x0a, + 0x09, 0x69, 0x61, 0x6d, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x75, 0x0a, 0x07, 0x49, 0x64, + 0x70, 0x42, 0x79, 0x49, 0x44, 0x12, 0x20, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, + 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x49, 0x64, 0x70, 0x49, 0x44, 0x1a, 0x22, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, + 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x56, 0x69, 0x65, 0x77, 0x22, 0x24, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x0c, 0x12, 0x0a, 0x2f, 0x69, 0x64, 0x70, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x82, + 0xb5, 0x18, 0x0e, 0x0a, 0x0c, 0x69, 0x61, 0x6d, 0x2e, 0x69, 0x64, 0x70, 0x2e, 0x72, 0x65, 0x61, + 0x64, 0x12, 0x89, 0x01, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x69, 0x64, 0x63, + 0x49, 0x64, 0x70, 0x12, 0x2e, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, + 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x4f, 0x69, 0x64, 0x63, 0x49, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x1a, 0x1e, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, + 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x49, 0x64, 0x70, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x22, 0x0a, 0x2f, 0x69, 0x64, + 0x70, 0x73, 0x2f, 0x6f, 0x69, 0x64, 0x63, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, + 0x69, 0x61, 0x6d, 0x2e, 0x69, 0x64, 0x70, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x81, 0x01, + 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x12, 0x24, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, - 0x70, 0x56, 0x69, 0x65, 0x77, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0c, 0x12, 0x0a, 0x2f, - 0x69, 0x64, 0x70, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x82, 0xb5, 0x18, 0x0e, 0x0a, 0x0c, 0x69, - 0x61, 0x6d, 0x2e, 0x69, 0x64, 0x70, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0x89, 0x01, 0x0a, 0x0d, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x69, 0x64, 0x63, 0x49, 0x64, 0x70, 0x12, 0x2e, 0x2e, + 0x70, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x1a, 0x1e, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, + 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x1a, + 0x0a, 0x2f, 0x69, 0x64, 0x70, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x82, 0xb5, + 0x18, 0x0f, 0x0a, 0x0d, 0x69, 0x61, 0x6d, 0x2e, 0x69, 0x64, 0x70, 0x2e, 0x77, 0x72, 0x69, 0x74, + 0x65, 0x12, 0x8d, 0x01, 0x0a, 0x13, 0x44, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, + 0x49, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x20, 0x2e, 0x63, 0x61, 0x6f, 0x73, + 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x49, 0x44, 0x1a, 0x1e, 0x2e, 0x63, 0x61, + 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x22, 0x34, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x1b, 0x1a, 0x16, 0x2f, 0x69, 0x64, 0x70, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, + 0x5f, 0x64, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x82, 0xb5, + 0x18, 0x0f, 0x0a, 0x0d, 0x69, 0x61, 0x6d, 0x2e, 0x69, 0x64, 0x70, 0x2e, 0x77, 0x72, 0x69, 0x74, + 0x65, 0x12, 0x8d, 0x01, 0x0a, 0x13, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, + 0x49, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x20, 0x2e, 0x63, 0x61, 0x6f, 0x73, + 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x49, 0x44, 0x1a, 0x1e, 0x2e, 0x63, 0x61, + 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x22, 0x34, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x1b, 0x1a, 0x16, 0x2f, 0x69, 0x64, 0x70, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, + 0x5f, 0x72, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x82, 0xb5, + 0x18, 0x0f, 0x0a, 0x0d, 0x69, 0x61, 0x6d, 0x2e, 0x69, 0x64, 0x70, 0x2e, 0x77, 0x72, 0x69, 0x74, + 0x65, 0x12, 0x72, 0x0a, 0x0f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x64, 0x70, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x12, 0x20, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, + 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x49, 0x64, 0x70, 0x49, 0x44, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x25, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0c, 0x2a, 0x0a, 0x2f, 0x69, 0x64, 0x70, 0x73, 0x2f, 0x7b, 0x69, + 0x64, 0x7d, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x69, 0x61, 0x6d, 0x2e, 0x69, 0x64, 0x70, 0x2e, + 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0xa8, 0x01, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x4f, 0x69, 0x64, 0x63, 0x49, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2e, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x69, 0x64, 0x63, 0x49, 0x64, - 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x1a, 0x1e, 0x2e, + 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x1a, 0x28, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x22, 0x28, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x22, 0x0a, 0x2f, 0x69, 0x64, 0x70, 0x73, 0x2f, 0x6f, 0x69, 0x64, - 0x63, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x69, 0x61, 0x6d, 0x2e, 0x69, 0x64, - 0x70, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x81, 0x01, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x49, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x24, 0x2e, 0x63, 0x61, - 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x1a, 0x1e, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, - 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, - 0x70, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x1a, 0x0a, 0x2f, 0x69, 0x64, 0x70, 0x73, - 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x69, 0x61, - 0x6d, 0x2e, 0x69, 0x64, 0x70, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x8d, 0x01, 0x0a, 0x13, - 0x44, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x49, 0x64, 0x70, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x12, 0x20, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, - 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x49, 0x64, 0x70, 0x49, 0x44, 0x1a, 0x1e, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, - 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x49, 0x64, 0x70, 0x22, 0x34, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x1a, 0x16, 0x2f, - 0x69, 0x64, 0x70, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x5f, 0x64, 0x65, 0x61, 0x63, 0x74, - 0x69, 0x76, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x69, 0x61, - 0x6d, 0x2e, 0x69, 0x64, 0x70, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x8d, 0x01, 0x0a, 0x13, - 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x49, 0x64, 0x70, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x12, 0x20, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, - 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x49, 0x64, 0x70, 0x49, 0x44, 0x1a, 0x1e, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, - 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x49, 0x64, 0x70, 0x22, 0x34, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x1a, 0x16, 0x2f, - 0x69, 0x64, 0x70, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x74, - 0x69, 0x76, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x69, 0x61, - 0x6d, 0x2e, 0x69, 0x64, 0x70, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x72, 0x0a, 0x0f, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x20, - 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x49, 0x44, - 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0c, - 0x2a, 0x0a, 0x2f, 0x69, 0x64, 0x70, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x82, 0xb5, 0x18, 0x0f, - 0x0a, 0x0d, 0x69, 0x61, 0x6d, 0x2e, 0x69, 0x64, 0x70, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, - 0xa8, 0x01, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x69, 0x64, 0x63, 0x49, 0x64, - 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2e, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, - 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x69, 0x64, 0x63, 0x49, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x1a, 0x28, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, - 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x69, 0x64, 0x63, 0x49, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x22, 0x37, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x1a, 0x19, 0x2f, 0x69, 0x64, 0x70, 0x73, - 0x2f, 0x7b, 0x69, 0x64, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x69, 0x64, 0x63, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x69, 0x61, 0x6d, - 0x2e, 0x69, 0x64, 0x70, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x93, 0x01, 0x0a, 0x0a, 0x53, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x49, 0x64, 0x70, 0x73, 0x12, 0x2b, 0x2e, 0x63, 0x61, 0x6f, 0x73, - 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, - 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x22, 0x0d, 0x2f, 0x69, - 0x64, 0x70, 0x73, 0x2f, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x3a, 0x01, 0x2a, 0x82, 0xb5, - 0x18, 0x0e, 0x0a, 0x0c, 0x69, 0x61, 0x6d, 0x2e, 0x69, 0x64, 0x70, 0x2e, 0x72, 0x65, 0x61, 0x64, - 0x12, 0x90, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4c, - 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x1a, 0x31, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, - 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x56, 0x69, 0x65, 0x77, 0x22, 0x2c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x12, 0x0f, 0x2f, - 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x2f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x82, 0xb5, - 0x18, 0x11, 0x0a, 0x0f, 0x69, 0x61, 0x6d, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x72, - 0x65, 0x61, 0x64, 0x12, 0xaa, 0x01, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, + 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x69, 0x64, 0x63, 0x49, 0x64, + 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x37, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x1a, + 0x19, 0x2f, 0x69, 0x64, 0x70, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, + 0x6f, 0x69, 0x64, 0x63, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, + 0x0f, 0x0a, 0x0d, 0x69, 0x61, 0x6d, 0x2e, 0x69, 0x64, 0x70, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, + 0x12, 0x93, 0x01, 0x0a, 0x0a, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x49, 0x64, 0x70, 0x73, 0x12, + 0x2b, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x53, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x63, + 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x53, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2a, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x12, 0x22, 0x0d, 0x2f, 0x69, 0x64, 0x70, 0x73, 0x2f, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0e, 0x0a, 0x0c, 0x69, 0x61, 0x6d, 0x2e, 0x69, 0x64, + 0x70, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0x90, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x12, 0x2d, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x1a, - 0x2d, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x30, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x1a, 0x0f, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, - 0x73, 0x2f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x12, 0x0a, 0x10, - 0x69, 0x61, 0x6d, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, - 0x12, 0xd4, 0x01, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4c, - 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x70, 0x50, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x12, 0x33, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, + 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x31, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, + 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4c, 0x6f, 0x67, 0x69, + 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x56, 0x69, 0x65, 0x77, 0x22, 0x2c, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x11, 0x12, 0x0f, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x2f, 0x6c, + 0x6f, 0x67, 0x69, 0x6e, 0x82, 0xb5, 0x18, 0x11, 0x0a, 0x0f, 0x69, 0x61, 0x6d, 0x2e, 0x70, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0xaa, 0x01, 0x0a, 0x18, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, + 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x2d, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x53, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x63, 0x61, - 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x50, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x44, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x22, 0x24, 0x2f, 0x70, 0x6f, 0x6c, 0x69, - 0x63, 0x69, 0x65, 0x73, 0x2f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x2f, 0x69, 0x64, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x2f, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x3a, - 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x11, 0x0a, 0x0f, 0x69, 0x61, 0x6d, 0x2e, 0x70, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0xb7, 0x01, 0x0a, 0x22, 0x41, 0x64, 0x64, 0x49, - 0x64, 0x70, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x6f, 0x44, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x28, + 0x76, 0x31, 0x2e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x1a, 0x2d, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, + 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x22, 0x30, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x1a, 0x0f, 0x2f, 0x70, + 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x2f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x3a, 0x01, 0x2a, + 0x82, 0xb5, 0x18, 0x12, 0x0a, 0x10, 0x69, 0x61, 0x6d, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0xd4, 0x01, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x44, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x49, 0x64, 0x70, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x12, 0x33, 0x2e, 0x63, + 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x50, 0x72, 0x6f, 0x76, + 0x69, 0x64, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x34, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, + 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, + 0x70, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x44, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x22, + 0x24, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x2f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, + 0x2f, 0x69, 0x64, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x2f, 0x5f, 0x73, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x11, 0x0a, 0x0f, 0x69, 0x61, + 0x6d, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0xb7, 0x01, + 0x0a, 0x22, 0x41, 0x64, 0x64, 0x49, 0x64, 0x70, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, + 0x54, 0x6f, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x12, 0x28, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, + 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x49, 0x64, 0x70, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, 0x44, 0x1a, 0x28, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x50, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, 0x44, 0x1a, 0x28, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, - 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x49, 0x44, 0x22, 0x3d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x22, 0x1c, 0x2f, 0x70, 0x6f, 0x6c, - 0x69, 0x63, 0x69, 0x65, 0x73, 0x2f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x2f, 0x69, 0x64, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x12, 0x0a, - 0x10, 0x69, 0x61, 0x6d, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x77, 0x72, 0x69, 0x74, - 0x65, 0x12, 0xba, 0x01, 0x0a, 0x27, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x64, 0x70, 0x50, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x46, 0x72, 0x6f, 0x6d, 0x44, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x28, 0x2e, - 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x50, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, 0x44, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, - 0x4d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x22, 0x2c, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, - 0x65, 0x73, 0x2f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x2f, 0x69, 0x64, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x12, 0x0a, 0x10, 0x69, 0x61, - 0x6d, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x42, 0xba, - 0x01, 0x5a, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x61, - 0x6f, 0x73, 0x2f, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x67, - 0x72, 0x70, 0x63, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x92, 0x41, 0x8e, 0x01, 0x12, 0x41, 0x0a, - 0x0d, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x22, 0x2b, - 0x12, 0x29, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x61, 0x6f, 0x73, 0x2f, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, - 0x6c, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x32, 0x03, 0x30, 0x2e, 0x31, - 0x2a, 0x01, 0x02, 0x32, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x32, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x3a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x3a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, 0x44, 0x22, 0x3d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, + 0x22, 0x1c, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x2f, 0x6c, 0x6f, 0x67, 0x69, + 0x6e, 0x2f, 0x69, 0x64, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x3a, 0x01, + 0x2a, 0x82, 0xb5, 0x18, 0x12, 0x0a, 0x10, 0x69, 0x61, 0x6d, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0xba, 0x01, 0x0a, 0x27, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x49, 0x64, 0x70, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x46, 0x72, 0x6f, + 0x6d, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x12, 0x28, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, + 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x49, 0x64, 0x70, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, 0x44, 0x1a, 0x16, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x4d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x22, 0x2c, 0x2f, + 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x2f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x2f, 0x69, + 0x64, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x70, + 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x82, 0xb5, + 0x18, 0x12, 0x0a, 0x10, 0x69, 0x61, 0x6d, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x77, + 0x72, 0x69, 0x74, 0x65, 0x42, 0xba, 0x01, 0x5a, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x61, 0x6f, 0x73, 0x2f, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, + 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x92, + 0x41, 0x8e, 0x01, 0x12, 0x41, 0x0a, 0x0d, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x22, 0x2b, 0x12, 0x29, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x61, 0x6f, 0x73, 0x2f, + 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x32, 0x03, 0x30, 0x2e, 0x31, 0x2a, 0x01, 0x02, 0x32, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x32, 0x10, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x3a, 0x10, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x3a, + 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x67, 0x72, 0x70, + 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -5442,7 +5582,7 @@ func file_admin_proto_rawDescGZIP() []byte { return file_admin_proto_rawDescData } -var file_admin_proto_enumTypes = make([]protoimpl.EnumInfo, 11) +var file_admin_proto_enumTypes = make([]protoimpl.EnumInfo, 12) var file_admin_proto_msgTypes = make([]protoimpl.MessageInfo, 52) var file_admin_proto_goTypes = []interface{}{ (OrgState)(0), // 0: caos.zitadel.admin.api.v1.OrgState @@ -5454,192 +5594,199 @@ var file_admin_proto_goTypes = []interface{}{ (IamMemberSearchKey)(0), // 6: caos.zitadel.admin.api.v1.IamMemberSearchKey (SearchMethod)(0), // 7: caos.zitadel.admin.api.v1.SearchMethod (IdpState)(0), // 8: caos.zitadel.admin.api.v1.IdpState - (IdpSearchKey)(0), // 9: caos.zitadel.admin.api.v1.IdpSearchKey - (IdpType)(0), // 10: caos.zitadel.admin.api.v1.IdpType - (*OrgID)(nil), // 11: caos.zitadel.admin.api.v1.OrgID - (*UniqueOrgRequest)(nil), // 12: caos.zitadel.admin.api.v1.UniqueOrgRequest - (*UniqueOrgResponse)(nil), // 13: caos.zitadel.admin.api.v1.UniqueOrgResponse - (*Org)(nil), // 14: caos.zitadel.admin.api.v1.Org - (*OrgSearchRequest)(nil), // 15: caos.zitadel.admin.api.v1.OrgSearchRequest - (*OrgSearchQuery)(nil), // 16: caos.zitadel.admin.api.v1.OrgSearchQuery - (*OrgSearchResponse)(nil), // 17: caos.zitadel.admin.api.v1.OrgSearchResponse - (*OrgSetUpRequest)(nil), // 18: caos.zitadel.admin.api.v1.OrgSetUpRequest - (*OrgSetUpResponse)(nil), // 19: caos.zitadel.admin.api.v1.OrgSetUpResponse - (*CreateUserRequest)(nil), // 20: caos.zitadel.admin.api.v1.CreateUserRequest - (*CreateHumanRequest)(nil), // 21: caos.zitadel.admin.api.v1.CreateHumanRequest - (*CreateMachineRequest)(nil), // 22: caos.zitadel.admin.api.v1.CreateMachineRequest - (*UserResponse)(nil), // 23: caos.zitadel.admin.api.v1.UserResponse - (*HumanResponse)(nil), // 24: caos.zitadel.admin.api.v1.HumanResponse - (*MachineResponse)(nil), // 25: caos.zitadel.admin.api.v1.MachineResponse - (*MachineKeyResponse)(nil), // 26: caos.zitadel.admin.api.v1.MachineKeyResponse - (*CreateOrgRequest)(nil), // 27: caos.zitadel.admin.api.v1.CreateOrgRequest - (*OrgIamPolicy)(nil), // 28: caos.zitadel.admin.api.v1.OrgIamPolicy - (*OrgIamPolicyRequest)(nil), // 29: caos.zitadel.admin.api.v1.OrgIamPolicyRequest - (*OrgIamPolicyID)(nil), // 30: caos.zitadel.admin.api.v1.OrgIamPolicyID - (*IamMemberRoles)(nil), // 31: caos.zitadel.admin.api.v1.IamMemberRoles - (*IamMember)(nil), // 32: caos.zitadel.admin.api.v1.IamMember - (*AddIamMemberRequest)(nil), // 33: caos.zitadel.admin.api.v1.AddIamMemberRequest - (*ChangeIamMemberRequest)(nil), // 34: caos.zitadel.admin.api.v1.ChangeIamMemberRequest - (*RemoveIamMemberRequest)(nil), // 35: caos.zitadel.admin.api.v1.RemoveIamMemberRequest - (*IamMemberSearchResponse)(nil), // 36: caos.zitadel.admin.api.v1.IamMemberSearchResponse - (*IamMemberView)(nil), // 37: caos.zitadel.admin.api.v1.IamMemberView - (*IamMemberSearchRequest)(nil), // 38: caos.zitadel.admin.api.v1.IamMemberSearchRequest - (*IamMemberSearchQuery)(nil), // 39: caos.zitadel.admin.api.v1.IamMemberSearchQuery - (*FailedEventID)(nil), // 40: caos.zitadel.admin.api.v1.FailedEventID - (*FailedEvents)(nil), // 41: caos.zitadel.admin.api.v1.FailedEvents - (*FailedEvent)(nil), // 42: caos.zitadel.admin.api.v1.FailedEvent - (*ViewID)(nil), // 43: caos.zitadel.admin.api.v1.ViewID - (*Views)(nil), // 44: caos.zitadel.admin.api.v1.Views - (*View)(nil), // 45: caos.zitadel.admin.api.v1.View - (*IdpID)(nil), // 46: caos.zitadel.admin.api.v1.IdpID - (*Idp)(nil), // 47: caos.zitadel.admin.api.v1.Idp - (*IdpUpdate)(nil), // 48: caos.zitadel.admin.api.v1.IdpUpdate - (*OidcIdpConfig)(nil), // 49: caos.zitadel.admin.api.v1.OidcIdpConfig - (*OidcIdpConfigCreate)(nil), // 50: caos.zitadel.admin.api.v1.OidcIdpConfigCreate - (*OidcIdpConfigUpdate)(nil), // 51: caos.zitadel.admin.api.v1.OidcIdpConfigUpdate - (*IdpSearchResponse)(nil), // 52: caos.zitadel.admin.api.v1.IdpSearchResponse - (*IdpView)(nil), // 53: caos.zitadel.admin.api.v1.IdpView - (*OidcIdpConfigView)(nil), // 54: caos.zitadel.admin.api.v1.OidcIdpConfigView - (*IdpSearchRequest)(nil), // 55: caos.zitadel.admin.api.v1.IdpSearchRequest - (*IdpSearchQuery)(nil), // 56: caos.zitadel.admin.api.v1.IdpSearchQuery - (*DefaultLoginPolicy)(nil), // 57: caos.zitadel.admin.api.v1.DefaultLoginPolicy - (*IdpProviderID)(nil), // 58: caos.zitadel.admin.api.v1.IdpProviderID - (*DefaultLoginPolicyView)(nil), // 59: caos.zitadel.admin.api.v1.DefaultLoginPolicyView - (*IdpProviderView)(nil), // 60: caos.zitadel.admin.api.v1.IdpProviderView - (*IdpProviderSearchResponse)(nil), // 61: caos.zitadel.admin.api.v1.IdpProviderSearchResponse - (*IdpProviderSearchRequest)(nil), // 62: caos.zitadel.admin.api.v1.IdpProviderSearchRequest - (*timestamp.Timestamp)(nil), // 63: google.protobuf.Timestamp - (*empty.Empty)(nil), // 64: google.protobuf.Empty - (*_struct.Struct)(nil), // 65: google.protobuf.Struct + (OIDCMappingField)(0), // 9: caos.zitadel.admin.api.v1.OIDCMappingField + (IdpSearchKey)(0), // 10: caos.zitadel.admin.api.v1.IdpSearchKey + (IdpType)(0), // 11: caos.zitadel.admin.api.v1.IdpType + (*OrgID)(nil), // 12: caos.zitadel.admin.api.v1.OrgID + (*UniqueOrgRequest)(nil), // 13: caos.zitadel.admin.api.v1.UniqueOrgRequest + (*UniqueOrgResponse)(nil), // 14: caos.zitadel.admin.api.v1.UniqueOrgResponse + (*Org)(nil), // 15: caos.zitadel.admin.api.v1.Org + (*OrgSearchRequest)(nil), // 16: caos.zitadel.admin.api.v1.OrgSearchRequest + (*OrgSearchQuery)(nil), // 17: caos.zitadel.admin.api.v1.OrgSearchQuery + (*OrgSearchResponse)(nil), // 18: caos.zitadel.admin.api.v1.OrgSearchResponse + (*OrgSetUpRequest)(nil), // 19: caos.zitadel.admin.api.v1.OrgSetUpRequest + (*OrgSetUpResponse)(nil), // 20: caos.zitadel.admin.api.v1.OrgSetUpResponse + (*CreateUserRequest)(nil), // 21: caos.zitadel.admin.api.v1.CreateUserRequest + (*CreateHumanRequest)(nil), // 22: caos.zitadel.admin.api.v1.CreateHumanRequest + (*CreateMachineRequest)(nil), // 23: caos.zitadel.admin.api.v1.CreateMachineRequest + (*UserResponse)(nil), // 24: caos.zitadel.admin.api.v1.UserResponse + (*HumanResponse)(nil), // 25: caos.zitadel.admin.api.v1.HumanResponse + (*MachineResponse)(nil), // 26: caos.zitadel.admin.api.v1.MachineResponse + (*MachineKeyResponse)(nil), // 27: caos.zitadel.admin.api.v1.MachineKeyResponse + (*CreateOrgRequest)(nil), // 28: caos.zitadel.admin.api.v1.CreateOrgRequest + (*OrgIamPolicy)(nil), // 29: caos.zitadel.admin.api.v1.OrgIamPolicy + (*OrgIamPolicyRequest)(nil), // 30: caos.zitadel.admin.api.v1.OrgIamPolicyRequest + (*OrgIamPolicyID)(nil), // 31: caos.zitadel.admin.api.v1.OrgIamPolicyID + (*IamMemberRoles)(nil), // 32: caos.zitadel.admin.api.v1.IamMemberRoles + (*IamMember)(nil), // 33: caos.zitadel.admin.api.v1.IamMember + (*AddIamMemberRequest)(nil), // 34: caos.zitadel.admin.api.v1.AddIamMemberRequest + (*ChangeIamMemberRequest)(nil), // 35: caos.zitadel.admin.api.v1.ChangeIamMemberRequest + (*RemoveIamMemberRequest)(nil), // 36: caos.zitadel.admin.api.v1.RemoveIamMemberRequest + (*IamMemberSearchResponse)(nil), // 37: caos.zitadel.admin.api.v1.IamMemberSearchResponse + (*IamMemberView)(nil), // 38: caos.zitadel.admin.api.v1.IamMemberView + (*IamMemberSearchRequest)(nil), // 39: caos.zitadel.admin.api.v1.IamMemberSearchRequest + (*IamMemberSearchQuery)(nil), // 40: caos.zitadel.admin.api.v1.IamMemberSearchQuery + (*FailedEventID)(nil), // 41: caos.zitadel.admin.api.v1.FailedEventID + (*FailedEvents)(nil), // 42: caos.zitadel.admin.api.v1.FailedEvents + (*FailedEvent)(nil), // 43: caos.zitadel.admin.api.v1.FailedEvent + (*ViewID)(nil), // 44: caos.zitadel.admin.api.v1.ViewID + (*Views)(nil), // 45: caos.zitadel.admin.api.v1.Views + (*View)(nil), // 46: caos.zitadel.admin.api.v1.View + (*IdpID)(nil), // 47: caos.zitadel.admin.api.v1.IdpID + (*Idp)(nil), // 48: caos.zitadel.admin.api.v1.Idp + (*IdpUpdate)(nil), // 49: caos.zitadel.admin.api.v1.IdpUpdate + (*OidcIdpConfig)(nil), // 50: caos.zitadel.admin.api.v1.OidcIdpConfig + (*OidcIdpConfigCreate)(nil), // 51: caos.zitadel.admin.api.v1.OidcIdpConfigCreate + (*OidcIdpConfigUpdate)(nil), // 52: caos.zitadel.admin.api.v1.OidcIdpConfigUpdate + (*IdpSearchResponse)(nil), // 53: caos.zitadel.admin.api.v1.IdpSearchResponse + (*IdpView)(nil), // 54: caos.zitadel.admin.api.v1.IdpView + (*OidcIdpConfigView)(nil), // 55: caos.zitadel.admin.api.v1.OidcIdpConfigView + (*IdpSearchRequest)(nil), // 56: caos.zitadel.admin.api.v1.IdpSearchRequest + (*IdpSearchQuery)(nil), // 57: caos.zitadel.admin.api.v1.IdpSearchQuery + (*DefaultLoginPolicy)(nil), // 58: caos.zitadel.admin.api.v1.DefaultLoginPolicy + (*IdpProviderID)(nil), // 59: caos.zitadel.admin.api.v1.IdpProviderID + (*DefaultLoginPolicyView)(nil), // 60: caos.zitadel.admin.api.v1.DefaultLoginPolicyView + (*IdpProviderView)(nil), // 61: caos.zitadel.admin.api.v1.IdpProviderView + (*IdpProviderSearchResponse)(nil), // 62: caos.zitadel.admin.api.v1.IdpProviderSearchResponse + (*IdpProviderSearchRequest)(nil), // 63: caos.zitadel.admin.api.v1.IdpProviderSearchRequest + (*timestamp.Timestamp)(nil), // 64: google.protobuf.Timestamp + (*empty.Empty)(nil), // 65: google.protobuf.Empty + (*_struct.Struct)(nil), // 66: google.protobuf.Struct } var file_admin_proto_depIdxs = []int32{ 0, // 0: caos.zitadel.admin.api.v1.Org.state:type_name -> caos.zitadel.admin.api.v1.OrgState - 63, // 1: caos.zitadel.admin.api.v1.Org.creation_date:type_name -> google.protobuf.Timestamp - 63, // 2: caos.zitadel.admin.api.v1.Org.change_date:type_name -> google.protobuf.Timestamp + 64, // 1: caos.zitadel.admin.api.v1.Org.creation_date:type_name -> google.protobuf.Timestamp + 64, // 2: caos.zitadel.admin.api.v1.Org.change_date:type_name -> google.protobuf.Timestamp 1, // 3: caos.zitadel.admin.api.v1.OrgSearchRequest.sorting_column:type_name -> caos.zitadel.admin.api.v1.OrgSearchKey - 16, // 4: caos.zitadel.admin.api.v1.OrgSearchRequest.queries:type_name -> caos.zitadel.admin.api.v1.OrgSearchQuery + 17, // 4: caos.zitadel.admin.api.v1.OrgSearchRequest.queries:type_name -> caos.zitadel.admin.api.v1.OrgSearchQuery 1, // 5: caos.zitadel.admin.api.v1.OrgSearchQuery.key:type_name -> caos.zitadel.admin.api.v1.OrgSearchKey 2, // 6: caos.zitadel.admin.api.v1.OrgSearchQuery.method:type_name -> caos.zitadel.admin.api.v1.OrgSearchMethod - 14, // 7: caos.zitadel.admin.api.v1.OrgSearchResponse.result:type_name -> caos.zitadel.admin.api.v1.Org - 63, // 8: caos.zitadel.admin.api.v1.OrgSearchResponse.view_timestamp:type_name -> google.protobuf.Timestamp - 27, // 9: caos.zitadel.admin.api.v1.OrgSetUpRequest.org:type_name -> caos.zitadel.admin.api.v1.CreateOrgRequest - 20, // 10: caos.zitadel.admin.api.v1.OrgSetUpRequest.user:type_name -> caos.zitadel.admin.api.v1.CreateUserRequest - 14, // 11: caos.zitadel.admin.api.v1.OrgSetUpResponse.org:type_name -> caos.zitadel.admin.api.v1.Org - 23, // 12: caos.zitadel.admin.api.v1.OrgSetUpResponse.user:type_name -> caos.zitadel.admin.api.v1.UserResponse - 21, // 13: caos.zitadel.admin.api.v1.CreateUserRequest.human:type_name -> caos.zitadel.admin.api.v1.CreateHumanRequest - 22, // 14: caos.zitadel.admin.api.v1.CreateUserRequest.machine:type_name -> caos.zitadel.admin.api.v1.CreateMachineRequest + 15, // 7: caos.zitadel.admin.api.v1.OrgSearchResponse.result:type_name -> caos.zitadel.admin.api.v1.Org + 64, // 8: caos.zitadel.admin.api.v1.OrgSearchResponse.view_timestamp:type_name -> google.protobuf.Timestamp + 28, // 9: caos.zitadel.admin.api.v1.OrgSetUpRequest.org:type_name -> caos.zitadel.admin.api.v1.CreateOrgRequest + 21, // 10: caos.zitadel.admin.api.v1.OrgSetUpRequest.user:type_name -> caos.zitadel.admin.api.v1.CreateUserRequest + 15, // 11: caos.zitadel.admin.api.v1.OrgSetUpResponse.org:type_name -> caos.zitadel.admin.api.v1.Org + 24, // 12: caos.zitadel.admin.api.v1.OrgSetUpResponse.user:type_name -> caos.zitadel.admin.api.v1.UserResponse + 22, // 13: caos.zitadel.admin.api.v1.CreateUserRequest.human:type_name -> caos.zitadel.admin.api.v1.CreateHumanRequest + 23, // 14: caos.zitadel.admin.api.v1.CreateUserRequest.machine:type_name -> caos.zitadel.admin.api.v1.CreateMachineRequest 4, // 15: caos.zitadel.admin.api.v1.CreateHumanRequest.gender:type_name -> caos.zitadel.admin.api.v1.Gender 3, // 16: caos.zitadel.admin.api.v1.UserResponse.state:type_name -> caos.zitadel.admin.api.v1.UserState - 63, // 17: caos.zitadel.admin.api.v1.UserResponse.creation_date:type_name -> google.protobuf.Timestamp - 63, // 18: caos.zitadel.admin.api.v1.UserResponse.change_date:type_name -> google.protobuf.Timestamp - 24, // 19: caos.zitadel.admin.api.v1.UserResponse.human:type_name -> caos.zitadel.admin.api.v1.HumanResponse - 25, // 20: caos.zitadel.admin.api.v1.UserResponse.machine:type_name -> caos.zitadel.admin.api.v1.MachineResponse + 64, // 17: caos.zitadel.admin.api.v1.UserResponse.creation_date:type_name -> google.protobuf.Timestamp + 64, // 18: caos.zitadel.admin.api.v1.UserResponse.change_date:type_name -> google.protobuf.Timestamp + 25, // 19: caos.zitadel.admin.api.v1.UserResponse.human:type_name -> caos.zitadel.admin.api.v1.HumanResponse + 26, // 20: caos.zitadel.admin.api.v1.UserResponse.machine:type_name -> caos.zitadel.admin.api.v1.MachineResponse 4, // 21: caos.zitadel.admin.api.v1.HumanResponse.gender:type_name -> caos.zitadel.admin.api.v1.Gender - 26, // 22: caos.zitadel.admin.api.v1.MachineResponse.keys:type_name -> caos.zitadel.admin.api.v1.MachineKeyResponse + 27, // 22: caos.zitadel.admin.api.v1.MachineResponse.keys:type_name -> caos.zitadel.admin.api.v1.MachineKeyResponse 5, // 23: caos.zitadel.admin.api.v1.MachineKeyResponse.type:type_name -> caos.zitadel.admin.api.v1.MachineKeyType - 63, // 24: caos.zitadel.admin.api.v1.MachineKeyResponse.creation_date:type_name -> google.protobuf.Timestamp - 63, // 25: caos.zitadel.admin.api.v1.MachineKeyResponse.expiration_date:type_name -> google.protobuf.Timestamp - 63, // 26: caos.zitadel.admin.api.v1.OrgIamPolicy.creation_date:type_name -> google.protobuf.Timestamp - 63, // 27: caos.zitadel.admin.api.v1.OrgIamPolicy.change_date:type_name -> google.protobuf.Timestamp - 63, // 28: caos.zitadel.admin.api.v1.IamMember.change_date:type_name -> google.protobuf.Timestamp - 63, // 29: caos.zitadel.admin.api.v1.IamMember.creation_date:type_name -> google.protobuf.Timestamp - 37, // 30: caos.zitadel.admin.api.v1.IamMemberSearchResponse.result:type_name -> caos.zitadel.admin.api.v1.IamMemberView - 63, // 31: caos.zitadel.admin.api.v1.IamMemberSearchResponse.view_timestamp:type_name -> google.protobuf.Timestamp - 63, // 32: caos.zitadel.admin.api.v1.IamMemberView.change_date:type_name -> google.protobuf.Timestamp - 63, // 33: caos.zitadel.admin.api.v1.IamMemberView.creation_date:type_name -> google.protobuf.Timestamp - 39, // 34: caos.zitadel.admin.api.v1.IamMemberSearchRequest.queries:type_name -> caos.zitadel.admin.api.v1.IamMemberSearchQuery + 64, // 24: caos.zitadel.admin.api.v1.MachineKeyResponse.creation_date:type_name -> google.protobuf.Timestamp + 64, // 25: caos.zitadel.admin.api.v1.MachineKeyResponse.expiration_date:type_name -> google.protobuf.Timestamp + 64, // 26: caos.zitadel.admin.api.v1.OrgIamPolicy.creation_date:type_name -> google.protobuf.Timestamp + 64, // 27: caos.zitadel.admin.api.v1.OrgIamPolicy.change_date:type_name -> google.protobuf.Timestamp + 64, // 28: caos.zitadel.admin.api.v1.IamMember.change_date:type_name -> google.protobuf.Timestamp + 64, // 29: caos.zitadel.admin.api.v1.IamMember.creation_date:type_name -> google.protobuf.Timestamp + 38, // 30: caos.zitadel.admin.api.v1.IamMemberSearchResponse.result:type_name -> caos.zitadel.admin.api.v1.IamMemberView + 64, // 31: caos.zitadel.admin.api.v1.IamMemberSearchResponse.view_timestamp:type_name -> google.protobuf.Timestamp + 64, // 32: caos.zitadel.admin.api.v1.IamMemberView.change_date:type_name -> google.protobuf.Timestamp + 64, // 33: caos.zitadel.admin.api.v1.IamMemberView.creation_date:type_name -> google.protobuf.Timestamp + 40, // 34: caos.zitadel.admin.api.v1.IamMemberSearchRequest.queries:type_name -> caos.zitadel.admin.api.v1.IamMemberSearchQuery 6, // 35: caos.zitadel.admin.api.v1.IamMemberSearchQuery.key:type_name -> caos.zitadel.admin.api.v1.IamMemberSearchKey 7, // 36: caos.zitadel.admin.api.v1.IamMemberSearchQuery.method:type_name -> caos.zitadel.admin.api.v1.SearchMethod - 42, // 37: caos.zitadel.admin.api.v1.FailedEvents.failed_events:type_name -> caos.zitadel.admin.api.v1.FailedEvent - 45, // 38: caos.zitadel.admin.api.v1.Views.views:type_name -> caos.zitadel.admin.api.v1.View - 63, // 39: caos.zitadel.admin.api.v1.View.view_timestamp:type_name -> google.protobuf.Timestamp + 43, // 37: caos.zitadel.admin.api.v1.FailedEvents.failed_events:type_name -> caos.zitadel.admin.api.v1.FailedEvent + 46, // 38: caos.zitadel.admin.api.v1.Views.views:type_name -> caos.zitadel.admin.api.v1.View + 64, // 39: caos.zitadel.admin.api.v1.View.view_timestamp:type_name -> google.protobuf.Timestamp 8, // 40: caos.zitadel.admin.api.v1.Idp.state:type_name -> caos.zitadel.admin.api.v1.IdpState - 63, // 41: caos.zitadel.admin.api.v1.Idp.creation_date:type_name -> google.protobuf.Timestamp - 63, // 42: caos.zitadel.admin.api.v1.Idp.change_date:type_name -> google.protobuf.Timestamp - 49, // 43: caos.zitadel.admin.api.v1.Idp.oidc_config:type_name -> caos.zitadel.admin.api.v1.OidcIdpConfig - 53, // 44: caos.zitadel.admin.api.v1.IdpSearchResponse.result:type_name -> caos.zitadel.admin.api.v1.IdpView - 63, // 45: caos.zitadel.admin.api.v1.IdpSearchResponse.view_timestamp:type_name -> google.protobuf.Timestamp - 8, // 46: caos.zitadel.admin.api.v1.IdpView.state:type_name -> caos.zitadel.admin.api.v1.IdpState - 63, // 47: caos.zitadel.admin.api.v1.IdpView.creation_date:type_name -> google.protobuf.Timestamp - 63, // 48: caos.zitadel.admin.api.v1.IdpView.change_date:type_name -> google.protobuf.Timestamp - 54, // 49: caos.zitadel.admin.api.v1.IdpView.oidc_config:type_name -> caos.zitadel.admin.api.v1.OidcIdpConfigView - 56, // 50: caos.zitadel.admin.api.v1.IdpSearchRequest.queries:type_name -> caos.zitadel.admin.api.v1.IdpSearchQuery - 9, // 51: caos.zitadel.admin.api.v1.IdpSearchQuery.key:type_name -> caos.zitadel.admin.api.v1.IdpSearchKey - 7, // 52: caos.zitadel.admin.api.v1.IdpSearchQuery.method:type_name -> caos.zitadel.admin.api.v1.SearchMethod - 10, // 53: caos.zitadel.admin.api.v1.IdpProviderView.type:type_name -> caos.zitadel.admin.api.v1.IdpType - 60, // 54: caos.zitadel.admin.api.v1.IdpProviderSearchResponse.result:type_name -> caos.zitadel.admin.api.v1.IdpProviderView - 63, // 55: caos.zitadel.admin.api.v1.IdpProviderSearchResponse.view_timestamp:type_name -> google.protobuf.Timestamp - 64, // 56: caos.zitadel.admin.api.v1.AdminService.Healthz:input_type -> google.protobuf.Empty - 64, // 57: caos.zitadel.admin.api.v1.AdminService.Ready:input_type -> google.protobuf.Empty - 64, // 58: caos.zitadel.admin.api.v1.AdminService.Validate:input_type -> google.protobuf.Empty - 12, // 59: caos.zitadel.admin.api.v1.AdminService.IsOrgUnique:input_type -> caos.zitadel.admin.api.v1.UniqueOrgRequest - 11, // 60: caos.zitadel.admin.api.v1.AdminService.GetOrgByID:input_type -> caos.zitadel.admin.api.v1.OrgID - 15, // 61: caos.zitadel.admin.api.v1.AdminService.SearchOrgs:input_type -> caos.zitadel.admin.api.v1.OrgSearchRequest - 18, // 62: caos.zitadel.admin.api.v1.AdminService.SetUpOrg:input_type -> caos.zitadel.admin.api.v1.OrgSetUpRequest - 30, // 63: caos.zitadel.admin.api.v1.AdminService.GetOrgIamPolicy:input_type -> caos.zitadel.admin.api.v1.OrgIamPolicyID - 29, // 64: caos.zitadel.admin.api.v1.AdminService.CreateOrgIamPolicy:input_type -> caos.zitadel.admin.api.v1.OrgIamPolicyRequest - 29, // 65: caos.zitadel.admin.api.v1.AdminService.UpdateOrgIamPolicy:input_type -> caos.zitadel.admin.api.v1.OrgIamPolicyRequest - 30, // 66: caos.zitadel.admin.api.v1.AdminService.DeleteOrgIamPolicy:input_type -> caos.zitadel.admin.api.v1.OrgIamPolicyID - 64, // 67: caos.zitadel.admin.api.v1.AdminService.GetIamMemberRoles:input_type -> google.protobuf.Empty - 33, // 68: caos.zitadel.admin.api.v1.AdminService.AddIamMember:input_type -> caos.zitadel.admin.api.v1.AddIamMemberRequest - 34, // 69: caos.zitadel.admin.api.v1.AdminService.ChangeIamMember:input_type -> caos.zitadel.admin.api.v1.ChangeIamMemberRequest - 35, // 70: caos.zitadel.admin.api.v1.AdminService.RemoveIamMember:input_type -> caos.zitadel.admin.api.v1.RemoveIamMemberRequest - 38, // 71: caos.zitadel.admin.api.v1.AdminService.SearchIamMembers:input_type -> caos.zitadel.admin.api.v1.IamMemberSearchRequest - 64, // 72: caos.zitadel.admin.api.v1.AdminService.GetViews:input_type -> google.protobuf.Empty - 43, // 73: caos.zitadel.admin.api.v1.AdminService.ClearView:input_type -> caos.zitadel.admin.api.v1.ViewID - 64, // 74: caos.zitadel.admin.api.v1.AdminService.GetFailedEvents:input_type -> google.protobuf.Empty - 40, // 75: caos.zitadel.admin.api.v1.AdminService.RemoveFailedEvent:input_type -> caos.zitadel.admin.api.v1.FailedEventID - 46, // 76: caos.zitadel.admin.api.v1.AdminService.IdpByID:input_type -> caos.zitadel.admin.api.v1.IdpID - 50, // 77: caos.zitadel.admin.api.v1.AdminService.CreateOidcIdp:input_type -> caos.zitadel.admin.api.v1.OidcIdpConfigCreate - 48, // 78: caos.zitadel.admin.api.v1.AdminService.UpdateIdpConfig:input_type -> caos.zitadel.admin.api.v1.IdpUpdate - 46, // 79: caos.zitadel.admin.api.v1.AdminService.DeactivateIdpConfig:input_type -> caos.zitadel.admin.api.v1.IdpID - 46, // 80: caos.zitadel.admin.api.v1.AdminService.ReactivateIdpConfig:input_type -> caos.zitadel.admin.api.v1.IdpID - 46, // 81: caos.zitadel.admin.api.v1.AdminService.RemoveIdpConfig:input_type -> caos.zitadel.admin.api.v1.IdpID - 51, // 82: caos.zitadel.admin.api.v1.AdminService.UpdateOidcIdpConfig:input_type -> caos.zitadel.admin.api.v1.OidcIdpConfigUpdate - 55, // 83: caos.zitadel.admin.api.v1.AdminService.SearchIdps:input_type -> caos.zitadel.admin.api.v1.IdpSearchRequest - 64, // 84: caos.zitadel.admin.api.v1.AdminService.GetDefaultLoginPolicy:input_type -> google.protobuf.Empty - 57, // 85: caos.zitadel.admin.api.v1.AdminService.UpdateDefaultLoginPolicy:input_type -> caos.zitadel.admin.api.v1.DefaultLoginPolicy - 62, // 86: caos.zitadel.admin.api.v1.AdminService.GetDefaultLoginPolicyIdpProviders:input_type -> caos.zitadel.admin.api.v1.IdpProviderSearchRequest - 58, // 87: caos.zitadel.admin.api.v1.AdminService.AddIdpProviderToDefaultLoginPolicy:input_type -> caos.zitadel.admin.api.v1.IdpProviderID - 58, // 88: caos.zitadel.admin.api.v1.AdminService.RemoveIdpProviderFromDefaultLoginPolicy:input_type -> caos.zitadel.admin.api.v1.IdpProviderID - 64, // 89: caos.zitadel.admin.api.v1.AdminService.Healthz:output_type -> google.protobuf.Empty - 64, // 90: caos.zitadel.admin.api.v1.AdminService.Ready:output_type -> google.protobuf.Empty - 65, // 91: caos.zitadel.admin.api.v1.AdminService.Validate:output_type -> google.protobuf.Struct - 13, // 92: caos.zitadel.admin.api.v1.AdminService.IsOrgUnique:output_type -> caos.zitadel.admin.api.v1.UniqueOrgResponse - 14, // 93: caos.zitadel.admin.api.v1.AdminService.GetOrgByID:output_type -> caos.zitadel.admin.api.v1.Org - 17, // 94: caos.zitadel.admin.api.v1.AdminService.SearchOrgs:output_type -> caos.zitadel.admin.api.v1.OrgSearchResponse - 19, // 95: caos.zitadel.admin.api.v1.AdminService.SetUpOrg:output_type -> caos.zitadel.admin.api.v1.OrgSetUpResponse - 28, // 96: caos.zitadel.admin.api.v1.AdminService.GetOrgIamPolicy:output_type -> caos.zitadel.admin.api.v1.OrgIamPolicy - 28, // 97: caos.zitadel.admin.api.v1.AdminService.CreateOrgIamPolicy:output_type -> caos.zitadel.admin.api.v1.OrgIamPolicy - 28, // 98: caos.zitadel.admin.api.v1.AdminService.UpdateOrgIamPolicy:output_type -> caos.zitadel.admin.api.v1.OrgIamPolicy - 64, // 99: caos.zitadel.admin.api.v1.AdminService.DeleteOrgIamPolicy:output_type -> google.protobuf.Empty - 31, // 100: caos.zitadel.admin.api.v1.AdminService.GetIamMemberRoles:output_type -> caos.zitadel.admin.api.v1.IamMemberRoles - 32, // 101: caos.zitadel.admin.api.v1.AdminService.AddIamMember:output_type -> caos.zitadel.admin.api.v1.IamMember - 32, // 102: caos.zitadel.admin.api.v1.AdminService.ChangeIamMember:output_type -> caos.zitadel.admin.api.v1.IamMember - 64, // 103: caos.zitadel.admin.api.v1.AdminService.RemoveIamMember:output_type -> google.protobuf.Empty - 36, // 104: caos.zitadel.admin.api.v1.AdminService.SearchIamMembers:output_type -> caos.zitadel.admin.api.v1.IamMemberSearchResponse - 44, // 105: caos.zitadel.admin.api.v1.AdminService.GetViews:output_type -> caos.zitadel.admin.api.v1.Views - 64, // 106: caos.zitadel.admin.api.v1.AdminService.ClearView:output_type -> google.protobuf.Empty - 41, // 107: caos.zitadel.admin.api.v1.AdminService.GetFailedEvents:output_type -> caos.zitadel.admin.api.v1.FailedEvents - 64, // 108: caos.zitadel.admin.api.v1.AdminService.RemoveFailedEvent:output_type -> google.protobuf.Empty - 53, // 109: caos.zitadel.admin.api.v1.AdminService.IdpByID:output_type -> caos.zitadel.admin.api.v1.IdpView - 47, // 110: caos.zitadel.admin.api.v1.AdminService.CreateOidcIdp:output_type -> caos.zitadel.admin.api.v1.Idp - 47, // 111: caos.zitadel.admin.api.v1.AdminService.UpdateIdpConfig:output_type -> caos.zitadel.admin.api.v1.Idp - 47, // 112: caos.zitadel.admin.api.v1.AdminService.DeactivateIdpConfig:output_type -> caos.zitadel.admin.api.v1.Idp - 47, // 113: caos.zitadel.admin.api.v1.AdminService.ReactivateIdpConfig:output_type -> caos.zitadel.admin.api.v1.Idp - 64, // 114: caos.zitadel.admin.api.v1.AdminService.RemoveIdpConfig:output_type -> google.protobuf.Empty - 49, // 115: caos.zitadel.admin.api.v1.AdminService.UpdateOidcIdpConfig:output_type -> caos.zitadel.admin.api.v1.OidcIdpConfig - 52, // 116: caos.zitadel.admin.api.v1.AdminService.SearchIdps:output_type -> caos.zitadel.admin.api.v1.IdpSearchResponse - 59, // 117: caos.zitadel.admin.api.v1.AdminService.GetDefaultLoginPolicy:output_type -> caos.zitadel.admin.api.v1.DefaultLoginPolicyView - 57, // 118: caos.zitadel.admin.api.v1.AdminService.UpdateDefaultLoginPolicy:output_type -> caos.zitadel.admin.api.v1.DefaultLoginPolicy - 61, // 119: caos.zitadel.admin.api.v1.AdminService.GetDefaultLoginPolicyIdpProviders:output_type -> caos.zitadel.admin.api.v1.IdpProviderSearchResponse - 58, // 120: caos.zitadel.admin.api.v1.AdminService.AddIdpProviderToDefaultLoginPolicy:output_type -> caos.zitadel.admin.api.v1.IdpProviderID - 64, // 121: caos.zitadel.admin.api.v1.AdminService.RemoveIdpProviderFromDefaultLoginPolicy:output_type -> google.protobuf.Empty - 89, // [89:122] is the sub-list for method output_type - 56, // [56:89] is the sub-list for method input_type - 56, // [56:56] is the sub-list for extension type_name - 56, // [56:56] is the sub-list for extension extendee - 0, // [0:56] is the sub-list for field type_name + 64, // 41: caos.zitadel.admin.api.v1.Idp.creation_date:type_name -> google.protobuf.Timestamp + 64, // 42: caos.zitadel.admin.api.v1.Idp.change_date:type_name -> google.protobuf.Timestamp + 50, // 43: caos.zitadel.admin.api.v1.Idp.oidc_config:type_name -> caos.zitadel.admin.api.v1.OidcIdpConfig + 9, // 44: caos.zitadel.admin.api.v1.OidcIdpConfigCreate.idp_display_name_mapping:type_name -> caos.zitadel.admin.api.v1.OIDCMappingField + 9, // 45: caos.zitadel.admin.api.v1.OidcIdpConfigCreate.username_mapping:type_name -> caos.zitadel.admin.api.v1.OIDCMappingField + 9, // 46: caos.zitadel.admin.api.v1.OidcIdpConfigUpdate.idp_display_name_mapping:type_name -> caos.zitadel.admin.api.v1.OIDCMappingField + 9, // 47: caos.zitadel.admin.api.v1.OidcIdpConfigUpdate.username_mapping:type_name -> caos.zitadel.admin.api.v1.OIDCMappingField + 54, // 48: caos.zitadel.admin.api.v1.IdpSearchResponse.result:type_name -> caos.zitadel.admin.api.v1.IdpView + 64, // 49: caos.zitadel.admin.api.v1.IdpSearchResponse.view_timestamp:type_name -> google.protobuf.Timestamp + 8, // 50: caos.zitadel.admin.api.v1.IdpView.state:type_name -> caos.zitadel.admin.api.v1.IdpState + 64, // 51: caos.zitadel.admin.api.v1.IdpView.creation_date:type_name -> google.protobuf.Timestamp + 64, // 52: caos.zitadel.admin.api.v1.IdpView.change_date:type_name -> google.protobuf.Timestamp + 55, // 53: caos.zitadel.admin.api.v1.IdpView.oidc_config:type_name -> caos.zitadel.admin.api.v1.OidcIdpConfigView + 9, // 54: caos.zitadel.admin.api.v1.OidcIdpConfigView.idp_display_name_mapping:type_name -> caos.zitadel.admin.api.v1.OIDCMappingField + 9, // 55: caos.zitadel.admin.api.v1.OidcIdpConfigView.username_mapping:type_name -> caos.zitadel.admin.api.v1.OIDCMappingField + 57, // 56: caos.zitadel.admin.api.v1.IdpSearchRequest.queries:type_name -> caos.zitadel.admin.api.v1.IdpSearchQuery + 10, // 57: caos.zitadel.admin.api.v1.IdpSearchQuery.key:type_name -> caos.zitadel.admin.api.v1.IdpSearchKey + 7, // 58: caos.zitadel.admin.api.v1.IdpSearchQuery.method:type_name -> caos.zitadel.admin.api.v1.SearchMethod + 11, // 59: caos.zitadel.admin.api.v1.IdpProviderView.type:type_name -> caos.zitadel.admin.api.v1.IdpType + 61, // 60: caos.zitadel.admin.api.v1.IdpProviderSearchResponse.result:type_name -> caos.zitadel.admin.api.v1.IdpProviderView + 64, // 61: caos.zitadel.admin.api.v1.IdpProviderSearchResponse.view_timestamp:type_name -> google.protobuf.Timestamp + 65, // 62: caos.zitadel.admin.api.v1.AdminService.Healthz:input_type -> google.protobuf.Empty + 65, // 63: caos.zitadel.admin.api.v1.AdminService.Ready:input_type -> google.protobuf.Empty + 65, // 64: caos.zitadel.admin.api.v1.AdminService.Validate:input_type -> google.protobuf.Empty + 13, // 65: caos.zitadel.admin.api.v1.AdminService.IsOrgUnique:input_type -> caos.zitadel.admin.api.v1.UniqueOrgRequest + 12, // 66: caos.zitadel.admin.api.v1.AdminService.GetOrgByID:input_type -> caos.zitadel.admin.api.v1.OrgID + 16, // 67: caos.zitadel.admin.api.v1.AdminService.SearchOrgs:input_type -> caos.zitadel.admin.api.v1.OrgSearchRequest + 19, // 68: caos.zitadel.admin.api.v1.AdminService.SetUpOrg:input_type -> caos.zitadel.admin.api.v1.OrgSetUpRequest + 31, // 69: caos.zitadel.admin.api.v1.AdminService.GetOrgIamPolicy:input_type -> caos.zitadel.admin.api.v1.OrgIamPolicyID + 30, // 70: caos.zitadel.admin.api.v1.AdminService.CreateOrgIamPolicy:input_type -> caos.zitadel.admin.api.v1.OrgIamPolicyRequest + 30, // 71: caos.zitadel.admin.api.v1.AdminService.UpdateOrgIamPolicy:input_type -> caos.zitadel.admin.api.v1.OrgIamPolicyRequest + 31, // 72: caos.zitadel.admin.api.v1.AdminService.DeleteOrgIamPolicy:input_type -> caos.zitadel.admin.api.v1.OrgIamPolicyID + 65, // 73: caos.zitadel.admin.api.v1.AdminService.GetIamMemberRoles:input_type -> google.protobuf.Empty + 34, // 74: caos.zitadel.admin.api.v1.AdminService.AddIamMember:input_type -> caos.zitadel.admin.api.v1.AddIamMemberRequest + 35, // 75: caos.zitadel.admin.api.v1.AdminService.ChangeIamMember:input_type -> caos.zitadel.admin.api.v1.ChangeIamMemberRequest + 36, // 76: caos.zitadel.admin.api.v1.AdminService.RemoveIamMember:input_type -> caos.zitadel.admin.api.v1.RemoveIamMemberRequest + 39, // 77: caos.zitadel.admin.api.v1.AdminService.SearchIamMembers:input_type -> caos.zitadel.admin.api.v1.IamMemberSearchRequest + 65, // 78: caos.zitadel.admin.api.v1.AdminService.GetViews:input_type -> google.protobuf.Empty + 44, // 79: caos.zitadel.admin.api.v1.AdminService.ClearView:input_type -> caos.zitadel.admin.api.v1.ViewID + 65, // 80: caos.zitadel.admin.api.v1.AdminService.GetFailedEvents:input_type -> google.protobuf.Empty + 41, // 81: caos.zitadel.admin.api.v1.AdminService.RemoveFailedEvent:input_type -> caos.zitadel.admin.api.v1.FailedEventID + 47, // 82: caos.zitadel.admin.api.v1.AdminService.IdpByID:input_type -> caos.zitadel.admin.api.v1.IdpID + 51, // 83: caos.zitadel.admin.api.v1.AdminService.CreateOidcIdp:input_type -> caos.zitadel.admin.api.v1.OidcIdpConfigCreate + 49, // 84: caos.zitadel.admin.api.v1.AdminService.UpdateIdpConfig:input_type -> caos.zitadel.admin.api.v1.IdpUpdate + 47, // 85: caos.zitadel.admin.api.v1.AdminService.DeactivateIdpConfig:input_type -> caos.zitadel.admin.api.v1.IdpID + 47, // 86: caos.zitadel.admin.api.v1.AdminService.ReactivateIdpConfig:input_type -> caos.zitadel.admin.api.v1.IdpID + 47, // 87: caos.zitadel.admin.api.v1.AdminService.RemoveIdpConfig:input_type -> caos.zitadel.admin.api.v1.IdpID + 52, // 88: caos.zitadel.admin.api.v1.AdminService.UpdateOidcIdpConfig:input_type -> caos.zitadel.admin.api.v1.OidcIdpConfigUpdate + 56, // 89: caos.zitadel.admin.api.v1.AdminService.SearchIdps:input_type -> caos.zitadel.admin.api.v1.IdpSearchRequest + 65, // 90: caos.zitadel.admin.api.v1.AdminService.GetDefaultLoginPolicy:input_type -> google.protobuf.Empty + 58, // 91: caos.zitadel.admin.api.v1.AdminService.UpdateDefaultLoginPolicy:input_type -> caos.zitadel.admin.api.v1.DefaultLoginPolicy + 63, // 92: caos.zitadel.admin.api.v1.AdminService.GetDefaultLoginPolicyIdpProviders:input_type -> caos.zitadel.admin.api.v1.IdpProviderSearchRequest + 59, // 93: caos.zitadel.admin.api.v1.AdminService.AddIdpProviderToDefaultLoginPolicy:input_type -> caos.zitadel.admin.api.v1.IdpProviderID + 59, // 94: caos.zitadel.admin.api.v1.AdminService.RemoveIdpProviderFromDefaultLoginPolicy:input_type -> caos.zitadel.admin.api.v1.IdpProviderID + 65, // 95: caos.zitadel.admin.api.v1.AdminService.Healthz:output_type -> google.protobuf.Empty + 65, // 96: caos.zitadel.admin.api.v1.AdminService.Ready:output_type -> google.protobuf.Empty + 66, // 97: caos.zitadel.admin.api.v1.AdminService.Validate:output_type -> google.protobuf.Struct + 14, // 98: caos.zitadel.admin.api.v1.AdminService.IsOrgUnique:output_type -> caos.zitadel.admin.api.v1.UniqueOrgResponse + 15, // 99: caos.zitadel.admin.api.v1.AdminService.GetOrgByID:output_type -> caos.zitadel.admin.api.v1.Org + 18, // 100: caos.zitadel.admin.api.v1.AdminService.SearchOrgs:output_type -> caos.zitadel.admin.api.v1.OrgSearchResponse + 20, // 101: caos.zitadel.admin.api.v1.AdminService.SetUpOrg:output_type -> caos.zitadel.admin.api.v1.OrgSetUpResponse + 29, // 102: caos.zitadel.admin.api.v1.AdminService.GetOrgIamPolicy:output_type -> caos.zitadel.admin.api.v1.OrgIamPolicy + 29, // 103: caos.zitadel.admin.api.v1.AdminService.CreateOrgIamPolicy:output_type -> caos.zitadel.admin.api.v1.OrgIamPolicy + 29, // 104: caos.zitadel.admin.api.v1.AdminService.UpdateOrgIamPolicy:output_type -> caos.zitadel.admin.api.v1.OrgIamPolicy + 65, // 105: caos.zitadel.admin.api.v1.AdminService.DeleteOrgIamPolicy:output_type -> google.protobuf.Empty + 32, // 106: caos.zitadel.admin.api.v1.AdminService.GetIamMemberRoles:output_type -> caos.zitadel.admin.api.v1.IamMemberRoles + 33, // 107: caos.zitadel.admin.api.v1.AdminService.AddIamMember:output_type -> caos.zitadel.admin.api.v1.IamMember + 33, // 108: caos.zitadel.admin.api.v1.AdminService.ChangeIamMember:output_type -> caos.zitadel.admin.api.v1.IamMember + 65, // 109: caos.zitadel.admin.api.v1.AdminService.RemoveIamMember:output_type -> google.protobuf.Empty + 37, // 110: caos.zitadel.admin.api.v1.AdminService.SearchIamMembers:output_type -> caos.zitadel.admin.api.v1.IamMemberSearchResponse + 45, // 111: caos.zitadel.admin.api.v1.AdminService.GetViews:output_type -> caos.zitadel.admin.api.v1.Views + 65, // 112: caos.zitadel.admin.api.v1.AdminService.ClearView:output_type -> google.protobuf.Empty + 42, // 113: caos.zitadel.admin.api.v1.AdminService.GetFailedEvents:output_type -> caos.zitadel.admin.api.v1.FailedEvents + 65, // 114: caos.zitadel.admin.api.v1.AdminService.RemoveFailedEvent:output_type -> google.protobuf.Empty + 54, // 115: caos.zitadel.admin.api.v1.AdminService.IdpByID:output_type -> caos.zitadel.admin.api.v1.IdpView + 48, // 116: caos.zitadel.admin.api.v1.AdminService.CreateOidcIdp:output_type -> caos.zitadel.admin.api.v1.Idp + 48, // 117: caos.zitadel.admin.api.v1.AdminService.UpdateIdpConfig:output_type -> caos.zitadel.admin.api.v1.Idp + 48, // 118: caos.zitadel.admin.api.v1.AdminService.DeactivateIdpConfig:output_type -> caos.zitadel.admin.api.v1.Idp + 48, // 119: caos.zitadel.admin.api.v1.AdminService.ReactivateIdpConfig:output_type -> caos.zitadel.admin.api.v1.Idp + 65, // 120: caos.zitadel.admin.api.v1.AdminService.RemoveIdpConfig:output_type -> google.protobuf.Empty + 50, // 121: caos.zitadel.admin.api.v1.AdminService.UpdateOidcIdpConfig:output_type -> caos.zitadel.admin.api.v1.OidcIdpConfig + 53, // 122: caos.zitadel.admin.api.v1.AdminService.SearchIdps:output_type -> caos.zitadel.admin.api.v1.IdpSearchResponse + 60, // 123: caos.zitadel.admin.api.v1.AdminService.GetDefaultLoginPolicy:output_type -> caos.zitadel.admin.api.v1.DefaultLoginPolicyView + 58, // 124: caos.zitadel.admin.api.v1.AdminService.UpdateDefaultLoginPolicy:output_type -> caos.zitadel.admin.api.v1.DefaultLoginPolicy + 62, // 125: caos.zitadel.admin.api.v1.AdminService.GetDefaultLoginPolicyIdpProviders:output_type -> caos.zitadel.admin.api.v1.IdpProviderSearchResponse + 59, // 126: caos.zitadel.admin.api.v1.AdminService.AddIdpProviderToDefaultLoginPolicy:output_type -> caos.zitadel.admin.api.v1.IdpProviderID + 65, // 127: caos.zitadel.admin.api.v1.AdminService.RemoveIdpProviderFromDefaultLoginPolicy:output_type -> google.protobuf.Empty + 95, // [95:128] is the sub-list for method output_type + 62, // [62:95] is the sub-list for method input_type + 62, // [62:62] is the sub-list for extension type_name + 62, // [62:62] is the sub-list for extension extendee + 0, // [0:62] is the sub-list for field type_name } func init() { file_admin_proto_init() } @@ -6292,7 +6439,7 @@ func file_admin_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_admin_proto_rawDesc, - NumEnums: 11, + NumEnums: 12, NumMessages: 52, NumExtensions: 0, NumServices: 1, diff --git a/pkg/grpc/admin/admin.pb.validate.go b/pkg/grpc/admin/admin.pb.validate.go index 7208cedccf..6f0501ecc4 100644 --- a/pkg/grpc/admin/admin.pb.validate.go +++ b/pkg/grpc/admin/admin.pb.validate.go @@ -3512,6 +3512,10 @@ func (m *OidcIdpConfigCreate) Validate() error { } } + // no validation rules for IdpDisplayNameMapping + + // no validation rules for UsernameMapping + return nil } @@ -3602,6 +3606,10 @@ func (m *OidcIdpConfigUpdate) Validate() error { } } + // no validation rules for IdpDisplayNameMapping + + // no validation rules for UsernameMapping + return nil } @@ -3883,6 +3891,10 @@ func (m *OidcIdpConfigView) Validate() error { // no validation rules for Issuer + // no validation rules for IdpDisplayNameMapping + + // no validation rules for UsernameMapping + return nil } diff --git a/pkg/grpc/admin/admin.swagger.json b/pkg/grpc/admin/admin.swagger.json index 6475e48afb..0ef879600a 100644 --- a/pkg/grpc/admin/admin.swagger.json +++ b/pkg/grpc/admin/admin.swagger.json @@ -1612,6 +1612,15 @@ } } }, + "v1OIDCMappingField": { + "type": "string", + "enum": [ + "OIDCMAPPINGFIELD_UNSPECIFIED", + "OIDCMAPPINGFIELD_PREFERRED_USERNAME", + "OIDCMAPPINGFIELD_EMAIL" + ], + "default": "OIDCMAPPINGFIELD_UNSPECIFIED" + }, "v1OidcIdpConfig": { "type": "object", "properties": { @@ -1656,6 +1665,12 @@ "items": { "type": "string" } + }, + "idp_display_name_mapping": { + "$ref": "#/definitions/v1OIDCMappingField" + }, + "username_mapping": { + "$ref": "#/definitions/v1OIDCMappingField" } } }, @@ -1679,6 +1694,12 @@ "items": { "type": "string" } + }, + "idp_display_name_mapping": { + "$ref": "#/definitions/v1OIDCMappingField" + }, + "username_mapping": { + "$ref": "#/definitions/v1OIDCMappingField" } } }, @@ -1696,6 +1717,12 @@ "items": { "type": "string" } + }, + "idp_display_name_mapping": { + "$ref": "#/definitions/v1OIDCMappingField" + }, + "username_mapping": { + "$ref": "#/definitions/v1OIDCMappingField" } } }, diff --git a/pkg/grpc/admin/proto/admin.proto b/pkg/grpc/admin/proto/admin.proto index f72048afdd..e4a75ffa71 100644 --- a/pkg/grpc/admin/proto/admin.proto +++ b/pkg/grpc/admin/proto/admin.proto @@ -732,6 +732,12 @@ enum IdpState { IDPCONFIGSTATE_INACTIVE = 2; } +enum OIDCMappingField { + OIDCMAPPINGFIELD_UNSPECIFIED = 0; + OIDCMAPPINGFIELD_PREFERRED_USERNAME = 1; + OIDCMAPPINGFIELD_EMAIL = 2; +} + message OidcIdpConfigCreate { string name = 1 [(validate.rules).string = {min_len: 1, max_len: 200}]; bytes logo_src = 2; @@ -739,6 +745,8 @@ message OidcIdpConfigCreate { string client_secret = 4 [(validate.rules).string = {min_len: 1, max_len: 200}]; string issuer = 5 [(validate.rules).string = {min_len: 1, max_len: 200}]; repeated string scopes = 6; + OIDCMappingField idp_display_name_mapping = 7; + OIDCMappingField username_mapping = 8; } message OidcIdpConfigUpdate { @@ -747,6 +755,8 @@ message OidcIdpConfigUpdate { string client_secret = 3; string issuer = 4 [(validate.rules).string = {min_len: 1, max_len: 200}]; repeated string scopes = 5; + OIDCMappingField idp_display_name_mapping = 6; + OIDCMappingField username_mapping = 7; } message IdpSearchResponse { @@ -775,6 +785,8 @@ message OidcIdpConfigView { string client_id = 1; string issuer = 2; repeated string scopes = 3; + OIDCMappingField idp_display_name_mapping = 4; + OIDCMappingField username_mapping = 5; } message IdpSearchRequest { diff --git a/pkg/grpc/auth/auth.pb.authoptions.go b/pkg/grpc/auth/auth.pb.authoptions.go index b7e79bbb90..a2d5d59212 100644 --- a/pkg/grpc/auth/auth.pb.authoptions.go +++ b/pkg/grpc/auth/auth.pb.authoptions.go @@ -114,6 +114,16 @@ var AuthService_AuthMethods = authz.MethodMapping{ CheckParam: "", }, + "/caos.zitadel.auth.api.v1.AuthService/SearchMyExternalIDPs": authz.Option{ + Permission: "authenticated", + CheckParam: "", + }, + + "/caos.zitadel.auth.api.v1.AuthService/RemoveMyExternalIDP": authz.Option{ + Permission: "authenticated", + CheckParam: "", + }, + "/caos.zitadel.auth.api.v1.AuthService/AddMfaOTP": authz.Option{ Permission: "authenticated", CheckParam: "", diff --git a/pkg/grpc/auth/auth.pb.go b/pkg/grpc/auth/auth.pb.go index 58313e2068..eabcfc886d 100644 --- a/pkg/grpc/auth/auth.pb.go +++ b/pkg/grpc/auth/auth.pb.go @@ -1,11 +1,13 @@ // Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.25.0 +// protoc v3.11.3 // source: auth.proto package auth import ( context "context" - fmt "fmt" _ "github.com/caos/zitadel/internal/protoc/protoc-gen-authoption/authoption" message "github.com/caos/zitadel/pkg/grpc/message" _ "github.com/envoyproxy/protoc-gen-validate/validate" @@ -18,19 +20,22 @@ import ( grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" status "google.golang.org/grpc/status" - math "math" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" ) -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf +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) +) -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package +// This is a compile-time assertion that a sufficiently up-to-date version +// of the legacy proto package is being used. +const _ = proto.ProtoPackageIsVersion4 type UserSessionState int32 @@ -40,24 +45,45 @@ const ( UserSessionState_USERSESSIONSTATE_TERMINATED UserSessionState = 2 ) -var UserSessionState_name = map[int32]string{ - 0: "USERSESSIONSTATE_UNSPECIFIED", - 1: "USERSESSIONSTATE_ACTIVE", - 2: "USERSESSIONSTATE_TERMINATED", -} +// Enum value maps for UserSessionState. +var ( + UserSessionState_name = map[int32]string{ + 0: "USERSESSIONSTATE_UNSPECIFIED", + 1: "USERSESSIONSTATE_ACTIVE", + 2: "USERSESSIONSTATE_TERMINATED", + } + UserSessionState_value = map[string]int32{ + "USERSESSIONSTATE_UNSPECIFIED": 0, + "USERSESSIONSTATE_ACTIVE": 1, + "USERSESSIONSTATE_TERMINATED": 2, + } +) -var UserSessionState_value = map[string]int32{ - "USERSESSIONSTATE_UNSPECIFIED": 0, - "USERSESSIONSTATE_ACTIVE": 1, - "USERSESSIONSTATE_TERMINATED": 2, +func (x UserSessionState) Enum() *UserSessionState { + p := new(UserSessionState) + *p = x + return p } func (x UserSessionState) String() string { - return proto.EnumName(UserSessionState_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } +func (UserSessionState) Descriptor() protoreflect.EnumDescriptor { + return file_auth_proto_enumTypes[0].Descriptor() +} + +func (UserSessionState) Type() protoreflect.EnumType { + return &file_auth_proto_enumTypes[0] +} + +func (x UserSessionState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use UserSessionState.Descriptor instead. func (UserSessionState) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8bbd6f3875b0e874, []int{0} + return file_auth_proto_rawDescGZIP(), []int{0} } type MachineKeyType int32 @@ -67,22 +93,43 @@ const ( MachineKeyType_MACHINEKEY_JSON MachineKeyType = 1 ) -var MachineKeyType_name = map[int32]string{ - 0: "MACHINEKEY_UNSPECIFIED", - 1: "MACHINEKEY_JSON", -} +// Enum value maps for MachineKeyType. +var ( + MachineKeyType_name = map[int32]string{ + 0: "MACHINEKEY_UNSPECIFIED", + 1: "MACHINEKEY_JSON", + } + MachineKeyType_value = map[string]int32{ + "MACHINEKEY_UNSPECIFIED": 0, + "MACHINEKEY_JSON": 1, + } +) -var MachineKeyType_value = map[string]int32{ - "MACHINEKEY_UNSPECIFIED": 0, - "MACHINEKEY_JSON": 1, +func (x MachineKeyType) Enum() *MachineKeyType { + p := new(MachineKeyType) + *p = x + return p } func (x MachineKeyType) String() string { - return proto.EnumName(MachineKeyType_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } +func (MachineKeyType) Descriptor() protoreflect.EnumDescriptor { + return file_auth_proto_enumTypes[1].Descriptor() +} + +func (MachineKeyType) Type() protoreflect.EnumType { + return &file_auth_proto_enumTypes[1] +} + +func (x MachineKeyType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use MachineKeyType.Descriptor instead. func (MachineKeyType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8bbd6f3875b0e874, []int{1} + return file_auth_proto_rawDescGZIP(), []int{1} } type UserState int32 @@ -97,32 +144,53 @@ const ( UserState_USERSTATE_INITIAL UserState = 6 ) -var UserState_name = map[int32]string{ - 0: "USERSTATE_UNSPECIFIED", - 1: "USERSTATE_ACTIVE", - 2: "USERSTATE_INACTIVE", - 3: "USERSTATE_DELETED", - 4: "USERSTATE_LOCKED", - 5: "USERSTATE_SUSPEND", - 6: "USERSTATE_INITIAL", -} +// Enum value maps for UserState. +var ( + UserState_name = map[int32]string{ + 0: "USERSTATE_UNSPECIFIED", + 1: "USERSTATE_ACTIVE", + 2: "USERSTATE_INACTIVE", + 3: "USERSTATE_DELETED", + 4: "USERSTATE_LOCKED", + 5: "USERSTATE_SUSPEND", + 6: "USERSTATE_INITIAL", + } + UserState_value = map[string]int32{ + "USERSTATE_UNSPECIFIED": 0, + "USERSTATE_ACTIVE": 1, + "USERSTATE_INACTIVE": 2, + "USERSTATE_DELETED": 3, + "USERSTATE_LOCKED": 4, + "USERSTATE_SUSPEND": 5, + "USERSTATE_INITIAL": 6, + } +) -var UserState_value = map[string]int32{ - "USERSTATE_UNSPECIFIED": 0, - "USERSTATE_ACTIVE": 1, - "USERSTATE_INACTIVE": 2, - "USERSTATE_DELETED": 3, - "USERSTATE_LOCKED": 4, - "USERSTATE_SUSPEND": 5, - "USERSTATE_INITIAL": 6, +func (x UserState) Enum() *UserState { + p := new(UserState) + *p = x + return p } func (x UserState) String() string { - return proto.EnumName(UserState_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } +func (UserState) Descriptor() protoreflect.EnumDescriptor { + return file_auth_proto_enumTypes[2].Descriptor() +} + +func (UserState) Type() protoreflect.EnumType { + return &file_auth_proto_enumTypes[2] +} + +func (x UserState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use UserState.Descriptor instead. func (UserState) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8bbd6f3875b0e874, []int{2} + return file_auth_proto_rawDescGZIP(), []int{2} } type Gender int32 @@ -134,26 +202,47 @@ const ( Gender_GENDER_DIVERSE Gender = 3 ) -var Gender_name = map[int32]string{ - 0: "GENDER_UNSPECIFIED", - 1: "GENDER_FEMALE", - 2: "GENDER_MALE", - 3: "GENDER_DIVERSE", -} +// Enum value maps for Gender. +var ( + Gender_name = map[int32]string{ + 0: "GENDER_UNSPECIFIED", + 1: "GENDER_FEMALE", + 2: "GENDER_MALE", + 3: "GENDER_DIVERSE", + } + Gender_value = map[string]int32{ + "GENDER_UNSPECIFIED": 0, + "GENDER_FEMALE": 1, + "GENDER_MALE": 2, + "GENDER_DIVERSE": 3, + } +) -var Gender_value = map[string]int32{ - "GENDER_UNSPECIFIED": 0, - "GENDER_FEMALE": 1, - "GENDER_MALE": 2, - "GENDER_DIVERSE": 3, +func (x Gender) Enum() *Gender { + p := new(Gender) + *p = x + return p } func (x Gender) String() string { - return proto.EnumName(Gender_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } +func (Gender) Descriptor() protoreflect.EnumDescriptor { + return file_auth_proto_enumTypes[3].Descriptor() +} + +func (Gender) Type() protoreflect.EnumType { + return &file_auth_proto_enumTypes[3] +} + +func (x Gender) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Gender.Descriptor instead. func (Gender) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8bbd6f3875b0e874, []int{3} + return file_auth_proto_rawDescGZIP(), []int{3} } type MfaType int32 @@ -164,24 +253,45 @@ const ( MfaType_MFATYPE_OTP MfaType = 2 ) -var MfaType_name = map[int32]string{ - 0: "MFATYPE_UNSPECIFIED", - 1: "MFATYPE_SMS", - 2: "MFATYPE_OTP", -} +// Enum value maps for MfaType. +var ( + MfaType_name = map[int32]string{ + 0: "MFATYPE_UNSPECIFIED", + 1: "MFATYPE_SMS", + 2: "MFATYPE_OTP", + } + MfaType_value = map[string]int32{ + "MFATYPE_UNSPECIFIED": 0, + "MFATYPE_SMS": 1, + "MFATYPE_OTP": 2, + } +) -var MfaType_value = map[string]int32{ - "MFATYPE_UNSPECIFIED": 0, - "MFATYPE_SMS": 1, - "MFATYPE_OTP": 2, +func (x MfaType) Enum() *MfaType { + p := new(MfaType) + *p = x + return p } func (x MfaType) String() string { - return proto.EnumName(MfaType_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } +func (MfaType) Descriptor() protoreflect.EnumDescriptor { + return file_auth_proto_enumTypes[4].Descriptor() +} + +func (MfaType) Type() protoreflect.EnumType { + return &file_auth_proto_enumTypes[4] +} + +func (x MfaType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use MfaType.Descriptor instead. func (MfaType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8bbd6f3875b0e874, []int{4} + return file_auth_proto_rawDescGZIP(), []int{4} } type MFAState int32 @@ -193,26 +303,47 @@ const ( MFAState_MFASTATE_REMOVED MFAState = 3 ) -var MFAState_name = map[int32]string{ - 0: "MFASTATE_UNSPECIFIED", - 1: "MFASTATE_NOT_READY", - 2: "MFASTATE_READY", - 3: "MFASTATE_REMOVED", -} +// Enum value maps for MFAState. +var ( + MFAState_name = map[int32]string{ + 0: "MFASTATE_UNSPECIFIED", + 1: "MFASTATE_NOT_READY", + 2: "MFASTATE_READY", + 3: "MFASTATE_REMOVED", + } + MFAState_value = map[string]int32{ + "MFASTATE_UNSPECIFIED": 0, + "MFASTATE_NOT_READY": 1, + "MFASTATE_READY": 2, + "MFASTATE_REMOVED": 3, + } +) -var MFAState_value = map[string]int32{ - "MFASTATE_UNSPECIFIED": 0, - "MFASTATE_NOT_READY": 1, - "MFASTATE_READY": 2, - "MFASTATE_REMOVED": 3, +func (x MFAState) Enum() *MFAState { + p := new(MFAState) + *p = x + return p } func (x MFAState) String() string { - return proto.EnumName(MFAState_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } +func (MFAState) Descriptor() protoreflect.EnumDescriptor { + return file_auth_proto_enumTypes[5].Descriptor() +} + +func (MFAState) Type() protoreflect.EnumType { + return &file_auth_proto_enumTypes[5] +} + +func (x MFAState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use MFAState.Descriptor instead. func (MFAState) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8bbd6f3875b0e874, []int{5} + return file_auth_proto_rawDescGZIP(), []int{5} } type UserGrantSearchKey int32 @@ -223,24 +354,45 @@ const ( UserGrantSearchKey_UserGrantSearchKey_PROJECT_ID UserGrantSearchKey = 2 ) -var UserGrantSearchKey_name = map[int32]string{ - 0: "UserGrantSearchKey_UNKNOWN", - 1: "UserGrantSearchKey_ORG_ID", - 2: "UserGrantSearchKey_PROJECT_ID", -} +// Enum value maps for UserGrantSearchKey. +var ( + UserGrantSearchKey_name = map[int32]string{ + 0: "UserGrantSearchKey_UNKNOWN", + 1: "UserGrantSearchKey_ORG_ID", + 2: "UserGrantSearchKey_PROJECT_ID", + } + UserGrantSearchKey_value = map[string]int32{ + "UserGrantSearchKey_UNKNOWN": 0, + "UserGrantSearchKey_ORG_ID": 1, + "UserGrantSearchKey_PROJECT_ID": 2, + } +) -var UserGrantSearchKey_value = map[string]int32{ - "UserGrantSearchKey_UNKNOWN": 0, - "UserGrantSearchKey_ORG_ID": 1, - "UserGrantSearchKey_PROJECT_ID": 2, +func (x UserGrantSearchKey) Enum() *UserGrantSearchKey { + p := new(UserGrantSearchKey) + *p = x + return p } func (x UserGrantSearchKey) String() string { - return proto.EnumName(UserGrantSearchKey_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } +func (UserGrantSearchKey) Descriptor() protoreflect.EnumDescriptor { + return file_auth_proto_enumTypes[6].Descriptor() +} + +func (UserGrantSearchKey) Type() protoreflect.EnumType { + return &file_auth_proto_enumTypes[6] +} + +func (x UserGrantSearchKey) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use UserGrantSearchKey.Descriptor instead. func (UserGrantSearchKey) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8bbd6f3875b0e874, []int{6} + return file_auth_proto_rawDescGZIP(), []int{6} } type MyProjectOrgSearchKey int32 @@ -250,22 +402,43 @@ const ( MyProjectOrgSearchKey_MYPROJECTORGSEARCHKEY_ORG_NAME MyProjectOrgSearchKey = 1 ) -var MyProjectOrgSearchKey_name = map[int32]string{ - 0: "MYPROJECTORGSEARCHKEY_UNSPECIFIED", - 1: "MYPROJECTORGSEARCHKEY_ORG_NAME", -} +// Enum value maps for MyProjectOrgSearchKey. +var ( + MyProjectOrgSearchKey_name = map[int32]string{ + 0: "MYPROJECTORGSEARCHKEY_UNSPECIFIED", + 1: "MYPROJECTORGSEARCHKEY_ORG_NAME", + } + MyProjectOrgSearchKey_value = map[string]int32{ + "MYPROJECTORGSEARCHKEY_UNSPECIFIED": 0, + "MYPROJECTORGSEARCHKEY_ORG_NAME": 1, + } +) -var MyProjectOrgSearchKey_value = map[string]int32{ - "MYPROJECTORGSEARCHKEY_UNSPECIFIED": 0, - "MYPROJECTORGSEARCHKEY_ORG_NAME": 1, +func (x MyProjectOrgSearchKey) Enum() *MyProjectOrgSearchKey { + p := new(MyProjectOrgSearchKey) + *p = x + return p } func (x MyProjectOrgSearchKey) String() string { - return proto.EnumName(MyProjectOrgSearchKey_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } +func (MyProjectOrgSearchKey) Descriptor() protoreflect.EnumDescriptor { + return file_auth_proto_enumTypes[7].Descriptor() +} + +func (MyProjectOrgSearchKey) Type() protoreflect.EnumType { + return &file_auth_proto_enumTypes[7] +} + +func (x MyProjectOrgSearchKey) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use MyProjectOrgSearchKey.Descriptor instead. func (MyProjectOrgSearchKey) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8bbd6f3875b0e874, []int{7} + return file_auth_proto_rawDescGZIP(), []int{7} } type SearchMethod int32 @@ -279,167 +452,208 @@ const ( SearchMethod_SEARCHMETHOD_CONTAINS_IGNORE_CASE SearchMethod = 5 ) -var SearchMethod_name = map[int32]string{ - 0: "SEARCHMETHOD_EQUALS", - 1: "SEARCHMETHOD_STARTS_WITH", - 2: "SEARCHMETHOD_CONTAINS", - 3: "SEARCHMETHOD_EQUALS_IGNORE_CASE", - 4: "SEARCHMETHOD_STARTS_WITH_IGNORE_CASE", - 5: "SEARCHMETHOD_CONTAINS_IGNORE_CASE", -} +// Enum value maps for SearchMethod. +var ( + SearchMethod_name = map[int32]string{ + 0: "SEARCHMETHOD_EQUALS", + 1: "SEARCHMETHOD_STARTS_WITH", + 2: "SEARCHMETHOD_CONTAINS", + 3: "SEARCHMETHOD_EQUALS_IGNORE_CASE", + 4: "SEARCHMETHOD_STARTS_WITH_IGNORE_CASE", + 5: "SEARCHMETHOD_CONTAINS_IGNORE_CASE", + } + SearchMethod_value = map[string]int32{ + "SEARCHMETHOD_EQUALS": 0, + "SEARCHMETHOD_STARTS_WITH": 1, + "SEARCHMETHOD_CONTAINS": 2, + "SEARCHMETHOD_EQUALS_IGNORE_CASE": 3, + "SEARCHMETHOD_STARTS_WITH_IGNORE_CASE": 4, + "SEARCHMETHOD_CONTAINS_IGNORE_CASE": 5, + } +) -var SearchMethod_value = map[string]int32{ - "SEARCHMETHOD_EQUALS": 0, - "SEARCHMETHOD_STARTS_WITH": 1, - "SEARCHMETHOD_CONTAINS": 2, - "SEARCHMETHOD_EQUALS_IGNORE_CASE": 3, - "SEARCHMETHOD_STARTS_WITH_IGNORE_CASE": 4, - "SEARCHMETHOD_CONTAINS_IGNORE_CASE": 5, +func (x SearchMethod) Enum() *SearchMethod { + p := new(SearchMethod) + *p = x + return p } func (x SearchMethod) String() string { - return proto.EnumName(SearchMethod_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } +func (SearchMethod) Descriptor() protoreflect.EnumDescriptor { + return file_auth_proto_enumTypes[8].Descriptor() +} + +func (SearchMethod) Type() protoreflect.EnumType { + return &file_auth_proto_enumTypes[8] +} + +func (x SearchMethod) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SearchMethod.Descriptor instead. func (SearchMethod) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8bbd6f3875b0e874, []int{8} + return file_auth_proto_rawDescGZIP(), []int{8} } type UserSessionViews struct { - UserSessions []*UserSessionView `protobuf:"bytes,1,rep,name=user_sessions,json=userSessions,proto3" json:"user_sessions,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserSessions []*UserSessionView `protobuf:"bytes,1,rep,name=user_sessions,json=userSessions,proto3" json:"user_sessions,omitempty"` } -func (m *UserSessionViews) Reset() { *m = UserSessionViews{} } -func (m *UserSessionViews) String() string { return proto.CompactTextString(m) } -func (*UserSessionViews) ProtoMessage() {} +func (x *UserSessionViews) Reset() { + *x = UserSessionViews{} + if protoimpl.UnsafeEnabled { + mi := &file_auth_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserSessionViews) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserSessionViews) ProtoMessage() {} + +func (x *UserSessionViews) ProtoReflect() protoreflect.Message { + mi := &file_auth_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserSessionViews.ProtoReflect.Descriptor instead. func (*UserSessionViews) Descriptor() ([]byte, []int) { - return fileDescriptor_8bbd6f3875b0e874, []int{0} + return file_auth_proto_rawDescGZIP(), []int{0} } -func (m *UserSessionViews) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserSessionViews.Unmarshal(m, b) -} -func (m *UserSessionViews) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserSessionViews.Marshal(b, m, deterministic) -} -func (m *UserSessionViews) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserSessionViews.Merge(m, src) -} -func (m *UserSessionViews) XXX_Size() int { - return xxx_messageInfo_UserSessionViews.Size(m) -} -func (m *UserSessionViews) XXX_DiscardUnknown() { - xxx_messageInfo_UserSessionViews.DiscardUnknown(m) -} - -var xxx_messageInfo_UserSessionViews proto.InternalMessageInfo - -func (m *UserSessionViews) GetUserSessions() []*UserSessionView { - if m != nil { - return m.UserSessions +func (x *UserSessionViews) GetUserSessions() []*UserSessionView { + if x != nil { + return x.UserSessions } return nil } type UserSessionView struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - AgentId string `protobuf:"bytes,2,opt,name=agent_id,json=agentId,proto3" json:"agent_id,omitempty"` - AuthState UserSessionState `protobuf:"varint,3,opt,name=auth_state,json=authState,proto3,enum=caos.zitadel.auth.api.v1.UserSessionState" json:"auth_state,omitempty"` - UserId string `protobuf:"bytes,4,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` - UserName string `protobuf:"bytes,5,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` - Sequence uint64 `protobuf:"varint,6,opt,name=sequence,proto3" json:"sequence,omitempty"` - LoginName string `protobuf:"bytes,7,opt,name=login_name,json=loginName,proto3" json:"login_name,omitempty"` - DisplayName string `protobuf:"bytes,8,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + AgentId string `protobuf:"bytes,2,opt,name=agent_id,json=agentId,proto3" json:"agent_id,omitempty"` + AuthState UserSessionState `protobuf:"varint,3,opt,name=auth_state,json=authState,proto3,enum=caos.zitadel.auth.api.v1.UserSessionState" json:"auth_state,omitempty"` + UserId string `protobuf:"bytes,4,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + UserName string `protobuf:"bytes,5,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` + Sequence uint64 `protobuf:"varint,6,opt,name=sequence,proto3" json:"sequence,omitempty"` + LoginName string `protobuf:"bytes,7,opt,name=login_name,json=loginName,proto3" json:"login_name,omitempty"` + DisplayName string `protobuf:"bytes,8,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` } -func (m *UserSessionView) Reset() { *m = UserSessionView{} } -func (m *UserSessionView) String() string { return proto.CompactTextString(m) } -func (*UserSessionView) ProtoMessage() {} +func (x *UserSessionView) Reset() { + *x = UserSessionView{} + if protoimpl.UnsafeEnabled { + mi := &file_auth_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserSessionView) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserSessionView) ProtoMessage() {} + +func (x *UserSessionView) ProtoReflect() protoreflect.Message { + mi := &file_auth_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserSessionView.ProtoReflect.Descriptor instead. func (*UserSessionView) Descriptor() ([]byte, []int) { - return fileDescriptor_8bbd6f3875b0e874, []int{1} + return file_auth_proto_rawDescGZIP(), []int{1} } -func (m *UserSessionView) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserSessionView.Unmarshal(m, b) -} -func (m *UserSessionView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserSessionView.Marshal(b, m, deterministic) -} -func (m *UserSessionView) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserSessionView.Merge(m, src) -} -func (m *UserSessionView) XXX_Size() int { - return xxx_messageInfo_UserSessionView.Size(m) -} -func (m *UserSessionView) XXX_DiscardUnknown() { - xxx_messageInfo_UserSessionView.DiscardUnknown(m) -} - -var xxx_messageInfo_UserSessionView proto.InternalMessageInfo - -func (m *UserSessionView) GetId() string { - if m != nil { - return m.Id +func (x *UserSessionView) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *UserSessionView) GetAgentId() string { - if m != nil { - return m.AgentId +func (x *UserSessionView) GetAgentId() string { + if x != nil { + return x.AgentId } return "" } -func (m *UserSessionView) GetAuthState() UserSessionState { - if m != nil { - return m.AuthState +func (x *UserSessionView) GetAuthState() UserSessionState { + if x != nil { + return x.AuthState } return UserSessionState_USERSESSIONSTATE_UNSPECIFIED } -func (m *UserSessionView) GetUserId() string { - if m != nil { - return m.UserId +func (x *UserSessionView) GetUserId() string { + if x != nil { + return x.UserId } return "" } -func (m *UserSessionView) GetUserName() string { - if m != nil { - return m.UserName +func (x *UserSessionView) GetUserName() string { + if x != nil { + return x.UserName } return "" } -func (m *UserSessionView) GetSequence() uint64 { - if m != nil { - return m.Sequence +func (x *UserSessionView) GetSequence() uint64 { + if x != nil { + return x.Sequence } return 0 } -func (m *UserSessionView) GetLoginName() string { - if m != nil { - return m.LoginName +func (x *UserSessionView) GetLoginName() string { + if x != nil { + return x.LoginName } return "" } -func (m *UserSessionView) GetDisplayName() string { - if m != nil { - return m.DisplayName +func (x *UserSessionView) GetDisplayName() string { + if x != nil { + return x.DisplayName } return "" } type UserView struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` State UserState `protobuf:"varint,2,opt,name=state,proto3,enum=caos.zitadel.auth.api.v1.UserState" json:"state,omitempty"` CreationDate *timestamp.Timestamp `protobuf:"bytes,3,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` @@ -450,110 +664,135 @@ type UserView struct { LastLogin *timestamp.Timestamp `protobuf:"bytes,8,opt,name=last_login,json=lastLogin,proto3" json:"last_login,omitempty"` ResourceOwner string `protobuf:"bytes,9,opt,name=resource_owner,json=resourceOwner,proto3" json:"resource_owner,omitempty"` UserName string `protobuf:"bytes,10,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` - // Types that are valid to be assigned to User: + // Types that are assignable to User: // *UserView_Human // *UserView_Machine - User isUserView_User `protobuf_oneof:"user"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + User isUserView_User `protobuf_oneof:"user"` } -func (m *UserView) Reset() { *m = UserView{} } -func (m *UserView) String() string { return proto.CompactTextString(m) } -func (*UserView) ProtoMessage() {} +func (x *UserView) Reset() { + *x = UserView{} + if protoimpl.UnsafeEnabled { + mi := &file_auth_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserView) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserView) ProtoMessage() {} + +func (x *UserView) ProtoReflect() protoreflect.Message { + mi := &file_auth_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserView.ProtoReflect.Descriptor instead. func (*UserView) Descriptor() ([]byte, []int) { - return fileDescriptor_8bbd6f3875b0e874, []int{2} + return file_auth_proto_rawDescGZIP(), []int{2} } -func (m *UserView) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserView.Unmarshal(m, b) -} -func (m *UserView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserView.Marshal(b, m, deterministic) -} -func (m *UserView) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserView.Merge(m, src) -} -func (m *UserView) XXX_Size() int { - return xxx_messageInfo_UserView.Size(m) -} -func (m *UserView) XXX_DiscardUnknown() { - xxx_messageInfo_UserView.DiscardUnknown(m) -} - -var xxx_messageInfo_UserView proto.InternalMessageInfo - -func (m *UserView) GetId() string { - if m != nil { - return m.Id +func (x *UserView) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *UserView) GetState() UserState { - if m != nil { - return m.State +func (x *UserView) GetState() UserState { + if x != nil { + return x.State } return UserState_USERSTATE_UNSPECIFIED } -func (m *UserView) GetCreationDate() *timestamp.Timestamp { - if m != nil { - return m.CreationDate +func (x *UserView) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate } return nil } -func (m *UserView) GetChangeDate() *timestamp.Timestamp { - if m != nil { - return m.ChangeDate +func (x *UserView) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate } return nil } -func (m *UserView) GetSequence() uint64 { - if m != nil { - return m.Sequence +func (x *UserView) GetSequence() uint64 { + if x != nil { + return x.Sequence } return 0 } -func (m *UserView) GetLoginNames() []string { - if m != nil { - return m.LoginNames +func (x *UserView) GetLoginNames() []string { + if x != nil { + return x.LoginNames } return nil } -func (m *UserView) GetPreferredLoginName() string { - if m != nil { - return m.PreferredLoginName +func (x *UserView) GetPreferredLoginName() string { + if x != nil { + return x.PreferredLoginName } return "" } -func (m *UserView) GetLastLogin() *timestamp.Timestamp { - if m != nil { - return m.LastLogin +func (x *UserView) GetLastLogin() *timestamp.Timestamp { + if x != nil { + return x.LastLogin } return nil } -func (m *UserView) GetResourceOwner() string { - if m != nil { - return m.ResourceOwner +func (x *UserView) GetResourceOwner() string { + if x != nil { + return x.ResourceOwner } return "" } -func (m *UserView) GetUserName() string { - if m != nil { - return m.UserName +func (x *UserView) GetUserName() string { + if x != nil { + return x.UserName } return "" } +func (m *UserView) GetUser() isUserView_User { + if m != nil { + return m.User + } + return nil +} + +func (x *UserView) GetHuman() *HumanView { + if x, ok := x.GetUser().(*UserView_Human); ok { + return x.Human + } + return nil +} + +func (x *UserView) GetMachine() *MachineView { + if x, ok := x.GetUser().(*UserView_Machine); ok { + return x.Machine + } + return nil +} + type isUserView_User interface { isUserView_User() } @@ -570,2806 +809,4864 @@ func (*UserView_Human) isUserView_User() {} func (*UserView_Machine) isUserView_User() {} -func (m *UserView) GetUser() isUserView_User { - if m != nil { - return m.User - } - return nil -} - -func (m *UserView) GetHuman() *HumanView { - if x, ok := m.GetUser().(*UserView_Human); ok { - return x.Human - } - return nil -} - -func (m *UserView) GetMachine() *MachineView { - if x, ok := m.GetUser().(*UserView_Machine); ok { - return x.Machine - } - return nil -} - -// XXX_OneofWrappers is for the internal use of the proto package. -func (*UserView) XXX_OneofWrappers() []interface{} { - return []interface{}{ - (*UserView_Human)(nil), - (*UserView_Machine)(nil), - } -} - type MachineView struct { - LastKeyAdded *timestamp.Timestamp `protobuf:"bytes,1,opt,name=last_key_added,json=lastKeyAdded,proto3" json:"last_key_added,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + LastKeyAdded *timestamp.Timestamp `protobuf:"bytes,1,opt,name=last_key_added,json=lastKeyAdded,proto3" json:"last_key_added,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` } -func (m *MachineView) Reset() { *m = MachineView{} } -func (m *MachineView) String() string { return proto.CompactTextString(m) } -func (*MachineView) ProtoMessage() {} +func (x *MachineView) Reset() { + *x = MachineView{} + if protoimpl.UnsafeEnabled { + mi := &file_auth_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MachineView) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MachineView) ProtoMessage() {} + +func (x *MachineView) ProtoReflect() protoreflect.Message { + mi := &file_auth_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MachineView.ProtoReflect.Descriptor instead. func (*MachineView) Descriptor() ([]byte, []int) { - return fileDescriptor_8bbd6f3875b0e874, []int{3} + return file_auth_proto_rawDescGZIP(), []int{3} } -func (m *MachineView) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MachineView.Unmarshal(m, b) -} -func (m *MachineView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MachineView.Marshal(b, m, deterministic) -} -func (m *MachineView) XXX_Merge(src proto.Message) { - xxx_messageInfo_MachineView.Merge(m, src) -} -func (m *MachineView) XXX_Size() int { - return xxx_messageInfo_MachineView.Size(m) -} -func (m *MachineView) XXX_DiscardUnknown() { - xxx_messageInfo_MachineView.DiscardUnknown(m) -} - -var xxx_messageInfo_MachineView proto.InternalMessageInfo - -func (m *MachineView) GetLastKeyAdded() *timestamp.Timestamp { - if m != nil { - return m.LastKeyAdded +func (x *MachineView) GetLastKeyAdded() *timestamp.Timestamp { + if x != nil { + return x.LastKeyAdded } return nil } -func (m *MachineView) GetName() string { - if m != nil { - return m.Name +func (x *MachineView) GetName() string { + if x != nil { + return x.Name } return "" } -func (m *MachineView) GetDescription() string { - if m != nil { - return m.Description +func (x *MachineView) GetDescription() string { + if x != nil { + return x.Description } return "" } type MachineKeyView struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Type MachineKeyType `protobuf:"varint,2,opt,name=type,proto3,enum=caos.zitadel.auth.api.v1.MachineKeyType" json:"type,omitempty"` - Sequence uint64 `protobuf:"varint,3,opt,name=sequence,proto3" json:"sequence,omitempty"` - CreationDate *timestamp.Timestamp `protobuf:"bytes,4,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` - ExpirationDate *timestamp.Timestamp `protobuf:"bytes,5,opt,name=expiration_date,json=expirationDate,proto3" json:"expiration_date,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Type MachineKeyType `protobuf:"varint,2,opt,name=type,proto3,enum=caos.zitadel.auth.api.v1.MachineKeyType" json:"type,omitempty"` + Sequence uint64 `protobuf:"varint,3,opt,name=sequence,proto3" json:"sequence,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,4,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + ExpirationDate *timestamp.Timestamp `protobuf:"bytes,5,opt,name=expiration_date,json=expirationDate,proto3" json:"expiration_date,omitempty"` } -func (m *MachineKeyView) Reset() { *m = MachineKeyView{} } -func (m *MachineKeyView) String() string { return proto.CompactTextString(m) } -func (*MachineKeyView) ProtoMessage() {} +func (x *MachineKeyView) Reset() { + *x = MachineKeyView{} + if protoimpl.UnsafeEnabled { + mi := &file_auth_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MachineKeyView) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MachineKeyView) ProtoMessage() {} + +func (x *MachineKeyView) ProtoReflect() protoreflect.Message { + mi := &file_auth_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MachineKeyView.ProtoReflect.Descriptor instead. func (*MachineKeyView) Descriptor() ([]byte, []int) { - return fileDescriptor_8bbd6f3875b0e874, []int{4} + return file_auth_proto_rawDescGZIP(), []int{4} } -func (m *MachineKeyView) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MachineKeyView.Unmarshal(m, b) -} -func (m *MachineKeyView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MachineKeyView.Marshal(b, m, deterministic) -} -func (m *MachineKeyView) XXX_Merge(src proto.Message) { - xxx_messageInfo_MachineKeyView.Merge(m, src) -} -func (m *MachineKeyView) XXX_Size() int { - return xxx_messageInfo_MachineKeyView.Size(m) -} -func (m *MachineKeyView) XXX_DiscardUnknown() { - xxx_messageInfo_MachineKeyView.DiscardUnknown(m) -} - -var xxx_messageInfo_MachineKeyView proto.InternalMessageInfo - -func (m *MachineKeyView) GetId() string { - if m != nil { - return m.Id +func (x *MachineKeyView) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *MachineKeyView) GetType() MachineKeyType { - if m != nil { - return m.Type +func (x *MachineKeyView) GetType() MachineKeyType { + if x != nil { + return x.Type } return MachineKeyType_MACHINEKEY_UNSPECIFIED } -func (m *MachineKeyView) GetSequence() uint64 { - if m != nil { - return m.Sequence +func (x *MachineKeyView) GetSequence() uint64 { + if x != nil { + return x.Sequence } return 0 } -func (m *MachineKeyView) GetCreationDate() *timestamp.Timestamp { - if m != nil { - return m.CreationDate +func (x *MachineKeyView) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate } return nil } -func (m *MachineKeyView) GetExpirationDate() *timestamp.Timestamp { - if m != nil { - return m.ExpirationDate +func (x *MachineKeyView) GetExpirationDate() *timestamp.Timestamp { + if x != nil { + return x.ExpirationDate } return nil } type HumanView struct { - PasswordChanged *timestamp.Timestamp `protobuf:"bytes,1,opt,name=password_changed,json=passwordChanged,proto3" json:"password_changed,omitempty"` - FirstName string `protobuf:"bytes,2,opt,name=first_name,json=firstName,proto3" json:"first_name,omitempty"` - LastName string `protobuf:"bytes,3,opt,name=last_name,json=lastName,proto3" json:"last_name,omitempty"` - DisplayName string `protobuf:"bytes,4,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` - NickName string `protobuf:"bytes,5,opt,name=nick_name,json=nickName,proto3" json:"nick_name,omitempty"` - PreferredLanguage string `protobuf:"bytes,6,opt,name=preferred_language,json=preferredLanguage,proto3" json:"preferred_language,omitempty"` - Gender Gender `protobuf:"varint,7,opt,name=gender,proto3,enum=caos.zitadel.auth.api.v1.Gender" json:"gender,omitempty"` - Email string `protobuf:"bytes,8,opt,name=email,proto3" json:"email,omitempty"` - IsEmailVerified bool `protobuf:"varint,9,opt,name=is_email_verified,json=isEmailVerified,proto3" json:"is_email_verified,omitempty"` - Phone string `protobuf:"bytes,10,opt,name=phone,proto3" json:"phone,omitempty"` - IsPhoneVerified bool `protobuf:"varint,11,opt,name=is_phone_verified,json=isPhoneVerified,proto3" json:"is_phone_verified,omitempty"` - Country string `protobuf:"bytes,12,opt,name=country,proto3" json:"country,omitempty"` - Locality string `protobuf:"bytes,13,opt,name=locality,proto3" json:"locality,omitempty"` - PostalCode string `protobuf:"bytes,14,opt,name=postal_code,json=postalCode,proto3" json:"postal_code,omitempty"` - Region string `protobuf:"bytes,15,opt,name=region,proto3" json:"region,omitempty"` - StreetAddress string `protobuf:"bytes,16,opt,name=street_address,json=streetAddress,proto3" json:"street_address,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PasswordChanged *timestamp.Timestamp `protobuf:"bytes,1,opt,name=password_changed,json=passwordChanged,proto3" json:"password_changed,omitempty"` + FirstName string `protobuf:"bytes,2,opt,name=first_name,json=firstName,proto3" json:"first_name,omitempty"` + LastName string `protobuf:"bytes,3,opt,name=last_name,json=lastName,proto3" json:"last_name,omitempty"` + DisplayName string `protobuf:"bytes,4,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + NickName string `protobuf:"bytes,5,opt,name=nick_name,json=nickName,proto3" json:"nick_name,omitempty"` + PreferredLanguage string `protobuf:"bytes,6,opt,name=preferred_language,json=preferredLanguage,proto3" json:"preferred_language,omitempty"` + Gender Gender `protobuf:"varint,7,opt,name=gender,proto3,enum=caos.zitadel.auth.api.v1.Gender" json:"gender,omitempty"` + Email string `protobuf:"bytes,8,opt,name=email,proto3" json:"email,omitempty"` + IsEmailVerified bool `protobuf:"varint,9,opt,name=is_email_verified,json=isEmailVerified,proto3" json:"is_email_verified,omitempty"` + Phone string `protobuf:"bytes,10,opt,name=phone,proto3" json:"phone,omitempty"` + IsPhoneVerified bool `protobuf:"varint,11,opt,name=is_phone_verified,json=isPhoneVerified,proto3" json:"is_phone_verified,omitempty"` + Country string `protobuf:"bytes,12,opt,name=country,proto3" json:"country,omitempty"` + Locality string `protobuf:"bytes,13,opt,name=locality,proto3" json:"locality,omitempty"` + PostalCode string `protobuf:"bytes,14,opt,name=postal_code,json=postalCode,proto3" json:"postal_code,omitempty"` + Region string `protobuf:"bytes,15,opt,name=region,proto3" json:"region,omitempty"` + StreetAddress string `protobuf:"bytes,16,opt,name=street_address,json=streetAddress,proto3" json:"street_address,omitempty"` } -func (m *HumanView) Reset() { *m = HumanView{} } -func (m *HumanView) String() string { return proto.CompactTextString(m) } -func (*HumanView) ProtoMessage() {} +func (x *HumanView) Reset() { + *x = HumanView{} + if protoimpl.UnsafeEnabled { + mi := &file_auth_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HumanView) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HumanView) ProtoMessage() {} + +func (x *HumanView) ProtoReflect() protoreflect.Message { + mi := &file_auth_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HumanView.ProtoReflect.Descriptor instead. func (*HumanView) Descriptor() ([]byte, []int) { - return fileDescriptor_8bbd6f3875b0e874, []int{5} + return file_auth_proto_rawDescGZIP(), []int{5} } -func (m *HumanView) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_HumanView.Unmarshal(m, b) -} -func (m *HumanView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_HumanView.Marshal(b, m, deterministic) -} -func (m *HumanView) XXX_Merge(src proto.Message) { - xxx_messageInfo_HumanView.Merge(m, src) -} -func (m *HumanView) XXX_Size() int { - return xxx_messageInfo_HumanView.Size(m) -} -func (m *HumanView) XXX_DiscardUnknown() { - xxx_messageInfo_HumanView.DiscardUnknown(m) -} - -var xxx_messageInfo_HumanView proto.InternalMessageInfo - -func (m *HumanView) GetPasswordChanged() *timestamp.Timestamp { - if m != nil { - return m.PasswordChanged +func (x *HumanView) GetPasswordChanged() *timestamp.Timestamp { + if x != nil { + return x.PasswordChanged } return nil } -func (m *HumanView) GetFirstName() string { - if m != nil { - return m.FirstName +func (x *HumanView) GetFirstName() string { + if x != nil { + return x.FirstName } return "" } -func (m *HumanView) GetLastName() string { - if m != nil { - return m.LastName +func (x *HumanView) GetLastName() string { + if x != nil { + return x.LastName } return "" } -func (m *HumanView) GetDisplayName() string { - if m != nil { - return m.DisplayName +func (x *HumanView) GetDisplayName() string { + if x != nil { + return x.DisplayName } return "" } -func (m *HumanView) GetNickName() string { - if m != nil { - return m.NickName +func (x *HumanView) GetNickName() string { + if x != nil { + return x.NickName } return "" } -func (m *HumanView) GetPreferredLanguage() string { - if m != nil { - return m.PreferredLanguage +func (x *HumanView) GetPreferredLanguage() string { + if x != nil { + return x.PreferredLanguage } return "" } -func (m *HumanView) GetGender() Gender { - if m != nil { - return m.Gender +func (x *HumanView) GetGender() Gender { + if x != nil { + return x.Gender } return Gender_GENDER_UNSPECIFIED } -func (m *HumanView) GetEmail() string { - if m != nil { - return m.Email +func (x *HumanView) GetEmail() string { + if x != nil { + return x.Email } return "" } -func (m *HumanView) GetIsEmailVerified() bool { - if m != nil { - return m.IsEmailVerified +func (x *HumanView) GetIsEmailVerified() bool { + if x != nil { + return x.IsEmailVerified } return false } -func (m *HumanView) GetPhone() string { - if m != nil { - return m.Phone +func (x *HumanView) GetPhone() string { + if x != nil { + return x.Phone } return "" } -func (m *HumanView) GetIsPhoneVerified() bool { - if m != nil { - return m.IsPhoneVerified +func (x *HumanView) GetIsPhoneVerified() bool { + if x != nil { + return x.IsPhoneVerified } return false } -func (m *HumanView) GetCountry() string { - if m != nil { - return m.Country +func (x *HumanView) GetCountry() string { + if x != nil { + return x.Country } return "" } -func (m *HumanView) GetLocality() string { - if m != nil { - return m.Locality +func (x *HumanView) GetLocality() string { + if x != nil { + return x.Locality } return "" } -func (m *HumanView) GetPostalCode() string { - if m != nil { - return m.PostalCode +func (x *HumanView) GetPostalCode() string { + if x != nil { + return x.PostalCode } return "" } -func (m *HumanView) GetRegion() string { - if m != nil { - return m.Region +func (x *HumanView) GetRegion() string { + if x != nil { + return x.Region } return "" } -func (m *HumanView) GetStreetAddress() string { - if m != nil { - return m.StreetAddress +func (x *HumanView) GetStreetAddress() string { + if x != nil { + return x.StreetAddress } return "" } type UserProfile struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - FirstName string `protobuf:"bytes,2,opt,name=first_name,json=firstName,proto3" json:"first_name,omitempty"` - LastName string `protobuf:"bytes,3,opt,name=last_name,json=lastName,proto3" json:"last_name,omitempty"` - NickName string `protobuf:"bytes,4,opt,name=nick_name,json=nickName,proto3" json:"nick_name,omitempty"` - DisplayName string `protobuf:"bytes,5,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` - PreferredLanguage string `protobuf:"bytes,6,opt,name=preferred_language,json=preferredLanguage,proto3" json:"preferred_language,omitempty"` - Gender Gender `protobuf:"varint,7,opt,name=gender,proto3,enum=caos.zitadel.auth.api.v1.Gender" json:"gender,omitempty"` - Sequence uint64 `protobuf:"varint,8,opt,name=sequence,proto3" json:"sequence,omitempty"` - CreationDate *timestamp.Timestamp `protobuf:"bytes,9,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` - ChangeDate *timestamp.Timestamp `protobuf:"bytes,10,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + FirstName string `protobuf:"bytes,2,opt,name=first_name,json=firstName,proto3" json:"first_name,omitempty"` + LastName string `protobuf:"bytes,3,opt,name=last_name,json=lastName,proto3" json:"last_name,omitempty"` + NickName string `protobuf:"bytes,4,opt,name=nick_name,json=nickName,proto3" json:"nick_name,omitempty"` + DisplayName string `protobuf:"bytes,5,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + PreferredLanguage string `protobuf:"bytes,6,opt,name=preferred_language,json=preferredLanguage,proto3" json:"preferred_language,omitempty"` + Gender Gender `protobuf:"varint,7,opt,name=gender,proto3,enum=caos.zitadel.auth.api.v1.Gender" json:"gender,omitempty"` + Sequence uint64 `protobuf:"varint,8,opt,name=sequence,proto3" json:"sequence,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,9,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + ChangeDate *timestamp.Timestamp `protobuf:"bytes,10,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` } -func (m *UserProfile) Reset() { *m = UserProfile{} } -func (m *UserProfile) String() string { return proto.CompactTextString(m) } -func (*UserProfile) ProtoMessage() {} +func (x *UserProfile) Reset() { + *x = UserProfile{} + if protoimpl.UnsafeEnabled { + mi := &file_auth_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserProfile) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserProfile) ProtoMessage() {} + +func (x *UserProfile) ProtoReflect() protoreflect.Message { + mi := &file_auth_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserProfile.ProtoReflect.Descriptor instead. func (*UserProfile) Descriptor() ([]byte, []int) { - return fileDescriptor_8bbd6f3875b0e874, []int{6} + return file_auth_proto_rawDescGZIP(), []int{6} } -func (m *UserProfile) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserProfile.Unmarshal(m, b) -} -func (m *UserProfile) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserProfile.Marshal(b, m, deterministic) -} -func (m *UserProfile) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserProfile.Merge(m, src) -} -func (m *UserProfile) XXX_Size() int { - return xxx_messageInfo_UserProfile.Size(m) -} -func (m *UserProfile) XXX_DiscardUnknown() { - xxx_messageInfo_UserProfile.DiscardUnknown(m) -} - -var xxx_messageInfo_UserProfile proto.InternalMessageInfo - -func (m *UserProfile) GetId() string { - if m != nil { - return m.Id +func (x *UserProfile) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *UserProfile) GetFirstName() string { - if m != nil { - return m.FirstName +func (x *UserProfile) GetFirstName() string { + if x != nil { + return x.FirstName } return "" } -func (m *UserProfile) GetLastName() string { - if m != nil { - return m.LastName +func (x *UserProfile) GetLastName() string { + if x != nil { + return x.LastName } return "" } -func (m *UserProfile) GetNickName() string { - if m != nil { - return m.NickName +func (x *UserProfile) GetNickName() string { + if x != nil { + return x.NickName } return "" } -func (m *UserProfile) GetDisplayName() string { - if m != nil { - return m.DisplayName +func (x *UserProfile) GetDisplayName() string { + if x != nil { + return x.DisplayName } return "" } -func (m *UserProfile) GetPreferredLanguage() string { - if m != nil { - return m.PreferredLanguage +func (x *UserProfile) GetPreferredLanguage() string { + if x != nil { + return x.PreferredLanguage } return "" } -func (m *UserProfile) GetGender() Gender { - if m != nil { - return m.Gender +func (x *UserProfile) GetGender() Gender { + if x != nil { + return x.Gender } return Gender_GENDER_UNSPECIFIED } -func (m *UserProfile) GetSequence() uint64 { - if m != nil { - return m.Sequence +func (x *UserProfile) GetSequence() uint64 { + if x != nil { + return x.Sequence } return 0 } -func (m *UserProfile) GetCreationDate() *timestamp.Timestamp { - if m != nil { - return m.CreationDate +func (x *UserProfile) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate } return nil } -func (m *UserProfile) GetChangeDate() *timestamp.Timestamp { - if m != nil { - return m.ChangeDate +func (x *UserProfile) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate } return nil } type UserProfileView struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - FirstName string `protobuf:"bytes,2,opt,name=first_name,json=firstName,proto3" json:"first_name,omitempty"` - LastName string `protobuf:"bytes,3,opt,name=last_name,json=lastName,proto3" json:"last_name,omitempty"` - NickName string `protobuf:"bytes,4,opt,name=nick_name,json=nickName,proto3" json:"nick_name,omitempty"` - DisplayName string `protobuf:"bytes,5,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` - PreferredLanguage string `protobuf:"bytes,6,opt,name=preferred_language,json=preferredLanguage,proto3" json:"preferred_language,omitempty"` - Gender Gender `protobuf:"varint,7,opt,name=gender,proto3,enum=caos.zitadel.auth.api.v1.Gender" json:"gender,omitempty"` - Sequence uint64 `protobuf:"varint,8,opt,name=sequence,proto3" json:"sequence,omitempty"` - CreationDate *timestamp.Timestamp `protobuf:"bytes,9,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` - ChangeDate *timestamp.Timestamp `protobuf:"bytes,10,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` - LoginNames []string `protobuf:"bytes,11,rep,name=login_names,json=loginNames,proto3" json:"login_names,omitempty"` - PreferredLoginName string `protobuf:"bytes,12,opt,name=preferred_login_name,json=preferredLoginName,proto3" json:"preferred_login_name,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + FirstName string `protobuf:"bytes,2,opt,name=first_name,json=firstName,proto3" json:"first_name,omitempty"` + LastName string `protobuf:"bytes,3,opt,name=last_name,json=lastName,proto3" json:"last_name,omitempty"` + NickName string `protobuf:"bytes,4,opt,name=nick_name,json=nickName,proto3" json:"nick_name,omitempty"` + DisplayName string `protobuf:"bytes,5,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + PreferredLanguage string `protobuf:"bytes,6,opt,name=preferred_language,json=preferredLanguage,proto3" json:"preferred_language,omitempty"` + Gender Gender `protobuf:"varint,7,opt,name=gender,proto3,enum=caos.zitadel.auth.api.v1.Gender" json:"gender,omitempty"` + Sequence uint64 `protobuf:"varint,8,opt,name=sequence,proto3" json:"sequence,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,9,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + ChangeDate *timestamp.Timestamp `protobuf:"bytes,10,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` + LoginNames []string `protobuf:"bytes,11,rep,name=login_names,json=loginNames,proto3" json:"login_names,omitempty"` + PreferredLoginName string `protobuf:"bytes,12,opt,name=preferred_login_name,json=preferredLoginName,proto3" json:"preferred_login_name,omitempty"` } -func (m *UserProfileView) Reset() { *m = UserProfileView{} } -func (m *UserProfileView) String() string { return proto.CompactTextString(m) } -func (*UserProfileView) ProtoMessage() {} +func (x *UserProfileView) Reset() { + *x = UserProfileView{} + if protoimpl.UnsafeEnabled { + mi := &file_auth_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserProfileView) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserProfileView) ProtoMessage() {} + +func (x *UserProfileView) ProtoReflect() protoreflect.Message { + mi := &file_auth_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserProfileView.ProtoReflect.Descriptor instead. func (*UserProfileView) Descriptor() ([]byte, []int) { - return fileDescriptor_8bbd6f3875b0e874, []int{7} + return file_auth_proto_rawDescGZIP(), []int{7} } -func (m *UserProfileView) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserProfileView.Unmarshal(m, b) -} -func (m *UserProfileView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserProfileView.Marshal(b, m, deterministic) -} -func (m *UserProfileView) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserProfileView.Merge(m, src) -} -func (m *UserProfileView) XXX_Size() int { - return xxx_messageInfo_UserProfileView.Size(m) -} -func (m *UserProfileView) XXX_DiscardUnknown() { - xxx_messageInfo_UserProfileView.DiscardUnknown(m) -} - -var xxx_messageInfo_UserProfileView proto.InternalMessageInfo - -func (m *UserProfileView) GetId() string { - if m != nil { - return m.Id +func (x *UserProfileView) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *UserProfileView) GetFirstName() string { - if m != nil { - return m.FirstName +func (x *UserProfileView) GetFirstName() string { + if x != nil { + return x.FirstName } return "" } -func (m *UserProfileView) GetLastName() string { - if m != nil { - return m.LastName +func (x *UserProfileView) GetLastName() string { + if x != nil { + return x.LastName } return "" } -func (m *UserProfileView) GetNickName() string { - if m != nil { - return m.NickName +func (x *UserProfileView) GetNickName() string { + if x != nil { + return x.NickName } return "" } -func (m *UserProfileView) GetDisplayName() string { - if m != nil { - return m.DisplayName +func (x *UserProfileView) GetDisplayName() string { + if x != nil { + return x.DisplayName } return "" } -func (m *UserProfileView) GetPreferredLanguage() string { - if m != nil { - return m.PreferredLanguage +func (x *UserProfileView) GetPreferredLanguage() string { + if x != nil { + return x.PreferredLanguage } return "" } -func (m *UserProfileView) GetGender() Gender { - if m != nil { - return m.Gender +func (x *UserProfileView) GetGender() Gender { + if x != nil { + return x.Gender } return Gender_GENDER_UNSPECIFIED } -func (m *UserProfileView) GetSequence() uint64 { - if m != nil { - return m.Sequence +func (x *UserProfileView) GetSequence() uint64 { + if x != nil { + return x.Sequence } return 0 } -func (m *UserProfileView) GetCreationDate() *timestamp.Timestamp { - if m != nil { - return m.CreationDate +func (x *UserProfileView) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate } return nil } -func (m *UserProfileView) GetChangeDate() *timestamp.Timestamp { - if m != nil { - return m.ChangeDate +func (x *UserProfileView) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate } return nil } -func (m *UserProfileView) GetLoginNames() []string { - if m != nil { - return m.LoginNames +func (x *UserProfileView) GetLoginNames() []string { + if x != nil { + return x.LoginNames } return nil } -func (m *UserProfileView) GetPreferredLoginName() string { - if m != nil { - return m.PreferredLoginName +func (x *UserProfileView) GetPreferredLoginName() string { + if x != nil { + return x.PreferredLoginName } return "" } type UpdateUserProfileRequest struct { - FirstName string `protobuf:"bytes,1,opt,name=first_name,json=firstName,proto3" json:"first_name,omitempty"` - LastName string `protobuf:"bytes,2,opt,name=last_name,json=lastName,proto3" json:"last_name,omitempty"` - NickName string `protobuf:"bytes,3,opt,name=nick_name,json=nickName,proto3" json:"nick_name,omitempty"` - PreferredLanguage string `protobuf:"bytes,4,opt,name=preferred_language,json=preferredLanguage,proto3" json:"preferred_language,omitempty"` - Gender Gender `protobuf:"varint,5,opt,name=gender,proto3,enum=caos.zitadel.auth.api.v1.Gender" json:"gender,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FirstName string `protobuf:"bytes,1,opt,name=first_name,json=firstName,proto3" json:"first_name,omitempty"` + LastName string `protobuf:"bytes,2,opt,name=last_name,json=lastName,proto3" json:"last_name,omitempty"` + NickName string `protobuf:"bytes,3,opt,name=nick_name,json=nickName,proto3" json:"nick_name,omitempty"` + PreferredLanguage string `protobuf:"bytes,4,opt,name=preferred_language,json=preferredLanguage,proto3" json:"preferred_language,omitempty"` + Gender Gender `protobuf:"varint,5,opt,name=gender,proto3,enum=caos.zitadel.auth.api.v1.Gender" json:"gender,omitempty"` } -func (m *UpdateUserProfileRequest) Reset() { *m = UpdateUserProfileRequest{} } -func (m *UpdateUserProfileRequest) String() string { return proto.CompactTextString(m) } -func (*UpdateUserProfileRequest) ProtoMessage() {} +func (x *UpdateUserProfileRequest) Reset() { + *x = UpdateUserProfileRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_auth_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateUserProfileRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateUserProfileRequest) ProtoMessage() {} + +func (x *UpdateUserProfileRequest) ProtoReflect() protoreflect.Message { + mi := &file_auth_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateUserProfileRequest.ProtoReflect.Descriptor instead. func (*UpdateUserProfileRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8bbd6f3875b0e874, []int{8} + return file_auth_proto_rawDescGZIP(), []int{8} } -func (m *UpdateUserProfileRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UpdateUserProfileRequest.Unmarshal(m, b) -} -func (m *UpdateUserProfileRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UpdateUserProfileRequest.Marshal(b, m, deterministic) -} -func (m *UpdateUserProfileRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_UpdateUserProfileRequest.Merge(m, src) -} -func (m *UpdateUserProfileRequest) XXX_Size() int { - return xxx_messageInfo_UpdateUserProfileRequest.Size(m) -} -func (m *UpdateUserProfileRequest) XXX_DiscardUnknown() { - xxx_messageInfo_UpdateUserProfileRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_UpdateUserProfileRequest proto.InternalMessageInfo - -func (m *UpdateUserProfileRequest) GetFirstName() string { - if m != nil { - return m.FirstName +func (x *UpdateUserProfileRequest) GetFirstName() string { + if x != nil { + return x.FirstName } return "" } -func (m *UpdateUserProfileRequest) GetLastName() string { - if m != nil { - return m.LastName +func (x *UpdateUserProfileRequest) GetLastName() string { + if x != nil { + return x.LastName } return "" } -func (m *UpdateUserProfileRequest) GetNickName() string { - if m != nil { - return m.NickName +func (x *UpdateUserProfileRequest) GetNickName() string { + if x != nil { + return x.NickName } return "" } -func (m *UpdateUserProfileRequest) GetPreferredLanguage() string { - if m != nil { - return m.PreferredLanguage +func (x *UpdateUserProfileRequest) GetPreferredLanguage() string { + if x != nil { + return x.PreferredLanguage } return "" } -func (m *UpdateUserProfileRequest) GetGender() Gender { - if m != nil { - return m.Gender +func (x *UpdateUserProfileRequest) GetGender() Gender { + if x != nil { + return x.Gender } return Gender_GENDER_UNSPECIFIED } type ChangeUserNameRequest struct { - UserName string `protobuf:"bytes,1,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserName string `protobuf:"bytes,1,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` } -func (m *ChangeUserNameRequest) Reset() { *m = ChangeUserNameRequest{} } -func (m *ChangeUserNameRequest) String() string { return proto.CompactTextString(m) } -func (*ChangeUserNameRequest) ProtoMessage() {} +func (x *ChangeUserNameRequest) Reset() { + *x = ChangeUserNameRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_auth_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChangeUserNameRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChangeUserNameRequest) ProtoMessage() {} + +func (x *ChangeUserNameRequest) ProtoReflect() protoreflect.Message { + mi := &file_auth_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChangeUserNameRequest.ProtoReflect.Descriptor instead. func (*ChangeUserNameRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8bbd6f3875b0e874, []int{9} + return file_auth_proto_rawDescGZIP(), []int{9} } -func (m *ChangeUserNameRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ChangeUserNameRequest.Unmarshal(m, b) -} -func (m *ChangeUserNameRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ChangeUserNameRequest.Marshal(b, m, deterministic) -} -func (m *ChangeUserNameRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_ChangeUserNameRequest.Merge(m, src) -} -func (m *ChangeUserNameRequest) XXX_Size() int { - return xxx_messageInfo_ChangeUserNameRequest.Size(m) -} -func (m *ChangeUserNameRequest) XXX_DiscardUnknown() { - xxx_messageInfo_ChangeUserNameRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_ChangeUserNameRequest proto.InternalMessageInfo - -func (m *ChangeUserNameRequest) GetUserName() string { - if m != nil { - return m.UserName +func (x *ChangeUserNameRequest) GetUserName() string { + if x != nil { + return x.UserName } return "" } type UserEmail struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Email string `protobuf:"bytes,2,opt,name=email,proto3" json:"email,omitempty"` - IsEmailVerified bool `protobuf:"varint,3,opt,name=isEmailVerified,proto3" json:"isEmailVerified,omitempty"` - Sequence uint64 `protobuf:"varint,4,opt,name=sequence,proto3" json:"sequence,omitempty"` - CreationDate *timestamp.Timestamp `protobuf:"bytes,5,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` - ChangeDate *timestamp.Timestamp `protobuf:"bytes,6,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Email string `protobuf:"bytes,2,opt,name=email,proto3" json:"email,omitempty"` + IsEmailVerified bool `protobuf:"varint,3,opt,name=isEmailVerified,proto3" json:"isEmailVerified,omitempty"` + Sequence uint64 `protobuf:"varint,4,opt,name=sequence,proto3" json:"sequence,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,5,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + ChangeDate *timestamp.Timestamp `protobuf:"bytes,6,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` } -func (m *UserEmail) Reset() { *m = UserEmail{} } -func (m *UserEmail) String() string { return proto.CompactTextString(m) } -func (*UserEmail) ProtoMessage() {} +func (x *UserEmail) Reset() { + *x = UserEmail{} + if protoimpl.UnsafeEnabled { + mi := &file_auth_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserEmail) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserEmail) ProtoMessage() {} + +func (x *UserEmail) ProtoReflect() protoreflect.Message { + mi := &file_auth_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserEmail.ProtoReflect.Descriptor instead. func (*UserEmail) Descriptor() ([]byte, []int) { - return fileDescriptor_8bbd6f3875b0e874, []int{10} + return file_auth_proto_rawDescGZIP(), []int{10} } -func (m *UserEmail) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserEmail.Unmarshal(m, b) -} -func (m *UserEmail) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserEmail.Marshal(b, m, deterministic) -} -func (m *UserEmail) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserEmail.Merge(m, src) -} -func (m *UserEmail) XXX_Size() int { - return xxx_messageInfo_UserEmail.Size(m) -} -func (m *UserEmail) XXX_DiscardUnknown() { - xxx_messageInfo_UserEmail.DiscardUnknown(m) -} - -var xxx_messageInfo_UserEmail proto.InternalMessageInfo - -func (m *UserEmail) GetId() string { - if m != nil { - return m.Id +func (x *UserEmail) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *UserEmail) GetEmail() string { - if m != nil { - return m.Email +func (x *UserEmail) GetEmail() string { + if x != nil { + return x.Email } return "" } -func (m *UserEmail) GetIsEmailVerified() bool { - if m != nil { - return m.IsEmailVerified +func (x *UserEmail) GetIsEmailVerified() bool { + if x != nil { + return x.IsEmailVerified } return false } -func (m *UserEmail) GetSequence() uint64 { - if m != nil { - return m.Sequence +func (x *UserEmail) GetSequence() uint64 { + if x != nil { + return x.Sequence } return 0 } -func (m *UserEmail) GetCreationDate() *timestamp.Timestamp { - if m != nil { - return m.CreationDate +func (x *UserEmail) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate } return nil } -func (m *UserEmail) GetChangeDate() *timestamp.Timestamp { - if m != nil { - return m.ChangeDate +func (x *UserEmail) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate } return nil } type UserEmailView struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Email string `protobuf:"bytes,2,opt,name=email,proto3" json:"email,omitempty"` - IsEmailVerified bool `protobuf:"varint,3,opt,name=isEmailVerified,proto3" json:"isEmailVerified,omitempty"` - Sequence uint64 `protobuf:"varint,4,opt,name=sequence,proto3" json:"sequence,omitempty"` - CreationDate *timestamp.Timestamp `protobuf:"bytes,5,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` - ChangeDate *timestamp.Timestamp `protobuf:"bytes,6,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Email string `protobuf:"bytes,2,opt,name=email,proto3" json:"email,omitempty"` + IsEmailVerified bool `protobuf:"varint,3,opt,name=isEmailVerified,proto3" json:"isEmailVerified,omitempty"` + Sequence uint64 `protobuf:"varint,4,opt,name=sequence,proto3" json:"sequence,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,5,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + ChangeDate *timestamp.Timestamp `protobuf:"bytes,6,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` } -func (m *UserEmailView) Reset() { *m = UserEmailView{} } -func (m *UserEmailView) String() string { return proto.CompactTextString(m) } -func (*UserEmailView) ProtoMessage() {} +func (x *UserEmailView) Reset() { + *x = UserEmailView{} + if protoimpl.UnsafeEnabled { + mi := &file_auth_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserEmailView) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserEmailView) ProtoMessage() {} + +func (x *UserEmailView) ProtoReflect() protoreflect.Message { + mi := &file_auth_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserEmailView.ProtoReflect.Descriptor instead. func (*UserEmailView) Descriptor() ([]byte, []int) { - return fileDescriptor_8bbd6f3875b0e874, []int{11} + return file_auth_proto_rawDescGZIP(), []int{11} } -func (m *UserEmailView) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserEmailView.Unmarshal(m, b) -} -func (m *UserEmailView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserEmailView.Marshal(b, m, deterministic) -} -func (m *UserEmailView) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserEmailView.Merge(m, src) -} -func (m *UserEmailView) XXX_Size() int { - return xxx_messageInfo_UserEmailView.Size(m) -} -func (m *UserEmailView) XXX_DiscardUnknown() { - xxx_messageInfo_UserEmailView.DiscardUnknown(m) -} - -var xxx_messageInfo_UserEmailView proto.InternalMessageInfo - -func (m *UserEmailView) GetId() string { - if m != nil { - return m.Id +func (x *UserEmailView) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *UserEmailView) GetEmail() string { - if m != nil { - return m.Email +func (x *UserEmailView) GetEmail() string { + if x != nil { + return x.Email } return "" } -func (m *UserEmailView) GetIsEmailVerified() bool { - if m != nil { - return m.IsEmailVerified +func (x *UserEmailView) GetIsEmailVerified() bool { + if x != nil { + return x.IsEmailVerified } return false } -func (m *UserEmailView) GetSequence() uint64 { - if m != nil { - return m.Sequence +func (x *UserEmailView) GetSequence() uint64 { + if x != nil { + return x.Sequence } return 0 } -func (m *UserEmailView) GetCreationDate() *timestamp.Timestamp { - if m != nil { - return m.CreationDate +func (x *UserEmailView) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate } return nil } -func (m *UserEmailView) GetChangeDate() *timestamp.Timestamp { - if m != nil { - return m.ChangeDate +func (x *UserEmailView) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate } return nil } type VerifyMyUserEmailRequest struct { - Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` } -func (m *VerifyMyUserEmailRequest) Reset() { *m = VerifyMyUserEmailRequest{} } -func (m *VerifyMyUserEmailRequest) String() string { return proto.CompactTextString(m) } -func (*VerifyMyUserEmailRequest) ProtoMessage() {} +func (x *VerifyMyUserEmailRequest) Reset() { + *x = VerifyMyUserEmailRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_auth_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VerifyMyUserEmailRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VerifyMyUserEmailRequest) ProtoMessage() {} + +func (x *VerifyMyUserEmailRequest) ProtoReflect() protoreflect.Message { + mi := &file_auth_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use VerifyMyUserEmailRequest.ProtoReflect.Descriptor instead. func (*VerifyMyUserEmailRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8bbd6f3875b0e874, []int{12} + return file_auth_proto_rawDescGZIP(), []int{12} } -func (m *VerifyMyUserEmailRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_VerifyMyUserEmailRequest.Unmarshal(m, b) -} -func (m *VerifyMyUserEmailRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_VerifyMyUserEmailRequest.Marshal(b, m, deterministic) -} -func (m *VerifyMyUserEmailRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_VerifyMyUserEmailRequest.Merge(m, src) -} -func (m *VerifyMyUserEmailRequest) XXX_Size() int { - return xxx_messageInfo_VerifyMyUserEmailRequest.Size(m) -} -func (m *VerifyMyUserEmailRequest) XXX_DiscardUnknown() { - xxx_messageInfo_VerifyMyUserEmailRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_VerifyMyUserEmailRequest proto.InternalMessageInfo - -func (m *VerifyMyUserEmailRequest) GetCode() string { - if m != nil { - return m.Code +func (x *VerifyMyUserEmailRequest) GetCode() string { + if x != nil { + return x.Code } return "" } type UpdateUserEmailRequest struct { - Email string `protobuf:"bytes,1,opt,name=email,proto3" json:"email,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Email string `protobuf:"bytes,1,opt,name=email,proto3" json:"email,omitempty"` } -func (m *UpdateUserEmailRequest) Reset() { *m = UpdateUserEmailRequest{} } -func (m *UpdateUserEmailRequest) String() string { return proto.CompactTextString(m) } -func (*UpdateUserEmailRequest) ProtoMessage() {} +func (x *UpdateUserEmailRequest) Reset() { + *x = UpdateUserEmailRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_auth_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateUserEmailRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateUserEmailRequest) ProtoMessage() {} + +func (x *UpdateUserEmailRequest) ProtoReflect() protoreflect.Message { + mi := &file_auth_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateUserEmailRequest.ProtoReflect.Descriptor instead. func (*UpdateUserEmailRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8bbd6f3875b0e874, []int{13} + return file_auth_proto_rawDescGZIP(), []int{13} } -func (m *UpdateUserEmailRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UpdateUserEmailRequest.Unmarshal(m, b) -} -func (m *UpdateUserEmailRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UpdateUserEmailRequest.Marshal(b, m, deterministic) -} -func (m *UpdateUserEmailRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_UpdateUserEmailRequest.Merge(m, src) -} -func (m *UpdateUserEmailRequest) XXX_Size() int { - return xxx_messageInfo_UpdateUserEmailRequest.Size(m) -} -func (m *UpdateUserEmailRequest) XXX_DiscardUnknown() { - xxx_messageInfo_UpdateUserEmailRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_UpdateUserEmailRequest proto.InternalMessageInfo - -func (m *UpdateUserEmailRequest) GetEmail() string { - if m != nil { - return m.Email +func (x *UpdateUserEmailRequest) GetEmail() string { + if x != nil { + return x.Email } return "" } type UserPhone struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Phone string `protobuf:"bytes,2,opt,name=phone,proto3" json:"phone,omitempty"` - IsPhoneVerified bool `protobuf:"varint,3,opt,name=is_phone_verified,json=isPhoneVerified,proto3" json:"is_phone_verified,omitempty"` - Sequence uint64 `protobuf:"varint,4,opt,name=sequence,proto3" json:"sequence,omitempty"` - CreationDate *timestamp.Timestamp `protobuf:"bytes,5,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` - ChangeDate *timestamp.Timestamp `protobuf:"bytes,6,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Phone string `protobuf:"bytes,2,opt,name=phone,proto3" json:"phone,omitempty"` + IsPhoneVerified bool `protobuf:"varint,3,opt,name=is_phone_verified,json=isPhoneVerified,proto3" json:"is_phone_verified,omitempty"` + Sequence uint64 `protobuf:"varint,4,opt,name=sequence,proto3" json:"sequence,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,5,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + ChangeDate *timestamp.Timestamp `protobuf:"bytes,6,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` } -func (m *UserPhone) Reset() { *m = UserPhone{} } -func (m *UserPhone) String() string { return proto.CompactTextString(m) } -func (*UserPhone) ProtoMessage() {} +func (x *UserPhone) Reset() { + *x = UserPhone{} + if protoimpl.UnsafeEnabled { + mi := &file_auth_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserPhone) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserPhone) ProtoMessage() {} + +func (x *UserPhone) ProtoReflect() protoreflect.Message { + mi := &file_auth_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserPhone.ProtoReflect.Descriptor instead. func (*UserPhone) Descriptor() ([]byte, []int) { - return fileDescriptor_8bbd6f3875b0e874, []int{14} + return file_auth_proto_rawDescGZIP(), []int{14} } -func (m *UserPhone) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserPhone.Unmarshal(m, b) -} -func (m *UserPhone) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserPhone.Marshal(b, m, deterministic) -} -func (m *UserPhone) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserPhone.Merge(m, src) -} -func (m *UserPhone) XXX_Size() int { - return xxx_messageInfo_UserPhone.Size(m) -} -func (m *UserPhone) XXX_DiscardUnknown() { - xxx_messageInfo_UserPhone.DiscardUnknown(m) -} - -var xxx_messageInfo_UserPhone proto.InternalMessageInfo - -func (m *UserPhone) GetId() string { - if m != nil { - return m.Id +func (x *UserPhone) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *UserPhone) GetPhone() string { - if m != nil { - return m.Phone +func (x *UserPhone) GetPhone() string { + if x != nil { + return x.Phone } return "" } -func (m *UserPhone) GetIsPhoneVerified() bool { - if m != nil { - return m.IsPhoneVerified +func (x *UserPhone) GetIsPhoneVerified() bool { + if x != nil { + return x.IsPhoneVerified } return false } -func (m *UserPhone) GetSequence() uint64 { - if m != nil { - return m.Sequence +func (x *UserPhone) GetSequence() uint64 { + if x != nil { + return x.Sequence } return 0 } -func (m *UserPhone) GetCreationDate() *timestamp.Timestamp { - if m != nil { - return m.CreationDate +func (x *UserPhone) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate } return nil } -func (m *UserPhone) GetChangeDate() *timestamp.Timestamp { - if m != nil { - return m.ChangeDate +func (x *UserPhone) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate } return nil } type UserPhoneView struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Phone string `protobuf:"bytes,2,opt,name=phone,proto3" json:"phone,omitempty"` - IsPhoneVerified bool `protobuf:"varint,3,opt,name=is_phone_verified,json=isPhoneVerified,proto3" json:"is_phone_verified,omitempty"` - Sequence uint64 `protobuf:"varint,4,opt,name=sequence,proto3" json:"sequence,omitempty"` - CreationDate *timestamp.Timestamp `protobuf:"bytes,5,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` - ChangeDate *timestamp.Timestamp `protobuf:"bytes,6,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Phone string `protobuf:"bytes,2,opt,name=phone,proto3" json:"phone,omitempty"` + IsPhoneVerified bool `protobuf:"varint,3,opt,name=is_phone_verified,json=isPhoneVerified,proto3" json:"is_phone_verified,omitempty"` + Sequence uint64 `protobuf:"varint,4,opt,name=sequence,proto3" json:"sequence,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,5,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + ChangeDate *timestamp.Timestamp `protobuf:"bytes,6,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` } -func (m *UserPhoneView) Reset() { *m = UserPhoneView{} } -func (m *UserPhoneView) String() string { return proto.CompactTextString(m) } -func (*UserPhoneView) ProtoMessage() {} +func (x *UserPhoneView) Reset() { + *x = UserPhoneView{} + if protoimpl.UnsafeEnabled { + mi := &file_auth_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserPhoneView) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserPhoneView) ProtoMessage() {} + +func (x *UserPhoneView) ProtoReflect() protoreflect.Message { + mi := &file_auth_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserPhoneView.ProtoReflect.Descriptor instead. func (*UserPhoneView) Descriptor() ([]byte, []int) { - return fileDescriptor_8bbd6f3875b0e874, []int{15} + return file_auth_proto_rawDescGZIP(), []int{15} } -func (m *UserPhoneView) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserPhoneView.Unmarshal(m, b) -} -func (m *UserPhoneView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserPhoneView.Marshal(b, m, deterministic) -} -func (m *UserPhoneView) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserPhoneView.Merge(m, src) -} -func (m *UserPhoneView) XXX_Size() int { - return xxx_messageInfo_UserPhoneView.Size(m) -} -func (m *UserPhoneView) XXX_DiscardUnknown() { - xxx_messageInfo_UserPhoneView.DiscardUnknown(m) -} - -var xxx_messageInfo_UserPhoneView proto.InternalMessageInfo - -func (m *UserPhoneView) GetId() string { - if m != nil { - return m.Id +func (x *UserPhoneView) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *UserPhoneView) GetPhone() string { - if m != nil { - return m.Phone +func (x *UserPhoneView) GetPhone() string { + if x != nil { + return x.Phone } return "" } -func (m *UserPhoneView) GetIsPhoneVerified() bool { - if m != nil { - return m.IsPhoneVerified +func (x *UserPhoneView) GetIsPhoneVerified() bool { + if x != nil { + return x.IsPhoneVerified } return false } -func (m *UserPhoneView) GetSequence() uint64 { - if m != nil { - return m.Sequence +func (x *UserPhoneView) GetSequence() uint64 { + if x != nil { + return x.Sequence } return 0 } -func (m *UserPhoneView) GetCreationDate() *timestamp.Timestamp { - if m != nil { - return m.CreationDate +func (x *UserPhoneView) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate } return nil } -func (m *UserPhoneView) GetChangeDate() *timestamp.Timestamp { - if m != nil { - return m.ChangeDate +func (x *UserPhoneView) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate } return nil } type UpdateUserPhoneRequest struct { - Phone string `protobuf:"bytes,1,opt,name=phone,proto3" json:"phone,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Phone string `protobuf:"bytes,1,opt,name=phone,proto3" json:"phone,omitempty"` } -func (m *UpdateUserPhoneRequest) Reset() { *m = UpdateUserPhoneRequest{} } -func (m *UpdateUserPhoneRequest) String() string { return proto.CompactTextString(m) } -func (*UpdateUserPhoneRequest) ProtoMessage() {} +func (x *UpdateUserPhoneRequest) Reset() { + *x = UpdateUserPhoneRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_auth_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateUserPhoneRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateUserPhoneRequest) ProtoMessage() {} + +func (x *UpdateUserPhoneRequest) ProtoReflect() protoreflect.Message { + mi := &file_auth_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateUserPhoneRequest.ProtoReflect.Descriptor instead. func (*UpdateUserPhoneRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8bbd6f3875b0e874, []int{16} + return file_auth_proto_rawDescGZIP(), []int{16} } -func (m *UpdateUserPhoneRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UpdateUserPhoneRequest.Unmarshal(m, b) -} -func (m *UpdateUserPhoneRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UpdateUserPhoneRequest.Marshal(b, m, deterministic) -} -func (m *UpdateUserPhoneRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_UpdateUserPhoneRequest.Merge(m, src) -} -func (m *UpdateUserPhoneRequest) XXX_Size() int { - return xxx_messageInfo_UpdateUserPhoneRequest.Size(m) -} -func (m *UpdateUserPhoneRequest) XXX_DiscardUnknown() { - xxx_messageInfo_UpdateUserPhoneRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_UpdateUserPhoneRequest proto.InternalMessageInfo - -func (m *UpdateUserPhoneRequest) GetPhone() string { - if m != nil { - return m.Phone +func (x *UpdateUserPhoneRequest) GetPhone() string { + if x != nil { + return x.Phone } return "" } type VerifyUserPhoneRequest struct { - Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` } -func (m *VerifyUserPhoneRequest) Reset() { *m = VerifyUserPhoneRequest{} } -func (m *VerifyUserPhoneRequest) String() string { return proto.CompactTextString(m) } -func (*VerifyUserPhoneRequest) ProtoMessage() {} +func (x *VerifyUserPhoneRequest) Reset() { + *x = VerifyUserPhoneRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_auth_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VerifyUserPhoneRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VerifyUserPhoneRequest) ProtoMessage() {} + +func (x *VerifyUserPhoneRequest) ProtoReflect() protoreflect.Message { + mi := &file_auth_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use VerifyUserPhoneRequest.ProtoReflect.Descriptor instead. func (*VerifyUserPhoneRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8bbd6f3875b0e874, []int{17} + return file_auth_proto_rawDescGZIP(), []int{17} } -func (m *VerifyUserPhoneRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_VerifyUserPhoneRequest.Unmarshal(m, b) -} -func (m *VerifyUserPhoneRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_VerifyUserPhoneRequest.Marshal(b, m, deterministic) -} -func (m *VerifyUserPhoneRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_VerifyUserPhoneRequest.Merge(m, src) -} -func (m *VerifyUserPhoneRequest) XXX_Size() int { - return xxx_messageInfo_VerifyUserPhoneRequest.Size(m) -} -func (m *VerifyUserPhoneRequest) XXX_DiscardUnknown() { - xxx_messageInfo_VerifyUserPhoneRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_VerifyUserPhoneRequest proto.InternalMessageInfo - -func (m *VerifyUserPhoneRequest) GetCode() string { - if m != nil { - return m.Code +func (x *VerifyUserPhoneRequest) GetCode() string { + if x != nil { + return x.Code } return "" } type UserAddress struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Country string `protobuf:"bytes,2,opt,name=country,proto3" json:"country,omitempty"` - Locality string `protobuf:"bytes,3,opt,name=locality,proto3" json:"locality,omitempty"` - PostalCode string `protobuf:"bytes,4,opt,name=postal_code,json=postalCode,proto3" json:"postal_code,omitempty"` - Region string `protobuf:"bytes,5,opt,name=region,proto3" json:"region,omitempty"` - StreetAddress string `protobuf:"bytes,6,opt,name=street_address,json=streetAddress,proto3" json:"street_address,omitempty"` - Sequence uint64 `protobuf:"varint,7,opt,name=sequence,proto3" json:"sequence,omitempty"` - CreationDate *timestamp.Timestamp `protobuf:"bytes,8,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` - ChangeDate *timestamp.Timestamp `protobuf:"bytes,9,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Country string `protobuf:"bytes,2,opt,name=country,proto3" json:"country,omitempty"` + Locality string `protobuf:"bytes,3,opt,name=locality,proto3" json:"locality,omitempty"` + PostalCode string `protobuf:"bytes,4,opt,name=postal_code,json=postalCode,proto3" json:"postal_code,omitempty"` + Region string `protobuf:"bytes,5,opt,name=region,proto3" json:"region,omitempty"` + StreetAddress string `protobuf:"bytes,6,opt,name=street_address,json=streetAddress,proto3" json:"street_address,omitempty"` + Sequence uint64 `protobuf:"varint,7,opt,name=sequence,proto3" json:"sequence,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,8,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + ChangeDate *timestamp.Timestamp `protobuf:"bytes,9,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` } -func (m *UserAddress) Reset() { *m = UserAddress{} } -func (m *UserAddress) String() string { return proto.CompactTextString(m) } -func (*UserAddress) ProtoMessage() {} +func (x *UserAddress) Reset() { + *x = UserAddress{} + if protoimpl.UnsafeEnabled { + mi := &file_auth_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserAddress) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserAddress) ProtoMessage() {} + +func (x *UserAddress) ProtoReflect() protoreflect.Message { + mi := &file_auth_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserAddress.ProtoReflect.Descriptor instead. func (*UserAddress) Descriptor() ([]byte, []int) { - return fileDescriptor_8bbd6f3875b0e874, []int{18} + return file_auth_proto_rawDescGZIP(), []int{18} } -func (m *UserAddress) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserAddress.Unmarshal(m, b) -} -func (m *UserAddress) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserAddress.Marshal(b, m, deterministic) -} -func (m *UserAddress) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserAddress.Merge(m, src) -} -func (m *UserAddress) XXX_Size() int { - return xxx_messageInfo_UserAddress.Size(m) -} -func (m *UserAddress) XXX_DiscardUnknown() { - xxx_messageInfo_UserAddress.DiscardUnknown(m) -} - -var xxx_messageInfo_UserAddress proto.InternalMessageInfo - -func (m *UserAddress) GetId() string { - if m != nil { - return m.Id +func (x *UserAddress) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *UserAddress) GetCountry() string { - if m != nil { - return m.Country +func (x *UserAddress) GetCountry() string { + if x != nil { + return x.Country } return "" } -func (m *UserAddress) GetLocality() string { - if m != nil { - return m.Locality +func (x *UserAddress) GetLocality() string { + if x != nil { + return x.Locality } return "" } -func (m *UserAddress) GetPostalCode() string { - if m != nil { - return m.PostalCode +func (x *UserAddress) GetPostalCode() string { + if x != nil { + return x.PostalCode } return "" } -func (m *UserAddress) GetRegion() string { - if m != nil { - return m.Region +func (x *UserAddress) GetRegion() string { + if x != nil { + return x.Region } return "" } -func (m *UserAddress) GetStreetAddress() string { - if m != nil { - return m.StreetAddress +func (x *UserAddress) GetStreetAddress() string { + if x != nil { + return x.StreetAddress } return "" } -func (m *UserAddress) GetSequence() uint64 { - if m != nil { - return m.Sequence +func (x *UserAddress) GetSequence() uint64 { + if x != nil { + return x.Sequence } return 0 } -func (m *UserAddress) GetCreationDate() *timestamp.Timestamp { - if m != nil { - return m.CreationDate +func (x *UserAddress) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate } return nil } -func (m *UserAddress) GetChangeDate() *timestamp.Timestamp { - if m != nil { - return m.ChangeDate +func (x *UserAddress) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate } return nil } type UserAddressView struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Country string `protobuf:"bytes,2,opt,name=country,proto3" json:"country,omitempty"` - Locality string `protobuf:"bytes,3,opt,name=locality,proto3" json:"locality,omitempty"` - PostalCode string `protobuf:"bytes,4,opt,name=postal_code,json=postalCode,proto3" json:"postal_code,omitempty"` - Region string `protobuf:"bytes,5,opt,name=region,proto3" json:"region,omitempty"` - StreetAddress string `protobuf:"bytes,6,opt,name=street_address,json=streetAddress,proto3" json:"street_address,omitempty"` - Sequence uint64 `protobuf:"varint,7,opt,name=sequence,proto3" json:"sequence,omitempty"` - CreationDate *timestamp.Timestamp `protobuf:"bytes,8,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` - ChangeDate *timestamp.Timestamp `protobuf:"bytes,9,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Country string `protobuf:"bytes,2,opt,name=country,proto3" json:"country,omitempty"` + Locality string `protobuf:"bytes,3,opt,name=locality,proto3" json:"locality,omitempty"` + PostalCode string `protobuf:"bytes,4,opt,name=postal_code,json=postalCode,proto3" json:"postal_code,omitempty"` + Region string `protobuf:"bytes,5,opt,name=region,proto3" json:"region,omitempty"` + StreetAddress string `protobuf:"bytes,6,opt,name=street_address,json=streetAddress,proto3" json:"street_address,omitempty"` + Sequence uint64 `protobuf:"varint,7,opt,name=sequence,proto3" json:"sequence,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,8,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + ChangeDate *timestamp.Timestamp `protobuf:"bytes,9,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` } -func (m *UserAddressView) Reset() { *m = UserAddressView{} } -func (m *UserAddressView) String() string { return proto.CompactTextString(m) } -func (*UserAddressView) ProtoMessage() {} +func (x *UserAddressView) Reset() { + *x = UserAddressView{} + if protoimpl.UnsafeEnabled { + mi := &file_auth_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserAddressView) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserAddressView) ProtoMessage() {} + +func (x *UserAddressView) ProtoReflect() protoreflect.Message { + mi := &file_auth_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserAddressView.ProtoReflect.Descriptor instead. func (*UserAddressView) Descriptor() ([]byte, []int) { - return fileDescriptor_8bbd6f3875b0e874, []int{19} + return file_auth_proto_rawDescGZIP(), []int{19} } -func (m *UserAddressView) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserAddressView.Unmarshal(m, b) -} -func (m *UserAddressView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserAddressView.Marshal(b, m, deterministic) -} -func (m *UserAddressView) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserAddressView.Merge(m, src) -} -func (m *UserAddressView) XXX_Size() int { - return xxx_messageInfo_UserAddressView.Size(m) -} -func (m *UserAddressView) XXX_DiscardUnknown() { - xxx_messageInfo_UserAddressView.DiscardUnknown(m) -} - -var xxx_messageInfo_UserAddressView proto.InternalMessageInfo - -func (m *UserAddressView) GetId() string { - if m != nil { - return m.Id +func (x *UserAddressView) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *UserAddressView) GetCountry() string { - if m != nil { - return m.Country +func (x *UserAddressView) GetCountry() string { + if x != nil { + return x.Country } return "" } -func (m *UserAddressView) GetLocality() string { - if m != nil { - return m.Locality +func (x *UserAddressView) GetLocality() string { + if x != nil { + return x.Locality } return "" } -func (m *UserAddressView) GetPostalCode() string { - if m != nil { - return m.PostalCode +func (x *UserAddressView) GetPostalCode() string { + if x != nil { + return x.PostalCode } return "" } -func (m *UserAddressView) GetRegion() string { - if m != nil { - return m.Region +func (x *UserAddressView) GetRegion() string { + if x != nil { + return x.Region } return "" } -func (m *UserAddressView) GetStreetAddress() string { - if m != nil { - return m.StreetAddress +func (x *UserAddressView) GetStreetAddress() string { + if x != nil { + return x.StreetAddress } return "" } -func (m *UserAddressView) GetSequence() uint64 { - if m != nil { - return m.Sequence +func (x *UserAddressView) GetSequence() uint64 { + if x != nil { + return x.Sequence } return 0 } -func (m *UserAddressView) GetCreationDate() *timestamp.Timestamp { - if m != nil { - return m.CreationDate +func (x *UserAddressView) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate } return nil } -func (m *UserAddressView) GetChangeDate() *timestamp.Timestamp { - if m != nil { - return m.ChangeDate +func (x *UserAddressView) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate } return nil } type UpdateUserAddressRequest struct { - Country string `protobuf:"bytes,1,opt,name=country,proto3" json:"country,omitempty"` - Locality string `protobuf:"bytes,2,opt,name=locality,proto3" json:"locality,omitempty"` - PostalCode string `protobuf:"bytes,3,opt,name=postal_code,json=postalCode,proto3" json:"postal_code,omitempty"` - Region string `protobuf:"bytes,4,opt,name=region,proto3" json:"region,omitempty"` - StreetAddress string `protobuf:"bytes,5,opt,name=street_address,json=streetAddress,proto3" json:"street_address,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Country string `protobuf:"bytes,1,opt,name=country,proto3" json:"country,omitempty"` + Locality string `protobuf:"bytes,2,opt,name=locality,proto3" json:"locality,omitempty"` + PostalCode string `protobuf:"bytes,3,opt,name=postal_code,json=postalCode,proto3" json:"postal_code,omitempty"` + Region string `protobuf:"bytes,4,opt,name=region,proto3" json:"region,omitempty"` + StreetAddress string `protobuf:"bytes,5,opt,name=street_address,json=streetAddress,proto3" json:"street_address,omitempty"` } -func (m *UpdateUserAddressRequest) Reset() { *m = UpdateUserAddressRequest{} } -func (m *UpdateUserAddressRequest) String() string { return proto.CompactTextString(m) } -func (*UpdateUserAddressRequest) ProtoMessage() {} +func (x *UpdateUserAddressRequest) Reset() { + *x = UpdateUserAddressRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_auth_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateUserAddressRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateUserAddressRequest) ProtoMessage() {} + +func (x *UpdateUserAddressRequest) ProtoReflect() protoreflect.Message { + mi := &file_auth_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateUserAddressRequest.ProtoReflect.Descriptor instead. func (*UpdateUserAddressRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8bbd6f3875b0e874, []int{20} + return file_auth_proto_rawDescGZIP(), []int{20} } -func (m *UpdateUserAddressRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UpdateUserAddressRequest.Unmarshal(m, b) -} -func (m *UpdateUserAddressRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UpdateUserAddressRequest.Marshal(b, m, deterministic) -} -func (m *UpdateUserAddressRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_UpdateUserAddressRequest.Merge(m, src) -} -func (m *UpdateUserAddressRequest) XXX_Size() int { - return xxx_messageInfo_UpdateUserAddressRequest.Size(m) -} -func (m *UpdateUserAddressRequest) XXX_DiscardUnknown() { - xxx_messageInfo_UpdateUserAddressRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_UpdateUserAddressRequest proto.InternalMessageInfo - -func (m *UpdateUserAddressRequest) GetCountry() string { - if m != nil { - return m.Country +func (x *UpdateUserAddressRequest) GetCountry() string { + if x != nil { + return x.Country } return "" } -func (m *UpdateUserAddressRequest) GetLocality() string { - if m != nil { - return m.Locality +func (x *UpdateUserAddressRequest) GetLocality() string { + if x != nil { + return x.Locality } return "" } -func (m *UpdateUserAddressRequest) GetPostalCode() string { - if m != nil { - return m.PostalCode +func (x *UpdateUserAddressRequest) GetPostalCode() string { + if x != nil { + return x.PostalCode } return "" } -func (m *UpdateUserAddressRequest) GetRegion() string { - if m != nil { - return m.Region +func (x *UpdateUserAddressRequest) GetRegion() string { + if x != nil { + return x.Region } return "" } -func (m *UpdateUserAddressRequest) GetStreetAddress() string { - if m != nil { - return m.StreetAddress +func (x *UpdateUserAddressRequest) GetStreetAddress() string { + if x != nil { + return x.StreetAddress } return "" } type PasswordChange struct { - OldPassword string `protobuf:"bytes,1,opt,name=old_password,json=oldPassword,proto3" json:"old_password,omitempty"` - NewPassword string `protobuf:"bytes,2,opt,name=new_password,json=newPassword,proto3" json:"new_password,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OldPassword string `protobuf:"bytes,1,opt,name=old_password,json=oldPassword,proto3" json:"old_password,omitempty"` + NewPassword string `protobuf:"bytes,2,opt,name=new_password,json=newPassword,proto3" json:"new_password,omitempty"` } -func (m *PasswordChange) Reset() { *m = PasswordChange{} } -func (m *PasswordChange) String() string { return proto.CompactTextString(m) } -func (*PasswordChange) ProtoMessage() {} +func (x *PasswordChange) Reset() { + *x = PasswordChange{} + if protoimpl.UnsafeEnabled { + mi := &file_auth_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PasswordChange) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PasswordChange) ProtoMessage() {} + +func (x *PasswordChange) ProtoReflect() protoreflect.Message { + mi := &file_auth_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PasswordChange.ProtoReflect.Descriptor instead. func (*PasswordChange) Descriptor() ([]byte, []int) { - return fileDescriptor_8bbd6f3875b0e874, []int{21} + return file_auth_proto_rawDescGZIP(), []int{21} } -func (m *PasswordChange) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_PasswordChange.Unmarshal(m, b) -} -func (m *PasswordChange) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_PasswordChange.Marshal(b, m, deterministic) -} -func (m *PasswordChange) XXX_Merge(src proto.Message) { - xxx_messageInfo_PasswordChange.Merge(m, src) -} -func (m *PasswordChange) XXX_Size() int { - return xxx_messageInfo_PasswordChange.Size(m) -} -func (m *PasswordChange) XXX_DiscardUnknown() { - xxx_messageInfo_PasswordChange.DiscardUnknown(m) -} - -var xxx_messageInfo_PasswordChange proto.InternalMessageInfo - -func (m *PasswordChange) GetOldPassword() string { - if m != nil { - return m.OldPassword +func (x *PasswordChange) GetOldPassword() string { + if x != nil { + return x.OldPassword } return "" } -func (m *PasswordChange) GetNewPassword() string { - if m != nil { - return m.NewPassword +func (x *PasswordChange) GetNewPassword() string { + if x != nil { + return x.NewPassword } return "" } type VerifyMfaOtp struct { - Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` } -func (m *VerifyMfaOtp) Reset() { *m = VerifyMfaOtp{} } -func (m *VerifyMfaOtp) String() string { return proto.CompactTextString(m) } -func (*VerifyMfaOtp) ProtoMessage() {} +func (x *VerifyMfaOtp) Reset() { + *x = VerifyMfaOtp{} + if protoimpl.UnsafeEnabled { + mi := &file_auth_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VerifyMfaOtp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VerifyMfaOtp) ProtoMessage() {} + +func (x *VerifyMfaOtp) ProtoReflect() protoreflect.Message { + mi := &file_auth_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use VerifyMfaOtp.ProtoReflect.Descriptor instead. func (*VerifyMfaOtp) Descriptor() ([]byte, []int) { - return fileDescriptor_8bbd6f3875b0e874, []int{22} + return file_auth_proto_rawDescGZIP(), []int{22} } -func (m *VerifyMfaOtp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_VerifyMfaOtp.Unmarshal(m, b) -} -func (m *VerifyMfaOtp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_VerifyMfaOtp.Marshal(b, m, deterministic) -} -func (m *VerifyMfaOtp) XXX_Merge(src proto.Message) { - xxx_messageInfo_VerifyMfaOtp.Merge(m, src) -} -func (m *VerifyMfaOtp) XXX_Size() int { - return xxx_messageInfo_VerifyMfaOtp.Size(m) -} -func (m *VerifyMfaOtp) XXX_DiscardUnknown() { - xxx_messageInfo_VerifyMfaOtp.DiscardUnknown(m) -} - -var xxx_messageInfo_VerifyMfaOtp proto.InternalMessageInfo - -func (m *VerifyMfaOtp) GetCode() string { - if m != nil { - return m.Code +func (x *VerifyMfaOtp) GetCode() string { + if x != nil { + return x.Code } return "" } type MultiFactors struct { - Mfas []*MultiFactor `protobuf:"bytes,1,rep,name=mfas,proto3" json:"mfas,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Mfas []*MultiFactor `protobuf:"bytes,1,rep,name=mfas,proto3" json:"mfas,omitempty"` } -func (m *MultiFactors) Reset() { *m = MultiFactors{} } -func (m *MultiFactors) String() string { return proto.CompactTextString(m) } -func (*MultiFactors) ProtoMessage() {} +func (x *MultiFactors) Reset() { + *x = MultiFactors{} + if protoimpl.UnsafeEnabled { + mi := &file_auth_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MultiFactors) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MultiFactors) ProtoMessage() {} + +func (x *MultiFactors) ProtoReflect() protoreflect.Message { + mi := &file_auth_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MultiFactors.ProtoReflect.Descriptor instead. func (*MultiFactors) Descriptor() ([]byte, []int) { - return fileDescriptor_8bbd6f3875b0e874, []int{23} + return file_auth_proto_rawDescGZIP(), []int{23} } -func (m *MultiFactors) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MultiFactors.Unmarshal(m, b) -} -func (m *MultiFactors) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MultiFactors.Marshal(b, m, deterministic) -} -func (m *MultiFactors) XXX_Merge(src proto.Message) { - xxx_messageInfo_MultiFactors.Merge(m, src) -} -func (m *MultiFactors) XXX_Size() int { - return xxx_messageInfo_MultiFactors.Size(m) -} -func (m *MultiFactors) XXX_DiscardUnknown() { - xxx_messageInfo_MultiFactors.DiscardUnknown(m) -} - -var xxx_messageInfo_MultiFactors proto.InternalMessageInfo - -func (m *MultiFactors) GetMfas() []*MultiFactor { - if m != nil { - return m.Mfas +func (x *MultiFactors) GetMfas() []*MultiFactor { + if x != nil { + return x.Mfas } return nil } type MultiFactor struct { - Type MfaType `protobuf:"varint,1,opt,name=type,proto3,enum=caos.zitadel.auth.api.v1.MfaType" json:"type,omitempty"` - State MFAState `protobuf:"varint,2,opt,name=state,proto3,enum=caos.zitadel.auth.api.v1.MFAState" json:"state,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type MfaType `protobuf:"varint,1,opt,name=type,proto3,enum=caos.zitadel.auth.api.v1.MfaType" json:"type,omitempty"` + State MFAState `protobuf:"varint,2,opt,name=state,proto3,enum=caos.zitadel.auth.api.v1.MFAState" json:"state,omitempty"` } -func (m *MultiFactor) Reset() { *m = MultiFactor{} } -func (m *MultiFactor) String() string { return proto.CompactTextString(m) } -func (*MultiFactor) ProtoMessage() {} +func (x *MultiFactor) Reset() { + *x = MultiFactor{} + if protoimpl.UnsafeEnabled { + mi := &file_auth_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MultiFactor) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MultiFactor) ProtoMessage() {} + +func (x *MultiFactor) ProtoReflect() protoreflect.Message { + mi := &file_auth_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MultiFactor.ProtoReflect.Descriptor instead. func (*MultiFactor) Descriptor() ([]byte, []int) { - return fileDescriptor_8bbd6f3875b0e874, []int{24} + return file_auth_proto_rawDescGZIP(), []int{24} } -func (m *MultiFactor) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MultiFactor.Unmarshal(m, b) -} -func (m *MultiFactor) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MultiFactor.Marshal(b, m, deterministic) -} -func (m *MultiFactor) XXX_Merge(src proto.Message) { - xxx_messageInfo_MultiFactor.Merge(m, src) -} -func (m *MultiFactor) XXX_Size() int { - return xxx_messageInfo_MultiFactor.Size(m) -} -func (m *MultiFactor) XXX_DiscardUnknown() { - xxx_messageInfo_MultiFactor.DiscardUnknown(m) -} - -var xxx_messageInfo_MultiFactor proto.InternalMessageInfo - -func (m *MultiFactor) GetType() MfaType { - if m != nil { - return m.Type +func (x *MultiFactor) GetType() MfaType { + if x != nil { + return x.Type } return MfaType_MFATYPE_UNSPECIFIED } -func (m *MultiFactor) GetState() MFAState { - if m != nil { - return m.State +func (x *MultiFactor) GetState() MFAState { + if x != nil { + return x.State } return MFAState_MFASTATE_UNSPECIFIED } type MfaOtpResponse struct { - UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` - Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"` - Secret string `protobuf:"bytes,3,opt,name=secret,proto3" json:"secret,omitempty"` - State MFAState `protobuf:"varint,4,opt,name=state,proto3,enum=caos.zitadel.auth.api.v1.MFAState" json:"state,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"` + Secret string `protobuf:"bytes,3,opt,name=secret,proto3" json:"secret,omitempty"` + State MFAState `protobuf:"varint,4,opt,name=state,proto3,enum=caos.zitadel.auth.api.v1.MFAState" json:"state,omitempty"` } -func (m *MfaOtpResponse) Reset() { *m = MfaOtpResponse{} } -func (m *MfaOtpResponse) String() string { return proto.CompactTextString(m) } -func (*MfaOtpResponse) ProtoMessage() {} +func (x *MfaOtpResponse) Reset() { + *x = MfaOtpResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_auth_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MfaOtpResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MfaOtpResponse) ProtoMessage() {} + +func (x *MfaOtpResponse) ProtoReflect() protoreflect.Message { + mi := &file_auth_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MfaOtpResponse.ProtoReflect.Descriptor instead. func (*MfaOtpResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_8bbd6f3875b0e874, []int{25} + return file_auth_proto_rawDescGZIP(), []int{25} } -func (m *MfaOtpResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MfaOtpResponse.Unmarshal(m, b) -} -func (m *MfaOtpResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MfaOtpResponse.Marshal(b, m, deterministic) -} -func (m *MfaOtpResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_MfaOtpResponse.Merge(m, src) -} -func (m *MfaOtpResponse) XXX_Size() int { - return xxx_messageInfo_MfaOtpResponse.Size(m) -} -func (m *MfaOtpResponse) XXX_DiscardUnknown() { - xxx_messageInfo_MfaOtpResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_MfaOtpResponse proto.InternalMessageInfo - -func (m *MfaOtpResponse) GetUserId() string { - if m != nil { - return m.UserId +func (x *MfaOtpResponse) GetUserId() string { + if x != nil { + return x.UserId } return "" } -func (m *MfaOtpResponse) GetUrl() string { - if m != nil { - return m.Url +func (x *MfaOtpResponse) GetUrl() string { + if x != nil { + return x.Url } return "" } -func (m *MfaOtpResponse) GetSecret() string { - if m != nil { - return m.Secret +func (x *MfaOtpResponse) GetSecret() string { + if x != nil { + return x.Secret } return "" } -func (m *MfaOtpResponse) GetState() MFAState { - if m != nil { - return m.State +func (x *MfaOtpResponse) GetState() MFAState { + if x != nil { + return x.State } return MFAState_MFASTATE_UNSPECIFIED } type UserGrantSearchRequest struct { - Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` - Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` - SortingColumn UserGrantSearchKey `protobuf:"varint,3,opt,name=sorting_column,json=sortingColumn,proto3,enum=caos.zitadel.auth.api.v1.UserGrantSearchKey" json:"sorting_column,omitempty"` - Asc bool `protobuf:"varint,4,opt,name=asc,proto3" json:"asc,omitempty"` - Queries []*UserGrantSearchQuery `protobuf:"bytes,5,rep,name=queries,proto3" json:"queries,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` + Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` + SortingColumn UserGrantSearchKey `protobuf:"varint,3,opt,name=sorting_column,json=sortingColumn,proto3,enum=caos.zitadel.auth.api.v1.UserGrantSearchKey" json:"sorting_column,omitempty"` + Asc bool `protobuf:"varint,4,opt,name=asc,proto3" json:"asc,omitempty"` + Queries []*UserGrantSearchQuery `protobuf:"bytes,5,rep,name=queries,proto3" json:"queries,omitempty"` } -func (m *UserGrantSearchRequest) Reset() { *m = UserGrantSearchRequest{} } -func (m *UserGrantSearchRequest) String() string { return proto.CompactTextString(m) } -func (*UserGrantSearchRequest) ProtoMessage() {} +func (x *UserGrantSearchRequest) Reset() { + *x = UserGrantSearchRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_auth_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserGrantSearchRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserGrantSearchRequest) ProtoMessage() {} + +func (x *UserGrantSearchRequest) ProtoReflect() protoreflect.Message { + mi := &file_auth_proto_msgTypes[26] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserGrantSearchRequest.ProtoReflect.Descriptor instead. func (*UserGrantSearchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8bbd6f3875b0e874, []int{26} + return file_auth_proto_rawDescGZIP(), []int{26} } -func (m *UserGrantSearchRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserGrantSearchRequest.Unmarshal(m, b) -} -func (m *UserGrantSearchRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserGrantSearchRequest.Marshal(b, m, deterministic) -} -func (m *UserGrantSearchRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserGrantSearchRequest.Merge(m, src) -} -func (m *UserGrantSearchRequest) XXX_Size() int { - return xxx_messageInfo_UserGrantSearchRequest.Size(m) -} -func (m *UserGrantSearchRequest) XXX_DiscardUnknown() { - xxx_messageInfo_UserGrantSearchRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_UserGrantSearchRequest proto.InternalMessageInfo - -func (m *UserGrantSearchRequest) GetOffset() uint64 { - if m != nil { - return m.Offset +func (x *UserGrantSearchRequest) GetOffset() uint64 { + if x != nil { + return x.Offset } return 0 } -func (m *UserGrantSearchRequest) GetLimit() uint64 { - if m != nil { - return m.Limit +func (x *UserGrantSearchRequest) GetLimit() uint64 { + if x != nil { + return x.Limit } return 0 } -func (m *UserGrantSearchRequest) GetSortingColumn() UserGrantSearchKey { - if m != nil { - return m.SortingColumn +func (x *UserGrantSearchRequest) GetSortingColumn() UserGrantSearchKey { + if x != nil { + return x.SortingColumn } return UserGrantSearchKey_UserGrantSearchKey_UNKNOWN } -func (m *UserGrantSearchRequest) GetAsc() bool { - if m != nil { - return m.Asc +func (x *UserGrantSearchRequest) GetAsc() bool { + if x != nil { + return x.Asc } return false } -func (m *UserGrantSearchRequest) GetQueries() []*UserGrantSearchQuery { - if m != nil { - return m.Queries +func (x *UserGrantSearchRequest) GetQueries() []*UserGrantSearchQuery { + if x != nil { + return x.Queries } return nil } type UserGrantSearchQuery struct { - Key UserGrantSearchKey `protobuf:"varint,1,opt,name=key,proto3,enum=caos.zitadel.auth.api.v1.UserGrantSearchKey" json:"key,omitempty"` - Method SearchMethod `protobuf:"varint,2,opt,name=method,proto3,enum=caos.zitadel.auth.api.v1.SearchMethod" json:"method,omitempty"` - Value string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Key UserGrantSearchKey `protobuf:"varint,1,opt,name=key,proto3,enum=caos.zitadel.auth.api.v1.UserGrantSearchKey" json:"key,omitempty"` + Method SearchMethod `protobuf:"varint,2,opt,name=method,proto3,enum=caos.zitadel.auth.api.v1.SearchMethod" json:"method,omitempty"` + Value string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` } -func (m *UserGrantSearchQuery) Reset() { *m = UserGrantSearchQuery{} } -func (m *UserGrantSearchQuery) String() string { return proto.CompactTextString(m) } -func (*UserGrantSearchQuery) ProtoMessage() {} +func (x *UserGrantSearchQuery) Reset() { + *x = UserGrantSearchQuery{} + if protoimpl.UnsafeEnabled { + mi := &file_auth_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserGrantSearchQuery) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserGrantSearchQuery) ProtoMessage() {} + +func (x *UserGrantSearchQuery) ProtoReflect() protoreflect.Message { + mi := &file_auth_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserGrantSearchQuery.ProtoReflect.Descriptor instead. func (*UserGrantSearchQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_8bbd6f3875b0e874, []int{27} + return file_auth_proto_rawDescGZIP(), []int{27} } -func (m *UserGrantSearchQuery) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserGrantSearchQuery.Unmarshal(m, b) -} -func (m *UserGrantSearchQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserGrantSearchQuery.Marshal(b, m, deterministic) -} -func (m *UserGrantSearchQuery) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserGrantSearchQuery.Merge(m, src) -} -func (m *UserGrantSearchQuery) XXX_Size() int { - return xxx_messageInfo_UserGrantSearchQuery.Size(m) -} -func (m *UserGrantSearchQuery) XXX_DiscardUnknown() { - xxx_messageInfo_UserGrantSearchQuery.DiscardUnknown(m) -} - -var xxx_messageInfo_UserGrantSearchQuery proto.InternalMessageInfo - -func (m *UserGrantSearchQuery) GetKey() UserGrantSearchKey { - if m != nil { - return m.Key +func (x *UserGrantSearchQuery) GetKey() UserGrantSearchKey { + if x != nil { + return x.Key } return UserGrantSearchKey_UserGrantSearchKey_UNKNOWN } -func (m *UserGrantSearchQuery) GetMethod() SearchMethod { - if m != nil { - return m.Method +func (x *UserGrantSearchQuery) GetMethod() SearchMethod { + if x != nil { + return x.Method } return SearchMethod_SEARCHMETHOD_EQUALS } -func (m *UserGrantSearchQuery) GetValue() string { - if m != nil { - return m.Value +func (x *UserGrantSearchQuery) GetValue() string { + if x != nil { + return x.Value } return "" } type UserGrantSearchResponse struct { - Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` - Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` - TotalResult uint64 `protobuf:"varint,3,opt,name=total_result,json=totalResult,proto3" json:"total_result,omitempty"` - Result []*UserGrantView `protobuf:"bytes,4,rep,name=result,proto3" json:"result,omitempty"` - ProcessedSequence uint64 `protobuf:"varint,5,opt,name=processed_sequence,json=processedSequence,proto3" json:"processed_sequence,omitempty"` - ViewTimestamp *timestamp.Timestamp `protobuf:"bytes,6,opt,name=view_timestamp,json=viewTimestamp,proto3" json:"view_timestamp,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` + Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` + TotalResult uint64 `protobuf:"varint,3,opt,name=total_result,json=totalResult,proto3" json:"total_result,omitempty"` + Result []*UserGrantView `protobuf:"bytes,4,rep,name=result,proto3" json:"result,omitempty"` + ProcessedSequence uint64 `protobuf:"varint,5,opt,name=processed_sequence,json=processedSequence,proto3" json:"processed_sequence,omitempty"` + ViewTimestamp *timestamp.Timestamp `protobuf:"bytes,6,opt,name=view_timestamp,json=viewTimestamp,proto3" json:"view_timestamp,omitempty"` } -func (m *UserGrantSearchResponse) Reset() { *m = UserGrantSearchResponse{} } -func (m *UserGrantSearchResponse) String() string { return proto.CompactTextString(m) } -func (*UserGrantSearchResponse) ProtoMessage() {} +func (x *UserGrantSearchResponse) Reset() { + *x = UserGrantSearchResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_auth_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserGrantSearchResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserGrantSearchResponse) ProtoMessage() {} + +func (x *UserGrantSearchResponse) ProtoReflect() protoreflect.Message { + mi := &file_auth_proto_msgTypes[28] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserGrantSearchResponse.ProtoReflect.Descriptor instead. func (*UserGrantSearchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_8bbd6f3875b0e874, []int{28} + return file_auth_proto_rawDescGZIP(), []int{28} } -func (m *UserGrantSearchResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserGrantSearchResponse.Unmarshal(m, b) -} -func (m *UserGrantSearchResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserGrantSearchResponse.Marshal(b, m, deterministic) -} -func (m *UserGrantSearchResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserGrantSearchResponse.Merge(m, src) -} -func (m *UserGrantSearchResponse) XXX_Size() int { - return xxx_messageInfo_UserGrantSearchResponse.Size(m) -} -func (m *UserGrantSearchResponse) XXX_DiscardUnknown() { - xxx_messageInfo_UserGrantSearchResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_UserGrantSearchResponse proto.InternalMessageInfo - -func (m *UserGrantSearchResponse) GetOffset() uint64 { - if m != nil { - return m.Offset +func (x *UserGrantSearchResponse) GetOffset() uint64 { + if x != nil { + return x.Offset } return 0 } -func (m *UserGrantSearchResponse) GetLimit() uint64 { - if m != nil { - return m.Limit +func (x *UserGrantSearchResponse) GetLimit() uint64 { + if x != nil { + return x.Limit } return 0 } -func (m *UserGrantSearchResponse) GetTotalResult() uint64 { - if m != nil { - return m.TotalResult +func (x *UserGrantSearchResponse) GetTotalResult() uint64 { + if x != nil { + return x.TotalResult } return 0 } -func (m *UserGrantSearchResponse) GetResult() []*UserGrantView { - if m != nil { - return m.Result +func (x *UserGrantSearchResponse) GetResult() []*UserGrantView { + if x != nil { + return x.Result } return nil } -func (m *UserGrantSearchResponse) GetProcessedSequence() uint64 { - if m != nil { - return m.ProcessedSequence +func (x *UserGrantSearchResponse) GetProcessedSequence() uint64 { + if x != nil { + return x.ProcessedSequence } return 0 } -func (m *UserGrantSearchResponse) GetViewTimestamp() *timestamp.Timestamp { - if m != nil { - return m.ViewTimestamp +func (x *UserGrantSearchResponse) GetViewTimestamp() *timestamp.Timestamp { + if x != nil { + return x.ViewTimestamp } return nil } type UserGrantView struct { - OrgId string `protobuf:"bytes,1,opt,name=OrgId,proto3" json:"OrgId,omitempty"` - ProjectId string `protobuf:"bytes,2,opt,name=ProjectId,proto3" json:"ProjectId,omitempty"` - UserId string `protobuf:"bytes,3,opt,name=UserId,proto3" json:"UserId,omitempty"` - Roles []string `protobuf:"bytes,4,rep,name=Roles,proto3" json:"Roles,omitempty"` - OrgName string `protobuf:"bytes,5,opt,name=OrgName,proto3" json:"OrgName,omitempty"` - GrantId string `protobuf:"bytes,6,opt,name=GrantId,proto3" json:"GrantId,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OrgId string `protobuf:"bytes,1,opt,name=OrgId,proto3" json:"OrgId,omitempty"` + ProjectId string `protobuf:"bytes,2,opt,name=ProjectId,proto3" json:"ProjectId,omitempty"` + UserId string `protobuf:"bytes,3,opt,name=UserId,proto3" json:"UserId,omitempty"` + Roles []string `protobuf:"bytes,4,rep,name=Roles,proto3" json:"Roles,omitempty"` + OrgName string `protobuf:"bytes,5,opt,name=OrgName,proto3" json:"OrgName,omitempty"` + GrantId string `protobuf:"bytes,6,opt,name=GrantId,proto3" json:"GrantId,omitempty"` } -func (m *UserGrantView) Reset() { *m = UserGrantView{} } -func (m *UserGrantView) String() string { return proto.CompactTextString(m) } -func (*UserGrantView) ProtoMessage() {} +func (x *UserGrantView) Reset() { + *x = UserGrantView{} + if protoimpl.UnsafeEnabled { + mi := &file_auth_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserGrantView) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserGrantView) ProtoMessage() {} + +func (x *UserGrantView) ProtoReflect() protoreflect.Message { + mi := &file_auth_proto_msgTypes[29] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserGrantView.ProtoReflect.Descriptor instead. func (*UserGrantView) Descriptor() ([]byte, []int) { - return fileDescriptor_8bbd6f3875b0e874, []int{29} + return file_auth_proto_rawDescGZIP(), []int{29} } -func (m *UserGrantView) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserGrantView.Unmarshal(m, b) -} -func (m *UserGrantView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserGrantView.Marshal(b, m, deterministic) -} -func (m *UserGrantView) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserGrantView.Merge(m, src) -} -func (m *UserGrantView) XXX_Size() int { - return xxx_messageInfo_UserGrantView.Size(m) -} -func (m *UserGrantView) XXX_DiscardUnknown() { - xxx_messageInfo_UserGrantView.DiscardUnknown(m) -} - -var xxx_messageInfo_UserGrantView proto.InternalMessageInfo - -func (m *UserGrantView) GetOrgId() string { - if m != nil { - return m.OrgId +func (x *UserGrantView) GetOrgId() string { + if x != nil { + return x.OrgId } return "" } -func (m *UserGrantView) GetProjectId() string { - if m != nil { - return m.ProjectId +func (x *UserGrantView) GetProjectId() string { + if x != nil { + return x.ProjectId } return "" } -func (m *UserGrantView) GetUserId() string { - if m != nil { - return m.UserId +func (x *UserGrantView) GetUserId() string { + if x != nil { + return x.UserId } return "" } -func (m *UserGrantView) GetRoles() []string { - if m != nil { - return m.Roles +func (x *UserGrantView) GetRoles() []string { + if x != nil { + return x.Roles } return nil } -func (m *UserGrantView) GetOrgName() string { - if m != nil { - return m.OrgName +func (x *UserGrantView) GetOrgName() string { + if x != nil { + return x.OrgName } return "" } -func (m *UserGrantView) GetGrantId() string { - if m != nil { - return m.GrantId +func (x *UserGrantView) GetGrantId() string { + if x != nil { + return x.GrantId } return "" } type MyProjectOrgSearchRequest struct { - Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` - Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` - Asc bool `protobuf:"varint,4,opt,name=asc,proto3" json:"asc,omitempty"` - Queries []*MyProjectOrgSearchQuery `protobuf:"bytes,5,rep,name=queries,proto3" json:"queries,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` + Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` + Asc bool `protobuf:"varint,4,opt,name=asc,proto3" json:"asc,omitempty"` + Queries []*MyProjectOrgSearchQuery `protobuf:"bytes,5,rep,name=queries,proto3" json:"queries,omitempty"` } -func (m *MyProjectOrgSearchRequest) Reset() { *m = MyProjectOrgSearchRequest{} } -func (m *MyProjectOrgSearchRequest) String() string { return proto.CompactTextString(m) } -func (*MyProjectOrgSearchRequest) ProtoMessage() {} +func (x *MyProjectOrgSearchRequest) Reset() { + *x = MyProjectOrgSearchRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_auth_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MyProjectOrgSearchRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MyProjectOrgSearchRequest) ProtoMessage() {} + +func (x *MyProjectOrgSearchRequest) ProtoReflect() protoreflect.Message { + mi := &file_auth_proto_msgTypes[30] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MyProjectOrgSearchRequest.ProtoReflect.Descriptor instead. func (*MyProjectOrgSearchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8bbd6f3875b0e874, []int{30} + return file_auth_proto_rawDescGZIP(), []int{30} } -func (m *MyProjectOrgSearchRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MyProjectOrgSearchRequest.Unmarshal(m, b) -} -func (m *MyProjectOrgSearchRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MyProjectOrgSearchRequest.Marshal(b, m, deterministic) -} -func (m *MyProjectOrgSearchRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_MyProjectOrgSearchRequest.Merge(m, src) -} -func (m *MyProjectOrgSearchRequest) XXX_Size() int { - return xxx_messageInfo_MyProjectOrgSearchRequest.Size(m) -} -func (m *MyProjectOrgSearchRequest) XXX_DiscardUnknown() { - xxx_messageInfo_MyProjectOrgSearchRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_MyProjectOrgSearchRequest proto.InternalMessageInfo - -func (m *MyProjectOrgSearchRequest) GetOffset() uint64 { - if m != nil { - return m.Offset +func (x *MyProjectOrgSearchRequest) GetOffset() uint64 { + if x != nil { + return x.Offset } return 0 } -func (m *MyProjectOrgSearchRequest) GetLimit() uint64 { - if m != nil { - return m.Limit +func (x *MyProjectOrgSearchRequest) GetLimit() uint64 { + if x != nil { + return x.Limit } return 0 } -func (m *MyProjectOrgSearchRequest) GetAsc() bool { - if m != nil { - return m.Asc +func (x *MyProjectOrgSearchRequest) GetAsc() bool { + if x != nil { + return x.Asc } return false } -func (m *MyProjectOrgSearchRequest) GetQueries() []*MyProjectOrgSearchQuery { - if m != nil { - return m.Queries +func (x *MyProjectOrgSearchRequest) GetQueries() []*MyProjectOrgSearchQuery { + if x != nil { + return x.Queries } return nil } type MyProjectOrgSearchQuery struct { - Key MyProjectOrgSearchKey `protobuf:"varint,1,opt,name=key,proto3,enum=caos.zitadel.auth.api.v1.MyProjectOrgSearchKey" json:"key,omitempty"` - Method SearchMethod `protobuf:"varint,2,opt,name=method,proto3,enum=caos.zitadel.auth.api.v1.SearchMethod" json:"method,omitempty"` - Value string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Key MyProjectOrgSearchKey `protobuf:"varint,1,opt,name=key,proto3,enum=caos.zitadel.auth.api.v1.MyProjectOrgSearchKey" json:"key,omitempty"` + Method SearchMethod `protobuf:"varint,2,opt,name=method,proto3,enum=caos.zitadel.auth.api.v1.SearchMethod" json:"method,omitempty"` + Value string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` } -func (m *MyProjectOrgSearchQuery) Reset() { *m = MyProjectOrgSearchQuery{} } -func (m *MyProjectOrgSearchQuery) String() string { return proto.CompactTextString(m) } -func (*MyProjectOrgSearchQuery) ProtoMessage() {} +func (x *MyProjectOrgSearchQuery) Reset() { + *x = MyProjectOrgSearchQuery{} + if protoimpl.UnsafeEnabled { + mi := &file_auth_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MyProjectOrgSearchQuery) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MyProjectOrgSearchQuery) ProtoMessage() {} + +func (x *MyProjectOrgSearchQuery) ProtoReflect() protoreflect.Message { + mi := &file_auth_proto_msgTypes[31] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MyProjectOrgSearchQuery.ProtoReflect.Descriptor instead. func (*MyProjectOrgSearchQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_8bbd6f3875b0e874, []int{31} + return file_auth_proto_rawDescGZIP(), []int{31} } -func (m *MyProjectOrgSearchQuery) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MyProjectOrgSearchQuery.Unmarshal(m, b) -} -func (m *MyProjectOrgSearchQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MyProjectOrgSearchQuery.Marshal(b, m, deterministic) -} -func (m *MyProjectOrgSearchQuery) XXX_Merge(src proto.Message) { - xxx_messageInfo_MyProjectOrgSearchQuery.Merge(m, src) -} -func (m *MyProjectOrgSearchQuery) XXX_Size() int { - return xxx_messageInfo_MyProjectOrgSearchQuery.Size(m) -} -func (m *MyProjectOrgSearchQuery) XXX_DiscardUnknown() { - xxx_messageInfo_MyProjectOrgSearchQuery.DiscardUnknown(m) -} - -var xxx_messageInfo_MyProjectOrgSearchQuery proto.InternalMessageInfo - -func (m *MyProjectOrgSearchQuery) GetKey() MyProjectOrgSearchKey { - if m != nil { - return m.Key +func (x *MyProjectOrgSearchQuery) GetKey() MyProjectOrgSearchKey { + if x != nil { + return x.Key } return MyProjectOrgSearchKey_MYPROJECTORGSEARCHKEY_UNSPECIFIED } -func (m *MyProjectOrgSearchQuery) GetMethod() SearchMethod { - if m != nil { - return m.Method +func (x *MyProjectOrgSearchQuery) GetMethod() SearchMethod { + if x != nil { + return x.Method } return SearchMethod_SEARCHMETHOD_EQUALS } -func (m *MyProjectOrgSearchQuery) GetValue() string { - if m != nil { - return m.Value +func (x *MyProjectOrgSearchQuery) GetValue() string { + if x != nil { + return x.Value } return "" } type MyProjectOrgSearchResponse struct { - Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` - Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` - TotalResult uint64 `protobuf:"varint,3,opt,name=total_result,json=totalResult,proto3" json:"total_result,omitempty"` - Result []*Org `protobuf:"bytes,4,rep,name=result,proto3" json:"result,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` + Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` + TotalResult uint64 `protobuf:"varint,3,opt,name=total_result,json=totalResult,proto3" json:"total_result,omitempty"` + Result []*Org `protobuf:"bytes,4,rep,name=result,proto3" json:"result,omitempty"` } -func (m *MyProjectOrgSearchResponse) Reset() { *m = MyProjectOrgSearchResponse{} } -func (m *MyProjectOrgSearchResponse) String() string { return proto.CompactTextString(m) } -func (*MyProjectOrgSearchResponse) ProtoMessage() {} +func (x *MyProjectOrgSearchResponse) Reset() { + *x = MyProjectOrgSearchResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_auth_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MyProjectOrgSearchResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MyProjectOrgSearchResponse) ProtoMessage() {} + +func (x *MyProjectOrgSearchResponse) ProtoReflect() protoreflect.Message { + mi := &file_auth_proto_msgTypes[32] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MyProjectOrgSearchResponse.ProtoReflect.Descriptor instead. func (*MyProjectOrgSearchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_8bbd6f3875b0e874, []int{32} + return file_auth_proto_rawDescGZIP(), []int{32} } -func (m *MyProjectOrgSearchResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MyProjectOrgSearchResponse.Unmarshal(m, b) -} -func (m *MyProjectOrgSearchResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MyProjectOrgSearchResponse.Marshal(b, m, deterministic) -} -func (m *MyProjectOrgSearchResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_MyProjectOrgSearchResponse.Merge(m, src) -} -func (m *MyProjectOrgSearchResponse) XXX_Size() int { - return xxx_messageInfo_MyProjectOrgSearchResponse.Size(m) -} -func (m *MyProjectOrgSearchResponse) XXX_DiscardUnknown() { - xxx_messageInfo_MyProjectOrgSearchResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_MyProjectOrgSearchResponse proto.InternalMessageInfo - -func (m *MyProjectOrgSearchResponse) GetOffset() uint64 { - if m != nil { - return m.Offset +func (x *MyProjectOrgSearchResponse) GetOffset() uint64 { + if x != nil { + return x.Offset } return 0 } -func (m *MyProjectOrgSearchResponse) GetLimit() uint64 { - if m != nil { - return m.Limit +func (x *MyProjectOrgSearchResponse) GetLimit() uint64 { + if x != nil { + return x.Limit } return 0 } -func (m *MyProjectOrgSearchResponse) GetTotalResult() uint64 { - if m != nil { - return m.TotalResult +func (x *MyProjectOrgSearchResponse) GetTotalResult() uint64 { + if x != nil { + return x.TotalResult } return 0 } -func (m *MyProjectOrgSearchResponse) GetResult() []*Org { - if m != nil { - return m.Result +func (x *MyProjectOrgSearchResponse) GetResult() []*Org { + if x != nil { + return x.Result } return nil } type Org struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` } -func (m *Org) Reset() { *m = Org{} } -func (m *Org) String() string { return proto.CompactTextString(m) } -func (*Org) ProtoMessage() {} +func (x *Org) Reset() { + *x = Org{} + if protoimpl.UnsafeEnabled { + mi := &file_auth_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Org) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Org) ProtoMessage() {} + +func (x *Org) ProtoReflect() protoreflect.Message { + mi := &file_auth_proto_msgTypes[33] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Org.ProtoReflect.Descriptor instead. func (*Org) Descriptor() ([]byte, []int) { - return fileDescriptor_8bbd6f3875b0e874, []int{33} + return file_auth_proto_rawDescGZIP(), []int{33} } -func (m *Org) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Org.Unmarshal(m, b) -} -func (m *Org) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Org.Marshal(b, m, deterministic) -} -func (m *Org) XXX_Merge(src proto.Message) { - xxx_messageInfo_Org.Merge(m, src) -} -func (m *Org) XXX_Size() int { - return xxx_messageInfo_Org.Size(m) -} -func (m *Org) XXX_DiscardUnknown() { - xxx_messageInfo_Org.DiscardUnknown(m) -} - -var xxx_messageInfo_Org proto.InternalMessageInfo - -func (m *Org) GetId() string { - if m != nil { - return m.Id +func (x *Org) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *Org) GetName() string { - if m != nil { - return m.Name +func (x *Org) GetName() string { + if x != nil { + return x.Name } return "" } type MyPermissions struct { - Permissions []string `protobuf:"bytes,1,rep,name=permissions,proto3" json:"permissions,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Permissions []string `protobuf:"bytes,1,rep,name=permissions,proto3" json:"permissions,omitempty"` } -func (m *MyPermissions) Reset() { *m = MyPermissions{} } -func (m *MyPermissions) String() string { return proto.CompactTextString(m) } -func (*MyPermissions) ProtoMessage() {} +func (x *MyPermissions) Reset() { + *x = MyPermissions{} + if protoimpl.UnsafeEnabled { + mi := &file_auth_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MyPermissions) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MyPermissions) ProtoMessage() {} + +func (x *MyPermissions) ProtoReflect() protoreflect.Message { + mi := &file_auth_proto_msgTypes[34] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MyPermissions.ProtoReflect.Descriptor instead. func (*MyPermissions) Descriptor() ([]byte, []int) { - return fileDescriptor_8bbd6f3875b0e874, []int{34} + return file_auth_proto_rawDescGZIP(), []int{34} } -func (m *MyPermissions) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MyPermissions.Unmarshal(m, b) -} -func (m *MyPermissions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MyPermissions.Marshal(b, m, deterministic) -} -func (m *MyPermissions) XXX_Merge(src proto.Message) { - xxx_messageInfo_MyPermissions.Merge(m, src) -} -func (m *MyPermissions) XXX_Size() int { - return xxx_messageInfo_MyPermissions.Size(m) -} -func (m *MyPermissions) XXX_DiscardUnknown() { - xxx_messageInfo_MyPermissions.DiscardUnknown(m) -} - -var xxx_messageInfo_MyPermissions proto.InternalMessageInfo - -func (m *MyPermissions) GetPermissions() []string { - if m != nil { - return m.Permissions +func (x *MyPermissions) GetPermissions() []string { + if x != nil { + return x.Permissions } return nil } type ChangesRequest struct { - Limit uint64 `protobuf:"varint,1,opt,name=limit,proto3" json:"limit,omitempty"` - SequenceOffset uint64 `protobuf:"varint,2,opt,name=sequence_offset,json=sequenceOffset,proto3" json:"sequence_offset,omitempty"` - Asc bool `protobuf:"varint,3,opt,name=asc,proto3" json:"asc,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Limit uint64 `protobuf:"varint,1,opt,name=limit,proto3" json:"limit,omitempty"` + SequenceOffset uint64 `protobuf:"varint,2,opt,name=sequence_offset,json=sequenceOffset,proto3" json:"sequence_offset,omitempty"` + Asc bool `protobuf:"varint,3,opt,name=asc,proto3" json:"asc,omitempty"` } -func (m *ChangesRequest) Reset() { *m = ChangesRequest{} } -func (m *ChangesRequest) String() string { return proto.CompactTextString(m) } -func (*ChangesRequest) ProtoMessage() {} +func (x *ChangesRequest) Reset() { + *x = ChangesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_auth_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChangesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChangesRequest) ProtoMessage() {} + +func (x *ChangesRequest) ProtoReflect() protoreflect.Message { + mi := &file_auth_proto_msgTypes[35] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChangesRequest.ProtoReflect.Descriptor instead. func (*ChangesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8bbd6f3875b0e874, []int{35} + return file_auth_proto_rawDescGZIP(), []int{35} } -func (m *ChangesRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ChangesRequest.Unmarshal(m, b) -} -func (m *ChangesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ChangesRequest.Marshal(b, m, deterministic) -} -func (m *ChangesRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_ChangesRequest.Merge(m, src) -} -func (m *ChangesRequest) XXX_Size() int { - return xxx_messageInfo_ChangesRequest.Size(m) -} -func (m *ChangesRequest) XXX_DiscardUnknown() { - xxx_messageInfo_ChangesRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_ChangesRequest proto.InternalMessageInfo - -func (m *ChangesRequest) GetLimit() uint64 { - if m != nil { - return m.Limit +func (x *ChangesRequest) GetLimit() uint64 { + if x != nil { + return x.Limit } return 0 } -func (m *ChangesRequest) GetSequenceOffset() uint64 { - if m != nil { - return m.SequenceOffset +func (x *ChangesRequest) GetSequenceOffset() uint64 { + if x != nil { + return x.SequenceOffset } return 0 } -func (m *ChangesRequest) GetAsc() bool { - if m != nil { - return m.Asc +func (x *ChangesRequest) GetAsc() bool { + if x != nil { + return x.Asc } return false } type Changes struct { - Changes []*Change `protobuf:"bytes,1,rep,name=changes,proto3" json:"changes,omitempty"` - Offset uint64 `protobuf:"varint,2,opt,name=offset,proto3" json:"offset,omitempty"` - Limit uint64 `protobuf:"varint,3,opt,name=limit,proto3" json:"limit,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Changes []*Change `protobuf:"bytes,1,rep,name=changes,proto3" json:"changes,omitempty"` + Offset uint64 `protobuf:"varint,2,opt,name=offset,proto3" json:"offset,omitempty"` + Limit uint64 `protobuf:"varint,3,opt,name=limit,proto3" json:"limit,omitempty"` } -func (m *Changes) Reset() { *m = Changes{} } -func (m *Changes) String() string { return proto.CompactTextString(m) } -func (*Changes) ProtoMessage() {} +func (x *Changes) Reset() { + *x = Changes{} + if protoimpl.UnsafeEnabled { + mi := &file_auth_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Changes) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Changes) ProtoMessage() {} + +func (x *Changes) ProtoReflect() protoreflect.Message { + mi := &file_auth_proto_msgTypes[36] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Changes.ProtoReflect.Descriptor instead. func (*Changes) Descriptor() ([]byte, []int) { - return fileDescriptor_8bbd6f3875b0e874, []int{36} + return file_auth_proto_rawDescGZIP(), []int{36} } -func (m *Changes) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Changes.Unmarshal(m, b) -} -func (m *Changes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Changes.Marshal(b, m, deterministic) -} -func (m *Changes) XXX_Merge(src proto.Message) { - xxx_messageInfo_Changes.Merge(m, src) -} -func (m *Changes) XXX_Size() int { - return xxx_messageInfo_Changes.Size(m) -} -func (m *Changes) XXX_DiscardUnknown() { - xxx_messageInfo_Changes.DiscardUnknown(m) -} - -var xxx_messageInfo_Changes proto.InternalMessageInfo - -func (m *Changes) GetChanges() []*Change { - if m != nil { - return m.Changes +func (x *Changes) GetChanges() []*Change { + if x != nil { + return x.Changes } return nil } -func (m *Changes) GetOffset() uint64 { - if m != nil { - return m.Offset +func (x *Changes) GetOffset() uint64 { + if x != nil { + return x.Offset } return 0 } -func (m *Changes) GetLimit() uint64 { - if m != nil { - return m.Limit +func (x *Changes) GetLimit() uint64 { + if x != nil { + return x.Limit } return 0 } type Change struct { - ChangeDate *timestamp.Timestamp `protobuf:"bytes,1,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` - EventType *message.LocalizedMessage `protobuf:"bytes,2,opt,name=event_type,json=eventType,proto3" json:"event_type,omitempty"` - Sequence uint64 `protobuf:"varint,3,opt,name=sequence,proto3" json:"sequence,omitempty"` - EditorId string `protobuf:"bytes,4,opt,name=editor_id,json=editorId,proto3" json:"editor_id,omitempty"` - Editor string `protobuf:"bytes,5,opt,name=editor,proto3" json:"editor,omitempty"` - Data *_struct.Struct `protobuf:"bytes,6,opt,name=data,proto3" json:"data,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChangeDate *timestamp.Timestamp `protobuf:"bytes,1,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` + EventType *message.LocalizedMessage `protobuf:"bytes,2,opt,name=event_type,json=eventType,proto3" json:"event_type,omitempty"` + Sequence uint64 `protobuf:"varint,3,opt,name=sequence,proto3" json:"sequence,omitempty"` + EditorId string `protobuf:"bytes,4,opt,name=editor_id,json=editorId,proto3" json:"editor_id,omitempty"` + Editor string `protobuf:"bytes,5,opt,name=editor,proto3" json:"editor,omitempty"` + Data *_struct.Struct `protobuf:"bytes,6,opt,name=data,proto3" json:"data,omitempty"` } -func (m *Change) Reset() { *m = Change{} } -func (m *Change) String() string { return proto.CompactTextString(m) } -func (*Change) ProtoMessage() {} +func (x *Change) Reset() { + *x = Change{} + if protoimpl.UnsafeEnabled { + mi := &file_auth_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Change) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Change) ProtoMessage() {} + +func (x *Change) ProtoReflect() protoreflect.Message { + mi := &file_auth_proto_msgTypes[37] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Change.ProtoReflect.Descriptor instead. func (*Change) Descriptor() ([]byte, []int) { - return fileDescriptor_8bbd6f3875b0e874, []int{37} + return file_auth_proto_rawDescGZIP(), []int{37} } -func (m *Change) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Change.Unmarshal(m, b) -} -func (m *Change) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Change.Marshal(b, m, deterministic) -} -func (m *Change) XXX_Merge(src proto.Message) { - xxx_messageInfo_Change.Merge(m, src) -} -func (m *Change) XXX_Size() int { - return xxx_messageInfo_Change.Size(m) -} -func (m *Change) XXX_DiscardUnknown() { - xxx_messageInfo_Change.DiscardUnknown(m) -} - -var xxx_messageInfo_Change proto.InternalMessageInfo - -func (m *Change) GetChangeDate() *timestamp.Timestamp { - if m != nil { - return m.ChangeDate +func (x *Change) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate } return nil } -func (m *Change) GetEventType() *message.LocalizedMessage { - if m != nil { - return m.EventType +func (x *Change) GetEventType() *message.LocalizedMessage { + if x != nil { + return x.EventType } return nil } -func (m *Change) GetSequence() uint64 { - if m != nil { - return m.Sequence +func (x *Change) GetSequence() uint64 { + if x != nil { + return x.Sequence } return 0 } -func (m *Change) GetEditorId() string { - if m != nil { - return m.EditorId +func (x *Change) GetEditorId() string { + if x != nil { + return x.EditorId } return "" } -func (m *Change) GetEditor() string { - if m != nil { - return m.Editor +func (x *Change) GetEditor() string { + if x != nil { + return x.Editor } return "" } -func (m *Change) GetData() *_struct.Struct { - if m != nil { - return m.Data +func (x *Change) GetData() *_struct.Struct { + if x != nil { + return x.Data } return nil } type PasswordComplexityPolicy struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` - CreationDate *timestamp.Timestamp `protobuf:"bytes,3,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` - ChangeDate *timestamp.Timestamp `protobuf:"bytes,4,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` - MinLength uint64 `protobuf:"varint,5,opt,name=min_length,json=minLength,proto3" json:"min_length,omitempty"` - HasLowercase bool `protobuf:"varint,6,opt,name=has_lowercase,json=hasLowercase,proto3" json:"has_lowercase,omitempty"` - HasUppercase bool `protobuf:"varint,7,opt,name=has_uppercase,json=hasUppercase,proto3" json:"has_uppercase,omitempty"` - HasNumber bool `protobuf:"varint,8,opt,name=has_number,json=hasNumber,proto3" json:"has_number,omitempty"` - HasSymbol bool `protobuf:"varint,9,opt,name=has_symbol,json=hasSymbol,proto3" json:"has_symbol,omitempty"` - Sequence uint64 `protobuf:"varint,10,opt,name=sequence,proto3" json:"sequence,omitempty"` - IsDefault bool `protobuf:"varint,11,opt,name=is_default,json=isDefault,proto3" json:"is_default,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,3,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + ChangeDate *timestamp.Timestamp `protobuf:"bytes,4,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` + MinLength uint64 `protobuf:"varint,5,opt,name=min_length,json=minLength,proto3" json:"min_length,omitempty"` + HasLowercase bool `protobuf:"varint,6,opt,name=has_lowercase,json=hasLowercase,proto3" json:"has_lowercase,omitempty"` + HasUppercase bool `protobuf:"varint,7,opt,name=has_uppercase,json=hasUppercase,proto3" json:"has_uppercase,omitempty"` + HasNumber bool `protobuf:"varint,8,opt,name=has_number,json=hasNumber,proto3" json:"has_number,omitempty"` + HasSymbol bool `protobuf:"varint,9,opt,name=has_symbol,json=hasSymbol,proto3" json:"has_symbol,omitempty"` + Sequence uint64 `protobuf:"varint,10,opt,name=sequence,proto3" json:"sequence,omitempty"` + IsDefault bool `protobuf:"varint,11,opt,name=is_default,json=isDefault,proto3" json:"is_default,omitempty"` } -func (m *PasswordComplexityPolicy) Reset() { *m = PasswordComplexityPolicy{} } -func (m *PasswordComplexityPolicy) String() string { return proto.CompactTextString(m) } -func (*PasswordComplexityPolicy) ProtoMessage() {} +func (x *PasswordComplexityPolicy) Reset() { + *x = PasswordComplexityPolicy{} + if protoimpl.UnsafeEnabled { + mi := &file_auth_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PasswordComplexityPolicy) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PasswordComplexityPolicy) ProtoMessage() {} + +func (x *PasswordComplexityPolicy) ProtoReflect() protoreflect.Message { + mi := &file_auth_proto_msgTypes[38] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PasswordComplexityPolicy.ProtoReflect.Descriptor instead. func (*PasswordComplexityPolicy) Descriptor() ([]byte, []int) { - return fileDescriptor_8bbd6f3875b0e874, []int{38} + return file_auth_proto_rawDescGZIP(), []int{38} } -func (m *PasswordComplexityPolicy) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_PasswordComplexityPolicy.Unmarshal(m, b) -} -func (m *PasswordComplexityPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_PasswordComplexityPolicy.Marshal(b, m, deterministic) -} -func (m *PasswordComplexityPolicy) XXX_Merge(src proto.Message) { - xxx_messageInfo_PasswordComplexityPolicy.Merge(m, src) -} -func (m *PasswordComplexityPolicy) XXX_Size() int { - return xxx_messageInfo_PasswordComplexityPolicy.Size(m) -} -func (m *PasswordComplexityPolicy) XXX_DiscardUnknown() { - xxx_messageInfo_PasswordComplexityPolicy.DiscardUnknown(m) -} - -var xxx_messageInfo_PasswordComplexityPolicy proto.InternalMessageInfo - -func (m *PasswordComplexityPolicy) GetId() string { - if m != nil { - return m.Id +func (x *PasswordComplexityPolicy) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *PasswordComplexityPolicy) GetDescription() string { - if m != nil { - return m.Description +func (x *PasswordComplexityPolicy) GetDescription() string { + if x != nil { + return x.Description } return "" } -func (m *PasswordComplexityPolicy) GetCreationDate() *timestamp.Timestamp { - if m != nil { - return m.CreationDate +func (x *PasswordComplexityPolicy) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate } return nil } -func (m *PasswordComplexityPolicy) GetChangeDate() *timestamp.Timestamp { - if m != nil { - return m.ChangeDate +func (x *PasswordComplexityPolicy) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate } return nil } -func (m *PasswordComplexityPolicy) GetMinLength() uint64 { - if m != nil { - return m.MinLength +func (x *PasswordComplexityPolicy) GetMinLength() uint64 { + if x != nil { + return x.MinLength } return 0 } -func (m *PasswordComplexityPolicy) GetHasLowercase() bool { - if m != nil { - return m.HasLowercase +func (x *PasswordComplexityPolicy) GetHasLowercase() bool { + if x != nil { + return x.HasLowercase } return false } -func (m *PasswordComplexityPolicy) GetHasUppercase() bool { - if m != nil { - return m.HasUppercase +func (x *PasswordComplexityPolicy) GetHasUppercase() bool { + if x != nil { + return x.HasUppercase } return false } -func (m *PasswordComplexityPolicy) GetHasNumber() bool { - if m != nil { - return m.HasNumber +func (x *PasswordComplexityPolicy) GetHasNumber() bool { + if x != nil { + return x.HasNumber } return false } -func (m *PasswordComplexityPolicy) GetHasSymbol() bool { - if m != nil { - return m.HasSymbol +func (x *PasswordComplexityPolicy) GetHasSymbol() bool { + if x != nil { + return x.HasSymbol } return false } -func (m *PasswordComplexityPolicy) GetSequence() uint64 { - if m != nil { - return m.Sequence +func (x *PasswordComplexityPolicy) GetSequence() uint64 { + if x != nil { + return x.Sequence } return 0 } -func (m *PasswordComplexityPolicy) GetIsDefault() bool { - if m != nil { - return m.IsDefault +func (x *PasswordComplexityPolicy) GetIsDefault() bool { + if x != nil { + return x.IsDefault } return false } -func init() { - proto.RegisterEnum("caos.zitadel.auth.api.v1.UserSessionState", UserSessionState_name, UserSessionState_value) - proto.RegisterEnum("caos.zitadel.auth.api.v1.MachineKeyType", MachineKeyType_name, MachineKeyType_value) - proto.RegisterEnum("caos.zitadel.auth.api.v1.UserState", UserState_name, UserState_value) - proto.RegisterEnum("caos.zitadel.auth.api.v1.Gender", Gender_name, Gender_value) - proto.RegisterEnum("caos.zitadel.auth.api.v1.MfaType", MfaType_name, MfaType_value) - proto.RegisterEnum("caos.zitadel.auth.api.v1.MFAState", MFAState_name, MFAState_value) - proto.RegisterEnum("caos.zitadel.auth.api.v1.UserGrantSearchKey", UserGrantSearchKey_name, UserGrantSearchKey_value) - proto.RegisterEnum("caos.zitadel.auth.api.v1.MyProjectOrgSearchKey", MyProjectOrgSearchKey_name, MyProjectOrgSearchKey_value) - proto.RegisterEnum("caos.zitadel.auth.api.v1.SearchMethod", SearchMethod_name, SearchMethod_value) - proto.RegisterType((*UserSessionViews)(nil), "caos.zitadel.auth.api.v1.UserSessionViews") - proto.RegisterType((*UserSessionView)(nil), "caos.zitadel.auth.api.v1.UserSessionView") - proto.RegisterType((*UserView)(nil), "caos.zitadel.auth.api.v1.UserView") - proto.RegisterType((*MachineView)(nil), "caos.zitadel.auth.api.v1.MachineView") - proto.RegisterType((*MachineKeyView)(nil), "caos.zitadel.auth.api.v1.MachineKeyView") - proto.RegisterType((*HumanView)(nil), "caos.zitadel.auth.api.v1.HumanView") - proto.RegisterType((*UserProfile)(nil), "caos.zitadel.auth.api.v1.UserProfile") - proto.RegisterType((*UserProfileView)(nil), "caos.zitadel.auth.api.v1.UserProfileView") - proto.RegisterType((*UpdateUserProfileRequest)(nil), "caos.zitadel.auth.api.v1.UpdateUserProfileRequest") - proto.RegisterType((*ChangeUserNameRequest)(nil), "caos.zitadel.auth.api.v1.ChangeUserNameRequest") - proto.RegisterType((*UserEmail)(nil), "caos.zitadel.auth.api.v1.UserEmail") - proto.RegisterType((*UserEmailView)(nil), "caos.zitadel.auth.api.v1.UserEmailView") - proto.RegisterType((*VerifyMyUserEmailRequest)(nil), "caos.zitadel.auth.api.v1.VerifyMyUserEmailRequest") - proto.RegisterType((*UpdateUserEmailRequest)(nil), "caos.zitadel.auth.api.v1.UpdateUserEmailRequest") - proto.RegisterType((*UserPhone)(nil), "caos.zitadel.auth.api.v1.UserPhone") - proto.RegisterType((*UserPhoneView)(nil), "caos.zitadel.auth.api.v1.UserPhoneView") - proto.RegisterType((*UpdateUserPhoneRequest)(nil), "caos.zitadel.auth.api.v1.UpdateUserPhoneRequest") - proto.RegisterType((*VerifyUserPhoneRequest)(nil), "caos.zitadel.auth.api.v1.VerifyUserPhoneRequest") - proto.RegisterType((*UserAddress)(nil), "caos.zitadel.auth.api.v1.UserAddress") - proto.RegisterType((*UserAddressView)(nil), "caos.zitadel.auth.api.v1.UserAddressView") - proto.RegisterType((*UpdateUserAddressRequest)(nil), "caos.zitadel.auth.api.v1.UpdateUserAddressRequest") - proto.RegisterType((*PasswordChange)(nil), "caos.zitadel.auth.api.v1.PasswordChange") - proto.RegisterType((*VerifyMfaOtp)(nil), "caos.zitadel.auth.api.v1.VerifyMfaOtp") - proto.RegisterType((*MultiFactors)(nil), "caos.zitadel.auth.api.v1.MultiFactors") - proto.RegisterType((*MultiFactor)(nil), "caos.zitadel.auth.api.v1.MultiFactor") - proto.RegisterType((*MfaOtpResponse)(nil), "caos.zitadel.auth.api.v1.MfaOtpResponse") - proto.RegisterType((*UserGrantSearchRequest)(nil), "caos.zitadel.auth.api.v1.UserGrantSearchRequest") - proto.RegisterType((*UserGrantSearchQuery)(nil), "caos.zitadel.auth.api.v1.UserGrantSearchQuery") - proto.RegisterType((*UserGrantSearchResponse)(nil), "caos.zitadel.auth.api.v1.UserGrantSearchResponse") - proto.RegisterType((*UserGrantView)(nil), "caos.zitadel.auth.api.v1.UserGrantView") - proto.RegisterType((*MyProjectOrgSearchRequest)(nil), "caos.zitadel.auth.api.v1.MyProjectOrgSearchRequest") - proto.RegisterType((*MyProjectOrgSearchQuery)(nil), "caos.zitadel.auth.api.v1.MyProjectOrgSearchQuery") - proto.RegisterType((*MyProjectOrgSearchResponse)(nil), "caos.zitadel.auth.api.v1.MyProjectOrgSearchResponse") - proto.RegisterType((*Org)(nil), "caos.zitadel.auth.api.v1.Org") - proto.RegisterType((*MyPermissions)(nil), "caos.zitadel.auth.api.v1.MyPermissions") - proto.RegisterType((*ChangesRequest)(nil), "caos.zitadel.auth.api.v1.ChangesRequest") - proto.RegisterType((*Changes)(nil), "caos.zitadel.auth.api.v1.Changes") - proto.RegisterType((*Change)(nil), "caos.zitadel.auth.api.v1.Change") - proto.RegisterType((*PasswordComplexityPolicy)(nil), "caos.zitadel.auth.api.v1.PasswordComplexityPolicy") +type ExternalIDPResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + IdpConfigId string `protobuf:"bytes,1,opt,name=idp_config_id,json=idpConfigId,proto3" json:"idp_config_id,omitempty"` + UserId string `protobuf:"bytes,2,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + DisplayName string `protobuf:"bytes,3,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` } -func init() { proto.RegisterFile("auth.proto", fileDescriptor_8bbd6f3875b0e874) } +func (x *ExternalIDPResponse) Reset() { + *x = ExternalIDPResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_auth_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} -var fileDescriptor_8bbd6f3875b0e874 = []byte{ - // 3683 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5a, 0x5f, 0x6f, 0x23, 0x59, - 0x56, 0xef, 0xf2, 0x9f, 0xc4, 0x3e, 0x4e, 0x1c, 0xe7, 0x76, 0x77, 0xe2, 0x76, 0xba, 0xa7, 0xd3, - 0xd5, 0xd3, 0x33, 0x69, 0x6f, 0x4f, 0xdc, 0x9d, 0xdd, 0x91, 0xa6, 0x33, 0x88, 0xc5, 0x49, 0xdc, - 0x89, 0x37, 0xb1, 0x9d, 0x2d, 0x3b, 0xbd, 0xcc, 0xae, 0x66, 0xad, 0x8a, 0xeb, 0xc6, 0xae, 0x1d, - 0xbb, 0xca, 0x5b, 0xb7, 0x9c, 0xac, 0x07, 0x2d, 0x7f, 0x06, 0xb1, 0x5a, 0x90, 0x16, 0xa4, 0x05, - 0x81, 0x10, 0xf0, 0x80, 0x04, 0x88, 0x07, 0x04, 0x0f, 0x08, 0x5e, 0xe0, 0x03, 0xf0, 0x02, 0xd2, - 0x0a, 0x89, 0x0f, 0x80, 0xf8, 0x06, 0x08, 0x01, 0xcd, 0x0b, 0xba, 0x7f, 0xaa, 0x5c, 0xae, 0x72, - 0xd9, 0x4e, 0x37, 0xbb, 0x8b, 0x56, 0xfb, 0x14, 0xdf, 0x73, 0xcf, 0xb9, 0xf7, 0x77, 0xcf, 0xf9, - 0xdd, 0x7b, 0x4f, 0xdd, 0x13, 0x00, 0x75, 0x60, 0x77, 0xb6, 0xfb, 0x96, 0x69, 0x9b, 0x28, 0xdb, - 0x52, 0x4d, 0xb2, 0xfd, 0xa9, 0x6e, 0xab, 0x1a, 0xee, 0x6e, 0xb3, 0x0e, 0xb5, 0xaf, 0x6f, 0x5f, - 0x3e, 0xcb, 0xdd, 0x6d, 0x9b, 0x66, 0xbb, 0x8b, 0x0b, 0x6a, 0x5f, 0x2f, 0xa8, 0x86, 0x61, 0xda, - 0xaa, 0xad, 0x9b, 0x06, 0xe1, 0x76, 0xb9, 0x0d, 0xd1, 0xcb, 0x5a, 0xe7, 0x83, 0x8b, 0x02, 0xee, - 0xf5, 0xed, 0xa1, 0xe8, 0xbc, 0xeb, 0xef, 0x24, 0xb6, 0x35, 0x68, 0xd9, 0xa2, 0xf7, 0xbe, 0xbf, - 0xd7, 0xd6, 0x7b, 0x98, 0xd8, 0x6a, 0xaf, 0x2f, 0x14, 0xd6, 0x2f, 0xd5, 0xae, 0xae, 0xa9, 0x36, - 0x2e, 0x38, 0x3f, 0x44, 0xc7, 0x13, 0xf6, 0xa7, 0xf5, 0x5e, 0x1b, 0x1b, 0xef, 0x91, 0x2b, 0xb5, - 0xdd, 0xc6, 0x56, 0xc1, 0xec, 0x33, 0x58, 0x13, 0x20, 0x66, 0xe9, 0x6a, 0x78, 0xb7, 0xa3, 0x25, - 0x7a, 0x6e, 0xb2, 0x3f, 0x85, 0x1e, 0x26, 0x44, 0x6d, 0x8b, 0xc1, 0xe5, 0x73, 0xc8, 0x9c, 0x11, - 0x6c, 0xd5, 0x31, 0x21, 0xba, 0x69, 0xbc, 0xd4, 0xf1, 0x15, 0x41, 0x55, 0x58, 0x1e, 0x10, 0x6c, - 0x35, 0x09, 0x17, 0x92, 0xac, 0xb4, 0x19, 0xdd, 0x4a, 0xed, 0x3c, 0xde, 0x0e, 0xf3, 0xda, 0xb6, - 0x6f, 0x08, 0x65, 0x69, 0x30, 0x12, 0x10, 0xf9, 0x0f, 0x22, 0xb0, 0xe2, 0xd3, 0x40, 0x69, 0x88, - 0xe8, 0x5a, 0x56, 0xda, 0x94, 0xb6, 0x92, 0x4a, 0x44, 0xd7, 0xd0, 0x1d, 0x48, 0xa8, 0x6d, 0x6c, - 0xd8, 0x4d, 0x5d, 0xcb, 0x46, 0x98, 0x74, 0x91, 0xb5, 0xcb, 0x1a, 0x2a, 0xf3, 0xd0, 0x35, 0x89, - 0xad, 0xda, 0x38, 0x1b, 0xdd, 0x94, 0xb6, 0xd2, 0x3b, 0xf9, 0xb9, 0xb0, 0xd4, 0xa9, 0x85, 0x92, - 0xa4, 0xbd, 0xec, 0x27, 0x5a, 0x87, 0x45, 0xb6, 0x32, 0x5d, 0xcb, 0xc6, 0xd8, 0x24, 0x0b, 0xb4, - 0x59, 0xd6, 0xd0, 0x06, 0x24, 0x59, 0x87, 0xa1, 0xf6, 0x70, 0x36, 0xce, 0xba, 0x12, 0x54, 0x50, - 0x55, 0x7b, 0x18, 0xe5, 0x20, 0x41, 0xf0, 0x37, 0x07, 0xd8, 0x68, 0xe1, 0xec, 0xc2, 0xa6, 0xb4, - 0x15, 0x53, 0xdc, 0x36, 0xba, 0x07, 0xd0, 0x35, 0xdb, 0xba, 0xc1, 0x2d, 0x17, 0x99, 0x65, 0x92, - 0x49, 0x98, 0xe9, 0x03, 0x58, 0xd2, 0x74, 0xd2, 0xef, 0xaa, 0x43, 0xae, 0x90, 0x60, 0x0a, 0x29, - 0x21, 0xa3, 0x2a, 0xf2, 0x3f, 0xc5, 0x20, 0x41, 0x31, 0x4f, 0x74, 0xcb, 0x73, 0x88, 0xf3, 0x65, - 0x47, 0xd8, 0xb2, 0x1f, 0xce, 0x58, 0x36, 0x5b, 0x2f, 0xb7, 0x40, 0x5f, 0x84, 0xe5, 0x96, 0x85, - 0x19, 0x37, 0x9a, 0x9a, 0xe3, 0xb9, 0xd4, 0x4e, 0x6e, 0x9b, 0x13, 0x71, 0xdb, 0x21, 0xe2, 0x76, - 0xc3, 0x21, 0xa2, 0xb2, 0xe4, 0x18, 0x1c, 0xd0, 0x01, 0x3e, 0x84, 0x54, 0xab, 0xa3, 0x1a, 0x6d, - 0xcc, 0xcd, 0x63, 0x33, 0xcd, 0x81, 0xab, 0x33, 0x63, 0xaf, 0xcf, 0xe2, 0x3e, 0x9f, 0xdd, 0x87, - 0xd4, 0xc8, 0x67, 0x24, 0xbb, 0xb0, 0x19, 0xdd, 0x4a, 0x2a, 0xe0, 0x3a, 0x8d, 0xa0, 0xa7, 0x70, - 0xab, 0x6f, 0xe1, 0x0b, 0x6c, 0x59, 0x58, 0x6b, 0x06, 0xdc, 0x8b, 0xdc, 0xbe, 0x13, 0xd7, 0xcf, - 0xcf, 0x01, 0xba, 0x2a, 0xb1, 0xb9, 0x32, 0xf3, 0xf2, 0x74, 0xa8, 0x49, 0xaa, 0xcd, 0xcc, 0xd1, - 0x23, 0x48, 0x5b, 0x98, 0x98, 0x03, 0xab, 0x85, 0x9b, 0xe6, 0x95, 0x81, 0xad, 0x6c, 0x92, 0x4d, - 0xb3, 0xec, 0x48, 0x6b, 0x54, 0x38, 0xce, 0x10, 0xf0, 0x31, 0xe4, 0x43, 0x88, 0x77, 0x06, 0x3d, - 0xd5, 0xc8, 0xa6, 0xd8, 0xcc, 0x53, 0xc2, 0x74, 0x44, 0xd5, 0x68, 0xa8, 0x8f, 0x6e, 0x28, 0xdc, - 0x06, 0x15, 0x61, 0xb1, 0xa7, 0xb6, 0x3a, 0xba, 0x81, 0xb3, 0x4b, 0xcc, 0xfc, 0x51, 0xb8, 0x79, - 0x85, 0x2b, 0x8a, 0x01, 0x1c, 0xbb, 0xbd, 0x14, 0xc4, 0x28, 0x16, 0x14, 0xfd, 0xaf, 0x3d, 0x49, - 0xfe, 0x35, 0x09, 0x52, 0x1e, 0x3d, 0xf4, 0x73, 0x90, 0x66, 0xbe, 0xf9, 0x04, 0x0f, 0x9b, 0xaa, - 0xa6, 0x61, 0xce, 0xaf, 0x19, 0x4c, 0xa0, 0x16, 0xc7, 0x78, 0x58, 0xa4, 0xfa, 0x08, 0x41, 0x8c, - 0x2d, 0x9b, 0x6f, 0x4c, 0xf6, 0x1b, 0x6d, 0x42, 0x4a, 0xc3, 0xa4, 0x65, 0xe9, 0xec, 0x8c, 0x61, - 0xe4, 0xa2, 0xc4, 0x1e, 0x89, 0xe4, 0x5f, 0x8e, 0x40, 0x5a, 0xe0, 0x38, 0xc6, 0xc3, 0x89, 0xf4, - 0xfe, 0x19, 0x88, 0xd9, 0xc3, 0xbe, 0xc3, 0xee, 0xad, 0x99, 0xeb, 0x3e, 0xc6, 0xc3, 0xc6, 0xb0, - 0x8f, 0x15, 0x66, 0x35, 0xc6, 0xb1, 0xa8, 0x8f, 0x63, 0x01, 0xf6, 0xc7, 0xae, 0xc9, 0xfe, 0x7d, - 0x58, 0xc1, 0xdf, 0xea, 0xeb, 0x96, 0x67, 0x88, 0xf8, 0xcc, 0x21, 0xd2, 0x23, 0x13, 0x3a, 0x88, - 0xfc, 0x83, 0x18, 0x24, 0xdd, 0x88, 0xa3, 0x12, 0x64, 0xfa, 0x2a, 0x21, 0x57, 0xa6, 0xa5, 0x35, - 0xf9, 0x56, 0x99, 0x27, 0x14, 0x2b, 0x8e, 0xcd, 0x3e, 0x37, 0xa1, 0x47, 0xce, 0x85, 0x6e, 0x11, - 0xbb, 0xe9, 0x89, 0x49, 0x92, 0x49, 0x18, 0x17, 0x37, 0x80, 0x91, 0x9b, 0xf7, 0xf2, 0xb0, 0x24, - 0xa8, 0x60, 0xe2, 0x79, 0x14, 0x0b, 0x9c, 0x47, 0xd4, 0xde, 0xd0, 0x5b, 0x9f, 0x8c, 0x1d, 0x85, - 0x54, 0xc0, 0x3a, 0xdf, 0x03, 0xe4, 0xd9, 0x99, 0xaa, 0xd1, 0x1e, 0xa8, 0x6d, 0x7e, 0x28, 0x26, - 0x95, 0xd5, 0xd1, 0xbe, 0x14, 0x1d, 0xe8, 0x03, 0x58, 0x68, 0x63, 0x43, 0xc3, 0x16, 0xdb, 0xba, - 0xe9, 0x9d, 0xcd, 0xf0, 0x08, 0x1f, 0x32, 0x3d, 0x45, 0xe8, 0xa3, 0x5b, 0x10, 0xc7, 0x3d, 0x55, - 0xef, 0x8a, 0x13, 0x93, 0x37, 0x50, 0x1e, 0x56, 0x75, 0xd2, 0x64, 0xbf, 0x9b, 0x97, 0xd8, 0xd2, - 0x2f, 0x74, 0xac, 0xb1, 0xed, 0x9a, 0x50, 0x56, 0x74, 0x52, 0xa2, 0xf2, 0x97, 0x42, 0x4c, 0x47, - 0xe8, 0x77, 0x4c, 0xc3, 0xd9, 0xac, 0xbc, 0x21, 0x46, 0x60, 0xbf, 0x47, 0x23, 0xa4, 0x9c, 0x11, - 0x4e, 0xa9, 0xdc, 0x1d, 0x21, 0x0b, 0x8b, 0x2d, 0x73, 0x60, 0xd8, 0xd6, 0x90, 0x6d, 0xcc, 0xa4, - 0xe2, 0x34, 0x29, 0xf3, 0xba, 0x66, 0x4b, 0xed, 0xea, 0xf6, 0x30, 0xbb, 0x2c, 0x5c, 0x2c, 0xda, - 0xf4, 0x74, 0xeb, 0x9b, 0xc4, 0x56, 0xbb, 0xcd, 0x96, 0xa9, 0xe1, 0x6c, 0x9a, 0x75, 0x03, 0x17, - 0xed, 0x9b, 0x1a, 0x46, 0x6b, 0xb0, 0x60, 0xe1, 0x36, 0xdd, 0x34, 0x2b, 0xfc, 0x0e, 0xe2, 0x2d, - 0x7a, 0x10, 0x11, 0xdb, 0xc2, 0xd8, 0xa6, 0xbb, 0xd4, 0xc2, 0x84, 0x64, 0x33, 0xfc, 0x20, 0xe2, - 0xd2, 0x22, 0x17, 0xca, 0x7f, 0x18, 0x85, 0x14, 0x3d, 0xec, 0x4f, 0x2d, 0xf3, 0x42, 0xef, 0xe2, - 0xc0, 0x9e, 0x7a, 0x13, 0x7a, 0x8c, 0xc5, 0x3e, 0xe6, 0x8b, 0xbd, 0x9f, 0x3b, 0xf1, 0x20, 0x77, - 0x7e, 0x64, 0xf4, 0xf0, 0x6e, 0xfd, 0xc4, 0xac, 0xad, 0x9f, 0x7c, 0xb3, 0x8b, 0x0f, 0xae, 0x73, - 0xf1, 0xc9, 0xff, 0x1e, 0xe5, 0xc9, 0x8e, 0x08, 0xcf, 0xc4, 0x63, 0xef, 0xa7, 0x21, 0xfa, 0x71, - 0x86, 0xc8, 0x9f, 0x7f, 0xa4, 0xe6, 0xce, 0x3f, 0x96, 0xc2, 0xf2, 0x0f, 0xf9, 0x37, 0x22, 0x90, - 0x3d, 0xeb, 0x53, 0x2c, 0x9e, 0xd8, 0x2b, 0x74, 0xb9, 0xc4, 0x46, 0x8f, 0xc7, 0xc2, 0xcd, 0x68, - 0xb0, 0x07, 0xaf, 0xf6, 0x16, 0xad, 0x78, 0x46, 0xca, 0xfe, 0x83, 0xe4, 0x0d, 0xfd, 0xbb, 0xde, - 0xd0, 0x47, 0x02, 0x9a, 0x23, 0x1a, 0x3c, 0xf2, 0xd2, 0x80, 0x71, 0x64, 0x2f, 0xf1, 0x6a, 0x2f, - 0x6e, 0x45, 0x99, 0x9a, 0x4b, 0x88, 0xe7, 0x13, 0xa3, 0x1d, 0x0b, 0x0c, 0x3c, 0x35, 0xf2, 0xf1, - 0xeb, 0x45, 0x5e, 0x56, 0xe0, 0x36, 0xbf, 0xab, 0xce, 0x44, 0x7e, 0xe4, 0x38, 0xe2, 0xb9, 0x37, - 0x87, 0xe2, 0x7e, 0xb8, 0xfb, 0x6a, 0xef, 0x8e, 0xb5, 0xbe, 0x73, 0xfb, 0xeb, 0x5f, 0xfb, 0xfa, - 0xd7, 0x76, 0x49, 0x5f, 0x6d, 0xe1, 0xdd, 0x8f, 0x3f, 0xfe, 0x85, 0x67, 0x4f, 0x76, 0x9e, 0x3e, - 0xfd, 0xf6, 0xdb, 0xa3, 0x0c, 0x4b, 0xfe, 0x0f, 0x09, 0x92, 0x74, 0x38, 0x76, 0xc6, 0x07, 0x36, - 0x94, 0x7b, 0x5b, 0x44, 0xbc, 0xb7, 0xc5, 0x16, 0xf8, 0x2f, 0x05, 0xe6, 0xa9, 0x09, 0x77, 0x85, - 0x97, 0xab, 0xb1, 0x59, 0x5c, 0x8d, 0xbf, 0x19, 0x57, 0x17, 0xae, 0x75, 0x9c, 0xfc, 0xb7, 0x04, - 0xcb, 0xee, 0xba, 0x27, 0x1e, 0x26, 0x3f, 0xb9, 0x6b, 0xdf, 0x85, 0x2c, 0x43, 0x39, 0xac, 0x0c, - 0x5d, 0x17, 0x38, 0x54, 0x7a, 0x0b, 0x62, 0xec, 0x7a, 0x0d, 0xee, 0x26, 0x26, 0x97, 0x77, 0x61, - 0x6d, 0xb4, 0x1f, 0xc7, 0x2c, 0x37, 0x1d, 0x7f, 0x05, 0x4d, 0x79, 0x87, 0xfc, 0x9f, 0x82, 0x6b, - 0x2c, 0x1b, 0x98, 0xe4, 0x6f, 0x9e, 0x57, 0x44, 0x66, 0xe6, 0x15, 0xd1, 0xc9, 0x79, 0xc5, 0xff, - 0x5f, 0x8f, 0xff, 0x8f, 0x60, 0x1b, 0xc7, 0x1b, 0xc2, 0xb6, 0x9f, 0xd8, 0xd5, 0x3f, 0xf7, 0x72, - 0x86, 0x81, 0x76, 0x38, 0x73, 0xdf, 0x59, 0x35, 0xe7, 0x4c, 0xf2, 0xd5, 0xde, 0x82, 0x15, 0xcb, - 0x48, 0xd9, 0x5b, 0xc2, 0x01, 0xf2, 0x07, 0xb0, 0xc6, 0xa9, 0x1a, 0x30, 0x9d, 0x45, 0xd4, 0x7f, - 0x8c, 0xf0, 0x74, 0x4e, 0xa4, 0x77, 0x01, 0x87, 0x7b, 0x92, 0xd0, 0x48, 0x78, 0x12, 0x1a, 0x9d, - 0x9e, 0x84, 0xc6, 0xa6, 0x24, 0xa1, 0xf1, 0x19, 0x49, 0xe8, 0xc2, 0x84, 0x24, 0x74, 0x2c, 0x88, - 0x8b, 0xb3, 0x82, 0x98, 0x78, 0xb3, 0x20, 0x26, 0xaf, 0x15, 0xc4, 0x1f, 0x88, 0xc7, 0x26, 0x81, - 0x74, 0x22, 0x89, 0x7f, 0xea, 0xd3, 0xeb, 0xf9, 0xf4, 0x5f, 0x25, 0x6f, 0x76, 0x23, 0xf0, 0x3a, - 0x04, 0x97, 0x47, 0xce, 0x94, 0x7c, 0x79, 0x88, 0xeb, 0xd6, 0xb7, 0x3d, 0x6e, 0x8d, 0xf8, 0x93, - 0x15, 0xd7, 0xc1, 0x8f, 0xc7, 0x1d, 0xec, 0xcf, 0x6a, 0xbc, 0xae, 0xde, 0x74, 0x5d, 0x1d, 0xf3, - 0x69, 0x39, 0x4e, 0x2f, 0x04, 0x9c, 0x1e, 0xf7, 0x69, 0xfa, 0xbe, 0xab, 0xba, 0x90, 0x3e, 0x1d, - 0xfb, 0xd2, 0x46, 0x4f, 0x60, 0xc9, 0xec, 0x6a, 0x4d, 0xe7, 0xfb, 0xdb, 0xbf, 0xf9, 0x8f, 0x94, - 0x94, 0xd9, 0xd5, 0x1c, 0x1b, 0xaa, 0x6d, 0xe0, 0xab, 0x91, 0x76, 0x24, 0xa0, 0x6d, 0xe0, 0x2b, - 0x47, 0x5b, 0xfe, 0x1c, 0x2c, 0x89, 0xbb, 0xed, 0x42, 0xad, 0xd9, 0x7d, 0xb4, 0x31, 0x76, 0x4c, - 0x2c, 0xbe, 0xda, 0x8b, 0x59, 0x91, 0x8c, 0x73, 0x46, 0x94, 0x61, 0xa9, 0x32, 0xe8, 0xda, 0xfa, - 0x0b, 0xb5, 0x65, 0x9b, 0x16, 0x41, 0xcf, 0x21, 0xd6, 0xbb, 0x50, 0x9d, 0x77, 0xd9, 0x69, 0xcf, - 0x45, 0x23, 0x2b, 0x85, 0x99, 0xc8, 0xbf, 0x08, 0x29, 0x8f, 0x10, 0xbd, 0x2f, 0x1e, 0x60, 0x24, - 0x96, 0xe2, 0x3d, 0x98, 0x32, 0xd2, 0x85, 0xea, 0x79, 0x79, 0xf9, 0x60, 0xfc, 0x59, 0x52, 0x9e, - 0x62, 0xf7, 0xa2, 0xe8, 0x7d, 0x95, 0x94, 0xbf, 0x27, 0x41, 0x9a, 0x2f, 0x59, 0xc1, 0xa4, 0x6f, - 0x1a, 0x64, 0xec, 0x51, 0x56, 0x1a, 0x7b, 0x94, 0xcd, 0x40, 0x74, 0x60, 0x39, 0x79, 0x0d, 0xfd, - 0x49, 0x77, 0x18, 0xc1, 0x2d, 0x0b, 0xdb, 0x62, 0x73, 0x8a, 0xd6, 0x08, 0x4f, 0xec, 0xba, 0x78, - 0x7e, 0x25, 0x02, 0x6b, 0x94, 0xd4, 0x87, 0x96, 0x6a, 0xd8, 0x75, 0xac, 0x5a, 0xad, 0x8e, 0x43, - 0xec, 0x35, 0x58, 0x30, 0x2f, 0x2e, 0x08, 0xb6, 0x19, 0xac, 0x98, 0x22, 0x5a, 0xf4, 0x0a, 0xec, - 0xea, 0x3d, 0xdd, 0x66, 0xc0, 0x62, 0x0a, 0x6f, 0xa0, 0x8f, 0x21, 0x4d, 0x4c, 0xcb, 0xd6, 0x8d, - 0x76, 0xb3, 0x65, 0x76, 0x07, 0x3d, 0x43, 0xbc, 0x54, 0x3f, 0x99, 0xfe, 0x64, 0xeb, 0x99, 0xf7, - 0x18, 0x0f, 0x19, 0x3b, 0x3f, 0x93, 0x22, 0x9b, 0x37, 0x94, 0x65, 0x31, 0xda, 0x3e, 0x1b, 0x8c, - 0xfa, 0x42, 0x25, 0x2d, 0xb6, 0xbe, 0x84, 0x42, 0x7f, 0xa2, 0x23, 0x58, 0xfc, 0xe6, 0x00, 0x5b, - 0x3a, 0xa6, 0xcc, 0xa6, 0x3c, 0xd8, 0x9e, 0x7b, 0xa6, 0x2f, 0x0f, 0xb0, 0x35, 0x54, 0x1c, 0x73, - 0xf9, 0x6f, 0x25, 0xb8, 0x35, 0x49, 0x03, 0x1d, 0x41, 0xf4, 0x13, 0x3c, 0x14, 0xe4, 0x78, 0xdd, - 0x85, 0xd0, 0x21, 0xd0, 0xcf, 0xc2, 0x42, 0x0f, 0xdb, 0x1d, 0x53, 0x13, 0x8c, 0x79, 0x27, 0x7c, - 0x30, 0x3e, 0x46, 0x85, 0x69, 0x2b, 0xc2, 0x8a, 0xfa, 0xfc, 0x52, 0xed, 0x0e, 0x9c, 0xcf, 0x61, - 0xde, 0x90, 0xff, 0x28, 0x02, 0xeb, 0x81, 0xe0, 0x09, 0x56, 0x5d, 0x2f, 0x7a, 0x0f, 0x60, 0xc9, - 0x36, 0xe9, 0xc9, 0x63, 0x61, 0x32, 0xe8, 0xda, 0xe2, 0x39, 0x31, 0xc5, 0x64, 0x0a, 0x13, 0xa1, - 0x2f, 0xd2, 0x23, 0x87, 0x75, 0xc6, 0x98, 0xbb, 0xdf, 0x9d, 0xc3, 0x1f, 0xac, 0x18, 0x22, 0xcc, - 0xf8, 0x97, 0xb7, 0xd9, 0xc2, 0x84, 0x60, 0xad, 0xe9, 0x7b, 0x1c, 0x5f, 0x75, 0x7b, 0xea, 0xce, - 0x91, 0x5f, 0x84, 0xf4, 0xa5, 0x8e, 0xaf, 0x9a, 0x6e, 0x9d, 0x68, 0x8e, 0x6c, 0x66, 0x99, 0x5a, - 0xb8, 0x4d, 0xf9, 0x4f, 0x45, 0x3a, 0xe7, 0x62, 0xa1, 0xab, 0xaf, 0x59, 0xed, 0xb2, 0xb3, 0xd3, - 0x78, 0x03, 0xdd, 0x85, 0xe4, 0xa9, 0x65, 0x7e, 0x03, 0xb7, 0xec, 0xb2, 0x53, 0x7d, 0x19, 0x09, - 0xa8, 0x27, 0xcf, 0xd8, 0x86, 0x74, 0x36, 0x1d, 0x6f, 0xd1, 0xb1, 0x14, 0xb3, 0x8b, 0x09, 0xf3, - 0x47, 0x52, 0xe1, 0x0d, 0x7a, 0xb7, 0xd6, 0xac, 0x76, 0x75, 0xf4, 0xfa, 0xe0, 0x34, 0x69, 0x0f, - 0x03, 0x52, 0xd6, 0xc4, 0xfd, 0xe7, 0x34, 0xe5, 0x3f, 0x97, 0xe0, 0x4e, 0x65, 0x28, 0x66, 0xac, - 0x59, 0xed, 0x37, 0xd9, 0x87, 0xc1, 0x8d, 0x72, 0xec, 0xdf, 0x28, 0xcf, 0xa6, 0x1c, 0x0f, 0x01, - 0x14, 0xbe, 0xbd, 0xf2, 0xf7, 0x12, 0xac, 0x87, 0x28, 0xa1, 0x63, 0xef, 0x76, 0x29, 0x5c, 0x67, - 0x92, 0x1f, 0xd9, 0x8e, 0xf9, 0x13, 0x09, 0x72, 0x93, 0x3c, 0xfd, 0xc3, 0xda, 0x34, 0xef, 0xfb, - 0x36, 0xcd, 0xbd, 0xf0, 0x55, 0xd4, 0xac, 0xb6, 0xb3, 0x55, 0xe4, 0xc7, 0x10, 0xad, 0x59, 0xed, - 0x40, 0xde, 0x36, 0xa1, 0x0e, 0x21, 0x3f, 0x83, 0xe5, 0xca, 0xf0, 0x14, 0x5b, 0x3d, 0x9d, 0x57, - 0x1b, 0xd1, 0x26, 0xa4, 0xfa, 0xa3, 0x26, 0xbb, 0x23, 0x93, 0x8a, 0x57, 0x24, 0xab, 0x90, 0xe6, - 0x37, 0xbc, 0x9b, 0xc3, 0xb8, 0xeb, 0x93, 0xbc, 0xeb, 0x7b, 0x17, 0x56, 0x9c, 0x6d, 0xda, 0x14, - 0x6e, 0xe1, 0xeb, 0x4f, 0x3b, 0xe2, 0x1a, 0x77, 0x8f, 0xe0, 0x5c, 0xd4, 0xe5, 0x9c, 0x4c, 0x60, - 0x51, 0x4c, 0x81, 0x76, 0x61, 0x91, 0xa7, 0x52, 0xce, 0x7d, 0x3d, 0xe5, 0x21, 0x85, 0xdb, 0x28, - 0x8e, 0x81, 0x27, 0x1e, 0x91, 0xc9, 0xf1, 0x88, 0x7a, 0xf0, 0xca, 0xbf, 0x1e, 0x81, 0x05, 0x91, - 0xba, 0xf8, 0xd2, 0x3d, 0xe9, 0x5a, 0xef, 0x63, 0x07, 0x00, 0xf8, 0x12, 0x1b, 0x76, 0xd3, 0xad, - 0xcd, 0x04, 0x93, 0x0c, 0x8e, 0xf7, 0x84, 0xa5, 0x6e, 0x9f, 0x62, 0xad, 0xc2, 0x8b, 0xca, 0x4a, - 0x92, 0x19, 0x36, 0x66, 0x55, 0x67, 0x36, 0x20, 0x89, 0x35, 0xdd, 0x36, 0x3d, 0x95, 0xd8, 0x04, - 0x17, 0xf0, 0xf3, 0x86, 0xff, 0x76, 0xd2, 0x68, 0xde, 0x42, 0x9f, 0x83, 0x98, 0xa6, 0xda, 0xaa, - 0x38, 0x06, 0xd7, 0x03, 0x8b, 0xa9, 0xb3, 0x72, 0xbb, 0xc2, 0x94, 0xe4, 0xbf, 0x88, 0x42, 0xd6, - 0x4d, 0xe7, 0xcc, 0x5e, 0xbf, 0x8b, 0xbf, 0xa5, 0xdb, 0xc3, 0x53, 0xb3, 0xab, 0xb7, 0x86, 0x01, - 0x5e, 0xf9, 0x6a, 0x59, 0x91, 0x40, 0x2d, 0xeb, 0xc7, 0x5c, 0x4c, 0xbd, 0x07, 0xd0, 0xd3, 0x8d, - 0x66, 0x17, 0x1b, 0x6d, 0xbb, 0x23, 0x6e, 0x8c, 0x64, 0x4f, 0x37, 0x4e, 0x98, 0x00, 0x3d, 0x84, - 0xe5, 0x8e, 0x4a, 0x9a, 0x5d, 0xf3, 0x0a, 0x5b, 0x2d, 0x95, 0xf0, 0xcf, 0xde, 0x84, 0xb2, 0xd4, - 0x51, 0xc9, 0x89, 0x23, 0x73, 0x94, 0x06, 0xfd, 0xbe, 0x50, 0x5a, 0x74, 0x95, 0xce, 0x1c, 0x19, - 0x9d, 0x88, 0x2a, 0x19, 0x83, 0xde, 0x39, 0xb6, 0xd8, 0x37, 0x46, 0x42, 0x49, 0x76, 0x54, 0x52, - 0x65, 0x02, 0xa7, 0x9b, 0x0c, 0x7b, 0xe7, 0x66, 0x57, 0xd4, 0x5d, 0x68, 0x77, 0x9d, 0x09, 0xc6, - 0x22, 0x0e, 0xc1, 0x3a, 0xb9, 0x4e, 0x9a, 0x1a, 0xbe, 0x50, 0xe9, 0x61, 0xc0, 0x0b, 0x2e, 0x49, - 0x9d, 0x1c, 0x70, 0x41, 0xde, 0x1a, 0xfb, 0x37, 0x04, 0x5e, 0xac, 0xdf, 0x84, 0xbb, 0x67, 0xf5, - 0x92, 0x52, 0x2f, 0xd5, 0xeb, 0xe5, 0x5a, 0xb5, 0xde, 0x28, 0x36, 0x4a, 0xcd, 0xb3, 0x6a, 0xfd, - 0xb4, 0xb4, 0x5f, 0x7e, 0x51, 0x2e, 0x1d, 0x64, 0x6e, 0xa0, 0x0d, 0x58, 0x0f, 0x68, 0x14, 0xf7, - 0x1b, 0xe5, 0x97, 0xa5, 0x8c, 0x84, 0xee, 0xc3, 0x46, 0xa0, 0xb3, 0x51, 0x52, 0x2a, 0xe5, 0x6a, - 0xb1, 0x51, 0x3a, 0xc8, 0x44, 0xf2, 0x45, 0x6f, 0x79, 0x52, 0x50, 0x76, 0xad, 0x52, 0xdc, 0x3f, - 0x2a, 0x57, 0x4b, 0xc7, 0xa5, 0x8f, 0x7c, 0x73, 0xdd, 0x84, 0x15, 0x4f, 0xdf, 0x97, 0xea, 0xb5, - 0x6a, 0x46, 0xca, 0xff, 0x95, 0x78, 0x29, 0xe2, 0x80, 0xef, 0xc0, 0x6d, 0x36, 0xe3, 0x04, 0xa4, - 0xb7, 0x20, 0x33, 0xea, 0x72, 0x21, 0xae, 0x01, 0x1a, 0x49, 0xcb, 0x55, 0x21, 0x8f, 0xa0, 0xdb, - 0xb0, 0x3a, 0x92, 0x1f, 0x94, 0x4e, 0x4a, 0x14, 0x70, 0x74, 0x7c, 0x90, 0x93, 0xda, 0xfe, 0x71, - 0xe9, 0x20, 0x13, 0x1b, 0x57, 0xae, 0x9f, 0xd5, 0x4f, 0x4b, 0xd5, 0x83, 0x4c, 0x7c, 0x5c, 0x5c, - 0xae, 0x96, 0x1b, 0xe5, 0xe2, 0x49, 0x66, 0x21, 0xff, 0xf3, 0xb0, 0xc0, 0x5f, 0x6b, 0xe9, 0xe4, - 0x87, 0xa5, 0xea, 0x41, 0x49, 0xf1, 0x41, 0x5d, 0x85, 0x65, 0x21, 0x7f, 0x51, 0xaa, 0x14, 0x4f, - 0x28, 0xce, 0x15, 0x48, 0x09, 0x11, 0x13, 0x44, 0x10, 0x82, 0xb4, 0x10, 0x1c, 0x94, 0x5f, 0x52, - 0x1f, 0x67, 0xa2, 0xf9, 0x03, 0x58, 0x14, 0x1f, 0x09, 0x68, 0x1d, 0x6e, 0x56, 0x5e, 0x14, 0x1b, - 0x1f, 0x9d, 0xfa, 0xdd, 0xb0, 0x02, 0x29, 0xa7, 0xa3, 0x5e, 0xa9, 0xf3, 0x91, 0x1d, 0x41, 0xad, - 0x71, 0x9a, 0x89, 0xe4, 0x2f, 0x20, 0xe1, 0xa4, 0xe8, 0x28, 0x0b, 0xb7, 0xe8, 0xef, 0x09, 0xee, - 0x5c, 0x03, 0xe4, 0xf6, 0x54, 0x6b, 0x8d, 0xa6, 0x52, 0x2a, 0x1e, 0x7c, 0x94, 0x91, 0x28, 0x2e, - 0x57, 0xce, 0x65, 0x11, 0xea, 0x35, 0x8f, 0xac, 0x52, 0x7b, 0x49, 0x7d, 0x99, 0xbf, 0x04, 0x14, - 0xcc, 0x5a, 0xd1, 0x5b, 0x90, 0x0b, 0x4a, 0x9b, 0x67, 0xd5, 0xe3, 0x6a, 0xed, 0x2b, 0xd5, 0xcc, - 0x0d, 0x74, 0x0f, 0xee, 0x4c, 0xe8, 0xaf, 0x29, 0x87, 0xcd, 0xf2, 0x41, 0x46, 0x42, 0x0f, 0xe0, - 0xde, 0x84, 0xee, 0x53, 0xa5, 0xf6, 0xa5, 0xd2, 0x7e, 0x83, 0xaa, 0x44, 0xf2, 0xe7, 0x70, 0x7b, - 0xe2, 0xf5, 0x8f, 0x1e, 0xc1, 0x83, 0xca, 0x47, 0x42, 0xb5, 0xa6, 0x1c, 0xd6, 0x4b, 0x45, 0x65, - 0xff, 0x28, 0x48, 0x43, 0x19, 0xde, 0x9a, 0xac, 0x46, 0x41, 0x54, 0x8b, 0x95, 0x52, 0x46, 0xca, - 0xff, 0x8b, 0x04, 0x4b, 0xde, 0x9c, 0x80, 0xc6, 0x83, 0x2b, 0x56, 0x4a, 0x8d, 0xa3, 0xda, 0x41, - 0xb3, 0xf4, 0xe5, 0xb3, 0xe2, 0x49, 0x3d, 0x73, 0x03, 0xdd, 0x85, 0xec, 0x58, 0x47, 0xbd, 0x51, - 0x54, 0x1a, 0xf5, 0xe6, 0x57, 0xca, 0x8d, 0xa3, 0x8c, 0x44, 0xf9, 0x3c, 0xd6, 0xbb, 0x5f, 0xab, - 0x36, 0x8a, 0xe5, 0x6a, 0x3d, 0x13, 0x41, 0x0f, 0xe1, 0xfe, 0x84, 0x11, 0x9b, 0xe5, 0xc3, 0x6a, - 0x4d, 0x29, 0x35, 0xf7, 0x8b, 0x94, 0x11, 0x68, 0x0b, 0xde, 0x0e, 0x1b, 0x7d, 0x4c, 0x33, 0x46, - 0x17, 0x3f, 0x71, 0xa6, 0x31, 0xb5, 0xf8, 0xce, 0xef, 0x6d, 0x42, 0xaa, 0x38, 0xb0, 0x3b, 0x75, - 0x6c, 0x5d, 0xea, 0x2d, 0x4c, 0x33, 0xbb, 0x23, 0xac, 0x76, 0xed, 0xce, 0xa7, 0x68, 0x2d, 0x70, - 0x94, 0x96, 0x7a, 0x7d, 0x7b, 0x98, 0x0b, 0x91, 0xcb, 0x99, 0xcf, 0xfe, 0xf9, 0xdf, 0x7e, 0x3b, - 0x02, 0x28, 0x51, 0xe8, 0x88, 0x11, 0x0e, 0x21, 0xae, 0x60, 0x55, 0x1b, 0x5e, 0x7b, 0xa8, 0x34, - 0x1b, 0x2a, 0x81, 0x16, 0x0a, 0x16, 0xb3, 0xaf, 0x42, 0xe2, 0xa5, 0xf8, 0x0f, 0xae, 0xd0, 0xb1, - 0xc2, 0x6e, 0x2f, 0x79, 0x95, 0x0d, 0x96, 0x42, 0x49, 0xf7, 0xbf, 0xc0, 0xd0, 0x77, 0x24, 0x58, - 0x3d, 0xc4, 0x36, 0x7f, 0x04, 0x77, 0xfe, 0xa9, 0x2a, 0x74, 0xe4, 0xfc, 0xdc, 0xff, 0xa5, 0x45, - 0xe4, 0xf7, 0x3e, 0xfb, 0x9b, 0xec, 0x0a, 0x2c, 0x53, 0x1d, 0x6c, 0xd8, 0x7a, 0x4b, 0xb5, 0xb1, - 0xc6, 0xe6, 0xbf, 0x85, 0x50, 0x81, 0x7e, 0x84, 0x93, 0x42, 0x0f, 0x17, 0x9c, 0x7f, 0x03, 0x43, - 0x3d, 0x48, 0xba, 0x38, 0x42, 0xe7, 0x97, 0xa7, 0xcf, 0x4f, 0x27, 0x96, 0xdf, 0x0e, 0x9b, 0x97, - 0xae, 0xdb, 0x99, 0x17, 0xfd, 0xaa, 0x04, 0x19, 0x77, 0x3e, 0xa7, 0xda, 0x1d, 0x36, 0xed, 0x8c, - 0x7f, 0x4e, 0xf3, 0x54, 0x63, 0xe5, 0x27, 0x61, 0xb3, 0xdf, 0x44, 0xab, 0xa3, 0x55, 0xf7, 0xc5, - 0x84, 0x7f, 0x2c, 0xc1, 0x4d, 0xfe, 0xf6, 0x35, 0x0e, 0x64, 0x67, 0xca, 0x84, 0x21, 0x85, 0xc0, - 0xdc, 0xa3, 0xb9, 0x40, 0xca, 0x85, 0x30, 0x80, 0x6b, 0xb9, 0x20, 0xc0, 0x5d, 0x29, 0x8f, 0xbe, - 0x27, 0x41, 0x86, 0x27, 0x7e, 0x1c, 0x23, 0xfb, 0xdc, 0x2a, 0xcc, 0x4a, 0x33, 0x7d, 0xd5, 0xb9, - 0x50, 0x7e, 0x3f, 0x0d, 0x83, 0xb3, 0x9e, 0xf3, 0xb0, 0x84, 0xfe, 0xa0, 0x09, 0x39, 0xc5, 0xf3, - 0x6d, 0x48, 0xbb, 0x81, 0xe3, 0x05, 0xbb, 0xb0, 0xb0, 0xcd, 0xf8, 0x88, 0x76, 0xab, 0x5e, 0x72, - 0x3e, 0x0c, 0xc4, 0x2a, 0x5a, 0x19, 0x81, 0xe0, 0xb5, 0xaf, 0xdf, 0x97, 0x60, 0xd5, 0xeb, 0x0e, - 0x0e, 0xe1, 0xe9, 0x3c, 0x01, 0xf3, 0x56, 0x8a, 0x72, 0x0f, 0xe7, 0x00, 0x37, 0x65, 0x0f, 0xe5, - 0xfc, 0xc0, 0xa8, 0x6b, 0x7e, 0x57, 0x82, 0xd5, 0x40, 0x51, 0x6b, 0x1a, 0x99, 0xc2, 0x2a, 0x60, - 0xa1, 0xe1, 0x7a, 0x3f, 0x0c, 0xd0, 0x5d, 0x79, 0xdd, 0x07, 0xa8, 0xc0, 0x8b, 0x35, 0x43, 0x0a, - 0xec, 0xfb, 0x12, 0xdc, 0x53, 0x30, 0xc1, 0x86, 0x56, 0x19, 0x7a, 0x0a, 0x84, 0x2d, 0x96, 0xc2, - 0x56, 0xa6, 0xc5, 0x30, 0x0c, 0x48, 0x31, 0x0c, 0xc8, 0x96, 0xfc, 0x30, 0x00, 0xc4, 0x62, 0x53, - 0x5f, 0x7a, 0xe6, 0xf4, 0x13, 0x89, 0x57, 0xe3, 0x5e, 0x93, 0x48, 0x6e, 0x41, 0x6b, 0x4e, 0x22, - 0xf1, 0xb2, 0x96, 0x9f, 0x48, 0x1c, 0xc2, 0x5c, 0x44, 0xf2, 0xd6, 0x80, 0x66, 0x11, 0x89, 0xe9, - 0xce, 0x49, 0x24, 0x06, 0x8c, 0xba, 0xc6, 0x84, 0x55, 0x05, 0xf7, 0xcc, 0x4b, 0x3c, 0x8f, 0x77, - 0xc2, 0x42, 0x14, 0xee, 0x8c, 0x7c, 0xc0, 0x19, 0xbf, 0xe3, 0x63, 0xee, 0x4c, 0x67, 0x4c, 0x2e, - 0x88, 0xbd, 0x21, 0x6f, 0x19, 0x96, 0x30, 0xde, 0x7a, 0x0a, 0x8d, 0x9c, 0x43, 0xbc, 0x2c, 0xf3, - 0x43, 0xe1, 0xad, 0x00, 0x32, 0x99, 0xb7, 0x63, 0x57, 0x97, 0x53, 0xdf, 0x79, 0xcd, 0xab, 0xcb, - 0x53, 0xc8, 0x9a, 0xf3, 0xea, 0x12, 0x05, 0x0f, 0x76, 0x2d, 0xb8, 0x28, 0x9c, 0xe7, 0x88, 0xad, - 0x59, 0xd7, 0x82, 0xf3, 0x28, 0x92, 0x7b, 0x30, 0x53, 0x73, 0x4e, 0x3c, 0xce, 0x6b, 0x86, 0xff, - 0x2a, 0x75, 0x1c, 0x33, 0xd7, 0x55, 0x3a, 0x5e, 0x75, 0x9a, 0x75, 0x95, 0x3a, 0x45, 0x9d, 0xf9, - 0xae, 0x52, 0xe1, 0x30, 0x1a, 0xb9, 0x4b, 0x91, 0xe3, 0x54, 0x2e, 0xd4, 0xf0, 0x88, 0xbd, 0x33, - 0x57, 0xc5, 0x85, 0xc8, 0x8f, 0xc3, 0x66, 0xcf, 0xa0, 0xf4, 0x68, 0xf6, 0x1e, 0x9d, 0xea, 0xb7, - 0x3c, 0x57, 0xb8, 0x5b, 0x52, 0x9a, 0x12, 0xab, 0xf1, 0x52, 0x55, 0x28, 0x97, 0x9f, 0x87, 0x21, - 0xd8, 0xcc, 0x6d, 0x78, 0xb8, 0x2c, 0x06, 0x23, 0x05, 0xf1, 0x7f, 0xa9, 0xd4, 0x13, 0x7f, 0x26, - 0xc1, 0x3d, 0xe6, 0x8a, 0xd0, 0x67, 0x94, 0x30, 0xf7, 0xec, 0xcc, 0x01, 0xdb, 0x37, 0xd6, 0x14, - 0xa0, 0xe8, 0xad, 0x42, 0x9f, 0xea, 0xe8, 0x98, 0x78, 0x80, 0xb6, 0xdc, 0x01, 0xd0, 0x2f, 0x41, - 0xb2, 0xa8, 0x69, 0x95, 0x0b, 0xb5, 0xd6, 0x38, 0x0d, 0xc5, 0xb4, 0x35, 0xb5, 0xb4, 0xe5, 0x29, - 0x47, 0x4d, 0x49, 0x77, 0x64, 0x34, 0x1e, 0xb4, 0x82, 0x69, 0xf7, 0xa9, 0xa7, 0xbe, 0x2b, 0x79, - 0x8b, 0x79, 0x8d, 0x53, 0xf4, 0xce, 0xcc, 0xeb, 0x9c, 0x4d, 0x19, 0x1a, 0xb5, 0x0f, 0xc2, 0x20, - 0xdc, 0xcf, 0xe5, 0x82, 0x10, 0xbc, 0xa7, 0x61, 0x0f, 0x96, 0xc4, 0xad, 0x30, 0xdd, 0x1d, 0x61, - 0x33, 0x87, 0x5f, 0x42, 0xf9, 0x09, 0x8b, 0x47, 0x7f, 0x29, 0xc1, 0xaa, 0xf8, 0xd2, 0x1c, 0xba, - 0x5f, 0xbe, 0x53, 0x2f, 0xc8, 0x89, 0xa5, 0xb6, 0xdc, 0xb3, 0x6b, 0x58, 0x88, 0x30, 0x7d, 0x21, - 0x0c, 0xe9, 0x86, 0xbc, 0xc6, 0x90, 0xb6, 0xa9, 0x11, 0x83, 0xdb, 0x24, 0xcc, 0x94, 0xfa, 0xe7, - 0xef, 0x24, 0xb8, 0xe9, 0x00, 0x1e, 0x7d, 0x85, 0x13, 0xf4, 0xf9, 0xeb, 0xbc, 0xd6, 0x3b, 0xa8, - 0xbf, 0x70, 0x3d, 0x23, 0x01, 0x3c, 0x9c, 0xe9, 0xf2, 0x46, 0xa1, 0xdd, 0x35, 0xcf, 0xd5, 0x2e, - 0xcd, 0xed, 0xa9, 0xb1, 0x69, 0xb5, 0x89, 0x17, 0xfd, 0x6f, 0x4a, 0xb0, 0xce, 0xb6, 0xe4, 0x57, - 0xf9, 0x94, 0xde, 0x67, 0xef, 0xd7, 0x48, 0x8c, 0xc6, 0xde, 0xcd, 0xe5, 0x9d, 0x30, 0x5c, 0x77, - 0xd0, 0x7a, 0xc1, 0xf3, 0x7c, 0x5e, 0x10, 0x43, 0xd1, 0x4f, 0xb4, 0xef, 0x38, 0x80, 0xc4, 0x6a, - 0xff, 0x4f, 0x01, 0x4d, 0xcd, 0xd4, 0xbc, 0x80, 0x7a, 0x78, 0xef, 0xaf, 0xa5, 0xef, 0x17, 0xbf, - 0x2b, 0xa1, 0x0f, 0x21, 0x51, 0x1c, 0xd8, 0x9d, 0xcd, 0xe2, 0x69, 0x59, 0xce, 0xa3, 0xad, 0x8e, - 0x6d, 0xf7, 0xc9, 0x6e, 0xa1, 0xd0, 0xd6, 0xed, 0xce, 0xe0, 0x7c, 0xbb, 0x65, 0xf6, 0x0a, 0x74, - 0x6e, 0x77, 0x05, 0xfd, 0x4f, 0xda, 0x05, 0x3a, 0xfc, 0x4e, 0xf4, 0xe9, 0xf6, 0xb3, 0xbc, 0x14, - 0xd9, 0xc9, 0xa8, 0xfd, 0x7e, 0x57, 0xdc, 0xe3, 0x85, 0x6f, 0x10, 0xd3, 0x18, 0x97, 0xb4, 0xad, - 0x7e, 0x6b, 0x37, 0xa0, 0xb3, 0x1b, 0xd0, 0xf9, 0xea, 0xa3, 0x69, 0x33, 0x52, 0x0d, 0x36, 0xed, - 0xf9, 0x02, 0x73, 0xcd, 0xe7, 0xff, 0x37, 0x00, 0x00, 0xff, 0xff, 0xf3, 0xa1, 0xd2, 0x82, 0x9b, - 0x36, 0x00, 0x00, +func (x *ExternalIDPResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExternalIDPResponse) ProtoMessage() {} + +func (x *ExternalIDPResponse) ProtoReflect() protoreflect.Message { + mi := &file_auth_proto_msgTypes[39] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ExternalIDPResponse.ProtoReflect.Descriptor instead. +func (*ExternalIDPResponse) Descriptor() ([]byte, []int) { + return file_auth_proto_rawDescGZIP(), []int{39} +} + +func (x *ExternalIDPResponse) GetIdpConfigId() string { + if x != nil { + return x.IdpConfigId + } + return "" +} + +func (x *ExternalIDPResponse) GetUserId() string { + if x != nil { + return x.UserId + } + return "" +} + +func (x *ExternalIDPResponse) GetDisplayName() string { + if x != nil { + return x.DisplayName + } + return "" +} + +type ExternalIDPRemoveRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + IdpConfigId string `protobuf:"bytes,1,opt,name=idp_config_id,json=idpConfigId,proto3" json:"idp_config_id,omitempty"` + ExternalUserId string `protobuf:"bytes,2,opt,name=external_user_id,json=externalUserId,proto3" json:"external_user_id,omitempty"` +} + +func (x *ExternalIDPRemoveRequest) Reset() { + *x = ExternalIDPRemoveRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_auth_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExternalIDPRemoveRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExternalIDPRemoveRequest) ProtoMessage() {} + +func (x *ExternalIDPRemoveRequest) ProtoReflect() protoreflect.Message { + mi := &file_auth_proto_msgTypes[40] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ExternalIDPRemoveRequest.ProtoReflect.Descriptor instead. +func (*ExternalIDPRemoveRequest) Descriptor() ([]byte, []int) { + return file_auth_proto_rawDescGZIP(), []int{40} +} + +func (x *ExternalIDPRemoveRequest) GetIdpConfigId() string { + if x != nil { + return x.IdpConfigId + } + return "" +} + +func (x *ExternalIDPRemoveRequest) GetExternalUserId() string { + if x != nil { + return x.ExternalUserId + } + return "" +} + +type ExternalIDPSearchRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` + Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` + UserId string `protobuf:"bytes,3,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` +} + +func (x *ExternalIDPSearchRequest) Reset() { + *x = ExternalIDPSearchRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_auth_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExternalIDPSearchRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExternalIDPSearchRequest) ProtoMessage() {} + +func (x *ExternalIDPSearchRequest) ProtoReflect() protoreflect.Message { + mi := &file_auth_proto_msgTypes[41] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ExternalIDPSearchRequest.ProtoReflect.Descriptor instead. +func (*ExternalIDPSearchRequest) Descriptor() ([]byte, []int) { + return file_auth_proto_rawDescGZIP(), []int{41} +} + +func (x *ExternalIDPSearchRequest) GetOffset() uint64 { + if x != nil { + return x.Offset + } + return 0 +} + +func (x *ExternalIDPSearchRequest) GetLimit() uint64 { + if x != nil { + return x.Limit + } + return 0 +} + +func (x *ExternalIDPSearchRequest) GetUserId() string { + if x != nil { + return x.UserId + } + return "" +} + +type ExternalIDPSearchResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` + Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` + TotalResult uint64 `protobuf:"varint,3,opt,name=total_result,json=totalResult,proto3" json:"total_result,omitempty"` + Result []*ExternalIDPView `protobuf:"bytes,4,rep,name=result,proto3" json:"result,omitempty"` + ProcessedSequence uint64 `protobuf:"varint,5,opt,name=processed_sequence,json=processedSequence,proto3" json:"processed_sequence,omitempty"` + ViewTimestamp *timestamp.Timestamp `protobuf:"bytes,6,opt,name=view_timestamp,json=viewTimestamp,proto3" json:"view_timestamp,omitempty"` +} + +func (x *ExternalIDPSearchResponse) Reset() { + *x = ExternalIDPSearchResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_auth_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExternalIDPSearchResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExternalIDPSearchResponse) ProtoMessage() {} + +func (x *ExternalIDPSearchResponse) ProtoReflect() protoreflect.Message { + mi := &file_auth_proto_msgTypes[42] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ExternalIDPSearchResponse.ProtoReflect.Descriptor instead. +func (*ExternalIDPSearchResponse) Descriptor() ([]byte, []int) { + return file_auth_proto_rawDescGZIP(), []int{42} +} + +func (x *ExternalIDPSearchResponse) GetOffset() uint64 { + if x != nil { + return x.Offset + } + return 0 +} + +func (x *ExternalIDPSearchResponse) GetLimit() uint64 { + if x != nil { + return x.Limit + } + return 0 +} + +func (x *ExternalIDPSearchResponse) GetTotalResult() uint64 { + if x != nil { + return x.TotalResult + } + return 0 +} + +func (x *ExternalIDPSearchResponse) GetResult() []*ExternalIDPView { + if x != nil { + return x.Result + } + return nil +} + +func (x *ExternalIDPSearchResponse) GetProcessedSequence() uint64 { + if x != nil { + return x.ProcessedSequence + } + return 0 +} + +func (x *ExternalIDPSearchResponse) GetViewTimestamp() *timestamp.Timestamp { + if x != nil { + return x.ViewTimestamp + } + return nil +} + +type ExternalIDPView struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + IdpConfigId string `protobuf:"bytes,2,opt,name=idp_config_id,json=idpConfigId,proto3" json:"idp_config_id,omitempty"` + ExternalUserId string `protobuf:"bytes,3,opt,name=external_user_id,json=externalUserId,proto3" json:"external_user_id,omitempty"` + IdpName string `protobuf:"bytes,4,opt,name=idp_name,json=idpName,proto3" json:"idp_name,omitempty"` + ExternalUserDisplayName string `protobuf:"bytes,5,opt,name=external_user_display_name,json=externalUserDisplayName,proto3" json:"external_user_display_name,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,6,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + ChangeDate *timestamp.Timestamp `protobuf:"bytes,7,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` +} + +func (x *ExternalIDPView) Reset() { + *x = ExternalIDPView{} + if protoimpl.UnsafeEnabled { + mi := &file_auth_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExternalIDPView) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExternalIDPView) ProtoMessage() {} + +func (x *ExternalIDPView) ProtoReflect() protoreflect.Message { + mi := &file_auth_proto_msgTypes[43] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ExternalIDPView.ProtoReflect.Descriptor instead. +func (*ExternalIDPView) Descriptor() ([]byte, []int) { + return file_auth_proto_rawDescGZIP(), []int{43} +} + +func (x *ExternalIDPView) GetUserId() string { + if x != nil { + return x.UserId + } + return "" +} + +func (x *ExternalIDPView) GetIdpConfigId() string { + if x != nil { + return x.IdpConfigId + } + return "" +} + +func (x *ExternalIDPView) GetExternalUserId() string { + if x != nil { + return x.ExternalUserId + } + return "" +} + +func (x *ExternalIDPView) GetIdpName() string { + if x != nil { + return x.IdpName + } + return "" +} + +func (x *ExternalIDPView) GetExternalUserDisplayName() string { + if x != nil { + return x.ExternalUserDisplayName + } + return "" +} + +func (x *ExternalIDPView) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate + } + return nil +} + +func (x *ExternalIDPView) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate + } + return nil +} + +var File_auth_proto protoreflect.FileDescriptor + +var file_auth_proto_rawDesc = []byte{ + 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x18, 0x63, 0x61, + 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 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, + 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, 0x17, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2c, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x73, 0x77, 0x61, 0x67, 0x67, 0x65, 0x72, 0x2f, 0x6f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x18, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x1a, 0x13, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x62, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x73, 0x12, 0x4e, 0x0a, 0x0d, 0x75, 0x73, + 0x65, 0x72, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x29, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, + 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, + 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x52, 0x0c, 0x75, 0x73, + 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x9b, 0x02, 0x0a, 0x0f, 0x55, + 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x19, + 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x49, 0x0a, 0x0a, 0x61, 0x75, 0x74, + 0x68, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, + 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, + 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1b, 0x0a, + 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x6f, 0x67, 0x69, + 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, + 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xce, 0x04, 0x0a, 0x08, 0x55, 0x73, 0x65, + 0x72, 0x56, 0x69, 0x65, 0x77, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x39, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, + 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, + 0x65, 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, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, + 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, + 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, 0x70, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1a, + 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, + 0x67, 0x69, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x0a, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x70, + 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x70, 0x72, 0x65, 0x66, 0x65, + 0x72, 0x72, 0x65, 0x64, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x39, 0x0a, + 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x18, 0x08, 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, 0x6c, + 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, + 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x05, + 0x68, 0x75, 0x6d, 0x61, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x61, + 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x75, 0x6d, 0x61, 0x6e, 0x56, 0x69, 0x65, 0x77, + 0x48, 0x00, 0x52, 0x05, 0x68, 0x75, 0x6d, 0x61, 0x6e, 0x12, 0x41, 0x0a, 0x07, 0x6d, 0x61, 0x63, + 0x68, 0x69, 0x6e, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x61, 0x6f, + 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x56, 0x69, 0x65, + 0x77, 0x48, 0x00, 0x52, 0x07, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x42, 0x0b, 0x0a, 0x04, + 0x75, 0x73, 0x65, 0x72, 0x12, 0x03, 0xf8, 0x42, 0x01, 0x22, 0x85, 0x01, 0x0a, 0x0b, 0x4d, 0x61, + 0x63, 0x68, 0x69, 0x6e, 0x65, 0x56, 0x69, 0x65, 0x77, 0x12, 0x40, 0x0a, 0x0e, 0x6c, 0x61, 0x73, + 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x61, 0x64, 0x64, 0x65, 0x64, 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, 0x0c, 0x6c, + 0x61, 0x73, 0x74, 0x4b, 0x65, 0x79, 0x41, 0x64, 0x64, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x22, 0x80, 0x02, 0x0a, 0x0e, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x4b, 0x65, 0x79, + 0x56, 0x69, 0x65, 0x77, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x02, 0x69, 0x64, 0x12, 0x3c, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, + 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, + 0x63, 0x68, 0x69, 0x6e, 0x65, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3f, + 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 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, + 0x70, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, + 0x43, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, + 0x74, 0x65, 0x18, 0x05, 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, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x44, 0x61, 0x74, 0x65, 0x22, 0xd1, 0x04, 0x0a, 0x09, 0x48, 0x75, 0x6d, 0x61, 0x6e, 0x56, 0x69, + 0x65, 0x77, 0x12, 0x45, 0x0a, 0x10, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 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, 0x0f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, + 0x72, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x69, 0x72, + 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, + 0x69, 0x72, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x73, + 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, + 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x69, 0x63, 0x6b, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, + 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, + 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x11, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x4c, 0x61, 0x6e, 0x67, + 0x75, 0x61, 0x67, 0x65, 0x12, 0x38, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, + 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x14, + 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, + 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x73, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, + 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0f, 0x69, 0x73, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x73, 0x5f, 0x70, 0x68, 0x6f, + 0x6e, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0f, 0x69, 0x73, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1a, 0x0a, 0x08, + 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6f, 0x73, 0x74, + 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, + 0x6f, 0x73, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x67, + 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, + 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x74, 0x72, 0x65, 0x65, + 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x9c, 0x03, 0x0a, 0x0b, 0x55, 0x73, 0x65, + 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x69, 0x72, 0x73, + 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, + 0x72, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x69, 0x63, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, + 0x64, 0x5f, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x11, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x4c, 0x61, 0x6e, 0x67, 0x75, + 0x61, 0x67, 0x65, 0x12, 0x38, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, + 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, + 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x09, 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, 0x0c, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0a, 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, 0x0a, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x22, 0xf3, 0x03, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, + 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x56, 0x69, 0x65, 0x77, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x66, + 0x69, 0x72, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x66, 0x69, 0x72, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, + 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, + 0x61, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x69, 0x63, 0x6b, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, + 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x70, 0x72, 0x65, 0x66, 0x65, + 0x72, 0x72, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x11, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x4c, 0x61, + 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x38, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, + 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3f, 0x0a, 0x0d, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x09, 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, + 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, + 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0a, 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, 0x0a, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, + 0x67, 0x69, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x0a, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x70, + 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x70, 0x72, 0x65, 0x66, 0x65, + 0x72, 0x72, 0x65, 0x64, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x8a, 0x02, + 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x0a, 0x66, 0x69, + 0x72, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, + 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0xc8, 0x01, 0x52, 0x09, 0x66, 0x69, 0x72, 0x73, + 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, + 0x01, 0x18, 0xc8, 0x01, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, + 0x0a, 0x09, 0x6e, 0x69, 0x63, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0xc8, 0x01, 0x52, 0x08, 0x6e, 0x69, 0x63, + 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x12, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, + 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0xc8, 0x01, 0x52, 0x11, 0x70, + 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, + 0x12, 0x38, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x20, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, + 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x52, 0x0a, 0x15, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1c, 0xfa, 0x42, 0x19, 0x72, 0x17, 0x32, 0x15, 0x5e, + 0x5b, 0x5e, 0x5b, 0x3a, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3a, 0x5d, 0x5d, 0x7b, 0x31, 0x2c, 0x32, + 0x30, 0x30, 0x7d, 0x24, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xf5, + 0x01, 0x0a, 0x09, 0x55, 0x73, 0x65, 0x72, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, + 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, + 0x69, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x69, 0x73, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x56, 0x65, 0x72, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 0x73, 0x45, + 0x6d, 0x61, 0x69, 0x6c, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, + 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, + 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x05, 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, 0x0c, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x06, 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, 0x0a, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x22, 0xf9, 0x01, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x45, + 0x6d, 0x61, 0x69, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, + 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x28, + 0x0a, 0x0f, 0x69, 0x73, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 0x73, 0x45, 0x6d, 0x61, 0x69, 0x6c, + 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x05, 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, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, + 0x64, 0x61, 0x74, 0x65, 0x18, 0x06, 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, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, + 0x74, 0x65, 0x22, 0x3a, 0x0a, 0x18, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4d, 0x79, 0x55, 0x73, + 0x65, 0x72, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, + 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, + 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0xc8, 0x01, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x3a, + 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x45, 0x6d, 0x61, 0x69, + 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, + 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, + 0x18, 0xc8, 0x01, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x22, 0xf7, 0x01, 0x0a, 0x09, 0x55, + 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x2a, + 0x0a, 0x11, 0x69, 0x73, 0x5f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 0x73, 0x50, 0x68, 0x6f, + 0x6e, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x05, 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, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x06, 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, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x44, 0x61, 0x74, 0x65, 0x22, 0xfb, 0x01, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, + 0x6e, 0x65, 0x56, 0x69, 0x65, 0x77, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x2a, 0x0a, 0x11, + 0x69, 0x73, 0x5f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 0x73, 0x50, 0x68, 0x6f, 0x6e, 0x65, + 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x05, 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, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, + 0x64, 0x61, 0x74, 0x65, 0x18, 0x06, 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, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, + 0x74, 0x65, 0x22, 0x39, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, + 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x05, + 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x09, 0xfa, 0x42, 0x06, + 0x72, 0x04, 0x10, 0x01, 0x18, 0x14, 0x52, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x22, 0x38, 0x0a, + 0x16, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x55, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0xc8, + 0x01, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0xcd, 0x02, 0x0a, 0x0b, 0x55, 0x73, 0x65, 0x72, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x1f, 0x0a, + 0x0b, 0x70, 0x6f, 0x73, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6f, 0x73, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1a, 0x0a, + 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x08, 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, 0x0c, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x09, 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, 0x0a, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x22, 0xd1, 0x02, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x56, 0x69, 0x65, 0x77, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x74, + 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x74, + 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6f, 0x73, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x64, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6f, 0x73, 0x74, 0x61, 0x6c, 0x43, 0x6f, + 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x74, + 0x72, 0x65, 0x65, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3f, 0x0a, + 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x08, + 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, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x3b, + 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x09, 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, + 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x22, 0xe2, 0x01, 0x0a, 0x18, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, + 0x18, 0xc8, 0x01, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x24, 0x0a, 0x08, + 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, + 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0xc8, 0x01, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, + 0x74, 0x79, 0x12, 0x29, 0x0a, 0x0b, 0x70, 0x6f, 0x73, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x64, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0xc8, + 0x01, 0x52, 0x0a, 0x70, 0x6f, 0x73, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, + 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, + 0x42, 0x05, 0x72, 0x03, 0x18, 0xc8, 0x01, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, + 0x2f, 0x0a, 0x0e, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0xc8, + 0x01, 0x52, 0x0d, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x22, 0x6c, 0x0a, 0x0e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x12, 0x2c, 0x0a, 0x0c, 0x6f, 0x6c, 0x64, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, + 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x09, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, + 0x01, 0x18, 0x48, 0x52, 0x0b, 0x6f, 0x6c, 0x64, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, + 0x12, 0x2c, 0x0a, 0x0c, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x09, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x01, 0x18, + 0x48, 0x52, 0x0b, 0x6e, 0x65, 0x77, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x2b, + 0x0a, 0x0c, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4d, 0x66, 0x61, 0x4f, 0x74, 0x70, 0x12, 0x1b, + 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, + 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x49, 0x0a, 0x0c, 0x4d, + 0x75, 0x6c, 0x74, 0x69, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x39, 0x0a, 0x04, 0x6d, + 0x66, 0x61, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x61, 0x6f, 0x73, + 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, + 0x52, 0x04, 0x6d, 0x66, 0x61, 0x73, 0x22, 0x7e, 0x0a, 0x0b, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x46, + 0x61, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x35, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, + 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, + 0x66, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x38, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x63, 0x61, + 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x46, 0x41, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x8d, 0x01, 0x0a, 0x0e, 0x4d, 0x66, 0x61, 0x4f, 0x74, + 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, + 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x75, 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x38, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x63, 0x61, + 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x46, 0x41, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x81, 0x02, 0x0a, 0x16, 0x55, 0x73, 0x65, 0x72, 0x47, + 0x72, 0x61, 0x6e, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, + 0x5d, 0x0a, 0x0e, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, + 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x53, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x4b, 0x65, 0x79, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x82, 0x01, 0x02, 0x20, 0x00, 0x52, + 0x0d, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x12, 0x10, + 0x0a, 0x03, 0x61, 0x73, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x61, 0x73, 0x63, + 0x12, 0x48, 0x0a, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x2e, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, + 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, + 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x52, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x22, 0xb6, 0x01, 0x0a, 0x14, 0x55, + 0x73, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x12, 0x48, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2c, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, + 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, + 0x47, 0x72, 0x61, 0x6e, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x42, 0x08, + 0xfa, 0x42, 0x05, 0x82, 0x01, 0x02, 0x20, 0x00, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x3e, 0x0a, + 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, + 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, + 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4d, + 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x14, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x22, 0x9d, 0x02, 0x0a, 0x17, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, + 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x21, 0x0a, + 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x12, 0x3f, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x27, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, + 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, + 0x47, 0x72, 0x61, 0x6e, 0x74, 0x56, 0x69, 0x65, 0x77, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x12, 0x2d, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x5f, 0x73, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x70, + 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x12, 0x41, 0x0a, 0x0e, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x18, 0x06, 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, 0x0d, 0x76, 0x69, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x22, 0xa5, 0x01, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, + 0x74, 0x56, 0x69, 0x65, 0x77, 0x12, 0x14, 0x0a, 0x05, 0x4f, 0x72, 0x67, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x4f, 0x72, 0x67, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x64, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x05, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x72, 0x67, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x4f, 0x72, 0x67, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x22, 0xa8, 0x01, 0x0a, 0x19, + 0x4d, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4f, 0x72, 0x67, 0x53, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x73, 0x63, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x61, 0x73, 0x63, 0x12, 0x4b, 0x0a, 0x07, 0x71, 0x75, 0x65, + 0x72, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x63, 0x61, 0x6f, + 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4f, + 0x72, 0x67, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x07, 0x71, + 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x22, 0xbc, 0x01, 0x0a, 0x17, 0x4d, 0x79, 0x50, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x4f, 0x72, 0x67, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x12, 0x4b, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x2f, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, + 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x79, 0x50, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x4f, 0x72, 0x67, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x65, 0x79, + 0x42, 0x08, 0xfa, 0x42, 0x05, 0x82, 0x01, 0x02, 0x20, 0x00, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x3e, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x26, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, + 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, + 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xa4, 0x01, 0x0a, 0x1a, 0x4d, 0x79, 0x50, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x4f, 0x72, 0x67, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x35, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, + 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, + 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x4f, 0x72, 0x67, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x29, 0x0a, 0x03, + 0x4f, 0x72, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x31, 0x0a, 0x0d, 0x4d, 0x79, 0x50, 0x65, 0x72, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x65, 0x72, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x70, + 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x61, 0x0a, 0x0e, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x73, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, + 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x61, 0x73, 0x63, 0x22, 0x73, 0x0a, + 0x07, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x3a, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x61, 0x6f, 0x73, + 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x07, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x22, 0x89, 0x02, 0x0a, 0x06, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x3b, 0x0a, + 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 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, 0x0a, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x44, 0x0a, 0x0a, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, + 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x09, + 0x65, 0x64, 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x65, 0x64, 0x69, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x64, 0x69, + 0x74, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x64, 0x69, 0x74, 0x6f, + 0x72, 0x12, 0x2b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 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, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xac, + 0x03, 0x0a, 0x18, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6c, + 0x65, 0x78, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, + 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 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, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x3b, + 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 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, 0x70, 0x52, + 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, + 0x69, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x09, 0x6d, 0x69, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x23, 0x0a, 0x0d, 0x68, 0x61, + 0x73, 0x5f, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x63, 0x61, 0x73, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0c, 0x68, 0x61, 0x73, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x63, 0x61, 0x73, 0x65, 0x12, + 0x23, 0x0a, 0x0d, 0x68, 0x61, 0x73, 0x5f, 0x75, 0x70, 0x70, 0x65, 0x72, 0x63, 0x61, 0x73, 0x65, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x68, 0x61, 0x73, 0x55, 0x70, 0x70, 0x65, 0x72, + 0x63, 0x61, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x68, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x68, 0x61, 0x73, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x68, 0x61, 0x73, 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, + 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x68, 0x61, 0x73, 0x53, 0x79, 0x6d, 0x62, + 0x6f, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1d, + 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x22, 0x75, 0x0a, + 0x13, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x44, 0x50, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x69, 0x64, 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x64, 0x70, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, + 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, + 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x68, 0x0a, 0x18, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x49, 0x44, 0x50, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x22, 0x0a, 0x0d, 0x69, 0x64, 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, + 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x61, + 0x0a, 0x18, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x44, 0x50, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, + 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, + 0x64, 0x22, 0xa1, 0x02, 0x0a, 0x19, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x44, + 0x50, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x21, 0x0a, + 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x12, 0x41, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x29, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, + 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x44, 0x50, 0x56, 0x69, 0x65, 0x77, 0x52, 0x06, 0x72, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x12, 0x2d, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, + 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x11, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x65, 0x12, 0x41, 0x0a, 0x0e, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 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, 0x0d, 0x76, 0x69, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xce, 0x02, 0x0a, 0x0f, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x6c, 0x49, 0x44, 0x50, 0x56, 0x69, 0x65, 0x77, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, + 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x69, 0x64, 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x64, 0x70, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x6c, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0e, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x12, 0x19, 0x0a, 0x08, 0x69, 0x64, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x69, 0x64, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x1a, 0x65, + 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x69, 0x73, + 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x17, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x44, 0x69, 0x73, + 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x06, 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, 0x0c, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x07, 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, 0x0a, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x2a, 0x72, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x1c, 0x55, 0x53, + 0x45, 0x52, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, + 0x55, 0x53, 0x45, 0x52, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x53, 0x54, 0x41, 0x54, 0x45, + 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x55, 0x53, 0x45, + 0x52, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x45, + 0x52, 0x4d, 0x49, 0x4e, 0x41, 0x54, 0x45, 0x44, 0x10, 0x02, 0x2a, 0x41, 0x0a, 0x0e, 0x4d, 0x61, + 0x63, 0x68, 0x69, 0x6e, 0x65, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, + 0x4d, 0x41, 0x43, 0x48, 0x49, 0x4e, 0x45, 0x4b, 0x45, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4d, 0x41, 0x43, 0x48, + 0x49, 0x4e, 0x45, 0x4b, 0x45, 0x59, 0x5f, 0x4a, 0x53, 0x4f, 0x4e, 0x10, 0x01, 0x2a, 0xaf, 0x01, + 0x0a, 0x09, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x55, + 0x53, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x55, 0x53, 0x45, 0x52, 0x53, 0x54, + 0x41, 0x54, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, + 0x55, 0x53, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x49, 0x4e, 0x41, 0x43, 0x54, 0x49, + 0x56, 0x45, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x55, 0x53, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, + 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x55, + 0x53, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4c, 0x4f, 0x43, 0x4b, 0x45, 0x44, 0x10, + 0x04, 0x12, 0x15, 0x0a, 0x11, 0x55, 0x53, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x53, + 0x55, 0x53, 0x50, 0x45, 0x4e, 0x44, 0x10, 0x05, 0x12, 0x15, 0x0a, 0x11, 0x55, 0x53, 0x45, 0x52, + 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x49, 0x41, 0x4c, 0x10, 0x06, 0x2a, + 0x58, 0x0a, 0x06, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x12, 0x47, 0x45, 0x4e, + 0x44, 0x45, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x47, 0x45, 0x4e, 0x44, 0x45, 0x52, 0x5f, 0x46, 0x45, 0x4d, 0x41, + 0x4c, 0x45, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x47, 0x45, 0x4e, 0x44, 0x45, 0x52, 0x5f, 0x4d, + 0x41, 0x4c, 0x45, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x47, 0x45, 0x4e, 0x44, 0x45, 0x52, 0x5f, + 0x44, 0x49, 0x56, 0x45, 0x52, 0x53, 0x45, 0x10, 0x03, 0x2a, 0x44, 0x0a, 0x07, 0x4d, 0x66, 0x61, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x4d, 0x46, 0x41, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0f, 0x0a, + 0x0b, 0x4d, 0x46, 0x41, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x4d, 0x53, 0x10, 0x01, 0x12, 0x0f, + 0x0a, 0x0b, 0x4d, 0x46, 0x41, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x54, 0x50, 0x10, 0x02, 0x2a, + 0x66, 0x0a, 0x08, 0x4d, 0x46, 0x41, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x14, 0x4d, + 0x46, 0x41, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x4d, 0x46, 0x41, 0x53, 0x54, 0x41, 0x54, + 0x45, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x59, 0x10, 0x01, 0x12, 0x12, 0x0a, + 0x0e, 0x4d, 0x46, 0x41, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x59, 0x10, + 0x02, 0x12, 0x14, 0x0a, 0x10, 0x4d, 0x46, 0x41, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x52, 0x45, + 0x4d, 0x4f, 0x56, 0x45, 0x44, 0x10, 0x03, 0x2a, 0x76, 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x47, + 0x72, 0x61, 0x6e, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x12, 0x1e, 0x0a, + 0x1a, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x4b, 0x65, 0x79, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x1d, 0x0a, + 0x19, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x4b, 0x65, 0x79, 0x5f, 0x4f, 0x52, 0x47, 0x5f, 0x49, 0x44, 0x10, 0x01, 0x12, 0x21, 0x0a, 0x1d, + 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, + 0x65, 0x79, 0x5f, 0x50, 0x52, 0x4f, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x49, 0x44, 0x10, 0x02, 0x2a, + 0x62, 0x0a, 0x15, 0x4d, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4f, 0x72, 0x67, 0x53, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x12, 0x25, 0x0a, 0x21, 0x4d, 0x59, 0x50, 0x52, + 0x4f, 0x4a, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x47, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, + 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x22, 0x0a, 0x1e, 0x4d, 0x59, 0x50, 0x52, 0x4f, 0x4a, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x47, 0x53, + 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x4f, 0x52, 0x47, 0x5f, 0x4e, 0x41, 0x4d, + 0x45, 0x10, 0x01, 0x2a, 0xd6, 0x01, 0x0a, 0x0c, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4d, 0x65, + 0x74, 0x68, 0x6f, 0x64, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4d, 0x45, + 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x53, 0x10, 0x00, 0x12, 0x1c, 0x0a, + 0x18, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x53, 0x54, + 0x41, 0x52, 0x54, 0x53, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x53, + 0x45, 0x41, 0x52, 0x43, 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x54, + 0x41, 0x49, 0x4e, 0x53, 0x10, 0x02, 0x12, 0x23, 0x0a, 0x1f, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, + 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x53, 0x5f, 0x49, 0x47, + 0x4e, 0x4f, 0x52, 0x45, 0x5f, 0x43, 0x41, 0x53, 0x45, 0x10, 0x03, 0x12, 0x28, 0x0a, 0x24, 0x53, + 0x45, 0x41, 0x52, 0x43, 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x52, + 0x54, 0x53, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x5f, 0x43, + 0x41, 0x53, 0x45, 0x10, 0x04, 0x12, 0x25, 0x0a, 0x21, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4d, + 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x53, 0x5f, 0x49, + 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x5f, 0x43, 0x41, 0x53, 0x45, 0x10, 0x05, 0x32, 0x91, 0x23, 0x0a, + 0x0b, 0x41, 0x75, 0x74, 0x68, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x4b, 0x0a, 0x07, + 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, + 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x10, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0a, 0x12, + 0x08, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a, 0x12, 0x47, 0x0a, 0x05, 0x52, 0x65, 0x61, + 0x64, 0x79, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x22, 0x0e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x08, 0x12, 0x06, 0x2f, 0x72, 0x65, 0x61, + 0x64, 0x79, 0x12, 0x4e, 0x0a, 0x08, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x12, 0x16, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x22, + 0x11, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0b, 0x12, 0x09, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x65, 0x12, 0x86, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x4d, 0x79, 0x55, 0x73, 0x65, 0x72, + 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x1a, 0x2a, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, + 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, + 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x73, 0x22, 0x2d, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x14, 0x12, 0x12, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x6d, 0x65, 0x2f, + 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x61, 0x75, + 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x6d, 0x0a, 0x09, 0x47, + 0x65, 0x74, 0x4d, 0x79, 0x55, 0x73, 0x65, 0x72, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x1a, 0x22, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, + 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, + 0x56, 0x69, 0x65, 0x77, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0b, 0x12, 0x09, 0x2f, 0x75, + 0x73, 0x65, 0x72, 0x73, 0x2f, 0x6d, 0x65, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x61, 0x75, 0x74, + 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x83, 0x01, 0x0a, 0x10, 0x47, + 0x65, 0x74, 0x4d, 0x79, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, + 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x29, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, + 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x56, 0x69, + 0x65, 0x77, 0x22, 0x2c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x12, 0x11, 0x2f, 0x75, 0x73, 0x65, + 0x72, 0x73, 0x2f, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x82, 0xb5, 0x18, + 0x0f, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, + 0x12, 0xa1, 0x01, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x79, 0x55, 0x73, 0x65, + 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x32, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, + 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x63, + 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x1a, 0x11, 0x2f, 0x75, 0x73, + 0x65, 0x72, 0x73, 0x2f, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x3a, 0x01, + 0x2a, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, + 0x61, 0x74, 0x65, 0x64, 0x12, 0x8d, 0x01, 0x0a, 0x10, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, + 0x79, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2f, 0x2e, 0x63, 0x61, 0x6f, 0x73, + 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x22, 0x30, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x1a, 0x12, 0x2f, 0x75, 0x73, 0x65, + 0x72, 0x73, 0x2f, 0x6d, 0x65, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x3a, 0x01, + 0x2a, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, + 0x61, 0x74, 0x65, 0x64, 0x12, 0x7d, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4d, 0x79, 0x55, 0x73, 0x65, + 0x72, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x27, + 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, + 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x45, 0x6d, + 0x61, 0x69, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x22, 0x2a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x12, + 0x0f, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x6d, 0x65, 0x2f, 0x65, 0x6d, 0x61, 0x69, 0x6c, + 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, + 0x74, 0x65, 0x64, 0x12, 0x99, 0x01, 0x0a, 0x11, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x79, + 0x55, 0x73, 0x65, 0x72, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x30, 0x2e, 0x63, 0x61, 0x6f, 0x73, + 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x45, + 0x6d, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x63, 0x61, + 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x45, 0x6d, 0x61, 0x69, 0x6c, + 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x1a, 0x0f, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, + 0x2f, 0x6d, 0x65, 0x2f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0f, + 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, + 0x96, 0x01, 0x0a, 0x11, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4d, 0x79, 0x55, 0x73, 0x65, 0x72, + 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x32, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, + 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4d, 0x79, 0x55, 0x73, 0x65, 0x72, 0x45, 0x6d, 0x61, + 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x22, 0x35, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x22, 0x17, 0x2f, 0x75, 0x73, 0x65, 0x72, + 0x73, 0x2f, 0x6d, 0x65, 0x2f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x2f, 0x5f, 0x76, 0x65, 0x72, 0x69, + 0x66, 0x79, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x65, + 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x92, 0x01, 0x0a, 0x1d, 0x52, 0x65, 0x73, + 0x65, 0x6e, 0x64, 0x4d, 0x79, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x69, 0x6c, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x41, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x28, 0x22, 0x23, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x6d, 0x65, 0x2f, 0x65, 0x6d, + 0x61, 0x69, 0x6c, 0x2f, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x64, 0x76, 0x65, 0x72, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, + 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x7d, 0x0a, + 0x0e, 0x47, 0x65, 0x74, 0x4d, 0x79, 0x55, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, + 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x27, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, + 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x56, 0x69, 0x65, 0x77, + 0x22, 0x2a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x12, 0x0f, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, + 0x2f, 0x6d, 0x65, 0x2f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x61, + 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x99, 0x01, 0x0a, + 0x11, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x79, 0x55, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, + 0x6e, 0x65, 0x12, 0x30, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, + 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, + 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x55, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x14, 0x1a, 0x0f, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x6d, 0x65, 0x2f, 0x70, 0x68, 0x6f, + 0x6e, 0x65, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x65, + 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x6f, 0x0a, 0x11, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x4d, 0x79, 0x55, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x16, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x2a, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x2a, 0x0f, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x6d, 0x65, + 0x2f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, + 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x94, 0x01, 0x0a, 0x11, 0x56, 0x65, + 0x72, 0x69, 0x66, 0x79, 0x4d, 0x79, 0x55, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, + 0x30, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, + 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, + 0x79, 0x55, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x35, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x1c, 0x22, 0x17, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x6d, 0x65, 0x2f, 0x70, 0x68, 0x6f, + 0x6e, 0x65, 0x2f, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, + 0x0f, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, + 0x12, 0x92, 0x01, 0x0a, 0x1d, 0x52, 0x65, 0x73, 0x65, 0x6e, 0x64, 0x4d, 0x79, 0x50, 0x68, 0x6f, + 0x6e, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, + 0x64, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x22, 0x41, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x28, 0x22, 0x23, 0x2f, 0x75, 0x73, 0x65, + 0x72, 0x73, 0x2f, 0x6d, 0x65, 0x2f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x2f, 0x5f, 0x72, 0x65, 0x73, + 0x65, 0x6e, 0x64, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, + 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, + 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x83, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x4d, 0x79, 0x55, + 0x73, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x1a, 0x29, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, + 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, + 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x56, 0x69, 0x65, 0x77, 0x22, 0x2c, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x12, 0x11, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x6d, 0x65, + 0x2f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x61, 0x75, + 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x8d, 0x01, 0x0a, 0x10, + 0x47, 0x65, 0x74, 0x4d, 0x79, 0x55, 0x73, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, + 0x12, 0x28, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, + 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x63, 0x61, 0x6f, + 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x22, 0x2c, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x12, 0x11, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x6d, 0x65, + 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x61, 0x75, + 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0xa1, 0x01, 0x0a, 0x13, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x79, 0x55, 0x73, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x12, 0x32, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, + 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, + 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x2f, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x1a, 0x11, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x6d, + 0x65, 0x2f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0f, + 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, + 0x76, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x4d, 0x79, 0x4d, 0x66, 0x61, 0x73, 0x12, 0x16, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x26, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, + 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x22, 0x29, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x6d, 0x65, 0x2f, + 0x6d, 0x66, 0x61, 0x73, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, + 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x8f, 0x01, 0x0a, 0x10, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x4d, 0x79, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x28, 0x2e, 0x63, + 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x39, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x1a, 0x1b, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x6d, + 0x65, 0x2f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x2f, 0x5f, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, + 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0xa6, 0x01, 0x0a, 0x1d, 0x47, 0x65, + 0x74, 0x4d, 0x79, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6c, + 0x65, 0x78, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x16, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x1a, 0x32, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, + 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x69, 0x74, + 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x12, + 0x1e, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x2f, 0x70, 0x61, 0x73, 0x73, 0x77, + 0x6f, 0x72, 0x64, 0x73, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x69, 0x74, 0x79, 0x82, + 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, + 0x65, 0x64, 0x12, 0xbd, 0x01, 0x0a, 0x14, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4d, 0x79, 0x45, + 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x44, 0x50, 0x73, 0x12, 0x32, 0x2e, 0x63, 0x61, + 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, + 0x44, 0x50, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x33, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, + 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x6c, 0x49, 0x44, 0x50, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x22, 0x1e, 0x2f, 0x75, + 0x73, 0x65, 0x72, 0x73, 0x2f, 0x6d, 0x65, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x69, 0x64, 0x70, 0x73, 0x2f, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x3a, 0x01, 0x2a, 0x82, + 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, + 0x65, 0x64, 0x12, 0xb7, 0x01, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x79, 0x45, + 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x44, 0x50, 0x12, 0x32, 0x2e, 0x63, 0x61, 0x6f, + 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x44, + 0x50, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x54, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x2a, 0x39, + 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x6d, 0x65, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x6c, 0x69, 0x64, 0x70, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x7b, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x61, + 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x7f, 0x0a, 0x09, + 0x41, 0x64, 0x64, 0x4d, 0x66, 0x61, 0x4f, 0x54, 0x50, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x1a, 0x28, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, + 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x66, 0x61, + 0x4f, 0x74, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x30, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x17, 0x22, 0x12, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x6d, 0x65, 0x2f, 0x6d, + 0x66, 0x61, 0x73, 0x2f, 0x6f, 0x74, 0x70, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, + 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x88, 0x01, + 0x0a, 0x0c, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4d, 0x66, 0x61, 0x4f, 0x54, 0x50, 0x12, 0x26, + 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, + 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, + 0x4d, 0x66, 0x61, 0x4f, 0x74, 0x70, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x38, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x1a, 0x1a, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x6d, + 0x65, 0x2f, 0x6d, 0x66, 0x61, 0x73, 0x2f, 0x6f, 0x74, 0x70, 0x2f, 0x5f, 0x76, 0x65, 0x72, 0x69, + 0x66, 0x79, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x65, + 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x6d, 0x0a, 0x0c, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x4d, 0x66, 0x61, 0x4f, 0x54, 0x50, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, + 0x2a, 0x12, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x6d, 0x65, 0x2f, 0x6d, 0x66, 0x61, 0x73, + 0x2f, 0x6f, 0x74, 0x70, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, + 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0xae, 0x01, 0x0a, 0x11, 0x53, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x4d, 0x79, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x12, 0x30, 0x2e, + 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, + 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x61, + 0x6e, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x31, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, + 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, + 0x72, 0x61, 0x6e, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x34, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x22, 0x16, 0x2f, 0x75, 0x73, 0x65, + 0x72, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x73, 0x2f, 0x6d, 0x65, 0x2f, 0x5f, 0x73, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x65, + 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0xbb, 0x01, 0x0a, 0x13, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x4d, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4f, 0x72, 0x67, 0x73, + 0x12, 0x33, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, + 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x79, 0x50, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4f, 0x72, 0x67, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, + 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x4d, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4f, 0x72, 0x67, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x20, 0x22, 0x1b, 0x2f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2f, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, + 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x8e, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x4d, 0x79, + 0x5a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x27, 0x2e, 0x63, 0x61, 0x6f, + 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x79, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x12, 0x17, 0x2f, 0x70, 0x65, + 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, + 0x6c, 0x2f, 0x6d, 0x65, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, + 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x86, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x4d, + 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x27, 0x2e, 0x63, 0x61, + 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x79, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x2a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x12, 0x0f, 0x2f, 0x70, + 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x6d, 0x65, 0x82, 0xb5, 0x18, + 0x0f, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, + 0x42, 0xb3, 0x01, 0x5a, 0x25, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x63, 0x61, 0x6f, 0x73, 0x2f, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2f, 0x70, 0x6b, 0x67, + 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x92, 0x41, 0x88, 0x01, 0x12, 0x3b, + 0x0a, 0x08, 0x41, 0x75, 0x74, 0x68, 0x20, 0x41, 0x50, 0x49, 0x22, 0x2a, 0x12, 0x28, 0x68, 0x74, + 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x63, 0x61, 0x6f, 0x73, 0x2f, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2f, 0x70, 0x6b, + 0x67, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x32, 0x03, 0x30, 0x2e, 0x31, 0x2a, 0x01, 0x02, 0x32, 0x10, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, + 0x32, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x67, 0x72, + 0x70, 0x63, 0x3a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x6a, 0x73, 0x6f, 0x6e, 0x3a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_auth_proto_rawDescOnce sync.Once + file_auth_proto_rawDescData = file_auth_proto_rawDesc +) + +func file_auth_proto_rawDescGZIP() []byte { + file_auth_proto_rawDescOnce.Do(func() { + file_auth_proto_rawDescData = protoimpl.X.CompressGZIP(file_auth_proto_rawDescData) + }) + return file_auth_proto_rawDescData +} + +var file_auth_proto_enumTypes = make([]protoimpl.EnumInfo, 9) +var file_auth_proto_msgTypes = make([]protoimpl.MessageInfo, 44) +var file_auth_proto_goTypes = []interface{}{ + (UserSessionState)(0), // 0: caos.zitadel.auth.api.v1.UserSessionState + (MachineKeyType)(0), // 1: caos.zitadel.auth.api.v1.MachineKeyType + (UserState)(0), // 2: caos.zitadel.auth.api.v1.UserState + (Gender)(0), // 3: caos.zitadel.auth.api.v1.Gender + (MfaType)(0), // 4: caos.zitadel.auth.api.v1.MfaType + (MFAState)(0), // 5: caos.zitadel.auth.api.v1.MFAState + (UserGrantSearchKey)(0), // 6: caos.zitadel.auth.api.v1.UserGrantSearchKey + (MyProjectOrgSearchKey)(0), // 7: caos.zitadel.auth.api.v1.MyProjectOrgSearchKey + (SearchMethod)(0), // 8: caos.zitadel.auth.api.v1.SearchMethod + (*UserSessionViews)(nil), // 9: caos.zitadel.auth.api.v1.UserSessionViews + (*UserSessionView)(nil), // 10: caos.zitadel.auth.api.v1.UserSessionView + (*UserView)(nil), // 11: caos.zitadel.auth.api.v1.UserView + (*MachineView)(nil), // 12: caos.zitadel.auth.api.v1.MachineView + (*MachineKeyView)(nil), // 13: caos.zitadel.auth.api.v1.MachineKeyView + (*HumanView)(nil), // 14: caos.zitadel.auth.api.v1.HumanView + (*UserProfile)(nil), // 15: caos.zitadel.auth.api.v1.UserProfile + (*UserProfileView)(nil), // 16: caos.zitadel.auth.api.v1.UserProfileView + (*UpdateUserProfileRequest)(nil), // 17: caos.zitadel.auth.api.v1.UpdateUserProfileRequest + (*ChangeUserNameRequest)(nil), // 18: caos.zitadel.auth.api.v1.ChangeUserNameRequest + (*UserEmail)(nil), // 19: caos.zitadel.auth.api.v1.UserEmail + (*UserEmailView)(nil), // 20: caos.zitadel.auth.api.v1.UserEmailView + (*VerifyMyUserEmailRequest)(nil), // 21: caos.zitadel.auth.api.v1.VerifyMyUserEmailRequest + (*UpdateUserEmailRequest)(nil), // 22: caos.zitadel.auth.api.v1.UpdateUserEmailRequest + (*UserPhone)(nil), // 23: caos.zitadel.auth.api.v1.UserPhone + (*UserPhoneView)(nil), // 24: caos.zitadel.auth.api.v1.UserPhoneView + (*UpdateUserPhoneRequest)(nil), // 25: caos.zitadel.auth.api.v1.UpdateUserPhoneRequest + (*VerifyUserPhoneRequest)(nil), // 26: caos.zitadel.auth.api.v1.VerifyUserPhoneRequest + (*UserAddress)(nil), // 27: caos.zitadel.auth.api.v1.UserAddress + (*UserAddressView)(nil), // 28: caos.zitadel.auth.api.v1.UserAddressView + (*UpdateUserAddressRequest)(nil), // 29: caos.zitadel.auth.api.v1.UpdateUserAddressRequest + (*PasswordChange)(nil), // 30: caos.zitadel.auth.api.v1.PasswordChange + (*VerifyMfaOtp)(nil), // 31: caos.zitadel.auth.api.v1.VerifyMfaOtp + (*MultiFactors)(nil), // 32: caos.zitadel.auth.api.v1.MultiFactors + (*MultiFactor)(nil), // 33: caos.zitadel.auth.api.v1.MultiFactor + (*MfaOtpResponse)(nil), // 34: caos.zitadel.auth.api.v1.MfaOtpResponse + (*UserGrantSearchRequest)(nil), // 35: caos.zitadel.auth.api.v1.UserGrantSearchRequest + (*UserGrantSearchQuery)(nil), // 36: caos.zitadel.auth.api.v1.UserGrantSearchQuery + (*UserGrantSearchResponse)(nil), // 37: caos.zitadel.auth.api.v1.UserGrantSearchResponse + (*UserGrantView)(nil), // 38: caos.zitadel.auth.api.v1.UserGrantView + (*MyProjectOrgSearchRequest)(nil), // 39: caos.zitadel.auth.api.v1.MyProjectOrgSearchRequest + (*MyProjectOrgSearchQuery)(nil), // 40: caos.zitadel.auth.api.v1.MyProjectOrgSearchQuery + (*MyProjectOrgSearchResponse)(nil), // 41: caos.zitadel.auth.api.v1.MyProjectOrgSearchResponse + (*Org)(nil), // 42: caos.zitadel.auth.api.v1.Org + (*MyPermissions)(nil), // 43: caos.zitadel.auth.api.v1.MyPermissions + (*ChangesRequest)(nil), // 44: caos.zitadel.auth.api.v1.ChangesRequest + (*Changes)(nil), // 45: caos.zitadel.auth.api.v1.Changes + (*Change)(nil), // 46: caos.zitadel.auth.api.v1.Change + (*PasswordComplexityPolicy)(nil), // 47: caos.zitadel.auth.api.v1.PasswordComplexityPolicy + (*ExternalIDPResponse)(nil), // 48: caos.zitadel.auth.api.v1.ExternalIDPResponse + (*ExternalIDPRemoveRequest)(nil), // 49: caos.zitadel.auth.api.v1.ExternalIDPRemoveRequest + (*ExternalIDPSearchRequest)(nil), // 50: caos.zitadel.auth.api.v1.ExternalIDPSearchRequest + (*ExternalIDPSearchResponse)(nil), // 51: caos.zitadel.auth.api.v1.ExternalIDPSearchResponse + (*ExternalIDPView)(nil), // 52: caos.zitadel.auth.api.v1.ExternalIDPView + (*timestamp.Timestamp)(nil), // 53: google.protobuf.Timestamp + (*message.LocalizedMessage)(nil), // 54: caos.zitadel.api.v1.LocalizedMessage + (*_struct.Struct)(nil), // 55: google.protobuf.Struct + (*empty.Empty)(nil), // 56: google.protobuf.Empty +} +var file_auth_proto_depIdxs = []int32{ + 10, // 0: caos.zitadel.auth.api.v1.UserSessionViews.user_sessions:type_name -> caos.zitadel.auth.api.v1.UserSessionView + 0, // 1: caos.zitadel.auth.api.v1.UserSessionView.auth_state:type_name -> caos.zitadel.auth.api.v1.UserSessionState + 2, // 2: caos.zitadel.auth.api.v1.UserView.state:type_name -> caos.zitadel.auth.api.v1.UserState + 53, // 3: caos.zitadel.auth.api.v1.UserView.creation_date:type_name -> google.protobuf.Timestamp + 53, // 4: caos.zitadel.auth.api.v1.UserView.change_date:type_name -> google.protobuf.Timestamp + 53, // 5: caos.zitadel.auth.api.v1.UserView.last_login:type_name -> google.protobuf.Timestamp + 14, // 6: caos.zitadel.auth.api.v1.UserView.human:type_name -> caos.zitadel.auth.api.v1.HumanView + 12, // 7: caos.zitadel.auth.api.v1.UserView.machine:type_name -> caos.zitadel.auth.api.v1.MachineView + 53, // 8: caos.zitadel.auth.api.v1.MachineView.last_key_added:type_name -> google.protobuf.Timestamp + 1, // 9: caos.zitadel.auth.api.v1.MachineKeyView.type:type_name -> caos.zitadel.auth.api.v1.MachineKeyType + 53, // 10: caos.zitadel.auth.api.v1.MachineKeyView.creation_date:type_name -> google.protobuf.Timestamp + 53, // 11: caos.zitadel.auth.api.v1.MachineKeyView.expiration_date:type_name -> google.protobuf.Timestamp + 53, // 12: caos.zitadel.auth.api.v1.HumanView.password_changed:type_name -> google.protobuf.Timestamp + 3, // 13: caos.zitadel.auth.api.v1.HumanView.gender:type_name -> caos.zitadel.auth.api.v1.Gender + 3, // 14: caos.zitadel.auth.api.v1.UserProfile.gender:type_name -> caos.zitadel.auth.api.v1.Gender + 53, // 15: caos.zitadel.auth.api.v1.UserProfile.creation_date:type_name -> google.protobuf.Timestamp + 53, // 16: caos.zitadel.auth.api.v1.UserProfile.change_date:type_name -> google.protobuf.Timestamp + 3, // 17: caos.zitadel.auth.api.v1.UserProfileView.gender:type_name -> caos.zitadel.auth.api.v1.Gender + 53, // 18: caos.zitadel.auth.api.v1.UserProfileView.creation_date:type_name -> google.protobuf.Timestamp + 53, // 19: caos.zitadel.auth.api.v1.UserProfileView.change_date:type_name -> google.protobuf.Timestamp + 3, // 20: caos.zitadel.auth.api.v1.UpdateUserProfileRequest.gender:type_name -> caos.zitadel.auth.api.v1.Gender + 53, // 21: caos.zitadel.auth.api.v1.UserEmail.creation_date:type_name -> google.protobuf.Timestamp + 53, // 22: caos.zitadel.auth.api.v1.UserEmail.change_date:type_name -> google.protobuf.Timestamp + 53, // 23: caos.zitadel.auth.api.v1.UserEmailView.creation_date:type_name -> google.protobuf.Timestamp + 53, // 24: caos.zitadel.auth.api.v1.UserEmailView.change_date:type_name -> google.protobuf.Timestamp + 53, // 25: caos.zitadel.auth.api.v1.UserPhone.creation_date:type_name -> google.protobuf.Timestamp + 53, // 26: caos.zitadel.auth.api.v1.UserPhone.change_date:type_name -> google.protobuf.Timestamp + 53, // 27: caos.zitadel.auth.api.v1.UserPhoneView.creation_date:type_name -> google.protobuf.Timestamp + 53, // 28: caos.zitadel.auth.api.v1.UserPhoneView.change_date:type_name -> google.protobuf.Timestamp + 53, // 29: caos.zitadel.auth.api.v1.UserAddress.creation_date:type_name -> google.protobuf.Timestamp + 53, // 30: caos.zitadel.auth.api.v1.UserAddress.change_date:type_name -> google.protobuf.Timestamp + 53, // 31: caos.zitadel.auth.api.v1.UserAddressView.creation_date:type_name -> google.protobuf.Timestamp + 53, // 32: caos.zitadel.auth.api.v1.UserAddressView.change_date:type_name -> google.protobuf.Timestamp + 33, // 33: caos.zitadel.auth.api.v1.MultiFactors.mfas:type_name -> caos.zitadel.auth.api.v1.MultiFactor + 4, // 34: caos.zitadel.auth.api.v1.MultiFactor.type:type_name -> caos.zitadel.auth.api.v1.MfaType + 5, // 35: caos.zitadel.auth.api.v1.MultiFactor.state:type_name -> caos.zitadel.auth.api.v1.MFAState + 5, // 36: caos.zitadel.auth.api.v1.MfaOtpResponse.state:type_name -> caos.zitadel.auth.api.v1.MFAState + 6, // 37: caos.zitadel.auth.api.v1.UserGrantSearchRequest.sorting_column:type_name -> caos.zitadel.auth.api.v1.UserGrantSearchKey + 36, // 38: caos.zitadel.auth.api.v1.UserGrantSearchRequest.queries:type_name -> caos.zitadel.auth.api.v1.UserGrantSearchQuery + 6, // 39: caos.zitadel.auth.api.v1.UserGrantSearchQuery.key:type_name -> caos.zitadel.auth.api.v1.UserGrantSearchKey + 8, // 40: caos.zitadel.auth.api.v1.UserGrantSearchQuery.method:type_name -> caos.zitadel.auth.api.v1.SearchMethod + 38, // 41: caos.zitadel.auth.api.v1.UserGrantSearchResponse.result:type_name -> caos.zitadel.auth.api.v1.UserGrantView + 53, // 42: caos.zitadel.auth.api.v1.UserGrantSearchResponse.view_timestamp:type_name -> google.protobuf.Timestamp + 40, // 43: caos.zitadel.auth.api.v1.MyProjectOrgSearchRequest.queries:type_name -> caos.zitadel.auth.api.v1.MyProjectOrgSearchQuery + 7, // 44: caos.zitadel.auth.api.v1.MyProjectOrgSearchQuery.key:type_name -> caos.zitadel.auth.api.v1.MyProjectOrgSearchKey + 8, // 45: caos.zitadel.auth.api.v1.MyProjectOrgSearchQuery.method:type_name -> caos.zitadel.auth.api.v1.SearchMethod + 42, // 46: caos.zitadel.auth.api.v1.MyProjectOrgSearchResponse.result:type_name -> caos.zitadel.auth.api.v1.Org + 46, // 47: caos.zitadel.auth.api.v1.Changes.changes:type_name -> caos.zitadel.auth.api.v1.Change + 53, // 48: caos.zitadel.auth.api.v1.Change.change_date:type_name -> google.protobuf.Timestamp + 54, // 49: caos.zitadel.auth.api.v1.Change.event_type:type_name -> caos.zitadel.api.v1.LocalizedMessage + 55, // 50: caos.zitadel.auth.api.v1.Change.data:type_name -> google.protobuf.Struct + 53, // 51: caos.zitadel.auth.api.v1.PasswordComplexityPolicy.creation_date:type_name -> google.protobuf.Timestamp + 53, // 52: caos.zitadel.auth.api.v1.PasswordComplexityPolicy.change_date:type_name -> google.protobuf.Timestamp + 52, // 53: caos.zitadel.auth.api.v1.ExternalIDPSearchResponse.result:type_name -> caos.zitadel.auth.api.v1.ExternalIDPView + 53, // 54: caos.zitadel.auth.api.v1.ExternalIDPSearchResponse.view_timestamp:type_name -> google.protobuf.Timestamp + 53, // 55: caos.zitadel.auth.api.v1.ExternalIDPView.creation_date:type_name -> google.protobuf.Timestamp + 53, // 56: caos.zitadel.auth.api.v1.ExternalIDPView.change_date:type_name -> google.protobuf.Timestamp + 56, // 57: caos.zitadel.auth.api.v1.AuthService.Healthz:input_type -> google.protobuf.Empty + 56, // 58: caos.zitadel.auth.api.v1.AuthService.Ready:input_type -> google.protobuf.Empty + 56, // 59: caos.zitadel.auth.api.v1.AuthService.Validate:input_type -> google.protobuf.Empty + 56, // 60: caos.zitadel.auth.api.v1.AuthService.GetMyUserSessions:input_type -> google.protobuf.Empty + 56, // 61: caos.zitadel.auth.api.v1.AuthService.GetMyUser:input_type -> google.protobuf.Empty + 56, // 62: caos.zitadel.auth.api.v1.AuthService.GetMyUserProfile:input_type -> google.protobuf.Empty + 17, // 63: caos.zitadel.auth.api.v1.AuthService.UpdateMyUserProfile:input_type -> caos.zitadel.auth.api.v1.UpdateUserProfileRequest + 18, // 64: caos.zitadel.auth.api.v1.AuthService.ChangeMyUserName:input_type -> caos.zitadel.auth.api.v1.ChangeUserNameRequest + 56, // 65: caos.zitadel.auth.api.v1.AuthService.GetMyUserEmail:input_type -> google.protobuf.Empty + 22, // 66: caos.zitadel.auth.api.v1.AuthService.ChangeMyUserEmail:input_type -> caos.zitadel.auth.api.v1.UpdateUserEmailRequest + 21, // 67: caos.zitadel.auth.api.v1.AuthService.VerifyMyUserEmail:input_type -> caos.zitadel.auth.api.v1.VerifyMyUserEmailRequest + 56, // 68: caos.zitadel.auth.api.v1.AuthService.ResendMyEmailVerificationMail:input_type -> google.protobuf.Empty + 56, // 69: caos.zitadel.auth.api.v1.AuthService.GetMyUserPhone:input_type -> google.protobuf.Empty + 25, // 70: caos.zitadel.auth.api.v1.AuthService.ChangeMyUserPhone:input_type -> caos.zitadel.auth.api.v1.UpdateUserPhoneRequest + 56, // 71: caos.zitadel.auth.api.v1.AuthService.RemoveMyUserPhone:input_type -> google.protobuf.Empty + 26, // 72: caos.zitadel.auth.api.v1.AuthService.VerifyMyUserPhone:input_type -> caos.zitadel.auth.api.v1.VerifyUserPhoneRequest + 56, // 73: caos.zitadel.auth.api.v1.AuthService.ResendMyPhoneVerificationCode:input_type -> google.protobuf.Empty + 56, // 74: caos.zitadel.auth.api.v1.AuthService.GetMyUserAddress:input_type -> google.protobuf.Empty + 44, // 75: caos.zitadel.auth.api.v1.AuthService.GetMyUserChanges:input_type -> caos.zitadel.auth.api.v1.ChangesRequest + 29, // 76: caos.zitadel.auth.api.v1.AuthService.UpdateMyUserAddress:input_type -> caos.zitadel.auth.api.v1.UpdateUserAddressRequest + 56, // 77: caos.zitadel.auth.api.v1.AuthService.GetMyMfas:input_type -> google.protobuf.Empty + 30, // 78: caos.zitadel.auth.api.v1.AuthService.ChangeMyPassword:input_type -> caos.zitadel.auth.api.v1.PasswordChange + 56, // 79: caos.zitadel.auth.api.v1.AuthService.GetMyPasswordComplexityPolicy:input_type -> google.protobuf.Empty + 50, // 80: caos.zitadel.auth.api.v1.AuthService.SearchMyExternalIDPs:input_type -> caos.zitadel.auth.api.v1.ExternalIDPSearchRequest + 49, // 81: caos.zitadel.auth.api.v1.AuthService.RemoveMyExternalIDP:input_type -> caos.zitadel.auth.api.v1.ExternalIDPRemoveRequest + 56, // 82: caos.zitadel.auth.api.v1.AuthService.AddMfaOTP:input_type -> google.protobuf.Empty + 31, // 83: caos.zitadel.auth.api.v1.AuthService.VerifyMfaOTP:input_type -> caos.zitadel.auth.api.v1.VerifyMfaOtp + 56, // 84: caos.zitadel.auth.api.v1.AuthService.RemoveMfaOTP:input_type -> google.protobuf.Empty + 35, // 85: caos.zitadel.auth.api.v1.AuthService.SearchMyUserGrant:input_type -> caos.zitadel.auth.api.v1.UserGrantSearchRequest + 39, // 86: caos.zitadel.auth.api.v1.AuthService.SearchMyProjectOrgs:input_type -> caos.zitadel.auth.api.v1.MyProjectOrgSearchRequest + 56, // 87: caos.zitadel.auth.api.v1.AuthService.GetMyZitadelPermissions:input_type -> google.protobuf.Empty + 56, // 88: caos.zitadel.auth.api.v1.AuthService.GetMyProjectPermissions:input_type -> google.protobuf.Empty + 56, // 89: caos.zitadel.auth.api.v1.AuthService.Healthz:output_type -> google.protobuf.Empty + 56, // 90: caos.zitadel.auth.api.v1.AuthService.Ready:output_type -> google.protobuf.Empty + 55, // 91: caos.zitadel.auth.api.v1.AuthService.Validate:output_type -> google.protobuf.Struct + 9, // 92: caos.zitadel.auth.api.v1.AuthService.GetMyUserSessions:output_type -> caos.zitadel.auth.api.v1.UserSessionViews + 11, // 93: caos.zitadel.auth.api.v1.AuthService.GetMyUser:output_type -> caos.zitadel.auth.api.v1.UserView + 16, // 94: caos.zitadel.auth.api.v1.AuthService.GetMyUserProfile:output_type -> caos.zitadel.auth.api.v1.UserProfileView + 15, // 95: caos.zitadel.auth.api.v1.AuthService.UpdateMyUserProfile:output_type -> caos.zitadel.auth.api.v1.UserProfile + 56, // 96: caos.zitadel.auth.api.v1.AuthService.ChangeMyUserName:output_type -> google.protobuf.Empty + 20, // 97: caos.zitadel.auth.api.v1.AuthService.GetMyUserEmail:output_type -> caos.zitadel.auth.api.v1.UserEmailView + 19, // 98: caos.zitadel.auth.api.v1.AuthService.ChangeMyUserEmail:output_type -> caos.zitadel.auth.api.v1.UserEmail + 56, // 99: caos.zitadel.auth.api.v1.AuthService.VerifyMyUserEmail:output_type -> google.protobuf.Empty + 56, // 100: caos.zitadel.auth.api.v1.AuthService.ResendMyEmailVerificationMail:output_type -> google.protobuf.Empty + 24, // 101: caos.zitadel.auth.api.v1.AuthService.GetMyUserPhone:output_type -> caos.zitadel.auth.api.v1.UserPhoneView + 23, // 102: caos.zitadel.auth.api.v1.AuthService.ChangeMyUserPhone:output_type -> caos.zitadel.auth.api.v1.UserPhone + 56, // 103: caos.zitadel.auth.api.v1.AuthService.RemoveMyUserPhone:output_type -> google.protobuf.Empty + 56, // 104: caos.zitadel.auth.api.v1.AuthService.VerifyMyUserPhone:output_type -> google.protobuf.Empty + 56, // 105: caos.zitadel.auth.api.v1.AuthService.ResendMyPhoneVerificationCode:output_type -> google.protobuf.Empty + 28, // 106: caos.zitadel.auth.api.v1.AuthService.GetMyUserAddress:output_type -> caos.zitadel.auth.api.v1.UserAddressView + 45, // 107: caos.zitadel.auth.api.v1.AuthService.GetMyUserChanges:output_type -> caos.zitadel.auth.api.v1.Changes + 27, // 108: caos.zitadel.auth.api.v1.AuthService.UpdateMyUserAddress:output_type -> caos.zitadel.auth.api.v1.UserAddress + 32, // 109: caos.zitadel.auth.api.v1.AuthService.GetMyMfas:output_type -> caos.zitadel.auth.api.v1.MultiFactors + 56, // 110: caos.zitadel.auth.api.v1.AuthService.ChangeMyPassword:output_type -> google.protobuf.Empty + 47, // 111: caos.zitadel.auth.api.v1.AuthService.GetMyPasswordComplexityPolicy:output_type -> caos.zitadel.auth.api.v1.PasswordComplexityPolicy + 51, // 112: caos.zitadel.auth.api.v1.AuthService.SearchMyExternalIDPs:output_type -> caos.zitadel.auth.api.v1.ExternalIDPSearchResponse + 56, // 113: caos.zitadel.auth.api.v1.AuthService.RemoveMyExternalIDP:output_type -> google.protobuf.Empty + 34, // 114: caos.zitadel.auth.api.v1.AuthService.AddMfaOTP:output_type -> caos.zitadel.auth.api.v1.MfaOtpResponse + 56, // 115: caos.zitadel.auth.api.v1.AuthService.VerifyMfaOTP:output_type -> google.protobuf.Empty + 56, // 116: caos.zitadel.auth.api.v1.AuthService.RemoveMfaOTP:output_type -> google.protobuf.Empty + 37, // 117: caos.zitadel.auth.api.v1.AuthService.SearchMyUserGrant:output_type -> caos.zitadel.auth.api.v1.UserGrantSearchResponse + 41, // 118: caos.zitadel.auth.api.v1.AuthService.SearchMyProjectOrgs:output_type -> caos.zitadel.auth.api.v1.MyProjectOrgSearchResponse + 43, // 119: caos.zitadel.auth.api.v1.AuthService.GetMyZitadelPermissions:output_type -> caos.zitadel.auth.api.v1.MyPermissions + 43, // 120: caos.zitadel.auth.api.v1.AuthService.GetMyProjectPermissions:output_type -> caos.zitadel.auth.api.v1.MyPermissions + 89, // [89:121] is the sub-list for method output_type + 57, // [57:89] is the sub-list for method input_type + 57, // [57:57] is the sub-list for extension type_name + 57, // [57:57] is the sub-list for extension extendee + 0, // [0:57] is the sub-list for field type_name +} + +func init() { file_auth_proto_init() } +func file_auth_proto_init() { + if File_auth_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_auth_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserSessionViews); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_auth_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserSessionView); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_auth_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserView); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_auth_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MachineView); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_auth_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MachineKeyView); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_auth_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HumanView); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_auth_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserProfile); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_auth_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserProfileView); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_auth_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateUserProfileRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_auth_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChangeUserNameRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_auth_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserEmail); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_auth_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserEmailView); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_auth_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VerifyMyUserEmailRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_auth_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateUserEmailRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_auth_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserPhone); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_auth_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserPhoneView); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_auth_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateUserPhoneRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_auth_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VerifyUserPhoneRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_auth_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserAddress); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_auth_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserAddressView); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_auth_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateUserAddressRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_auth_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PasswordChange); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_auth_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VerifyMfaOtp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_auth_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MultiFactors); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_auth_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MultiFactor); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_auth_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MfaOtpResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_auth_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserGrantSearchRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_auth_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserGrantSearchQuery); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_auth_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserGrantSearchResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_auth_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserGrantView); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_auth_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MyProjectOrgSearchRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_auth_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MyProjectOrgSearchQuery); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_auth_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MyProjectOrgSearchResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_auth_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Org); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_auth_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MyPermissions); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_auth_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChangesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_auth_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Changes); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_auth_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Change); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_auth_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PasswordComplexityPolicy); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_auth_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExternalIDPResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_auth_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExternalIDPRemoveRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_auth_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExternalIDPSearchRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_auth_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExternalIDPSearchResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_auth_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExternalIDPView); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_auth_proto_msgTypes[2].OneofWrappers = []interface{}{ + (*UserView_Human)(nil), + (*UserView_Machine)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_auth_proto_rawDesc, + NumEnums: 9, + NumMessages: 44, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_auth_proto_goTypes, + DependencyIndexes: file_auth_proto_depIdxs, + EnumInfos: file_auth_proto_enumTypes, + MessageInfos: file_auth_proto_msgTypes, + }.Build() + File_auth_proto = out.File + file_auth_proto_rawDesc = nil + file_auth_proto_goTypes = nil + file_auth_proto_depIdxs = nil } // Reference imports to suppress errors if they are not otherwise used. var _ context.Context -var _ grpc.ClientConn +var _ grpc.ClientConnInterface // This is a compile-time assertion to ensure that this generated file // is compatible with the grpc package it is being compiled against. -const _ = grpc.SupportPackageIsVersion4 +const _ = grpc.SupportPackageIsVersion6 // AuthServiceClient is the client API for AuthService service. // @@ -3402,6 +5699,9 @@ type AuthServiceClient interface { //Password ChangeMyPassword(ctx context.Context, in *PasswordChange, opts ...grpc.CallOption) (*empty.Empty, error) GetMyPasswordComplexityPolicy(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*PasswordComplexityPolicy, error) + //ExternalIDP + SearchMyExternalIDPs(ctx context.Context, in *ExternalIDPSearchRequest, opts ...grpc.CallOption) (*ExternalIDPSearchResponse, error) + RemoveMyExternalIDP(ctx context.Context, in *ExternalIDPRemoveRequest, opts ...grpc.CallOption) (*empty.Empty, error) // MFA AddMfaOTP(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*MfaOtpResponse, error) VerifyMfaOTP(ctx context.Context, in *VerifyMfaOtp, opts ...grpc.CallOption) (*empty.Empty, error) @@ -3414,10 +5714,10 @@ type AuthServiceClient interface { } type authServiceClient struct { - cc *grpc.ClientConn + cc grpc.ClientConnInterface } -func NewAuthServiceClient(cc *grpc.ClientConn) AuthServiceClient { +func NewAuthServiceClient(cc grpc.ClientConnInterface) AuthServiceClient { return &authServiceClient{cc} } @@ -3628,6 +5928,24 @@ func (c *authServiceClient) GetMyPasswordComplexityPolicy(ctx context.Context, i return out, nil } +func (c *authServiceClient) SearchMyExternalIDPs(ctx context.Context, in *ExternalIDPSearchRequest, opts ...grpc.CallOption) (*ExternalIDPSearchResponse, error) { + out := new(ExternalIDPSearchResponse) + err := c.cc.Invoke(ctx, "/caos.zitadel.auth.api.v1.AuthService/SearchMyExternalIDPs", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *authServiceClient) RemoveMyExternalIDP(ctx context.Context, in *ExternalIDPRemoveRequest, opts ...grpc.CallOption) (*empty.Empty, error) { + out := new(empty.Empty) + err := c.cc.Invoke(ctx, "/caos.zitadel.auth.api.v1.AuthService/RemoveMyExternalIDP", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *authServiceClient) AddMfaOTP(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*MfaOtpResponse, error) { out := new(MfaOtpResponse) err := c.cc.Invoke(ctx, "/caos.zitadel.auth.api.v1.AuthService/AddMfaOTP", in, out, opts...) @@ -3720,6 +6038,9 @@ type AuthServiceServer interface { //Password ChangeMyPassword(context.Context, *PasswordChange) (*empty.Empty, error) GetMyPasswordComplexityPolicy(context.Context, *empty.Empty) (*PasswordComplexityPolicy, error) + //ExternalIDP + SearchMyExternalIDPs(context.Context, *ExternalIDPSearchRequest) (*ExternalIDPSearchResponse, error) + RemoveMyExternalIDP(context.Context, *ExternalIDPRemoveRequest) (*empty.Empty, error) // MFA AddMfaOTP(context.Context, *empty.Empty) (*MfaOtpResponse, error) VerifyMfaOTP(context.Context, *VerifyMfaOtp) (*empty.Empty, error) @@ -3735,94 +6056,100 @@ type AuthServiceServer interface { type UnimplementedAuthServiceServer struct { } -func (*UnimplementedAuthServiceServer) Healthz(ctx context.Context, req *empty.Empty) (*empty.Empty, error) { +func (*UnimplementedAuthServiceServer) Healthz(context.Context, *empty.Empty) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method Healthz not implemented") } -func (*UnimplementedAuthServiceServer) Ready(ctx context.Context, req *empty.Empty) (*empty.Empty, error) { +func (*UnimplementedAuthServiceServer) Ready(context.Context, *empty.Empty) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method Ready not implemented") } -func (*UnimplementedAuthServiceServer) Validate(ctx context.Context, req *empty.Empty) (*_struct.Struct, error) { +func (*UnimplementedAuthServiceServer) Validate(context.Context, *empty.Empty) (*_struct.Struct, error) { return nil, status.Errorf(codes.Unimplemented, "method Validate not implemented") } -func (*UnimplementedAuthServiceServer) GetMyUserSessions(ctx context.Context, req *empty.Empty) (*UserSessionViews, error) { +func (*UnimplementedAuthServiceServer) GetMyUserSessions(context.Context, *empty.Empty) (*UserSessionViews, error) { return nil, status.Errorf(codes.Unimplemented, "method GetMyUserSessions not implemented") } -func (*UnimplementedAuthServiceServer) GetMyUser(ctx context.Context, req *empty.Empty) (*UserView, error) { +func (*UnimplementedAuthServiceServer) GetMyUser(context.Context, *empty.Empty) (*UserView, error) { return nil, status.Errorf(codes.Unimplemented, "method GetMyUser not implemented") } -func (*UnimplementedAuthServiceServer) GetMyUserProfile(ctx context.Context, req *empty.Empty) (*UserProfileView, error) { +func (*UnimplementedAuthServiceServer) GetMyUserProfile(context.Context, *empty.Empty) (*UserProfileView, error) { return nil, status.Errorf(codes.Unimplemented, "method GetMyUserProfile not implemented") } -func (*UnimplementedAuthServiceServer) UpdateMyUserProfile(ctx context.Context, req *UpdateUserProfileRequest) (*UserProfile, error) { +func (*UnimplementedAuthServiceServer) UpdateMyUserProfile(context.Context, *UpdateUserProfileRequest) (*UserProfile, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateMyUserProfile not implemented") } -func (*UnimplementedAuthServiceServer) ChangeMyUserName(ctx context.Context, req *ChangeUserNameRequest) (*empty.Empty, error) { +func (*UnimplementedAuthServiceServer) ChangeMyUserName(context.Context, *ChangeUserNameRequest) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method ChangeMyUserName not implemented") } -func (*UnimplementedAuthServiceServer) GetMyUserEmail(ctx context.Context, req *empty.Empty) (*UserEmailView, error) { +func (*UnimplementedAuthServiceServer) GetMyUserEmail(context.Context, *empty.Empty) (*UserEmailView, error) { return nil, status.Errorf(codes.Unimplemented, "method GetMyUserEmail not implemented") } -func (*UnimplementedAuthServiceServer) ChangeMyUserEmail(ctx context.Context, req *UpdateUserEmailRequest) (*UserEmail, error) { +func (*UnimplementedAuthServiceServer) ChangeMyUserEmail(context.Context, *UpdateUserEmailRequest) (*UserEmail, error) { return nil, status.Errorf(codes.Unimplemented, "method ChangeMyUserEmail not implemented") } -func (*UnimplementedAuthServiceServer) VerifyMyUserEmail(ctx context.Context, req *VerifyMyUserEmailRequest) (*empty.Empty, error) { +func (*UnimplementedAuthServiceServer) VerifyMyUserEmail(context.Context, *VerifyMyUserEmailRequest) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method VerifyMyUserEmail not implemented") } -func (*UnimplementedAuthServiceServer) ResendMyEmailVerificationMail(ctx context.Context, req *empty.Empty) (*empty.Empty, error) { +func (*UnimplementedAuthServiceServer) ResendMyEmailVerificationMail(context.Context, *empty.Empty) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method ResendMyEmailVerificationMail not implemented") } -func (*UnimplementedAuthServiceServer) GetMyUserPhone(ctx context.Context, req *empty.Empty) (*UserPhoneView, error) { +func (*UnimplementedAuthServiceServer) GetMyUserPhone(context.Context, *empty.Empty) (*UserPhoneView, error) { return nil, status.Errorf(codes.Unimplemented, "method GetMyUserPhone not implemented") } -func (*UnimplementedAuthServiceServer) ChangeMyUserPhone(ctx context.Context, req *UpdateUserPhoneRequest) (*UserPhone, error) { +func (*UnimplementedAuthServiceServer) ChangeMyUserPhone(context.Context, *UpdateUserPhoneRequest) (*UserPhone, error) { return nil, status.Errorf(codes.Unimplemented, "method ChangeMyUserPhone not implemented") } -func (*UnimplementedAuthServiceServer) RemoveMyUserPhone(ctx context.Context, req *empty.Empty) (*empty.Empty, error) { +func (*UnimplementedAuthServiceServer) RemoveMyUserPhone(context.Context, *empty.Empty) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method RemoveMyUserPhone not implemented") } -func (*UnimplementedAuthServiceServer) VerifyMyUserPhone(ctx context.Context, req *VerifyUserPhoneRequest) (*empty.Empty, error) { +func (*UnimplementedAuthServiceServer) VerifyMyUserPhone(context.Context, *VerifyUserPhoneRequest) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method VerifyMyUserPhone not implemented") } -func (*UnimplementedAuthServiceServer) ResendMyPhoneVerificationCode(ctx context.Context, req *empty.Empty) (*empty.Empty, error) { +func (*UnimplementedAuthServiceServer) ResendMyPhoneVerificationCode(context.Context, *empty.Empty) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method ResendMyPhoneVerificationCode not implemented") } -func (*UnimplementedAuthServiceServer) GetMyUserAddress(ctx context.Context, req *empty.Empty) (*UserAddressView, error) { +func (*UnimplementedAuthServiceServer) GetMyUserAddress(context.Context, *empty.Empty) (*UserAddressView, error) { return nil, status.Errorf(codes.Unimplemented, "method GetMyUserAddress not implemented") } -func (*UnimplementedAuthServiceServer) GetMyUserChanges(ctx context.Context, req *ChangesRequest) (*Changes, error) { +func (*UnimplementedAuthServiceServer) GetMyUserChanges(context.Context, *ChangesRequest) (*Changes, error) { return nil, status.Errorf(codes.Unimplemented, "method GetMyUserChanges not implemented") } -func (*UnimplementedAuthServiceServer) UpdateMyUserAddress(ctx context.Context, req *UpdateUserAddressRequest) (*UserAddress, error) { +func (*UnimplementedAuthServiceServer) UpdateMyUserAddress(context.Context, *UpdateUserAddressRequest) (*UserAddress, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateMyUserAddress not implemented") } -func (*UnimplementedAuthServiceServer) GetMyMfas(ctx context.Context, req *empty.Empty) (*MultiFactors, error) { +func (*UnimplementedAuthServiceServer) GetMyMfas(context.Context, *empty.Empty) (*MultiFactors, error) { return nil, status.Errorf(codes.Unimplemented, "method GetMyMfas not implemented") } -func (*UnimplementedAuthServiceServer) ChangeMyPassword(ctx context.Context, req *PasswordChange) (*empty.Empty, error) { +func (*UnimplementedAuthServiceServer) ChangeMyPassword(context.Context, *PasswordChange) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method ChangeMyPassword not implemented") } -func (*UnimplementedAuthServiceServer) GetMyPasswordComplexityPolicy(ctx context.Context, req *empty.Empty) (*PasswordComplexityPolicy, error) { +func (*UnimplementedAuthServiceServer) GetMyPasswordComplexityPolicy(context.Context, *empty.Empty) (*PasswordComplexityPolicy, error) { return nil, status.Errorf(codes.Unimplemented, "method GetMyPasswordComplexityPolicy not implemented") } -func (*UnimplementedAuthServiceServer) AddMfaOTP(ctx context.Context, req *empty.Empty) (*MfaOtpResponse, error) { +func (*UnimplementedAuthServiceServer) SearchMyExternalIDPs(context.Context, *ExternalIDPSearchRequest) (*ExternalIDPSearchResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SearchMyExternalIDPs not implemented") +} +func (*UnimplementedAuthServiceServer) RemoveMyExternalIDP(context.Context, *ExternalIDPRemoveRequest) (*empty.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method RemoveMyExternalIDP not implemented") +} +func (*UnimplementedAuthServiceServer) AddMfaOTP(context.Context, *empty.Empty) (*MfaOtpResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method AddMfaOTP not implemented") } -func (*UnimplementedAuthServiceServer) VerifyMfaOTP(ctx context.Context, req *VerifyMfaOtp) (*empty.Empty, error) { +func (*UnimplementedAuthServiceServer) VerifyMfaOTP(context.Context, *VerifyMfaOtp) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method VerifyMfaOTP not implemented") } -func (*UnimplementedAuthServiceServer) RemoveMfaOTP(ctx context.Context, req *empty.Empty) (*empty.Empty, error) { +func (*UnimplementedAuthServiceServer) RemoveMfaOTP(context.Context, *empty.Empty) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method RemoveMfaOTP not implemented") } -func (*UnimplementedAuthServiceServer) SearchMyUserGrant(ctx context.Context, req *UserGrantSearchRequest) (*UserGrantSearchResponse, error) { +func (*UnimplementedAuthServiceServer) SearchMyUserGrant(context.Context, *UserGrantSearchRequest) (*UserGrantSearchResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SearchMyUserGrant not implemented") } -func (*UnimplementedAuthServiceServer) SearchMyProjectOrgs(ctx context.Context, req *MyProjectOrgSearchRequest) (*MyProjectOrgSearchResponse, error) { +func (*UnimplementedAuthServiceServer) SearchMyProjectOrgs(context.Context, *MyProjectOrgSearchRequest) (*MyProjectOrgSearchResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SearchMyProjectOrgs not implemented") } -func (*UnimplementedAuthServiceServer) GetMyZitadelPermissions(ctx context.Context, req *empty.Empty) (*MyPermissions, error) { +func (*UnimplementedAuthServiceServer) GetMyZitadelPermissions(context.Context, *empty.Empty) (*MyPermissions, error) { return nil, status.Errorf(codes.Unimplemented, "method GetMyZitadelPermissions not implemented") } -func (*UnimplementedAuthServiceServer) GetMyProjectPermissions(ctx context.Context, req *empty.Empty) (*MyPermissions, error) { +func (*UnimplementedAuthServiceServer) GetMyProjectPermissions(context.Context, *empty.Empty) (*MyPermissions, error) { return nil, status.Errorf(codes.Unimplemented, "method GetMyProjectPermissions not implemented") } @@ -4244,6 +6571,42 @@ func _AuthService_GetMyPasswordComplexityPolicy_Handler(srv interface{}, ctx con return interceptor(ctx, in, info, handler) } +func _AuthService_SearchMyExternalIDPs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ExternalIDPSearchRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AuthServiceServer).SearchMyExternalIDPs(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/caos.zitadel.auth.api.v1.AuthService/SearchMyExternalIDPs", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AuthServiceServer).SearchMyExternalIDPs(ctx, req.(*ExternalIDPSearchRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AuthService_RemoveMyExternalIDP_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ExternalIDPRemoveRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AuthServiceServer).RemoveMyExternalIDP(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/caos.zitadel.auth.api.v1.AuthService/RemoveMyExternalIDP", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AuthServiceServer).RemoveMyExternalIDP(ctx, req.(*ExternalIDPRemoveRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _AuthService_AddMfaOTP_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(empty.Empty) if err := dec(in); err != nil { @@ -4466,6 +6829,14 @@ var _AuthService_serviceDesc = grpc.ServiceDesc{ MethodName: "GetMyPasswordComplexityPolicy", Handler: _AuthService_GetMyPasswordComplexityPolicy_Handler, }, + { + MethodName: "SearchMyExternalIDPs", + Handler: _AuthService_SearchMyExternalIDPs_Handler, + }, + { + MethodName: "RemoveMyExternalIDP", + Handler: _AuthService_RemoveMyExternalIDP_Handler, + }, { MethodName: "AddMfaOTP", Handler: _AuthService_AddMfaOTP_Handler, diff --git a/pkg/grpc/auth/auth.pb.gw.go b/pkg/grpc/auth/auth.pb.gw.go index 04136bcb32..ed7359ce12 100644 --- a/pkg/grpc/auth/auth.pb.gw.go +++ b/pkg/grpc/auth/auth.pb.gw.go @@ -508,7 +508,10 @@ func local_request_AuthService_GetMyUserChanges_0(ctx context.Context, marshaler var protoReq ChangesRequest var metadata runtime.ServerMetadata - if err := runtime.PopulateQueryParameters(&protoReq, req.URL.Query(), filter_AuthService_GetMyUserChanges_0); err != nil { + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AuthService_GetMyUserChanges_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } @@ -621,6 +624,116 @@ func local_request_AuthService_GetMyPasswordComplexityPolicy_0(ctx context.Conte } +func request_AuthService_SearchMyExternalIDPs_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ExternalIDPSearchRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.SearchMyExternalIDPs(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_AuthService_SearchMyExternalIDPs_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ExternalIDPSearchRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.SearchMyExternalIDPs(ctx, &protoReq) + return msg, metadata, err + +} + +func request_AuthService_RemoveMyExternalIDP_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ExternalIDPRemoveRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["idp_config_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "idp_config_id") + } + + protoReq.IdpConfigId, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "idp_config_id", err) + } + + val, ok = pathParams["external_user_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "external_user_id") + } + + protoReq.ExternalUserId, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "external_user_id", err) + } + + msg, err := client.RemoveMyExternalIDP(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_AuthService_RemoveMyExternalIDP_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ExternalIDPRemoveRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["idp_config_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "idp_config_id") + } + + protoReq.IdpConfigId, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "idp_config_id", err) + } + + val, ok = pathParams["external_user_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "external_user_id") + } + + protoReq.ExternalUserId, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "external_user_id", err) + } + + msg, err := server.RemoveMyExternalIDP(ctx, &protoReq) + return msg, metadata, err + +} + func request_AuthService_AddMfaOTP_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq empty.Empty var metadata runtime.ServerMetadata @@ -1276,6 +1389,46 @@ func RegisterAuthServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux }) + mux.Handle("POST", pattern_AuthService_SearchMyExternalIDPs_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_AuthService_SearchMyExternalIDPs_0(rctx, inboundMarshaler, server, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AuthService_SearchMyExternalIDPs_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_AuthService_RemoveMyExternalIDP_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_AuthService_RemoveMyExternalIDP_0(rctx, inboundMarshaler, server, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AuthService_RemoveMyExternalIDP_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("POST", pattern_AuthService_AddMfaOTP_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -1917,6 +2070,46 @@ func RegisterAuthServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux }) + mux.Handle("POST", pattern_AuthService_SearchMyExternalIDPs_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AuthService_SearchMyExternalIDPs_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AuthService_SearchMyExternalIDPs_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_AuthService_RemoveMyExternalIDP_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AuthService_RemoveMyExternalIDP_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AuthService_RemoveMyExternalIDP_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("POST", pattern_AuthService_AddMfaOTP_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -2107,6 +2300,10 @@ var ( pattern_AuthService_GetMyPasswordComplexityPolicy_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"policies", "passwords", "complexity"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_AuthService_SearchMyExternalIDPs_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"users", "me", "externalidps", "_search"}, "", runtime.AssumeColonVerbOpt(true))) + + pattern_AuthService_RemoveMyExternalIDP_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4}, []string{"users", "me", "externalidps", "idp_config_id", "external_user_id"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_AuthService_AddMfaOTP_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"users", "me", "mfas", "otp"}, "", runtime.AssumeColonVerbOpt(true))) pattern_AuthService_VerifyMfaOTP_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 2, 4}, []string{"users", "me", "mfas", "otp", "_verify"}, "", runtime.AssumeColonVerbOpt(true))) @@ -2169,6 +2366,10 @@ var ( forward_AuthService_GetMyPasswordComplexityPolicy_0 = runtime.ForwardResponseMessage + forward_AuthService_SearchMyExternalIDPs_0 = runtime.ForwardResponseMessage + + forward_AuthService_RemoveMyExternalIDP_0 = runtime.ForwardResponseMessage + forward_AuthService_AddMfaOTP_0 = runtime.ForwardResponseMessage forward_AuthService_VerifyMfaOTP_0 = runtime.ForwardResponseMessage diff --git a/pkg/grpc/auth/auth.pb.validate.go b/pkg/grpc/auth/auth.pb.validate.go index de91260b4f..e783204e8f 100644 --- a/pkg/grpc/auth/auth.pb.validate.go +++ b/pkg/grpc/auth/auth.pb.validate.go @@ -3432,3 +3432,415 @@ var _ interface { Cause() error ErrorName() string } = PasswordComplexityPolicyValidationError{} + +// Validate checks the field values on ExternalIDPResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *ExternalIDPResponse) Validate() error { + if m == nil { + return nil + } + + // no validation rules for IdpConfigId + + // no validation rules for UserId + + // no validation rules for DisplayName + + return nil +} + +// ExternalIDPResponseValidationError is the validation error returned by +// ExternalIDPResponse.Validate if the designated constraints aren't met. +type ExternalIDPResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ExternalIDPResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ExternalIDPResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ExternalIDPResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ExternalIDPResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ExternalIDPResponseValidationError) ErrorName() string { + return "ExternalIDPResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e ExternalIDPResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sExternalIDPResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ExternalIDPResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ExternalIDPResponseValidationError{} + +// Validate checks the field values on ExternalIDPRemoveRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *ExternalIDPRemoveRequest) Validate() error { + if m == nil { + return nil + } + + // no validation rules for IdpConfigId + + // no validation rules for ExternalUserId + + return nil +} + +// ExternalIDPRemoveRequestValidationError is the validation error returned by +// ExternalIDPRemoveRequest.Validate if the designated constraints aren't met. +type ExternalIDPRemoveRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ExternalIDPRemoveRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ExternalIDPRemoveRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ExternalIDPRemoveRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ExternalIDPRemoveRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ExternalIDPRemoveRequestValidationError) ErrorName() string { + return "ExternalIDPRemoveRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e ExternalIDPRemoveRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sExternalIDPRemoveRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ExternalIDPRemoveRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ExternalIDPRemoveRequestValidationError{} + +// Validate checks the field values on ExternalIDPSearchRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *ExternalIDPSearchRequest) Validate() error { + if m == nil { + return nil + } + + // no validation rules for Offset + + // no validation rules for Limit + + // no validation rules for UserId + + return nil +} + +// ExternalIDPSearchRequestValidationError is the validation error returned by +// ExternalIDPSearchRequest.Validate if the designated constraints aren't met. +type ExternalIDPSearchRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ExternalIDPSearchRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ExternalIDPSearchRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ExternalIDPSearchRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ExternalIDPSearchRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ExternalIDPSearchRequestValidationError) ErrorName() string { + return "ExternalIDPSearchRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e ExternalIDPSearchRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sExternalIDPSearchRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ExternalIDPSearchRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ExternalIDPSearchRequestValidationError{} + +// Validate checks the field values on ExternalIDPSearchResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *ExternalIDPSearchResponse) Validate() error { + if m == nil { + return nil + } + + // no validation rules for Offset + + // no validation rules for Limit + + // no validation rules for TotalResult + + for idx, item := range m.GetResult() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ExternalIDPSearchResponseValidationError{ + field: fmt.Sprintf("Result[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + // no validation rules for ProcessedSequence + + if v, ok := interface{}(m.GetViewTimestamp()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ExternalIDPSearchResponseValidationError{ + field: "ViewTimestamp", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// ExternalIDPSearchResponseValidationError is the validation error returned by +// ExternalIDPSearchResponse.Validate if the designated constraints aren't met. +type ExternalIDPSearchResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ExternalIDPSearchResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ExternalIDPSearchResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ExternalIDPSearchResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ExternalIDPSearchResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ExternalIDPSearchResponseValidationError) ErrorName() string { + return "ExternalIDPSearchResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e ExternalIDPSearchResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sExternalIDPSearchResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ExternalIDPSearchResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ExternalIDPSearchResponseValidationError{} + +// Validate checks the field values on ExternalIDPView with the rules defined +// in the proto definition for this message. If any rules are violated, an +// error is returned. +func (m *ExternalIDPView) Validate() error { + if m == nil { + return nil + } + + // no validation rules for UserId + + // no validation rules for IdpConfigId + + // no validation rules for ExternalUserId + + // no validation rules for IdpName + + // no validation rules for ExternalUserDisplayName + + if v, ok := interface{}(m.GetCreationDate()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ExternalIDPViewValidationError{ + field: "CreationDate", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetChangeDate()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ExternalIDPViewValidationError{ + field: "ChangeDate", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// ExternalIDPViewValidationError is the validation error returned by +// ExternalIDPView.Validate if the designated constraints aren't met. +type ExternalIDPViewValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ExternalIDPViewValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ExternalIDPViewValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ExternalIDPViewValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ExternalIDPViewValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ExternalIDPViewValidationError) ErrorName() string { return "ExternalIDPViewValidationError" } + +// Error satisfies the builtin error interface +func (e ExternalIDPViewValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sExternalIDPView.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ExternalIDPViewValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ExternalIDPViewValidationError{} diff --git a/pkg/grpc/auth/auth.swagger.json b/pkg/grpc/auth/auth.swagger.json index 13ba4ebcc7..8690aa68c0 100644 --- a/pkg/grpc/auth/auth.swagger.json +++ b/pkg/grpc/auth/auth.swagger.json @@ -21,13 +21,19 @@ "paths": { "/global/projectorgs/_search": { "post": { - "operationId": "SearchMyProjectOrgs", + "operationId": "AuthService_SearchMyProjectOrgs", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1MyProjectOrgSearchResponse" } + }, + "default": { + "description": "An unexpected error response", + "schema": { + "$ref": "#/definitions/runtimeError" + } } }, "parameters": [ @@ -48,13 +54,19 @@ "/healthz": { "get": { "summary": "Readiness", - "operationId": "Healthz", + "operationId": "AuthService_Healthz", "responses": { "200": { "description": "A successful response.", "schema": { "properties": {} } + }, + "default": { + "description": "An unexpected error response", + "schema": { + "$ref": "#/definitions/runtimeError" + } } }, "tags": [ @@ -64,13 +76,19 @@ }, "/permissions/me": { "get": { - "operationId": "GetMyProjectPermissions", + "operationId": "AuthService_GetMyProjectPermissions", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1MyPermissions" } + }, + "default": { + "description": "An unexpected error response", + "schema": { + "$ref": "#/definitions/runtimeError" + } } }, "tags": [ @@ -81,13 +99,19 @@ "/permissions/zitadel/me": { "get": { "summary": "Permission", - "operationId": "GetMyZitadelPermissions", + "operationId": "AuthService_GetMyZitadelPermissions", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1MyPermissions" } + }, + "default": { + "description": "An unexpected error response", + "schema": { + "$ref": "#/definitions/runtimeError" + } } }, "tags": [ @@ -97,13 +121,19 @@ }, "/policies/passwords/complexity": { "get": { - "operationId": "GetMyPasswordComplexityPolicy", + "operationId": "AuthService_GetMyPasswordComplexityPolicy", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1PasswordComplexityPolicy" } + }, + "default": { + "description": "An unexpected error response", + "schema": { + "$ref": "#/definitions/runtimeError" + } } }, "tags": [ @@ -113,13 +143,19 @@ }, "/ready": { "get": { - "operationId": "Ready", + "operationId": "AuthService_Ready", "responses": { "200": { "description": "A successful response.", "schema": { "properties": {} } + }, + "default": { + "description": "An unexpected error response", + "schema": { + "$ref": "#/definitions/runtimeError" + } } }, "tags": [ @@ -129,13 +165,19 @@ }, "/usergrants/me/_search": { "post": { - "operationId": "SearchMyUserGrant", + "operationId": "AuthService_SearchMyUserGrant", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1UserGrantSearchResponse" } + }, + "default": { + "description": "An unexpected error response", + "schema": { + "$ref": "#/definitions/runtimeError" + } } }, "parameters": [ @@ -156,13 +198,19 @@ "/users/me": { "get": { "summary": "User", - "operationId": "GetMyUser", + "operationId": "AuthService_GetMyUser", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1UserView" } + }, + "default": { + "description": "An unexpected error response", + "schema": { + "$ref": "#/definitions/runtimeError" + } } }, "tags": [ @@ -172,13 +220,19 @@ }, "/users/me/address": { "get": { - "operationId": "GetMyUserAddress", + "operationId": "AuthService_GetMyUserAddress", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1UserAddressView" } + }, + "default": { + "description": "An unexpected error response", + "schema": { + "$ref": "#/definitions/runtimeError" + } } }, "tags": [ @@ -186,13 +240,19 @@ ] }, "put": { - "operationId": "UpdateMyUserAddress", + "operationId": "AuthService_UpdateMyUserAddress", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1UserAddress" } + }, + "default": { + "description": "An unexpected error response", + "schema": { + "$ref": "#/definitions/runtimeError" + } } }, "parameters": [ @@ -212,13 +272,19 @@ }, "/users/me/changes": { "get": { - "operationId": "GetMyUserChanges", + "operationId": "AuthService_GetMyUserChanges", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1Changes" } + }, + "default": { + "description": "An unexpected error response", + "schema": { + "$ref": "#/definitions/runtimeError" + } } }, "parameters": [ @@ -251,13 +317,19 @@ }, "/users/me/email": { "get": { - "operationId": "GetMyUserEmail", + "operationId": "AuthService_GetMyUserEmail", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1UserEmailView" } + }, + "default": { + "description": "An unexpected error response", + "schema": { + "$ref": "#/definitions/runtimeError" + } } }, "tags": [ @@ -265,13 +337,19 @@ ] }, "put": { - "operationId": "ChangeMyUserEmail", + "operationId": "AuthService_ChangeMyUserEmail", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1UserEmail" } + }, + "default": { + "description": "An unexpected error response", + "schema": { + "$ref": "#/definitions/runtimeError" + } } }, "parameters": [ @@ -291,13 +369,19 @@ }, "/users/me/email/_resendverification": { "post": { - "operationId": "ResendMyEmailVerificationMail", + "operationId": "AuthService_ResendMyEmailVerificationMail", "responses": { "200": { "description": "A successful response.", "schema": { "properties": {} } + }, + "default": { + "description": "An unexpected error response", + "schema": { + "$ref": "#/definitions/runtimeError" + } } }, "parameters": [ @@ -317,13 +401,19 @@ }, "/users/me/email/_verify": { "post": { - "operationId": "VerifyMyUserEmail", + "operationId": "AuthService_VerifyMyUserEmail", "responses": { "200": { "description": "A successful response.", "schema": { "properties": {} } + }, + "default": { + "description": "An unexpected error response", + "schema": { + "$ref": "#/definitions/runtimeError" + } } }, "parameters": [ @@ -341,15 +431,90 @@ ] } }, + "/users/me/externalidps/_search": { + "post": { + "summary": "ExternalIDP", + "operationId": "AuthService_SearchMyExternalIDPs", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1ExternalIDPSearchResponse" + } + }, + "default": { + "description": "An unexpected error response", + "schema": { + "$ref": "#/definitions/runtimeError" + } + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/v1ExternalIDPSearchRequest" + } + } + ], + "tags": [ + "AuthService" + ] + } + }, + "/users/me/externalidps/{idp_config_id}/{external_user_id}": { + "delete": { + "operationId": "AuthService_RemoveMyExternalIDP", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "properties": {} + } + }, + "default": { + "description": "An unexpected error response", + "schema": { + "$ref": "#/definitions/runtimeError" + } + } + }, + "parameters": [ + { + "name": "idp_config_id", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "external_user_id", + "in": "path", + "required": true, + "type": "string" + } + ], + "tags": [ + "AuthService" + ] + } + }, "/users/me/mfas": { "get": { - "operationId": "GetMyMfas", + "operationId": "AuthService_GetMyMfas", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1MultiFactors" } + }, + "default": { + "description": "An unexpected error response", + "schema": { + "$ref": "#/definitions/runtimeError" + } } }, "tags": [ @@ -359,13 +524,19 @@ }, "/users/me/mfas/otp": { "delete": { - "operationId": "RemoveMfaOTP", + "operationId": "AuthService_RemoveMfaOTP", "responses": { "200": { "description": "A successful response.", "schema": { "properties": {} } + }, + "default": { + "description": "An unexpected error response", + "schema": { + "$ref": "#/definitions/runtimeError" + } } }, "tags": [ @@ -374,13 +545,19 @@ }, "post": { "summary": "MFA", - "operationId": "AddMfaOTP", + "operationId": "AuthService_AddMfaOTP", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1MfaOtpResponse" } + }, + "default": { + "description": "An unexpected error response", + "schema": { + "$ref": "#/definitions/runtimeError" + } } }, "parameters": [ @@ -400,13 +577,19 @@ }, "/users/me/mfas/otp/_verify": { "put": { - "operationId": "VerifyMfaOTP", + "operationId": "AuthService_VerifyMfaOTP", "responses": { "200": { "description": "A successful response.", "schema": { "properties": {} } + }, + "default": { + "description": "An unexpected error response", + "schema": { + "$ref": "#/definitions/runtimeError" + } } }, "parameters": [ @@ -427,13 +610,19 @@ "/users/me/passwords/_change": { "put": { "summary": "Password", - "operationId": "ChangeMyPassword", + "operationId": "AuthService_ChangeMyPassword", "responses": { "200": { "description": "A successful response.", "schema": { "properties": {} } + }, + "default": { + "description": "An unexpected error response", + "schema": { + "$ref": "#/definitions/runtimeError" + } } }, "parameters": [ @@ -453,13 +642,19 @@ }, "/users/me/phone": { "get": { - "operationId": "GetMyUserPhone", + "operationId": "AuthService_GetMyUserPhone", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1UserPhoneView" } + }, + "default": { + "description": "An unexpected error response", + "schema": { + "$ref": "#/definitions/runtimeError" + } } }, "tags": [ @@ -467,13 +662,19 @@ ] }, "delete": { - "operationId": "RemoveMyUserPhone", + "operationId": "AuthService_RemoveMyUserPhone", "responses": { "200": { "description": "A successful response.", "schema": { "properties": {} } + }, + "default": { + "description": "An unexpected error response", + "schema": { + "$ref": "#/definitions/runtimeError" + } } }, "tags": [ @@ -481,13 +682,19 @@ ] }, "put": { - "operationId": "ChangeMyUserPhone", + "operationId": "AuthService_ChangeMyUserPhone", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1UserPhone" } + }, + "default": { + "description": "An unexpected error response", + "schema": { + "$ref": "#/definitions/runtimeError" + } } }, "parameters": [ @@ -507,13 +714,19 @@ }, "/users/me/phone/_resendverification": { "post": { - "operationId": "ResendMyPhoneVerificationCode", + "operationId": "AuthService_ResendMyPhoneVerificationCode", "responses": { "200": { "description": "A successful response.", "schema": { "properties": {} } + }, + "default": { + "description": "An unexpected error response", + "schema": { + "$ref": "#/definitions/runtimeError" + } } }, "parameters": [ @@ -533,13 +746,19 @@ }, "/users/me/phone/_verify": { "post": { - "operationId": "VerifyMyUserPhone", + "operationId": "AuthService_VerifyMyUserPhone", "responses": { "200": { "description": "A successful response.", "schema": { "properties": {} } + }, + "default": { + "description": "An unexpected error response", + "schema": { + "$ref": "#/definitions/runtimeError" + } } }, "parameters": [ @@ -559,13 +778,19 @@ }, "/users/me/profile": { "get": { - "operationId": "GetMyUserProfile", + "operationId": "AuthService_GetMyUserProfile", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1UserProfileView" } + }, + "default": { + "description": "An unexpected error response", + "schema": { + "$ref": "#/definitions/runtimeError" + } } }, "tags": [ @@ -573,13 +798,19 @@ ] }, "put": { - "operationId": "UpdateMyUserProfile", + "operationId": "AuthService_UpdateMyUserProfile", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1UserProfile" } + }, + "default": { + "description": "An unexpected error response", + "schema": { + "$ref": "#/definitions/runtimeError" + } } }, "parameters": [ @@ -600,13 +831,19 @@ "/users/me/sessions": { "get": { "summary": "Authorization", - "operationId": "GetMyUserSessions", + "operationId": "AuthService_GetMyUserSessions", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1UserSessionViews" } + }, + "default": { + "description": "An unexpected error response", + "schema": { + "$ref": "#/definitions/runtimeError" + } } }, "tags": [ @@ -616,13 +853,19 @@ }, "/users/me/username": { "put": { - "operationId": "ChangeMyUserName", + "operationId": "AuthService_ChangeMyUserName", "responses": { "200": { "description": "A successful response.", "schema": { "properties": {} } + }, + "default": { + "description": "An unexpected error response", + "schema": { + "$ref": "#/definitions/runtimeError" + } } }, "parameters": [ @@ -642,13 +885,19 @@ }, "/validate": { "get": { - "operationId": "Validate", + "operationId": "AuthService_Validate", "responses": { "200": { "description": "A successful response.", "schema": { "type": "object" } + }, + "default": { + "description": "An unexpected error response", + "schema": { + "$ref": "#/definitions/runtimeError" + } } }, "tags": [ @@ -658,6 +907,21 @@ } }, "definitions": { + "protobufAny": { + "type": "object", + "properties": { + "type_url": { + "type": "string", + "description": "A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n URL, or have them precompiled into a binary to avoid any\n lookup. Therefore, binary compatibility needs to be preserved\n on changes to types. (Use versioned type names to manage\n breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics." + }, + "value": { + "type": "string", + "format": "byte", + "description": "Must be a valid serialized protocol buffer of the above specified type." + } + }, + "description": "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n Foo foo = ...;\n Any any;\n any.PackFrom(foo);\n ...\n if (any.UnpackTo(\u0026foo)) {\n ...\n }\n\nExample 2: Pack and unpack a message in Java.\n\n Foo foo = ...;\n Any any = Any.pack(foo);\n ...\n if (any.is(Foo.class)) {\n foo = any.unpack(Foo.class);\n }\n\n Example 3: Pack and unpack a message in Python.\n\n foo = Foo(...)\n any = Any()\n any.Pack(foo)\n ...\n if any.Is(Foo.DESCRIPTOR):\n any.Unpack(foo)\n ...\n\n Example 4: Pack and unpack a message in Go\n\n foo := \u0026pb.Foo{...}\n any, err := ptypes.MarshalAny(foo)\n ...\n foo := \u0026pb.Foo{}\n if err := ptypes.UnmarshalAny(any, foo); err != nil {\n ...\n }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\n\nJSON\n====\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n package google.profile;\n message Person {\n string first_name = 1;\n string last_name = 2;\n }\n\n {\n \"@type\": \"type.googleapis.com/google.profile.Person\",\n \"firstName\": \u003cstring\u003e,\n \"lastName\": \u003cstring\u003e\n }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n {\n \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n \"value\": \"1.212s\"\n }" + }, "protobufNullValue": { "type": "string", "enum": [ @@ -666,6 +930,27 @@ "default": "NULL_VALUE", "description": "`NullValue` is a singleton enumeration to represent the null value for the\n`Value` type union.\n\n The JSON representation for `NullValue` is JSON `null`.\n\n - NULL_VALUE: Null value." }, + "runtimeError": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "details": { + "type": "array", + "items": { + "$ref": "#/definitions/protobufAny" + } + } + } + }, "v1Change": { "type": "object", "properties": { @@ -718,6 +1003,81 @@ } } }, + "v1ExternalIDPSearchRequest": { + "type": "object", + "properties": { + "offset": { + "type": "string", + "format": "uint64" + }, + "limit": { + "type": "string", + "format": "uint64" + }, + "user_id": { + "type": "string" + } + } + }, + "v1ExternalIDPSearchResponse": { + "type": "object", + "properties": { + "offset": { + "type": "string", + "format": "uint64" + }, + "limit": { + "type": "string", + "format": "uint64" + }, + "total_result": { + "type": "string", + "format": "uint64" + }, + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/v1ExternalIDPView" + } + }, + "processed_sequence": { + "type": "string", + "format": "uint64" + }, + "view_timestamp": { + "type": "string", + "format": "date-time" + } + } + }, + "v1ExternalIDPView": { + "type": "object", + "properties": { + "user_id": { + "type": "string" + }, + "idp_config_id": { + "type": "string" + }, + "external_user_id": { + "type": "string" + }, + "idp_name": { + "type": "string" + }, + "external_user_display_name": { + "type": "string" + }, + "creation_date": { + "type": "string", + "format": "date-time" + }, + "change_date": { + "type": "string", + "format": "date-time" + } + } + }, "v1Gender": { "type": "string", "enum": [ diff --git a/pkg/grpc/auth/mock/auth.proto.mock.go b/pkg/grpc/auth/mock/auth.proto.mock.go index 534e4f42f0..0ea651809c 100644 --- a/pkg/grpc/auth/mock/auth.proto.mock.go +++ b/pkg/grpc/auth/mock/auth.proto.mock.go @@ -417,6 +417,26 @@ func (mr *MockAuthServiceClientMockRecorder) RemoveMfaOTP(arg0, arg1 interface{} return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveMfaOTP", reflect.TypeOf((*MockAuthServiceClient)(nil).RemoveMfaOTP), varargs...) } +// RemoveMyExternalIDP mocks base method +func (m *MockAuthServiceClient) RemoveMyExternalIDP(arg0 context.Context, arg1 *auth.ExternalIDPRemoveRequest, arg2 ...grpc.CallOption) (*emptypb.Empty, error) { + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "RemoveMyExternalIDP", varargs...) + ret0, _ := ret[0].(*emptypb.Empty) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// RemoveMyExternalIDP indicates an expected call of RemoveMyExternalIDP +func (mr *MockAuthServiceClientMockRecorder) RemoveMyExternalIDP(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]interface{}{arg0, arg1}, arg2...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveMyExternalIDP", reflect.TypeOf((*MockAuthServiceClient)(nil).RemoveMyExternalIDP), varargs...) +} + // RemoveMyUserPhone mocks base method func (m *MockAuthServiceClient) RemoveMyUserPhone(arg0 context.Context, arg1 *emptypb.Empty, arg2 ...grpc.CallOption) (*emptypb.Empty, error) { m.ctrl.T.Helper() @@ -477,6 +497,26 @@ func (mr *MockAuthServiceClientMockRecorder) ResendMyPhoneVerificationCode(arg0, return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ResendMyPhoneVerificationCode", reflect.TypeOf((*MockAuthServiceClient)(nil).ResendMyPhoneVerificationCode), varargs...) } +// SearchMyExternalIDPs mocks base method +func (m *MockAuthServiceClient) SearchMyExternalIDPs(arg0 context.Context, arg1 *auth.ExternalIDPSearchRequest, arg2 ...grpc.CallOption) (*auth.ExternalIDPSearchResponse, error) { + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "SearchMyExternalIDPs", varargs...) + ret0, _ := ret[0].(*auth.ExternalIDPSearchResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// SearchMyExternalIDPs indicates an expected call of SearchMyExternalIDPs +func (mr *MockAuthServiceClientMockRecorder) SearchMyExternalIDPs(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]interface{}{arg0, arg1}, arg2...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SearchMyExternalIDPs", reflect.TypeOf((*MockAuthServiceClient)(nil).SearchMyExternalIDPs), varargs...) +} + // SearchMyProjectOrgs mocks base method func (m *MockAuthServiceClient) SearchMyProjectOrgs(arg0 context.Context, arg1 *auth.MyProjectOrgSearchRequest, arg2 ...grpc.CallOption) (*auth.MyProjectOrgSearchResponse, error) { m.ctrl.T.Helper() diff --git a/pkg/grpc/auth/proto/auth.proto b/pkg/grpc/auth/proto/auth.proto index 2f46f238e2..cf0c5bfeba 100644 --- a/pkg/grpc/auth/proto/auth.proto +++ b/pkg/grpc/auth/proto/auth.proto @@ -264,6 +264,28 @@ service AuthService { }; } + //ExternalIDP + rpc SearchMyExternalIDPs(ExternalIDPSearchRequest) returns (ExternalIDPSearchResponse) { + option (google.api.http) = { + post: "/users/me/externalidps/_search" + body: "*" + }; + + option (caos.zitadel.utils.v1.auth_option) = { + permission: "authenticated" + }; + } + + rpc RemoveMyExternalIDP(ExternalIDPRemoveRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/users/me/externalidps/{idp_config_id}/{external_user_id}" + }; + + option (caos.zitadel.utils.v1.auth_option) = { + permission: "authenticated" + }; + } + // MFA rpc AddMfaOTP(google.protobuf.Empty) returns (MfaOtpResponse) { option (google.api.http) = { @@ -714,3 +736,39 @@ message PasswordComplexityPolicy { uint64 sequence = 10; bool is_default = 11; } + +message ExternalIDPResponse { + string idp_config_id = 1; + string user_id = 2; + string display_name = 3; +} + +message ExternalIDPRemoveRequest { + string idp_config_id = 1; + string external_user_id = 2; +} + +message ExternalIDPSearchRequest { + uint64 offset = 1; + uint64 limit = 2; + string user_id = 3; +} + +message ExternalIDPSearchResponse { + uint64 offset = 1; + uint64 limit = 2; + uint64 total_result = 3; + repeated ExternalIDPView result = 4; + uint64 processed_sequence = 5; + google.protobuf.Timestamp view_timestamp = 6; +} + +message ExternalIDPView { + string user_id = 1; + string idp_config_id = 2; + string external_user_id = 3; + string idp_name = 4; + string external_user_display_name = 5; + google.protobuf.Timestamp creation_date = 6; + google.protobuf.Timestamp change_date = 7; +} \ No newline at end of file diff --git a/pkg/grpc/management/management.pb.authoptions.go b/pkg/grpc/management/management.pb.authoptions.go index 63c871f2f3..a98e2f810c 100644 --- a/pkg/grpc/management/management.pb.authoptions.go +++ b/pkg/grpc/management/management.pb.authoptions.go @@ -159,6 +159,16 @@ var ManagementService_AuthMethods = authz.MethodMapping{ CheckParam: "", }, + "/caos.zitadel.management.api.v1.ManagementService/SearchUserExternalIDPs": authz.Option{ + Permission: "user.read", + CheckParam: "", + }, + + "/caos.zitadel.management.api.v1.ManagementService/RemoveExternalIDP": authz.Option{ + Permission: "user.write", + CheckParam: "", + }, + "/caos.zitadel.management.api.v1.ManagementService/GetUserMfas": authz.Option{ Permission: "user.read", CheckParam: "", diff --git a/pkg/grpc/management/management.pb.go b/pkg/grpc/management/management.pb.go index d8debbddd6..dd735c4b9e 100644 --- a/pkg/grpc/management/management.pb.go +++ b/pkg/grpc/management/management.pb.go @@ -1,11 +1,13 @@ // Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.25.0 +// protoc v3.11.3 // source: management.proto package management import ( context "context" - fmt "fmt" _ "github.com/caos/zitadel/internal/protoc/protoc-gen-authoption/authoption" message "github.com/caos/zitadel/pkg/grpc/message" _ "github.com/envoyproxy/protoc-gen-validate/validate" @@ -18,19 +20,22 @@ import ( grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" status "google.golang.org/grpc/status" - math "math" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" ) -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf +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) +) -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package +// This is a compile-time assertion that a sufficiently up-to-date version +// of the legacy proto package is being used. +const _ = proto.ProtoPackageIsVersion4 type UserState int32 @@ -44,32 +49,53 @@ const ( UserState_USERSTATE_INITIAL UserState = 6 ) -var UserState_name = map[int32]string{ - 0: "USERSTATE_UNSPECIFIED", - 1: "USERSTATE_ACTIVE", - 2: "USERSTATE_INACTIVE", - 3: "USERSTATE_DELETED", - 4: "USERSTATE_LOCKED", - 5: "USERSTATE_SUSPEND", - 6: "USERSTATE_INITIAL", -} +// Enum value maps for UserState. +var ( + UserState_name = map[int32]string{ + 0: "USERSTATE_UNSPECIFIED", + 1: "USERSTATE_ACTIVE", + 2: "USERSTATE_INACTIVE", + 3: "USERSTATE_DELETED", + 4: "USERSTATE_LOCKED", + 5: "USERSTATE_SUSPEND", + 6: "USERSTATE_INITIAL", + } + UserState_value = map[string]int32{ + "USERSTATE_UNSPECIFIED": 0, + "USERSTATE_ACTIVE": 1, + "USERSTATE_INACTIVE": 2, + "USERSTATE_DELETED": 3, + "USERSTATE_LOCKED": 4, + "USERSTATE_SUSPEND": 5, + "USERSTATE_INITIAL": 6, + } +) -var UserState_value = map[string]int32{ - "USERSTATE_UNSPECIFIED": 0, - "USERSTATE_ACTIVE": 1, - "USERSTATE_INACTIVE": 2, - "USERSTATE_DELETED": 3, - "USERSTATE_LOCKED": 4, - "USERSTATE_SUSPEND": 5, - "USERSTATE_INITIAL": 6, +func (x UserState) Enum() *UserState { + p := new(UserState) + *p = x + return p } func (x UserState) String() string { - return proto.EnumName(UserState_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } +func (UserState) Descriptor() protoreflect.EnumDescriptor { + return file_management_proto_enumTypes[0].Descriptor() +} + +func (UserState) Type() protoreflect.EnumType { + return &file_management_proto_enumTypes[0] +} + +func (x UserState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use UserState.Descriptor instead. func (UserState) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{0} + return file_management_proto_rawDescGZIP(), []int{0} } type Gender int32 @@ -81,26 +107,47 @@ const ( Gender_GENDER_DIVERSE Gender = 3 ) -var Gender_name = map[int32]string{ - 0: "GENDER_UNSPECIFIED", - 1: "GENDER_FEMALE", - 2: "GENDER_MALE", - 3: "GENDER_DIVERSE", -} +// Enum value maps for Gender. +var ( + Gender_name = map[int32]string{ + 0: "GENDER_UNSPECIFIED", + 1: "GENDER_FEMALE", + 2: "GENDER_MALE", + 3: "GENDER_DIVERSE", + } + Gender_value = map[string]int32{ + "GENDER_UNSPECIFIED": 0, + "GENDER_FEMALE": 1, + "GENDER_MALE": 2, + "GENDER_DIVERSE": 3, + } +) -var Gender_value = map[string]int32{ - "GENDER_UNSPECIFIED": 0, - "GENDER_FEMALE": 1, - "GENDER_MALE": 2, - "GENDER_DIVERSE": 3, +func (x Gender) Enum() *Gender { + p := new(Gender) + *p = x + return p } func (x Gender) String() string { - return proto.EnumName(Gender_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } +func (Gender) Descriptor() protoreflect.EnumDescriptor { + return file_management_proto_enumTypes[1].Descriptor() +} + +func (Gender) Type() protoreflect.EnumType { + return &file_management_proto_enumTypes[1] +} + +func (x Gender) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Gender.Descriptor instead. func (Gender) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{1} + return file_management_proto_rawDescGZIP(), []int{1} } type MachineKeyType int32 @@ -110,22 +157,43 @@ const ( MachineKeyType_MACHINEKEY_JSON MachineKeyType = 1 ) -var MachineKeyType_name = map[int32]string{ - 0: "MACHINEKEY_UNSPECIFIED", - 1: "MACHINEKEY_JSON", -} +// Enum value maps for MachineKeyType. +var ( + MachineKeyType_name = map[int32]string{ + 0: "MACHINEKEY_UNSPECIFIED", + 1: "MACHINEKEY_JSON", + } + MachineKeyType_value = map[string]int32{ + "MACHINEKEY_UNSPECIFIED": 0, + "MACHINEKEY_JSON": 1, + } +) -var MachineKeyType_value = map[string]int32{ - "MACHINEKEY_UNSPECIFIED": 0, - "MACHINEKEY_JSON": 1, +func (x MachineKeyType) Enum() *MachineKeyType { + p := new(MachineKeyType) + *p = x + return p } func (x MachineKeyType) String() string { - return proto.EnumName(MachineKeyType_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } +func (MachineKeyType) Descriptor() protoreflect.EnumDescriptor { + return file_management_proto_enumTypes[2].Descriptor() +} + +func (MachineKeyType) Type() protoreflect.EnumType { + return &file_management_proto_enumTypes[2] +} + +func (x MachineKeyType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use MachineKeyType.Descriptor instead. func (MachineKeyType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{2} + return file_management_proto_rawDescGZIP(), []int{2} } type UserSearchKey int32 @@ -142,36 +210,57 @@ const ( UserSearchKey_USERSEARCHKEY_TYPE UserSearchKey = 8 ) -var UserSearchKey_name = map[int32]string{ - 0: "USERSEARCHKEY_UNSPECIFIED", - 1: "USERSEARCHKEY_USER_NAME", - 2: "USERSEARCHKEY_FIRST_NAME", - 3: "USERSEARCHKEY_LAST_NAME", - 4: "USERSEARCHKEY_NICK_NAME", - 5: "USERSEARCHKEY_DISPLAY_NAME", - 6: "USERSEARCHKEY_EMAIL", - 7: "USERSEARCHKEY_STATE", - 8: "USERSEARCHKEY_TYPE", -} +// Enum value maps for UserSearchKey. +var ( + UserSearchKey_name = map[int32]string{ + 0: "USERSEARCHKEY_UNSPECIFIED", + 1: "USERSEARCHKEY_USER_NAME", + 2: "USERSEARCHKEY_FIRST_NAME", + 3: "USERSEARCHKEY_LAST_NAME", + 4: "USERSEARCHKEY_NICK_NAME", + 5: "USERSEARCHKEY_DISPLAY_NAME", + 6: "USERSEARCHKEY_EMAIL", + 7: "USERSEARCHKEY_STATE", + 8: "USERSEARCHKEY_TYPE", + } + UserSearchKey_value = map[string]int32{ + "USERSEARCHKEY_UNSPECIFIED": 0, + "USERSEARCHKEY_USER_NAME": 1, + "USERSEARCHKEY_FIRST_NAME": 2, + "USERSEARCHKEY_LAST_NAME": 3, + "USERSEARCHKEY_NICK_NAME": 4, + "USERSEARCHKEY_DISPLAY_NAME": 5, + "USERSEARCHKEY_EMAIL": 6, + "USERSEARCHKEY_STATE": 7, + "USERSEARCHKEY_TYPE": 8, + } +) -var UserSearchKey_value = map[string]int32{ - "USERSEARCHKEY_UNSPECIFIED": 0, - "USERSEARCHKEY_USER_NAME": 1, - "USERSEARCHKEY_FIRST_NAME": 2, - "USERSEARCHKEY_LAST_NAME": 3, - "USERSEARCHKEY_NICK_NAME": 4, - "USERSEARCHKEY_DISPLAY_NAME": 5, - "USERSEARCHKEY_EMAIL": 6, - "USERSEARCHKEY_STATE": 7, - "USERSEARCHKEY_TYPE": 8, +func (x UserSearchKey) Enum() *UserSearchKey { + p := new(UserSearchKey) + *p = x + return p } func (x UserSearchKey) String() string { - return proto.EnumName(UserSearchKey_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } +func (UserSearchKey) Descriptor() protoreflect.EnumDescriptor { + return file_management_proto_enumTypes[3].Descriptor() +} + +func (UserSearchKey) Type() protoreflect.EnumType { + return &file_management_proto_enumTypes[3] +} + +func (x UserSearchKey) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use UserSearchKey.Descriptor instead. func (UserSearchKey) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{3} + return file_management_proto_rawDescGZIP(), []int{3} } type SearchMethod int32 @@ -190,40 +279,61 @@ const ( SearchMethod_SEARCHMETHOD_LIST_CONTAINS SearchMethod = 10 ) -var SearchMethod_name = map[int32]string{ - 0: "SEARCHMETHOD_EQUALS", - 1: "SEARCHMETHOD_STARTS_WITH", - 2: "SEARCHMETHOD_CONTAINS", - 3: "SEARCHMETHOD_EQUALS_IGNORE_CASE", - 4: "SEARCHMETHOD_STARTS_WITH_IGNORE_CASE", - 5: "SEARCHMETHOD_CONTAINS_IGNORE_CASE", - 6: "SEARCHMETHOD_NOT_EQUALS", - 7: "SEARCHMETHOD_GREATER_THAN", - 8: "SEARCHMETHOD_LESS_THAN", - 9: "SEARCHMETHOD_IS_ONE_OF", - 10: "SEARCHMETHOD_LIST_CONTAINS", -} +// Enum value maps for SearchMethod. +var ( + SearchMethod_name = map[int32]string{ + 0: "SEARCHMETHOD_EQUALS", + 1: "SEARCHMETHOD_STARTS_WITH", + 2: "SEARCHMETHOD_CONTAINS", + 3: "SEARCHMETHOD_EQUALS_IGNORE_CASE", + 4: "SEARCHMETHOD_STARTS_WITH_IGNORE_CASE", + 5: "SEARCHMETHOD_CONTAINS_IGNORE_CASE", + 6: "SEARCHMETHOD_NOT_EQUALS", + 7: "SEARCHMETHOD_GREATER_THAN", + 8: "SEARCHMETHOD_LESS_THAN", + 9: "SEARCHMETHOD_IS_ONE_OF", + 10: "SEARCHMETHOD_LIST_CONTAINS", + } + SearchMethod_value = map[string]int32{ + "SEARCHMETHOD_EQUALS": 0, + "SEARCHMETHOD_STARTS_WITH": 1, + "SEARCHMETHOD_CONTAINS": 2, + "SEARCHMETHOD_EQUALS_IGNORE_CASE": 3, + "SEARCHMETHOD_STARTS_WITH_IGNORE_CASE": 4, + "SEARCHMETHOD_CONTAINS_IGNORE_CASE": 5, + "SEARCHMETHOD_NOT_EQUALS": 6, + "SEARCHMETHOD_GREATER_THAN": 7, + "SEARCHMETHOD_LESS_THAN": 8, + "SEARCHMETHOD_IS_ONE_OF": 9, + "SEARCHMETHOD_LIST_CONTAINS": 10, + } +) -var SearchMethod_value = map[string]int32{ - "SEARCHMETHOD_EQUALS": 0, - "SEARCHMETHOD_STARTS_WITH": 1, - "SEARCHMETHOD_CONTAINS": 2, - "SEARCHMETHOD_EQUALS_IGNORE_CASE": 3, - "SEARCHMETHOD_STARTS_WITH_IGNORE_CASE": 4, - "SEARCHMETHOD_CONTAINS_IGNORE_CASE": 5, - "SEARCHMETHOD_NOT_EQUALS": 6, - "SEARCHMETHOD_GREATER_THAN": 7, - "SEARCHMETHOD_LESS_THAN": 8, - "SEARCHMETHOD_IS_ONE_OF": 9, - "SEARCHMETHOD_LIST_CONTAINS": 10, +func (x SearchMethod) Enum() *SearchMethod { + p := new(SearchMethod) + *p = x + return p } func (x SearchMethod) String() string { - return proto.EnumName(SearchMethod_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } +func (SearchMethod) Descriptor() protoreflect.EnumDescriptor { + return file_management_proto_enumTypes[4].Descriptor() +} + +func (SearchMethod) Type() protoreflect.EnumType { + return &file_management_proto_enumTypes[4] +} + +func (x SearchMethod) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SearchMethod.Descriptor instead. func (SearchMethod) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{4} + return file_management_proto_rawDescGZIP(), []int{4} } type MfaType int32 @@ -234,24 +344,45 @@ const ( MfaType_MFATYPE_OTP MfaType = 2 ) -var MfaType_name = map[int32]string{ - 0: "MFATYPE_UNSPECIFIED", - 1: "MFATYPE_SMS", - 2: "MFATYPE_OTP", -} +// Enum value maps for MfaType. +var ( + MfaType_name = map[int32]string{ + 0: "MFATYPE_UNSPECIFIED", + 1: "MFATYPE_SMS", + 2: "MFATYPE_OTP", + } + MfaType_value = map[string]int32{ + "MFATYPE_UNSPECIFIED": 0, + "MFATYPE_SMS": 1, + "MFATYPE_OTP": 2, + } +) -var MfaType_value = map[string]int32{ - "MFATYPE_UNSPECIFIED": 0, - "MFATYPE_SMS": 1, - "MFATYPE_OTP": 2, +func (x MfaType) Enum() *MfaType { + p := new(MfaType) + *p = x + return p } func (x MfaType) String() string { - return proto.EnumName(MfaType_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } +func (MfaType) Descriptor() protoreflect.EnumDescriptor { + return file_management_proto_enumTypes[5].Descriptor() +} + +func (MfaType) Type() protoreflect.EnumType { + return &file_management_proto_enumTypes[5] +} + +func (x MfaType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use MfaType.Descriptor instead. func (MfaType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{5} + return file_management_proto_rawDescGZIP(), []int{5} } type MFAState int32 @@ -263,26 +394,47 @@ const ( MFAState_MFASTATE_REMOVED MFAState = 3 ) -var MFAState_name = map[int32]string{ - 0: "MFASTATE_UNSPECIFIED", - 1: "MFASTATE_NOT_READY", - 2: "MFASTATE_READY", - 3: "MFASTATE_REMOVED", -} +// Enum value maps for MFAState. +var ( + MFAState_name = map[int32]string{ + 0: "MFASTATE_UNSPECIFIED", + 1: "MFASTATE_NOT_READY", + 2: "MFASTATE_READY", + 3: "MFASTATE_REMOVED", + } + MFAState_value = map[string]int32{ + "MFASTATE_UNSPECIFIED": 0, + "MFASTATE_NOT_READY": 1, + "MFASTATE_READY": 2, + "MFASTATE_REMOVED": 3, + } +) -var MFAState_value = map[string]int32{ - "MFASTATE_UNSPECIFIED": 0, - "MFASTATE_NOT_READY": 1, - "MFASTATE_READY": 2, - "MFASTATE_REMOVED": 3, +func (x MFAState) Enum() *MFAState { + p := new(MFAState) + *p = x + return p } func (x MFAState) String() string { - return proto.EnumName(MFAState_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } +func (MFAState) Descriptor() protoreflect.EnumDescriptor { + return file_management_proto_enumTypes[6].Descriptor() +} + +func (MFAState) Type() protoreflect.EnumType { + return &file_management_proto_enumTypes[6] +} + +func (x MFAState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use MFAState.Descriptor instead. func (MFAState) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{6} + return file_management_proto_rawDescGZIP(), []int{6} } type NotificationType int32 @@ -292,22 +444,43 @@ const ( NotificationType_NOTIFICATIONTYPE_SMS NotificationType = 1 ) -var NotificationType_name = map[int32]string{ - 0: "NOTIFICATIONTYPE_EMAIL", - 1: "NOTIFICATIONTYPE_SMS", -} +// Enum value maps for NotificationType. +var ( + NotificationType_name = map[int32]string{ + 0: "NOTIFICATIONTYPE_EMAIL", + 1: "NOTIFICATIONTYPE_SMS", + } + NotificationType_value = map[string]int32{ + "NOTIFICATIONTYPE_EMAIL": 0, + "NOTIFICATIONTYPE_SMS": 1, + } +) -var NotificationType_value = map[string]int32{ - "NOTIFICATIONTYPE_EMAIL": 0, - "NOTIFICATIONTYPE_SMS": 1, +func (x NotificationType) Enum() *NotificationType { + p := new(NotificationType) + *p = x + return p } func (x NotificationType) String() string { - return proto.EnumName(NotificationType_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } +func (NotificationType) Descriptor() protoreflect.EnumDescriptor { + return file_management_proto_enumTypes[7].Descriptor() +} + +func (NotificationType) Type() protoreflect.EnumType { + return &file_management_proto_enumTypes[7] +} + +func (x NotificationType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use NotificationType.Descriptor instead. func (NotificationType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{7} + return file_management_proto_rawDescGZIP(), []int{7} } type PolicyState int32 @@ -319,26 +492,47 @@ const ( PolicyState_POLICYSTATE_DELETED PolicyState = 3 ) -var PolicyState_name = map[int32]string{ - 0: "POLICYSTATE_UNSPECIFIED", - 1: "POLICYSTATE_ACTIVE", - 2: "POLICYSTATE_INACTIVE", - 3: "POLICYSTATE_DELETED", -} +// Enum value maps for PolicyState. +var ( + PolicyState_name = map[int32]string{ + 0: "POLICYSTATE_UNSPECIFIED", + 1: "POLICYSTATE_ACTIVE", + 2: "POLICYSTATE_INACTIVE", + 3: "POLICYSTATE_DELETED", + } + PolicyState_value = map[string]int32{ + "POLICYSTATE_UNSPECIFIED": 0, + "POLICYSTATE_ACTIVE": 1, + "POLICYSTATE_INACTIVE": 2, + "POLICYSTATE_DELETED": 3, + } +) -var PolicyState_value = map[string]int32{ - "POLICYSTATE_UNSPECIFIED": 0, - "POLICYSTATE_ACTIVE": 1, - "POLICYSTATE_INACTIVE": 2, - "POLICYSTATE_DELETED": 3, +func (x PolicyState) Enum() *PolicyState { + p := new(PolicyState) + *p = x + return p } func (x PolicyState) String() string { - return proto.EnumName(PolicyState_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } +func (PolicyState) Descriptor() protoreflect.EnumDescriptor { + return file_management_proto_enumTypes[8].Descriptor() +} + +func (PolicyState) Type() protoreflect.EnumType { + return &file_management_proto_enumTypes[8] +} + +func (x PolicyState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use PolicyState.Descriptor instead. func (PolicyState) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{8} + return file_management_proto_rawDescGZIP(), []int{8} } type OrgState int32 @@ -349,24 +543,45 @@ const ( OrgState_ORGSTATE_INACTIVE OrgState = 2 ) -var OrgState_name = map[int32]string{ - 0: "ORGSTATE_UNSPECIFIED", - 1: "ORGSTATE_ACTIVE", - 2: "ORGSTATE_INACTIVE", -} +// Enum value maps for OrgState. +var ( + OrgState_name = map[int32]string{ + 0: "ORGSTATE_UNSPECIFIED", + 1: "ORGSTATE_ACTIVE", + 2: "ORGSTATE_INACTIVE", + } + OrgState_value = map[string]int32{ + "ORGSTATE_UNSPECIFIED": 0, + "ORGSTATE_ACTIVE": 1, + "ORGSTATE_INACTIVE": 2, + } +) -var OrgState_value = map[string]int32{ - "ORGSTATE_UNSPECIFIED": 0, - "ORGSTATE_ACTIVE": 1, - "ORGSTATE_INACTIVE": 2, +func (x OrgState) Enum() *OrgState { + p := new(OrgState) + *p = x + return p } func (x OrgState) String() string { - return proto.EnumName(OrgState_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } +func (OrgState) Descriptor() protoreflect.EnumDescriptor { + return file_management_proto_enumTypes[9].Descriptor() +} + +func (OrgState) Type() protoreflect.EnumType { + return &file_management_proto_enumTypes[9] +} + +func (x OrgState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use OrgState.Descriptor instead. func (OrgState) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{9} + return file_management_proto_rawDescGZIP(), []int{9} } type OrgDomainValidationType int32 @@ -377,24 +592,45 @@ const ( OrgDomainValidationType_ORGDOMAINVALIDATIONTYPE_DNS OrgDomainValidationType = 2 ) -var OrgDomainValidationType_name = map[int32]string{ - 0: "ORGDOMAINVALIDATIONTYPE_UNSPECIFIED", - 1: "ORGDOMAINVALIDATIONTYPE_HTTP", - 2: "ORGDOMAINVALIDATIONTYPE_DNS", -} +// Enum value maps for OrgDomainValidationType. +var ( + OrgDomainValidationType_name = map[int32]string{ + 0: "ORGDOMAINVALIDATIONTYPE_UNSPECIFIED", + 1: "ORGDOMAINVALIDATIONTYPE_HTTP", + 2: "ORGDOMAINVALIDATIONTYPE_DNS", + } + OrgDomainValidationType_value = map[string]int32{ + "ORGDOMAINVALIDATIONTYPE_UNSPECIFIED": 0, + "ORGDOMAINVALIDATIONTYPE_HTTP": 1, + "ORGDOMAINVALIDATIONTYPE_DNS": 2, + } +) -var OrgDomainValidationType_value = map[string]int32{ - "ORGDOMAINVALIDATIONTYPE_UNSPECIFIED": 0, - "ORGDOMAINVALIDATIONTYPE_HTTP": 1, - "ORGDOMAINVALIDATIONTYPE_DNS": 2, +func (x OrgDomainValidationType) Enum() *OrgDomainValidationType { + p := new(OrgDomainValidationType) + *p = x + return p } func (x OrgDomainValidationType) String() string { - return proto.EnumName(OrgDomainValidationType_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } +func (OrgDomainValidationType) Descriptor() protoreflect.EnumDescriptor { + return file_management_proto_enumTypes[10].Descriptor() +} + +func (OrgDomainValidationType) Type() protoreflect.EnumType { + return &file_management_proto_enumTypes[10] +} + +func (x OrgDomainValidationType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use OrgDomainValidationType.Descriptor instead. func (OrgDomainValidationType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{10} + return file_management_proto_rawDescGZIP(), []int{10} } type OrgDomainSearchKey int32 @@ -404,22 +640,43 @@ const ( OrgDomainSearchKey_ORGDOMAINSEARCHKEY_DOMAIN OrgDomainSearchKey = 1 ) -var OrgDomainSearchKey_name = map[int32]string{ - 0: "ORGDOMAINSEARCHKEY_UNSPECIFIED", - 1: "ORGDOMAINSEARCHKEY_DOMAIN", -} +// Enum value maps for OrgDomainSearchKey. +var ( + OrgDomainSearchKey_name = map[int32]string{ + 0: "ORGDOMAINSEARCHKEY_UNSPECIFIED", + 1: "ORGDOMAINSEARCHKEY_DOMAIN", + } + OrgDomainSearchKey_value = map[string]int32{ + "ORGDOMAINSEARCHKEY_UNSPECIFIED": 0, + "ORGDOMAINSEARCHKEY_DOMAIN": 1, + } +) -var OrgDomainSearchKey_value = map[string]int32{ - "ORGDOMAINSEARCHKEY_UNSPECIFIED": 0, - "ORGDOMAINSEARCHKEY_DOMAIN": 1, +func (x OrgDomainSearchKey) Enum() *OrgDomainSearchKey { + p := new(OrgDomainSearchKey) + *p = x + return p } func (x OrgDomainSearchKey) String() string { - return proto.EnumName(OrgDomainSearchKey_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } +func (OrgDomainSearchKey) Descriptor() protoreflect.EnumDescriptor { + return file_management_proto_enumTypes[11].Descriptor() +} + +func (OrgDomainSearchKey) Type() protoreflect.EnumType { + return &file_management_proto_enumTypes[11] +} + +func (x OrgDomainSearchKey) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use OrgDomainSearchKey.Descriptor instead. func (OrgDomainSearchKey) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{11} + return file_management_proto_rawDescGZIP(), []int{11} } type OrgMemberSearchKey int32 @@ -432,28 +689,49 @@ const ( OrgMemberSearchKey_ORGMEMBERSEARCHKEY_USER_ID OrgMemberSearchKey = 4 ) -var OrgMemberSearchKey_name = map[int32]string{ - 0: "ORGMEMBERSEARCHKEY_UNSPECIFIED", - 1: "ORGMEMBERSEARCHKEY_FIRST_NAME", - 2: "ORGMEMBERSEARCHKEY_LAST_NAME", - 3: "ORGMEMBERSEARCHKEY_EMAIL", - 4: "ORGMEMBERSEARCHKEY_USER_ID", -} +// Enum value maps for OrgMemberSearchKey. +var ( + OrgMemberSearchKey_name = map[int32]string{ + 0: "ORGMEMBERSEARCHKEY_UNSPECIFIED", + 1: "ORGMEMBERSEARCHKEY_FIRST_NAME", + 2: "ORGMEMBERSEARCHKEY_LAST_NAME", + 3: "ORGMEMBERSEARCHKEY_EMAIL", + 4: "ORGMEMBERSEARCHKEY_USER_ID", + } + OrgMemberSearchKey_value = map[string]int32{ + "ORGMEMBERSEARCHKEY_UNSPECIFIED": 0, + "ORGMEMBERSEARCHKEY_FIRST_NAME": 1, + "ORGMEMBERSEARCHKEY_LAST_NAME": 2, + "ORGMEMBERSEARCHKEY_EMAIL": 3, + "ORGMEMBERSEARCHKEY_USER_ID": 4, + } +) -var OrgMemberSearchKey_value = map[string]int32{ - "ORGMEMBERSEARCHKEY_UNSPECIFIED": 0, - "ORGMEMBERSEARCHKEY_FIRST_NAME": 1, - "ORGMEMBERSEARCHKEY_LAST_NAME": 2, - "ORGMEMBERSEARCHKEY_EMAIL": 3, - "ORGMEMBERSEARCHKEY_USER_ID": 4, +func (x OrgMemberSearchKey) Enum() *OrgMemberSearchKey { + p := new(OrgMemberSearchKey) + *p = x + return p } func (x OrgMemberSearchKey) String() string { - return proto.EnumName(OrgMemberSearchKey_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } +func (OrgMemberSearchKey) Descriptor() protoreflect.EnumDescriptor { + return file_management_proto_enumTypes[12].Descriptor() +} + +func (OrgMemberSearchKey) Type() protoreflect.EnumType { + return &file_management_proto_enumTypes[12] +} + +func (x OrgMemberSearchKey) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use OrgMemberSearchKey.Descriptor instead. func (OrgMemberSearchKey) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{12} + return file_management_proto_rawDescGZIP(), []int{12} } type ProjectSearchKey int32 @@ -463,22 +741,43 @@ const ( ProjectSearchKey_PROJECTSEARCHKEY_PROJECT_NAME ProjectSearchKey = 1 ) -var ProjectSearchKey_name = map[int32]string{ - 0: "PROJECTSEARCHKEY_UNSPECIFIED", - 1: "PROJECTSEARCHKEY_PROJECT_NAME", -} +// Enum value maps for ProjectSearchKey. +var ( + ProjectSearchKey_name = map[int32]string{ + 0: "PROJECTSEARCHKEY_UNSPECIFIED", + 1: "PROJECTSEARCHKEY_PROJECT_NAME", + } + ProjectSearchKey_value = map[string]int32{ + "PROJECTSEARCHKEY_UNSPECIFIED": 0, + "PROJECTSEARCHKEY_PROJECT_NAME": 1, + } +) -var ProjectSearchKey_value = map[string]int32{ - "PROJECTSEARCHKEY_UNSPECIFIED": 0, - "PROJECTSEARCHKEY_PROJECT_NAME": 1, +func (x ProjectSearchKey) Enum() *ProjectSearchKey { + p := new(ProjectSearchKey) + *p = x + return p } func (x ProjectSearchKey) String() string { - return proto.EnumName(ProjectSearchKey_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } +func (ProjectSearchKey) Descriptor() protoreflect.EnumDescriptor { + return file_management_proto_enumTypes[13].Descriptor() +} + +func (ProjectSearchKey) Type() protoreflect.EnumType { + return &file_management_proto_enumTypes[13] +} + +func (x ProjectSearchKey) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ProjectSearchKey.Descriptor instead. func (ProjectSearchKey) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{13} + return file_management_proto_rawDescGZIP(), []int{13} } type ProjectState int32 @@ -489,24 +788,45 @@ const ( ProjectState_PROJECTSTATE_INACTIVE ProjectState = 2 ) -var ProjectState_name = map[int32]string{ - 0: "PROJECTSTATE_UNSPECIFIED", - 1: "PROJECTSTATE_ACTIVE", - 2: "PROJECTSTATE_INACTIVE", -} +// Enum value maps for ProjectState. +var ( + ProjectState_name = map[int32]string{ + 0: "PROJECTSTATE_UNSPECIFIED", + 1: "PROJECTSTATE_ACTIVE", + 2: "PROJECTSTATE_INACTIVE", + } + ProjectState_value = map[string]int32{ + "PROJECTSTATE_UNSPECIFIED": 0, + "PROJECTSTATE_ACTIVE": 1, + "PROJECTSTATE_INACTIVE": 2, + } +) -var ProjectState_value = map[string]int32{ - "PROJECTSTATE_UNSPECIFIED": 0, - "PROJECTSTATE_ACTIVE": 1, - "PROJECTSTATE_INACTIVE": 2, +func (x ProjectState) Enum() *ProjectState { + p := new(ProjectState) + *p = x + return p } func (x ProjectState) String() string { - return proto.EnumName(ProjectState_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } +func (ProjectState) Descriptor() protoreflect.EnumDescriptor { + return file_management_proto_enumTypes[14].Descriptor() +} + +func (ProjectState) Type() protoreflect.EnumType { + return &file_management_proto_enumTypes[14] +} + +func (x ProjectState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ProjectState.Descriptor instead. func (ProjectState) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{14} + return file_management_proto_rawDescGZIP(), []int{14} } type ProjectRoleSearchKey int32 @@ -517,24 +837,45 @@ const ( ProjectRoleSearchKey_PROJECTROLESEARCHKEY_DISPLAY_NAME ProjectRoleSearchKey = 2 ) -var ProjectRoleSearchKey_name = map[int32]string{ - 0: "PROJECTROLESEARCHKEY_UNSPECIFIED", - 1: "PROJECTROLESEARCHKEY_KEY", - 2: "PROJECTROLESEARCHKEY_DISPLAY_NAME", -} +// Enum value maps for ProjectRoleSearchKey. +var ( + ProjectRoleSearchKey_name = map[int32]string{ + 0: "PROJECTROLESEARCHKEY_UNSPECIFIED", + 1: "PROJECTROLESEARCHKEY_KEY", + 2: "PROJECTROLESEARCHKEY_DISPLAY_NAME", + } + ProjectRoleSearchKey_value = map[string]int32{ + "PROJECTROLESEARCHKEY_UNSPECIFIED": 0, + "PROJECTROLESEARCHKEY_KEY": 1, + "PROJECTROLESEARCHKEY_DISPLAY_NAME": 2, + } +) -var ProjectRoleSearchKey_value = map[string]int32{ - "PROJECTROLESEARCHKEY_UNSPECIFIED": 0, - "PROJECTROLESEARCHKEY_KEY": 1, - "PROJECTROLESEARCHKEY_DISPLAY_NAME": 2, +func (x ProjectRoleSearchKey) Enum() *ProjectRoleSearchKey { + p := new(ProjectRoleSearchKey) + *p = x + return p } func (x ProjectRoleSearchKey) String() string { - return proto.EnumName(ProjectRoleSearchKey_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } +func (ProjectRoleSearchKey) Descriptor() protoreflect.EnumDescriptor { + return file_management_proto_enumTypes[15].Descriptor() +} + +func (ProjectRoleSearchKey) Type() protoreflect.EnumType { + return &file_management_proto_enumTypes[15] +} + +func (x ProjectRoleSearchKey) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ProjectRoleSearchKey.Descriptor instead. func (ProjectRoleSearchKey) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{15} + return file_management_proto_rawDescGZIP(), []int{15} } type ProjectMemberSearchKey int32 @@ -548,30 +889,51 @@ const ( ProjectMemberSearchKey_PROJECTMEMBERSEARCHKEY_USER_NAME ProjectMemberSearchKey = 5 ) -var ProjectMemberSearchKey_name = map[int32]string{ - 0: "PROJECTMEMBERSEARCHKEY_UNSPECIFIED", - 1: "PROJECTMEMBERSEARCHKEY_FIRST_NAME", - 2: "PROJECTMEMBERSEARCHKEY_LAST_NAME", - 3: "PROJECTMEMBERSEARCHKEY_EMAIL", - 4: "PROJECTMEMBERSEARCHKEY_USER_ID", - 5: "PROJECTMEMBERSEARCHKEY_USER_NAME", -} +// Enum value maps for ProjectMemberSearchKey. +var ( + ProjectMemberSearchKey_name = map[int32]string{ + 0: "PROJECTMEMBERSEARCHKEY_UNSPECIFIED", + 1: "PROJECTMEMBERSEARCHKEY_FIRST_NAME", + 2: "PROJECTMEMBERSEARCHKEY_LAST_NAME", + 3: "PROJECTMEMBERSEARCHKEY_EMAIL", + 4: "PROJECTMEMBERSEARCHKEY_USER_ID", + 5: "PROJECTMEMBERSEARCHKEY_USER_NAME", + } + ProjectMemberSearchKey_value = map[string]int32{ + "PROJECTMEMBERSEARCHKEY_UNSPECIFIED": 0, + "PROJECTMEMBERSEARCHKEY_FIRST_NAME": 1, + "PROJECTMEMBERSEARCHKEY_LAST_NAME": 2, + "PROJECTMEMBERSEARCHKEY_EMAIL": 3, + "PROJECTMEMBERSEARCHKEY_USER_ID": 4, + "PROJECTMEMBERSEARCHKEY_USER_NAME": 5, + } +) -var ProjectMemberSearchKey_value = map[string]int32{ - "PROJECTMEMBERSEARCHKEY_UNSPECIFIED": 0, - "PROJECTMEMBERSEARCHKEY_FIRST_NAME": 1, - "PROJECTMEMBERSEARCHKEY_LAST_NAME": 2, - "PROJECTMEMBERSEARCHKEY_EMAIL": 3, - "PROJECTMEMBERSEARCHKEY_USER_ID": 4, - "PROJECTMEMBERSEARCHKEY_USER_NAME": 5, +func (x ProjectMemberSearchKey) Enum() *ProjectMemberSearchKey { + p := new(ProjectMemberSearchKey) + *p = x + return p } func (x ProjectMemberSearchKey) String() string { - return proto.EnumName(ProjectMemberSearchKey_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } +func (ProjectMemberSearchKey) Descriptor() protoreflect.EnumDescriptor { + return file_management_proto_enumTypes[16].Descriptor() +} + +func (ProjectMemberSearchKey) Type() protoreflect.EnumType { + return &file_management_proto_enumTypes[16] +} + +func (x ProjectMemberSearchKey) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ProjectMemberSearchKey.Descriptor instead. func (ProjectMemberSearchKey) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{16} + return file_management_proto_rawDescGZIP(), []int{16} } type AppState int32 @@ -582,24 +944,45 @@ const ( AppState_APPSTATE_INACTIVE AppState = 2 ) -var AppState_name = map[int32]string{ - 0: "APPSTATE_UNSPECIFIED", - 1: "APPSTATE_ACTIVE", - 2: "APPSTATE_INACTIVE", -} +// Enum value maps for AppState. +var ( + AppState_name = map[int32]string{ + 0: "APPSTATE_UNSPECIFIED", + 1: "APPSTATE_ACTIVE", + 2: "APPSTATE_INACTIVE", + } + AppState_value = map[string]int32{ + "APPSTATE_UNSPECIFIED": 0, + "APPSTATE_ACTIVE": 1, + "APPSTATE_INACTIVE": 2, + } +) -var AppState_value = map[string]int32{ - "APPSTATE_UNSPECIFIED": 0, - "APPSTATE_ACTIVE": 1, - "APPSTATE_INACTIVE": 2, +func (x AppState) Enum() *AppState { + p := new(AppState) + *p = x + return p } func (x AppState) String() string { - return proto.EnumName(AppState_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } +func (AppState) Descriptor() protoreflect.EnumDescriptor { + return file_management_proto_enumTypes[17].Descriptor() +} + +func (AppState) Type() protoreflect.EnumType { + return &file_management_proto_enumTypes[17] +} + +func (x AppState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use AppState.Descriptor instead. func (AppState) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{17} + return file_management_proto_rawDescGZIP(), []int{17} } type OIDCVersion int32 @@ -608,20 +991,41 @@ const ( OIDCVersion_OIDCV1_0 OIDCVersion = 0 ) -var OIDCVersion_name = map[int32]string{ - 0: "OIDCV1_0", -} +// Enum value maps for OIDCVersion. +var ( + OIDCVersion_name = map[int32]string{ + 0: "OIDCV1_0", + } + OIDCVersion_value = map[string]int32{ + "OIDCV1_0": 0, + } +) -var OIDCVersion_value = map[string]int32{ - "OIDCV1_0": 0, +func (x OIDCVersion) Enum() *OIDCVersion { + p := new(OIDCVersion) + *p = x + return p } func (x OIDCVersion) String() string { - return proto.EnumName(OIDCVersion_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } +func (OIDCVersion) Descriptor() protoreflect.EnumDescriptor { + return file_management_proto_enumTypes[18].Descriptor() +} + +func (OIDCVersion) Type() protoreflect.EnumType { + return &file_management_proto_enumTypes[18] +} + +func (x OIDCVersion) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use OIDCVersion.Descriptor instead. func (OIDCVersion) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{18} + return file_management_proto_rawDescGZIP(), []int{18} } type OIDCResponseType int32 @@ -632,24 +1036,45 @@ const ( OIDCResponseType_OIDCRESPONSETYPE_ID_TOKEN_TOKEN OIDCResponseType = 2 ) -var OIDCResponseType_name = map[int32]string{ - 0: "OIDCRESPONSETYPE_CODE", - 1: "OIDCRESPONSETYPE_ID_TOKEN", - 2: "OIDCRESPONSETYPE_ID_TOKEN_TOKEN", -} +// Enum value maps for OIDCResponseType. +var ( + OIDCResponseType_name = map[int32]string{ + 0: "OIDCRESPONSETYPE_CODE", + 1: "OIDCRESPONSETYPE_ID_TOKEN", + 2: "OIDCRESPONSETYPE_ID_TOKEN_TOKEN", + } + OIDCResponseType_value = map[string]int32{ + "OIDCRESPONSETYPE_CODE": 0, + "OIDCRESPONSETYPE_ID_TOKEN": 1, + "OIDCRESPONSETYPE_ID_TOKEN_TOKEN": 2, + } +) -var OIDCResponseType_value = map[string]int32{ - "OIDCRESPONSETYPE_CODE": 0, - "OIDCRESPONSETYPE_ID_TOKEN": 1, - "OIDCRESPONSETYPE_ID_TOKEN_TOKEN": 2, +func (x OIDCResponseType) Enum() *OIDCResponseType { + p := new(OIDCResponseType) + *p = x + return p } func (x OIDCResponseType) String() string { - return proto.EnumName(OIDCResponseType_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } +func (OIDCResponseType) Descriptor() protoreflect.EnumDescriptor { + return file_management_proto_enumTypes[19].Descriptor() +} + +func (OIDCResponseType) Type() protoreflect.EnumType { + return &file_management_proto_enumTypes[19] +} + +func (x OIDCResponseType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use OIDCResponseType.Descriptor instead. func (OIDCResponseType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{19} + return file_management_proto_rawDescGZIP(), []int{19} } type OIDCGrantType int32 @@ -660,24 +1085,45 @@ const ( OIDCGrantType_OIDCGRANTTYPE_REFRESH_TOKEN OIDCGrantType = 2 ) -var OIDCGrantType_name = map[int32]string{ - 0: "OIDCGRANTTYPE_AUTHORIZATION_CODE", - 1: "OIDCGRANTTYPE_IMPLICIT", - 2: "OIDCGRANTTYPE_REFRESH_TOKEN", -} +// Enum value maps for OIDCGrantType. +var ( + OIDCGrantType_name = map[int32]string{ + 0: "OIDCGRANTTYPE_AUTHORIZATION_CODE", + 1: "OIDCGRANTTYPE_IMPLICIT", + 2: "OIDCGRANTTYPE_REFRESH_TOKEN", + } + OIDCGrantType_value = map[string]int32{ + "OIDCGRANTTYPE_AUTHORIZATION_CODE": 0, + "OIDCGRANTTYPE_IMPLICIT": 1, + "OIDCGRANTTYPE_REFRESH_TOKEN": 2, + } +) -var OIDCGrantType_value = map[string]int32{ - "OIDCGRANTTYPE_AUTHORIZATION_CODE": 0, - "OIDCGRANTTYPE_IMPLICIT": 1, - "OIDCGRANTTYPE_REFRESH_TOKEN": 2, +func (x OIDCGrantType) Enum() *OIDCGrantType { + p := new(OIDCGrantType) + *p = x + return p } func (x OIDCGrantType) String() string { - return proto.EnumName(OIDCGrantType_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } +func (OIDCGrantType) Descriptor() protoreflect.EnumDescriptor { + return file_management_proto_enumTypes[20].Descriptor() +} + +func (OIDCGrantType) Type() protoreflect.EnumType { + return &file_management_proto_enumTypes[20] +} + +func (x OIDCGrantType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use OIDCGrantType.Descriptor instead. func (OIDCGrantType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{20} + return file_management_proto_rawDescGZIP(), []int{20} } type OIDCApplicationType int32 @@ -688,24 +1134,45 @@ const ( OIDCApplicationType_OIDCAPPLICATIONTYPE_NATIVE OIDCApplicationType = 2 ) -var OIDCApplicationType_name = map[int32]string{ - 0: "OIDCAPPLICATIONTYPE_WEB", - 1: "OIDCAPPLICATIONTYPE_USER_AGENT", - 2: "OIDCAPPLICATIONTYPE_NATIVE", -} +// Enum value maps for OIDCApplicationType. +var ( + OIDCApplicationType_name = map[int32]string{ + 0: "OIDCAPPLICATIONTYPE_WEB", + 1: "OIDCAPPLICATIONTYPE_USER_AGENT", + 2: "OIDCAPPLICATIONTYPE_NATIVE", + } + OIDCApplicationType_value = map[string]int32{ + "OIDCAPPLICATIONTYPE_WEB": 0, + "OIDCAPPLICATIONTYPE_USER_AGENT": 1, + "OIDCAPPLICATIONTYPE_NATIVE": 2, + } +) -var OIDCApplicationType_value = map[string]int32{ - "OIDCAPPLICATIONTYPE_WEB": 0, - "OIDCAPPLICATIONTYPE_USER_AGENT": 1, - "OIDCAPPLICATIONTYPE_NATIVE": 2, +func (x OIDCApplicationType) Enum() *OIDCApplicationType { + p := new(OIDCApplicationType) + *p = x + return p } func (x OIDCApplicationType) String() string { - return proto.EnumName(OIDCApplicationType_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } +func (OIDCApplicationType) Descriptor() protoreflect.EnumDescriptor { + return file_management_proto_enumTypes[21].Descriptor() +} + +func (OIDCApplicationType) Type() protoreflect.EnumType { + return &file_management_proto_enumTypes[21] +} + +func (x OIDCApplicationType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use OIDCApplicationType.Descriptor instead. func (OIDCApplicationType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{21} + return file_management_proto_rawDescGZIP(), []int{21} } type OIDCAuthMethodType int32 @@ -716,24 +1183,45 @@ const ( OIDCAuthMethodType_OIDCAUTHMETHODTYPE_NONE OIDCAuthMethodType = 2 ) -var OIDCAuthMethodType_name = map[int32]string{ - 0: "OIDCAUTHMETHODTYPE_BASIC", - 1: "OIDCAUTHMETHODTYPE_POST", - 2: "OIDCAUTHMETHODTYPE_NONE", -} +// Enum value maps for OIDCAuthMethodType. +var ( + OIDCAuthMethodType_name = map[int32]string{ + 0: "OIDCAUTHMETHODTYPE_BASIC", + 1: "OIDCAUTHMETHODTYPE_POST", + 2: "OIDCAUTHMETHODTYPE_NONE", + } + OIDCAuthMethodType_value = map[string]int32{ + "OIDCAUTHMETHODTYPE_BASIC": 0, + "OIDCAUTHMETHODTYPE_POST": 1, + "OIDCAUTHMETHODTYPE_NONE": 2, + } +) -var OIDCAuthMethodType_value = map[string]int32{ - "OIDCAUTHMETHODTYPE_BASIC": 0, - "OIDCAUTHMETHODTYPE_POST": 1, - "OIDCAUTHMETHODTYPE_NONE": 2, +func (x OIDCAuthMethodType) Enum() *OIDCAuthMethodType { + p := new(OIDCAuthMethodType) + *p = x + return p } func (x OIDCAuthMethodType) String() string { - return proto.EnumName(OIDCAuthMethodType_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } +func (OIDCAuthMethodType) Descriptor() protoreflect.EnumDescriptor { + return file_management_proto_enumTypes[22].Descriptor() +} + +func (OIDCAuthMethodType) Type() protoreflect.EnumType { + return &file_management_proto_enumTypes[22] +} + +func (x OIDCAuthMethodType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use OIDCAuthMethodType.Descriptor instead. func (OIDCAuthMethodType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{22} + return file_management_proto_rawDescGZIP(), []int{22} } type ApplicationSearchKey int32 @@ -743,22 +1231,43 @@ const ( ApplicationSearchKey_APPLICATIONSEARCHKEY_APP_NAME ApplicationSearchKey = 1 ) -var ApplicationSearchKey_name = map[int32]string{ - 0: "APPLICATIONSERACHKEY_UNSPECIFIED", - 1: "APPLICATIONSEARCHKEY_APP_NAME", -} +// Enum value maps for ApplicationSearchKey. +var ( + ApplicationSearchKey_name = map[int32]string{ + 0: "APPLICATIONSERACHKEY_UNSPECIFIED", + 1: "APPLICATIONSEARCHKEY_APP_NAME", + } + ApplicationSearchKey_value = map[string]int32{ + "APPLICATIONSERACHKEY_UNSPECIFIED": 0, + "APPLICATIONSEARCHKEY_APP_NAME": 1, + } +) -var ApplicationSearchKey_value = map[string]int32{ - "APPLICATIONSERACHKEY_UNSPECIFIED": 0, - "APPLICATIONSEARCHKEY_APP_NAME": 1, +func (x ApplicationSearchKey) Enum() *ApplicationSearchKey { + p := new(ApplicationSearchKey) + *p = x + return p } func (x ApplicationSearchKey) String() string { - return proto.EnumName(ApplicationSearchKey_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } +func (ApplicationSearchKey) Descriptor() protoreflect.EnumDescriptor { + return file_management_proto_enumTypes[23].Descriptor() +} + +func (ApplicationSearchKey) Type() protoreflect.EnumType { + return &file_management_proto_enumTypes[23] +} + +func (x ApplicationSearchKey) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ApplicationSearchKey.Descriptor instead. func (ApplicationSearchKey) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{23} + return file_management_proto_rawDescGZIP(), []int{23} } type ProjectGrantState int32 @@ -769,24 +1278,45 @@ const ( ProjectGrantState_PROJECTGRANTSTATE_INACTIVE ProjectGrantState = 2 ) -var ProjectGrantState_name = map[int32]string{ - 0: "PROJECTGRANTSTATE_UNSPECIFIED", - 1: "PROJECTGRANTSTATE_ACTIVE", - 2: "PROJECTGRANTSTATE_INACTIVE", -} +// Enum value maps for ProjectGrantState. +var ( + ProjectGrantState_name = map[int32]string{ + 0: "PROJECTGRANTSTATE_UNSPECIFIED", + 1: "PROJECTGRANTSTATE_ACTIVE", + 2: "PROJECTGRANTSTATE_INACTIVE", + } + ProjectGrantState_value = map[string]int32{ + "PROJECTGRANTSTATE_UNSPECIFIED": 0, + "PROJECTGRANTSTATE_ACTIVE": 1, + "PROJECTGRANTSTATE_INACTIVE": 2, + } +) -var ProjectGrantState_value = map[string]int32{ - "PROJECTGRANTSTATE_UNSPECIFIED": 0, - "PROJECTGRANTSTATE_ACTIVE": 1, - "PROJECTGRANTSTATE_INACTIVE": 2, +func (x ProjectGrantState) Enum() *ProjectGrantState { + p := new(ProjectGrantState) + *p = x + return p } func (x ProjectGrantState) String() string { - return proto.EnumName(ProjectGrantState_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } +func (ProjectGrantState) Descriptor() protoreflect.EnumDescriptor { + return file_management_proto_enumTypes[24].Descriptor() +} + +func (ProjectGrantState) Type() protoreflect.EnumType { + return &file_management_proto_enumTypes[24] +} + +func (x ProjectGrantState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ProjectGrantState.Descriptor instead. func (ProjectGrantState) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{24} + return file_management_proto_rawDescGZIP(), []int{24} } type ProjectGrantSearchKey int32 @@ -797,24 +1327,45 @@ const ( ProjectGrantSearchKey_PROJECTGRANTSEARCHKEY_ROLE_KEY ProjectGrantSearchKey = 2 ) -var ProjectGrantSearchKey_name = map[int32]string{ - 0: "PROJECTGRANTSEARCHKEY_UNSPECIFIED", - 1: "PROJECTGRANTSEARCHKEY_PROJECT_NAME", - 2: "PROJECTGRANTSEARCHKEY_ROLE_KEY", -} +// Enum value maps for ProjectGrantSearchKey. +var ( + ProjectGrantSearchKey_name = map[int32]string{ + 0: "PROJECTGRANTSEARCHKEY_UNSPECIFIED", + 1: "PROJECTGRANTSEARCHKEY_PROJECT_NAME", + 2: "PROJECTGRANTSEARCHKEY_ROLE_KEY", + } + ProjectGrantSearchKey_value = map[string]int32{ + "PROJECTGRANTSEARCHKEY_UNSPECIFIED": 0, + "PROJECTGRANTSEARCHKEY_PROJECT_NAME": 1, + "PROJECTGRANTSEARCHKEY_ROLE_KEY": 2, + } +) -var ProjectGrantSearchKey_value = map[string]int32{ - "PROJECTGRANTSEARCHKEY_UNSPECIFIED": 0, - "PROJECTGRANTSEARCHKEY_PROJECT_NAME": 1, - "PROJECTGRANTSEARCHKEY_ROLE_KEY": 2, +func (x ProjectGrantSearchKey) Enum() *ProjectGrantSearchKey { + p := new(ProjectGrantSearchKey) + *p = x + return p } func (x ProjectGrantSearchKey) String() string { - return proto.EnumName(ProjectGrantSearchKey_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } +func (ProjectGrantSearchKey) Descriptor() protoreflect.EnumDescriptor { + return file_management_proto_enumTypes[25].Descriptor() +} + +func (ProjectGrantSearchKey) Type() protoreflect.EnumType { + return &file_management_proto_enumTypes[25] +} + +func (x ProjectGrantSearchKey) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ProjectGrantSearchKey.Descriptor instead. func (ProjectGrantSearchKey) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{25} + return file_management_proto_rawDescGZIP(), []int{25} } type ProjectGrantMemberSearchKey int32 @@ -828,30 +1379,51 @@ const ( ProjectGrantMemberSearchKey_PROJECTGRANTMEMBERSEARCHKEY_USER_NAME ProjectGrantMemberSearchKey = 5 ) -var ProjectGrantMemberSearchKey_name = map[int32]string{ - 0: "PROJECTGRANTMEMBERSEARCHKEY_UNSPECIFIED", - 1: "PROJECTGRANTMEMBERSEARCHKEY_FIRST_NAME", - 2: "PROJECTGRANTMEMBERSEARCHKEY_LAST_NAME", - 3: "PROJECTGRANTMEMBERSEARCHKEY_EMAIL", - 4: "PROJECTGRANTMEMBERSEARCHKEY_USER_ID", - 5: "PROJECTGRANTMEMBERSEARCHKEY_USER_NAME", -} +// Enum value maps for ProjectGrantMemberSearchKey. +var ( + ProjectGrantMemberSearchKey_name = map[int32]string{ + 0: "PROJECTGRANTMEMBERSEARCHKEY_UNSPECIFIED", + 1: "PROJECTGRANTMEMBERSEARCHKEY_FIRST_NAME", + 2: "PROJECTGRANTMEMBERSEARCHKEY_LAST_NAME", + 3: "PROJECTGRANTMEMBERSEARCHKEY_EMAIL", + 4: "PROJECTGRANTMEMBERSEARCHKEY_USER_ID", + 5: "PROJECTGRANTMEMBERSEARCHKEY_USER_NAME", + } + ProjectGrantMemberSearchKey_value = map[string]int32{ + "PROJECTGRANTMEMBERSEARCHKEY_UNSPECIFIED": 0, + "PROJECTGRANTMEMBERSEARCHKEY_FIRST_NAME": 1, + "PROJECTGRANTMEMBERSEARCHKEY_LAST_NAME": 2, + "PROJECTGRANTMEMBERSEARCHKEY_EMAIL": 3, + "PROJECTGRANTMEMBERSEARCHKEY_USER_ID": 4, + "PROJECTGRANTMEMBERSEARCHKEY_USER_NAME": 5, + } +) -var ProjectGrantMemberSearchKey_value = map[string]int32{ - "PROJECTGRANTMEMBERSEARCHKEY_UNSPECIFIED": 0, - "PROJECTGRANTMEMBERSEARCHKEY_FIRST_NAME": 1, - "PROJECTGRANTMEMBERSEARCHKEY_LAST_NAME": 2, - "PROJECTGRANTMEMBERSEARCHKEY_EMAIL": 3, - "PROJECTGRANTMEMBERSEARCHKEY_USER_ID": 4, - "PROJECTGRANTMEMBERSEARCHKEY_USER_NAME": 5, +func (x ProjectGrantMemberSearchKey) Enum() *ProjectGrantMemberSearchKey { + p := new(ProjectGrantMemberSearchKey) + *p = x + return p } func (x ProjectGrantMemberSearchKey) String() string { - return proto.EnumName(ProjectGrantMemberSearchKey_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } +func (ProjectGrantMemberSearchKey) Descriptor() protoreflect.EnumDescriptor { + return file_management_proto_enumTypes[26].Descriptor() +} + +func (ProjectGrantMemberSearchKey) Type() protoreflect.EnumType { + return &file_management_proto_enumTypes[26] +} + +func (x ProjectGrantMemberSearchKey) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ProjectGrantMemberSearchKey.Descriptor instead. func (ProjectGrantMemberSearchKey) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{26} + return file_management_proto_rawDescGZIP(), []int{26} } type UserGrantState int32 @@ -862,24 +1434,45 @@ const ( UserGrantState_USERGRANTSTATE_INACTIVE UserGrantState = 2 ) -var UserGrantState_name = map[int32]string{ - 0: "USERGRANTSTATE_UNSPECIFIED", - 1: "USERGRANTSTATE_ACTIVE", - 2: "USERGRANTSTATE_INACTIVE", -} +// Enum value maps for UserGrantState. +var ( + UserGrantState_name = map[int32]string{ + 0: "USERGRANTSTATE_UNSPECIFIED", + 1: "USERGRANTSTATE_ACTIVE", + 2: "USERGRANTSTATE_INACTIVE", + } + UserGrantState_value = map[string]int32{ + "USERGRANTSTATE_UNSPECIFIED": 0, + "USERGRANTSTATE_ACTIVE": 1, + "USERGRANTSTATE_INACTIVE": 2, + } +) -var UserGrantState_value = map[string]int32{ - "USERGRANTSTATE_UNSPECIFIED": 0, - "USERGRANTSTATE_ACTIVE": 1, - "USERGRANTSTATE_INACTIVE": 2, +func (x UserGrantState) Enum() *UserGrantState { + p := new(UserGrantState) + *p = x + return p } func (x UserGrantState) String() string { - return proto.EnumName(UserGrantState_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } +func (UserGrantState) Descriptor() protoreflect.EnumDescriptor { + return file_management_proto_enumTypes[27].Descriptor() +} + +func (UserGrantState) Type() protoreflect.EnumType { + return &file_management_proto_enumTypes[27] +} + +func (x UserGrantState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use UserGrantState.Descriptor instead. func (UserGrantState) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{27} + return file_management_proto_rawDescGZIP(), []int{27} } type UserGrantSearchKey int32 @@ -893,30 +1486,51 @@ const ( UserGrantSearchKey_USERGRANTSEARCHKEY_GRANT_ID UserGrantSearchKey = 5 ) -var UserGrantSearchKey_name = map[int32]string{ - 0: "USERGRANTSEARCHKEY_UNSPECIFIED", - 1: "USERGRANTSEARCHKEY_PROJECT_ID", - 2: "USERGRANTSEARCHKEY_USER_ID", - 3: "USERGRANTSEARCHKEY_ORG_ID", - 4: "USERGRANTSEARCHKEY_ROLE_KEY", - 5: "USERGRANTSEARCHKEY_GRANT_ID", -} +// Enum value maps for UserGrantSearchKey. +var ( + UserGrantSearchKey_name = map[int32]string{ + 0: "USERGRANTSEARCHKEY_UNSPECIFIED", + 1: "USERGRANTSEARCHKEY_PROJECT_ID", + 2: "USERGRANTSEARCHKEY_USER_ID", + 3: "USERGRANTSEARCHKEY_ORG_ID", + 4: "USERGRANTSEARCHKEY_ROLE_KEY", + 5: "USERGRANTSEARCHKEY_GRANT_ID", + } + UserGrantSearchKey_value = map[string]int32{ + "USERGRANTSEARCHKEY_UNSPECIFIED": 0, + "USERGRANTSEARCHKEY_PROJECT_ID": 1, + "USERGRANTSEARCHKEY_USER_ID": 2, + "USERGRANTSEARCHKEY_ORG_ID": 3, + "USERGRANTSEARCHKEY_ROLE_KEY": 4, + "USERGRANTSEARCHKEY_GRANT_ID": 5, + } +) -var UserGrantSearchKey_value = map[string]int32{ - "USERGRANTSEARCHKEY_UNSPECIFIED": 0, - "USERGRANTSEARCHKEY_PROJECT_ID": 1, - "USERGRANTSEARCHKEY_USER_ID": 2, - "USERGRANTSEARCHKEY_ORG_ID": 3, - "USERGRANTSEARCHKEY_ROLE_KEY": 4, - "USERGRANTSEARCHKEY_GRANT_ID": 5, +func (x UserGrantSearchKey) Enum() *UserGrantSearchKey { + p := new(UserGrantSearchKey) + *p = x + return p } func (x UserGrantSearchKey) String() string { - return proto.EnumName(UserGrantSearchKey_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } +func (UserGrantSearchKey) Descriptor() protoreflect.EnumDescriptor { + return file_management_proto_enumTypes[28].Descriptor() +} + +func (UserGrantSearchKey) Type() protoreflect.EnumType { + return &file_management_proto_enumTypes[28] +} + +func (x UserGrantSearchKey) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use UserGrantSearchKey.Descriptor instead. func (UserGrantSearchKey) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{28} + return file_management_proto_rawDescGZIP(), []int{28} } type UserMembershipSearchKey int32 @@ -927,24 +1541,45 @@ const ( UserMembershipSearchKey_USERMEMBERSHIPSEARCHKEY_OBJECT_ID UserMembershipSearchKey = 2 ) -var UserMembershipSearchKey_name = map[int32]string{ - 0: "USERMEMBERSHIPSEARCHKEY_UNSPECIFIED", - 1: "USERMEMBERSHIPSEARCHKEY_TYPE", - 2: "USERMEMBERSHIPSEARCHKEY_OBJECT_ID", -} +// Enum value maps for UserMembershipSearchKey. +var ( + UserMembershipSearchKey_name = map[int32]string{ + 0: "USERMEMBERSHIPSEARCHKEY_UNSPECIFIED", + 1: "USERMEMBERSHIPSEARCHKEY_TYPE", + 2: "USERMEMBERSHIPSEARCHKEY_OBJECT_ID", + } + UserMembershipSearchKey_value = map[string]int32{ + "USERMEMBERSHIPSEARCHKEY_UNSPECIFIED": 0, + "USERMEMBERSHIPSEARCHKEY_TYPE": 1, + "USERMEMBERSHIPSEARCHKEY_OBJECT_ID": 2, + } +) -var UserMembershipSearchKey_value = map[string]int32{ - "USERMEMBERSHIPSEARCHKEY_UNSPECIFIED": 0, - "USERMEMBERSHIPSEARCHKEY_TYPE": 1, - "USERMEMBERSHIPSEARCHKEY_OBJECT_ID": 2, +func (x UserMembershipSearchKey) Enum() *UserMembershipSearchKey { + p := new(UserMembershipSearchKey) + *p = x + return p } func (x UserMembershipSearchKey) String() string { - return proto.EnumName(UserMembershipSearchKey_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } +func (UserMembershipSearchKey) Descriptor() protoreflect.EnumDescriptor { + return file_management_proto_enumTypes[29].Descriptor() +} + +func (UserMembershipSearchKey) Type() protoreflect.EnumType { + return &file_management_proto_enumTypes[29] +} + +func (x UserMembershipSearchKey) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use UserMembershipSearchKey.Descriptor instead. func (UserMembershipSearchKey) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{29} + return file_management_proto_rawDescGZIP(), []int{29} } type MemberType int32 @@ -956,26 +1591,47 @@ const ( MemberType_MEMBERTYPE_PROJECT_GRANT MemberType = 3 ) -var MemberType_name = map[int32]string{ - 0: "MEMBERTYPE_UNSPECIFIED", - 1: "MEMBERTYPE_ORGANISATION", - 2: "MEMBERTYPE_PROJECT", - 3: "MEMBERTYPE_PROJECT_GRANT", -} +// Enum value maps for MemberType. +var ( + MemberType_name = map[int32]string{ + 0: "MEMBERTYPE_UNSPECIFIED", + 1: "MEMBERTYPE_ORGANISATION", + 2: "MEMBERTYPE_PROJECT", + 3: "MEMBERTYPE_PROJECT_GRANT", + } + MemberType_value = map[string]int32{ + "MEMBERTYPE_UNSPECIFIED": 0, + "MEMBERTYPE_ORGANISATION": 1, + "MEMBERTYPE_PROJECT": 2, + "MEMBERTYPE_PROJECT_GRANT": 3, + } +) -var MemberType_value = map[string]int32{ - "MEMBERTYPE_UNSPECIFIED": 0, - "MEMBERTYPE_ORGANISATION": 1, - "MEMBERTYPE_PROJECT": 2, - "MEMBERTYPE_PROJECT_GRANT": 3, +func (x MemberType) Enum() *MemberType { + p := new(MemberType) + *p = x + return p } func (x MemberType) String() string { - return proto.EnumName(MemberType_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } +func (MemberType) Descriptor() protoreflect.EnumDescriptor { + return file_management_proto_enumTypes[30].Descriptor() +} + +func (MemberType) Type() protoreflect.EnumType { + return &file_management_proto_enumTypes[30] +} + +func (x MemberType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use MemberType.Descriptor instead. func (MemberType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{30} + return file_management_proto_rawDescGZIP(), []int{30} } type IdpState int32 @@ -986,24 +1642,94 @@ const ( IdpState_IDPCONFIGSTATE_INACTIVE IdpState = 2 ) -var IdpState_name = map[int32]string{ - 0: "IDPCONFIGSTATE_UNSPECIFIED", - 1: "IDPCONFIGSTATE_ACTIVE", - 2: "IDPCONFIGSTATE_INACTIVE", -} +// Enum value maps for IdpState. +var ( + IdpState_name = map[int32]string{ + 0: "IDPCONFIGSTATE_UNSPECIFIED", + 1: "IDPCONFIGSTATE_ACTIVE", + 2: "IDPCONFIGSTATE_INACTIVE", + } + IdpState_value = map[string]int32{ + "IDPCONFIGSTATE_UNSPECIFIED": 0, + "IDPCONFIGSTATE_ACTIVE": 1, + "IDPCONFIGSTATE_INACTIVE": 2, + } +) -var IdpState_value = map[string]int32{ - "IDPCONFIGSTATE_UNSPECIFIED": 0, - "IDPCONFIGSTATE_ACTIVE": 1, - "IDPCONFIGSTATE_INACTIVE": 2, +func (x IdpState) Enum() *IdpState { + p := new(IdpState) + *p = x + return p } func (x IdpState) String() string { - return proto.EnumName(IdpState_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } +func (IdpState) Descriptor() protoreflect.EnumDescriptor { + return file_management_proto_enumTypes[31].Descriptor() +} + +func (IdpState) Type() protoreflect.EnumType { + return &file_management_proto_enumTypes[31] +} + +func (x IdpState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use IdpState.Descriptor instead. func (IdpState) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{31} + return file_management_proto_rawDescGZIP(), []int{31} +} + +type OIDCMappingField int32 + +const ( + OIDCMappingField_OIDCMAPPINGFIELD_UNSPECIFIED OIDCMappingField = 0 + OIDCMappingField_OIDCMAPPINGFIELD_PREFERRED_USERNAME OIDCMappingField = 1 + OIDCMappingField_OIDCMAPPINGFIELD_EMAIL OIDCMappingField = 2 +) + +// Enum value maps for OIDCMappingField. +var ( + OIDCMappingField_name = map[int32]string{ + 0: "OIDCMAPPINGFIELD_UNSPECIFIED", + 1: "OIDCMAPPINGFIELD_PREFERRED_USERNAME", + 2: "OIDCMAPPINGFIELD_EMAIL", + } + OIDCMappingField_value = map[string]int32{ + "OIDCMAPPINGFIELD_UNSPECIFIED": 0, + "OIDCMAPPINGFIELD_PREFERRED_USERNAME": 1, + "OIDCMAPPINGFIELD_EMAIL": 2, + } +) + +func (x OIDCMappingField) Enum() *OIDCMappingField { + p := new(OIDCMappingField) + *p = x + return p +} + +func (x OIDCMappingField) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (OIDCMappingField) Descriptor() protoreflect.EnumDescriptor { + return file_management_proto_enumTypes[32].Descriptor() +} + +func (OIDCMappingField) Type() protoreflect.EnumType { + return &file_management_proto_enumTypes[32] +} + +func (x OIDCMappingField) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use OIDCMappingField.Descriptor instead. +func (OIDCMappingField) EnumDescriptor() ([]byte, []int) { + return file_management_proto_rawDescGZIP(), []int{32} } type IdpSearchKey int32 @@ -1015,26 +1741,47 @@ const ( IdpSearchKey_IDPSEARCHKEY_PROVIDER_TYPE IdpSearchKey = 3 ) -var IdpSearchKey_name = map[int32]string{ - 0: "IDPSEARCHKEY_UNSPECIFIED", - 1: "IDPSEARCHKEY_IDP_CONFIG_ID", - 2: "IDPSEARCHKEY_NAME", - 3: "IDPSEARCHKEY_PROVIDER_TYPE", -} +// Enum value maps for IdpSearchKey. +var ( + IdpSearchKey_name = map[int32]string{ + 0: "IDPSEARCHKEY_UNSPECIFIED", + 1: "IDPSEARCHKEY_IDP_CONFIG_ID", + 2: "IDPSEARCHKEY_NAME", + 3: "IDPSEARCHKEY_PROVIDER_TYPE", + } + IdpSearchKey_value = map[string]int32{ + "IDPSEARCHKEY_UNSPECIFIED": 0, + "IDPSEARCHKEY_IDP_CONFIG_ID": 1, + "IDPSEARCHKEY_NAME": 2, + "IDPSEARCHKEY_PROVIDER_TYPE": 3, + } +) -var IdpSearchKey_value = map[string]int32{ - "IDPSEARCHKEY_UNSPECIFIED": 0, - "IDPSEARCHKEY_IDP_CONFIG_ID": 1, - "IDPSEARCHKEY_NAME": 2, - "IDPSEARCHKEY_PROVIDER_TYPE": 3, +func (x IdpSearchKey) Enum() *IdpSearchKey { + p := new(IdpSearchKey) + *p = x + return p } func (x IdpSearchKey) String() string { - return proto.EnumName(IdpSearchKey_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } +func (IdpSearchKey) Descriptor() protoreflect.EnumDescriptor { + return file_management_proto_enumTypes[33].Descriptor() +} + +func (IdpSearchKey) Type() protoreflect.EnumType { + return &file_management_proto_enumTypes[33] +} + +func (x IdpSearchKey) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use IdpSearchKey.Descriptor instead. func (IdpSearchKey) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{32} + return file_management_proto_rawDescGZIP(), []int{33} } type IdpType int32 @@ -1045,24 +1792,45 @@ const ( IdpType_IDPTYPE_SAML IdpType = 2 ) -var IdpType_name = map[int32]string{ - 0: "IDPTYPE_UNSPECIFIED", - 1: "IDPTYPE_OIDC", - 2: "IDPTYPE_SAML", -} +// Enum value maps for IdpType. +var ( + IdpType_name = map[int32]string{ + 0: "IDPTYPE_UNSPECIFIED", + 1: "IDPTYPE_OIDC", + 2: "IDPTYPE_SAML", + } + IdpType_value = map[string]int32{ + "IDPTYPE_UNSPECIFIED": 0, + "IDPTYPE_OIDC": 1, + "IDPTYPE_SAML": 2, + } +) -var IdpType_value = map[string]int32{ - "IDPTYPE_UNSPECIFIED": 0, - "IDPTYPE_OIDC": 1, - "IDPTYPE_SAML": 2, +func (x IdpType) Enum() *IdpType { + p := new(IdpType) + *p = x + return p } func (x IdpType) String() string { - return proto.EnumName(IdpType_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } +func (IdpType) Descriptor() protoreflect.EnumDescriptor { + return file_management_proto_enumTypes[34].Descriptor() +} + +func (IdpType) Type() protoreflect.EnumType { + return &file_management_proto_enumTypes[34] +} + +func (x IdpType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use IdpType.Descriptor instead. func (IdpType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{33} + return file_management_proto_rawDescGZIP(), []int{34} } type IdpProviderType int32 @@ -1073,24 +1841,45 @@ const ( IdpProviderType_IDPPROVIDERTYPE_ORG IdpProviderType = 2 ) -var IdpProviderType_name = map[int32]string{ - 0: "IDPPROVIDERTYPE_UNSPECIFIED", - 1: "IDPPROVIDERTYPE_SYSTEM", - 2: "IDPPROVIDERTYPE_ORG", -} +// Enum value maps for IdpProviderType. +var ( + IdpProviderType_name = map[int32]string{ + 0: "IDPPROVIDERTYPE_UNSPECIFIED", + 1: "IDPPROVIDERTYPE_SYSTEM", + 2: "IDPPROVIDERTYPE_ORG", + } + IdpProviderType_value = map[string]int32{ + "IDPPROVIDERTYPE_UNSPECIFIED": 0, + "IDPPROVIDERTYPE_SYSTEM": 1, + "IDPPROVIDERTYPE_ORG": 2, + } +) -var IdpProviderType_value = map[string]int32{ - "IDPPROVIDERTYPE_UNSPECIFIED": 0, - "IDPPROVIDERTYPE_SYSTEM": 1, - "IDPPROVIDERTYPE_ORG": 2, +func (x IdpProviderType) Enum() *IdpProviderType { + p := new(IdpProviderType) + *p = x + return p } func (x IdpProviderType) String() string { - return proto.EnumName(IdpProviderType_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } +func (IdpProviderType) Descriptor() protoreflect.EnumDescriptor { + return file_management_proto_enumTypes[35].Descriptor() +} + +func (IdpProviderType) Type() protoreflect.EnumType { + return &file_management_proto_enumTypes[35] +} + +func (x IdpProviderType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use IdpProviderType.Descriptor instead. func (IdpProviderType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{34} + return file_management_proto_rawDescGZIP(), []int{35} } //ProjectType is deprecated, remove as soon as console is ready @@ -1102,634 +1891,772 @@ const ( ProjectType_PROJECTTYPE_GRANTED ProjectType = 2 ) -var ProjectType_name = map[int32]string{ - 0: "PROJECTTYPE_UNSPECIFIED", - 1: "PROJECTTYPE_OWNED", - 2: "PROJECTTYPE_GRANTED", -} +// Enum value maps for ProjectType. +var ( + ProjectType_name = map[int32]string{ + 0: "PROJECTTYPE_UNSPECIFIED", + 1: "PROJECTTYPE_OWNED", + 2: "PROJECTTYPE_GRANTED", + } + ProjectType_value = map[string]int32{ + "PROJECTTYPE_UNSPECIFIED": 0, + "PROJECTTYPE_OWNED": 1, + "PROJECTTYPE_GRANTED": 2, + } +) -var ProjectType_value = map[string]int32{ - "PROJECTTYPE_UNSPECIFIED": 0, - "PROJECTTYPE_OWNED": 1, - "PROJECTTYPE_GRANTED": 2, +func (x ProjectType) Enum() *ProjectType { + p := new(ProjectType) + *p = x + return p } func (x ProjectType) String() string { - return proto.EnumName(ProjectType_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } +func (ProjectType) Descriptor() protoreflect.EnumDescriptor { + return file_management_proto_enumTypes[36].Descriptor() +} + +func (ProjectType) Type() protoreflect.EnumType { + return &file_management_proto_enumTypes[36] +} + +func (x ProjectType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ProjectType.Descriptor instead. func (ProjectType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{35} + return file_management_proto_rawDescGZIP(), []int{36} } type ZitadelDocs struct { - Issuer string `protobuf:"bytes,1,opt,name=issuer,proto3" json:"issuer,omitempty"` - DiscoveryEndpoint string `protobuf:"bytes,2,opt,name=discovery_endpoint,json=discoveryEndpoint,proto3" json:"discovery_endpoint,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Issuer string `protobuf:"bytes,1,opt,name=issuer,proto3" json:"issuer,omitempty"` + DiscoveryEndpoint string `protobuf:"bytes,2,opt,name=discovery_endpoint,json=discoveryEndpoint,proto3" json:"discovery_endpoint,omitempty"` } -func (m *ZitadelDocs) Reset() { *m = ZitadelDocs{} } -func (m *ZitadelDocs) String() string { return proto.CompactTextString(m) } -func (*ZitadelDocs) ProtoMessage() {} +func (x *ZitadelDocs) Reset() { + *x = ZitadelDocs{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ZitadelDocs) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ZitadelDocs) ProtoMessage() {} + +func (x *ZitadelDocs) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ZitadelDocs.ProtoReflect.Descriptor instead. func (*ZitadelDocs) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{0} + return file_management_proto_rawDescGZIP(), []int{0} } -func (m *ZitadelDocs) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ZitadelDocs.Unmarshal(m, b) -} -func (m *ZitadelDocs) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ZitadelDocs.Marshal(b, m, deterministic) -} -func (m *ZitadelDocs) XXX_Merge(src proto.Message) { - xxx_messageInfo_ZitadelDocs.Merge(m, src) -} -func (m *ZitadelDocs) XXX_Size() int { - return xxx_messageInfo_ZitadelDocs.Size(m) -} -func (m *ZitadelDocs) XXX_DiscardUnknown() { - xxx_messageInfo_ZitadelDocs.DiscardUnknown(m) -} - -var xxx_messageInfo_ZitadelDocs proto.InternalMessageInfo - -func (m *ZitadelDocs) GetIssuer() string { - if m != nil { - return m.Issuer +func (x *ZitadelDocs) GetIssuer() string { + if x != nil { + return x.Issuer } return "" } -func (m *ZitadelDocs) GetDiscoveryEndpoint() string { - if m != nil { - return m.DiscoveryEndpoint +func (x *ZitadelDocs) GetDiscoveryEndpoint() string { + if x != nil { + return x.DiscoveryEndpoint } return "" } type Iam struct { - GlobalOrgId string `protobuf:"bytes,1,opt,name=global_org_id,json=globalOrgId,proto3" json:"global_org_id,omitempty"` - IamProjectId string `protobuf:"bytes,2,opt,name=iam_project_id,json=iamProjectId,proto3" json:"iam_project_id,omitempty"` - SetUpDone bool `protobuf:"varint,3,opt,name=set_up_done,json=setUpDone,proto3" json:"set_up_done,omitempty"` - SetUpStarted bool `protobuf:"varint,4,opt,name=set_up_started,json=setUpStarted,proto3" json:"set_up_started,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GlobalOrgId string `protobuf:"bytes,1,opt,name=global_org_id,json=globalOrgId,proto3" json:"global_org_id,omitempty"` + IamProjectId string `protobuf:"bytes,2,opt,name=iam_project_id,json=iamProjectId,proto3" json:"iam_project_id,omitempty"` + SetUpDone bool `protobuf:"varint,3,opt,name=set_up_done,json=setUpDone,proto3" json:"set_up_done,omitempty"` + SetUpStarted bool `protobuf:"varint,4,opt,name=set_up_started,json=setUpStarted,proto3" json:"set_up_started,omitempty"` } -func (m *Iam) Reset() { *m = Iam{} } -func (m *Iam) String() string { return proto.CompactTextString(m) } -func (*Iam) ProtoMessage() {} +func (x *Iam) Reset() { + *x = Iam{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Iam) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Iam) ProtoMessage() {} + +func (x *Iam) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Iam.ProtoReflect.Descriptor instead. func (*Iam) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{1} + return file_management_proto_rawDescGZIP(), []int{1} } -func (m *Iam) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Iam.Unmarshal(m, b) -} -func (m *Iam) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Iam.Marshal(b, m, deterministic) -} -func (m *Iam) XXX_Merge(src proto.Message) { - xxx_messageInfo_Iam.Merge(m, src) -} -func (m *Iam) XXX_Size() int { - return xxx_messageInfo_Iam.Size(m) -} -func (m *Iam) XXX_DiscardUnknown() { - xxx_messageInfo_Iam.DiscardUnknown(m) -} - -var xxx_messageInfo_Iam proto.InternalMessageInfo - -func (m *Iam) GetGlobalOrgId() string { - if m != nil { - return m.GlobalOrgId +func (x *Iam) GetGlobalOrgId() string { + if x != nil { + return x.GlobalOrgId } return "" } -func (m *Iam) GetIamProjectId() string { - if m != nil { - return m.IamProjectId +func (x *Iam) GetIamProjectId() string { + if x != nil { + return x.IamProjectId } return "" } -func (m *Iam) GetSetUpDone() bool { - if m != nil { - return m.SetUpDone +func (x *Iam) GetSetUpDone() bool { + if x != nil { + return x.SetUpDone } return false } -func (m *Iam) GetSetUpStarted() bool { - if m != nil { - return m.SetUpStarted +func (x *Iam) GetSetUpStarted() bool { + if x != nil { + return x.SetUpStarted } return false } type ChangeRequest struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - SecId string `protobuf:"bytes,2,opt,name=sec_id,json=secId,proto3" json:"sec_id,omitempty"` - Limit uint64 `protobuf:"varint,3,opt,name=limit,proto3" json:"limit,omitempty"` - SequenceOffset uint64 `protobuf:"varint,4,opt,name=sequence_offset,json=sequenceOffset,proto3" json:"sequence_offset,omitempty"` - Asc bool `protobuf:"varint,5,opt,name=asc,proto3" json:"asc,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + SecId string `protobuf:"bytes,2,opt,name=sec_id,json=secId,proto3" json:"sec_id,omitempty"` + Limit uint64 `protobuf:"varint,3,opt,name=limit,proto3" json:"limit,omitempty"` + SequenceOffset uint64 `protobuf:"varint,4,opt,name=sequence_offset,json=sequenceOffset,proto3" json:"sequence_offset,omitempty"` + Asc bool `protobuf:"varint,5,opt,name=asc,proto3" json:"asc,omitempty"` } -func (m *ChangeRequest) Reset() { *m = ChangeRequest{} } -func (m *ChangeRequest) String() string { return proto.CompactTextString(m) } -func (*ChangeRequest) ProtoMessage() {} +func (x *ChangeRequest) Reset() { + *x = ChangeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChangeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChangeRequest) ProtoMessage() {} + +func (x *ChangeRequest) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChangeRequest.ProtoReflect.Descriptor instead. func (*ChangeRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{2} + return file_management_proto_rawDescGZIP(), []int{2} } -func (m *ChangeRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ChangeRequest.Unmarshal(m, b) -} -func (m *ChangeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ChangeRequest.Marshal(b, m, deterministic) -} -func (m *ChangeRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_ChangeRequest.Merge(m, src) -} -func (m *ChangeRequest) XXX_Size() int { - return xxx_messageInfo_ChangeRequest.Size(m) -} -func (m *ChangeRequest) XXX_DiscardUnknown() { - xxx_messageInfo_ChangeRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_ChangeRequest proto.InternalMessageInfo - -func (m *ChangeRequest) GetId() string { - if m != nil { - return m.Id +func (x *ChangeRequest) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *ChangeRequest) GetSecId() string { - if m != nil { - return m.SecId +func (x *ChangeRequest) GetSecId() string { + if x != nil { + return x.SecId } return "" } -func (m *ChangeRequest) GetLimit() uint64 { - if m != nil { - return m.Limit +func (x *ChangeRequest) GetLimit() uint64 { + if x != nil { + return x.Limit } return 0 } -func (m *ChangeRequest) GetSequenceOffset() uint64 { - if m != nil { - return m.SequenceOffset +func (x *ChangeRequest) GetSequenceOffset() uint64 { + if x != nil { + return x.SequenceOffset } return 0 } -func (m *ChangeRequest) GetAsc() bool { - if m != nil { - return m.Asc +func (x *ChangeRequest) GetAsc() bool { + if x != nil { + return x.Asc } return false } type Changes struct { - Changes []*Change `protobuf:"bytes,1,rep,name=changes,proto3" json:"changes,omitempty"` - Offset uint64 `protobuf:"varint,2,opt,name=offset,proto3" json:"offset,omitempty"` - Limit uint64 `protobuf:"varint,3,opt,name=limit,proto3" json:"limit,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Changes []*Change `protobuf:"bytes,1,rep,name=changes,proto3" json:"changes,omitempty"` + Offset uint64 `protobuf:"varint,2,opt,name=offset,proto3" json:"offset,omitempty"` + Limit uint64 `protobuf:"varint,3,opt,name=limit,proto3" json:"limit,omitempty"` } -func (m *Changes) Reset() { *m = Changes{} } -func (m *Changes) String() string { return proto.CompactTextString(m) } -func (*Changes) ProtoMessage() {} +func (x *Changes) Reset() { + *x = Changes{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Changes) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Changes) ProtoMessage() {} + +func (x *Changes) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Changes.ProtoReflect.Descriptor instead. func (*Changes) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{3} + return file_management_proto_rawDescGZIP(), []int{3} } -func (m *Changes) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Changes.Unmarshal(m, b) -} -func (m *Changes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Changes.Marshal(b, m, deterministic) -} -func (m *Changes) XXX_Merge(src proto.Message) { - xxx_messageInfo_Changes.Merge(m, src) -} -func (m *Changes) XXX_Size() int { - return xxx_messageInfo_Changes.Size(m) -} -func (m *Changes) XXX_DiscardUnknown() { - xxx_messageInfo_Changes.DiscardUnknown(m) -} - -var xxx_messageInfo_Changes proto.InternalMessageInfo - -func (m *Changes) GetChanges() []*Change { - if m != nil { - return m.Changes +func (x *Changes) GetChanges() []*Change { + if x != nil { + return x.Changes } return nil } -func (m *Changes) GetOffset() uint64 { - if m != nil { - return m.Offset +func (x *Changes) GetOffset() uint64 { + if x != nil { + return x.Offset } return 0 } -func (m *Changes) GetLimit() uint64 { - if m != nil { - return m.Limit +func (x *Changes) GetLimit() uint64 { + if x != nil { + return x.Limit } return 0 } type Change struct { - ChangeDate *timestamp.Timestamp `protobuf:"bytes,1,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` - EventType *message.LocalizedMessage `protobuf:"bytes,2,opt,name=event_type,json=eventType,proto3" json:"event_type,omitempty"` - Sequence uint64 `protobuf:"varint,3,opt,name=sequence,proto3" json:"sequence,omitempty"` - EditorId string `protobuf:"bytes,4,opt,name=editor_id,json=editorId,proto3" json:"editor_id,omitempty"` - Editor string `protobuf:"bytes,5,opt,name=editor,proto3" json:"editor,omitempty"` - Data *_struct.Struct `protobuf:"bytes,6,opt,name=data,proto3" json:"data,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChangeDate *timestamp.Timestamp `protobuf:"bytes,1,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` + EventType *message.LocalizedMessage `protobuf:"bytes,2,opt,name=event_type,json=eventType,proto3" json:"event_type,omitempty"` + Sequence uint64 `protobuf:"varint,3,opt,name=sequence,proto3" json:"sequence,omitempty"` + EditorId string `protobuf:"bytes,4,opt,name=editor_id,json=editorId,proto3" json:"editor_id,omitempty"` + Editor string `protobuf:"bytes,5,opt,name=editor,proto3" json:"editor,omitempty"` + Data *_struct.Struct `protobuf:"bytes,6,opt,name=data,proto3" json:"data,omitempty"` } -func (m *Change) Reset() { *m = Change{} } -func (m *Change) String() string { return proto.CompactTextString(m) } -func (*Change) ProtoMessage() {} +func (x *Change) Reset() { + *x = Change{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Change) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Change) ProtoMessage() {} + +func (x *Change) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Change.ProtoReflect.Descriptor instead. func (*Change) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{4} + return file_management_proto_rawDescGZIP(), []int{4} } -func (m *Change) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Change.Unmarshal(m, b) -} -func (m *Change) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Change.Marshal(b, m, deterministic) -} -func (m *Change) XXX_Merge(src proto.Message) { - xxx_messageInfo_Change.Merge(m, src) -} -func (m *Change) XXX_Size() int { - return xxx_messageInfo_Change.Size(m) -} -func (m *Change) XXX_DiscardUnknown() { - xxx_messageInfo_Change.DiscardUnknown(m) -} - -var xxx_messageInfo_Change proto.InternalMessageInfo - -func (m *Change) GetChangeDate() *timestamp.Timestamp { - if m != nil { - return m.ChangeDate +func (x *Change) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate } return nil } -func (m *Change) GetEventType() *message.LocalizedMessage { - if m != nil { - return m.EventType +func (x *Change) GetEventType() *message.LocalizedMessage { + if x != nil { + return x.EventType } return nil } -func (m *Change) GetSequence() uint64 { - if m != nil { - return m.Sequence +func (x *Change) GetSequence() uint64 { + if x != nil { + return x.Sequence } return 0 } -func (m *Change) GetEditorId() string { - if m != nil { - return m.EditorId +func (x *Change) GetEditorId() string { + if x != nil { + return x.EditorId } return "" } -func (m *Change) GetEditor() string { - if m != nil { - return m.Editor +func (x *Change) GetEditor() string { + if x != nil { + return x.Editor } return "" } -func (m *Change) GetData() *_struct.Struct { - if m != nil { - return m.Data +func (x *Change) GetData() *_struct.Struct { + if x != nil { + return x.Data } return nil } type ApplicationID struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - ProjectId string `protobuf:"bytes,2,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + ProjectId string `protobuf:"bytes,2,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` } -func (m *ApplicationID) Reset() { *m = ApplicationID{} } -func (m *ApplicationID) String() string { return proto.CompactTextString(m) } -func (*ApplicationID) ProtoMessage() {} +func (x *ApplicationID) Reset() { + *x = ApplicationID{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ApplicationID) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ApplicationID) ProtoMessage() {} + +func (x *ApplicationID) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ApplicationID.ProtoReflect.Descriptor instead. func (*ApplicationID) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{5} + return file_management_proto_rawDescGZIP(), []int{5} } -func (m *ApplicationID) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ApplicationID.Unmarshal(m, b) -} -func (m *ApplicationID) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ApplicationID.Marshal(b, m, deterministic) -} -func (m *ApplicationID) XXX_Merge(src proto.Message) { - xxx_messageInfo_ApplicationID.Merge(m, src) -} -func (m *ApplicationID) XXX_Size() int { - return xxx_messageInfo_ApplicationID.Size(m) -} -func (m *ApplicationID) XXX_DiscardUnknown() { - xxx_messageInfo_ApplicationID.DiscardUnknown(m) -} - -var xxx_messageInfo_ApplicationID proto.InternalMessageInfo - -func (m *ApplicationID) GetId() string { - if m != nil { - return m.Id +func (x *ApplicationID) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *ApplicationID) GetProjectId() string { - if m != nil { - return m.ProjectId +func (x *ApplicationID) GetProjectId() string { + if x != nil { + return x.ProjectId } return "" } type ProjectID struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` } -func (m *ProjectID) Reset() { *m = ProjectID{} } -func (m *ProjectID) String() string { return proto.CompactTextString(m) } -func (*ProjectID) ProtoMessage() {} +func (x *ProjectID) Reset() { + *x = ProjectID{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProjectID) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProjectID) ProtoMessage() {} + +func (x *ProjectID) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProjectID.ProtoReflect.Descriptor instead. func (*ProjectID) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{6} + return file_management_proto_rawDescGZIP(), []int{6} } -func (m *ProjectID) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ProjectID.Unmarshal(m, b) -} -func (m *ProjectID) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ProjectID.Marshal(b, m, deterministic) -} -func (m *ProjectID) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProjectID.Merge(m, src) -} -func (m *ProjectID) XXX_Size() int { - return xxx_messageInfo_ProjectID.Size(m) -} -func (m *ProjectID) XXX_DiscardUnknown() { - xxx_messageInfo_ProjectID.DiscardUnknown(m) -} - -var xxx_messageInfo_ProjectID proto.InternalMessageInfo - -func (m *ProjectID) GetId() string { - if m != nil { - return m.Id +func (x *ProjectID) GetId() string { + if x != nil { + return x.Id } return "" } type UserID struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` } -func (m *UserID) Reset() { *m = UserID{} } -func (m *UserID) String() string { return proto.CompactTextString(m) } -func (*UserID) ProtoMessage() {} +func (x *UserID) Reset() { + *x = UserID{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserID) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserID) ProtoMessage() {} + +func (x *UserID) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserID.ProtoReflect.Descriptor instead. func (*UserID) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{7} + return file_management_proto_rawDescGZIP(), []int{7} } -func (m *UserID) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserID.Unmarshal(m, b) -} -func (m *UserID) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserID.Marshal(b, m, deterministic) -} -func (m *UserID) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserID.Merge(m, src) -} -func (m *UserID) XXX_Size() int { - return xxx_messageInfo_UserID.Size(m) -} -func (m *UserID) XXX_DiscardUnknown() { - xxx_messageInfo_UserID.DiscardUnknown(m) -} - -var xxx_messageInfo_UserID proto.InternalMessageInfo - -func (m *UserID) GetId() string { - if m != nil { - return m.Id +func (x *UserID) GetId() string { + if x != nil { + return x.Id } return "" } type LoginName struct { - LoginName string `protobuf:"bytes,1,opt,name=login_name,json=loginName,proto3" json:"login_name,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + LoginName string `protobuf:"bytes,1,opt,name=login_name,json=loginName,proto3" json:"login_name,omitempty"` } -func (m *LoginName) Reset() { *m = LoginName{} } -func (m *LoginName) String() string { return proto.CompactTextString(m) } -func (*LoginName) ProtoMessage() {} +func (x *LoginName) Reset() { + *x = LoginName{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LoginName) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LoginName) ProtoMessage() {} + +func (x *LoginName) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LoginName.ProtoReflect.Descriptor instead. func (*LoginName) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{8} + return file_management_proto_rawDescGZIP(), []int{8} } -func (m *LoginName) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_LoginName.Unmarshal(m, b) -} -func (m *LoginName) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_LoginName.Marshal(b, m, deterministic) -} -func (m *LoginName) XXX_Merge(src proto.Message) { - xxx_messageInfo_LoginName.Merge(m, src) -} -func (m *LoginName) XXX_Size() int { - return xxx_messageInfo_LoginName.Size(m) -} -func (m *LoginName) XXX_DiscardUnknown() { - xxx_messageInfo_LoginName.DiscardUnknown(m) -} - -var xxx_messageInfo_LoginName proto.InternalMessageInfo - -func (m *LoginName) GetLoginName() string { - if m != nil { - return m.LoginName +func (x *LoginName) GetLoginName() string { + if x != nil { + return x.LoginName } return "" } type UniqueUserRequest struct { - UserName string `protobuf:"bytes,1,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` - Email string `protobuf:"bytes,2,opt,name=email,proto3" json:"email,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserName string `protobuf:"bytes,1,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` + Email string `protobuf:"bytes,2,opt,name=email,proto3" json:"email,omitempty"` } -func (m *UniqueUserRequest) Reset() { *m = UniqueUserRequest{} } -func (m *UniqueUserRequest) String() string { return proto.CompactTextString(m) } -func (*UniqueUserRequest) ProtoMessage() {} +func (x *UniqueUserRequest) Reset() { + *x = UniqueUserRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UniqueUserRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UniqueUserRequest) ProtoMessage() {} + +func (x *UniqueUserRequest) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UniqueUserRequest.ProtoReflect.Descriptor instead. func (*UniqueUserRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{9} + return file_management_proto_rawDescGZIP(), []int{9} } -func (m *UniqueUserRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UniqueUserRequest.Unmarshal(m, b) -} -func (m *UniqueUserRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UniqueUserRequest.Marshal(b, m, deterministic) -} -func (m *UniqueUserRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_UniqueUserRequest.Merge(m, src) -} -func (m *UniqueUserRequest) XXX_Size() int { - return xxx_messageInfo_UniqueUserRequest.Size(m) -} -func (m *UniqueUserRequest) XXX_DiscardUnknown() { - xxx_messageInfo_UniqueUserRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_UniqueUserRequest proto.InternalMessageInfo - -func (m *UniqueUserRequest) GetUserName() string { - if m != nil { - return m.UserName +func (x *UniqueUserRequest) GetUserName() string { + if x != nil { + return x.UserName } return "" } -func (m *UniqueUserRequest) GetEmail() string { - if m != nil { - return m.Email +func (x *UniqueUserRequest) GetEmail() string { + if x != nil { + return x.Email } return "" } type UniqueUserResponse struct { - IsUnique bool `protobuf:"varint,1,opt,name=is_unique,json=isUnique,proto3" json:"is_unique,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + IsUnique bool `protobuf:"varint,1,opt,name=is_unique,json=isUnique,proto3" json:"is_unique,omitempty"` } -func (m *UniqueUserResponse) Reset() { *m = UniqueUserResponse{} } -func (m *UniqueUserResponse) String() string { return proto.CompactTextString(m) } -func (*UniqueUserResponse) ProtoMessage() {} +func (x *UniqueUserResponse) Reset() { + *x = UniqueUserResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UniqueUserResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UniqueUserResponse) ProtoMessage() {} + +func (x *UniqueUserResponse) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UniqueUserResponse.ProtoReflect.Descriptor instead. func (*UniqueUserResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{10} + return file_management_proto_rawDescGZIP(), []int{10} } -func (m *UniqueUserResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UniqueUserResponse.Unmarshal(m, b) -} -func (m *UniqueUserResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UniqueUserResponse.Marshal(b, m, deterministic) -} -func (m *UniqueUserResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_UniqueUserResponse.Merge(m, src) -} -func (m *UniqueUserResponse) XXX_Size() int { - return xxx_messageInfo_UniqueUserResponse.Size(m) -} -func (m *UniqueUserResponse) XXX_DiscardUnknown() { - xxx_messageInfo_UniqueUserResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_UniqueUserResponse proto.InternalMessageInfo - -func (m *UniqueUserResponse) GetIsUnique() bool { - if m != nil { - return m.IsUnique +func (x *UniqueUserResponse) GetIsUnique() bool { + if x != nil { + return x.IsUnique } return false } type CreateUserRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + UserName string `protobuf:"bytes,1,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` - // Types that are valid to be assigned to User: + // Types that are assignable to User: // *CreateUserRequest_Human // *CreateUserRequest_Machine - User isCreateUserRequest_User `protobuf_oneof:"user"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + User isCreateUserRequest_User `protobuf_oneof:"user"` } -func (m *CreateUserRequest) Reset() { *m = CreateUserRequest{} } -func (m *CreateUserRequest) String() string { return proto.CompactTextString(m) } -func (*CreateUserRequest) ProtoMessage() {} +func (x *CreateUserRequest) Reset() { + *x = CreateUserRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateUserRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateUserRequest) ProtoMessage() {} + +func (x *CreateUserRequest) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateUserRequest.ProtoReflect.Descriptor instead. func (*CreateUserRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{11} + return file_management_proto_rawDescGZIP(), []int{11} } -func (m *CreateUserRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_CreateUserRequest.Unmarshal(m, b) -} -func (m *CreateUserRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_CreateUserRequest.Marshal(b, m, deterministic) -} -func (m *CreateUserRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_CreateUserRequest.Merge(m, src) -} -func (m *CreateUserRequest) XXX_Size() int { - return xxx_messageInfo_CreateUserRequest.Size(m) -} -func (m *CreateUserRequest) XXX_DiscardUnknown() { - xxx_messageInfo_CreateUserRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_CreateUserRequest proto.InternalMessageInfo - -func (m *CreateUserRequest) GetUserName() string { - if m != nil { - return m.UserName +func (x *CreateUserRequest) GetUserName() string { + if x != nil { + return x.UserName } return "" } +func (m *CreateUserRequest) GetUser() isCreateUserRequest_User { + if m != nil { + return m.User + } + return nil +} + +func (x *CreateUserRequest) GetHuman() *CreateHumanRequest { + if x, ok := x.GetUser().(*CreateUserRequest_Human); ok { + return x.Human + } + return nil +} + +func (x *CreateUserRequest) GetMachine() *CreateMachineRequest { + if x, ok := x.GetUser().(*CreateUserRequest_Machine); ok { + return x.Machine + } + return nil +} + type isCreateUserRequest_User interface { isCreateUserRequest_User() } @@ -1746,316 +2673,332 @@ func (*CreateUserRequest_Human) isCreateUserRequest_User() {} func (*CreateUserRequest_Machine) isCreateUserRequest_User() {} -func (m *CreateUserRequest) GetUser() isCreateUserRequest_User { - if m != nil { - return m.User - } - return nil -} - -func (m *CreateUserRequest) GetHuman() *CreateHumanRequest { - if x, ok := m.GetUser().(*CreateUserRequest_Human); ok { - return x.Human - } - return nil -} - -func (m *CreateUserRequest) GetMachine() *CreateMachineRequest { - if x, ok := m.GetUser().(*CreateUserRequest_Machine); ok { - return x.Machine - } - return nil -} - -// XXX_OneofWrappers is for the internal use of the proto package. -func (*CreateUserRequest) XXX_OneofWrappers() []interface{} { - return []interface{}{ - (*CreateUserRequest_Human)(nil), - (*CreateUserRequest_Machine)(nil), - } -} - type CreateHumanRequest struct { - FirstName string `protobuf:"bytes,1,opt,name=first_name,json=firstName,proto3" json:"first_name,omitempty"` - LastName string `protobuf:"bytes,2,opt,name=last_name,json=lastName,proto3" json:"last_name,omitempty"` - NickName string `protobuf:"bytes,3,opt,name=nick_name,json=nickName,proto3" json:"nick_name,omitempty"` - PreferredLanguage string `protobuf:"bytes,4,opt,name=preferred_language,json=preferredLanguage,proto3" json:"preferred_language,omitempty"` - Gender Gender `protobuf:"varint,5,opt,name=gender,proto3,enum=caos.zitadel.management.api.v1.Gender" json:"gender,omitempty"` - Email string `protobuf:"bytes,6,opt,name=email,proto3" json:"email,omitempty"` - IsEmailVerified bool `protobuf:"varint,7,opt,name=is_email_verified,json=isEmailVerified,proto3" json:"is_email_verified,omitempty"` - Phone string `protobuf:"bytes,8,opt,name=phone,proto3" json:"phone,omitempty"` - IsPhoneVerified bool `protobuf:"varint,9,opt,name=is_phone_verified,json=isPhoneVerified,proto3" json:"is_phone_verified,omitempty"` - Country string `protobuf:"bytes,10,opt,name=country,proto3" json:"country,omitempty"` - Locality string `protobuf:"bytes,11,opt,name=locality,proto3" json:"locality,omitempty"` - PostalCode string `protobuf:"bytes,12,opt,name=postal_code,json=postalCode,proto3" json:"postal_code,omitempty"` - Region string `protobuf:"bytes,13,opt,name=region,proto3" json:"region,omitempty"` - StreetAddress string `protobuf:"bytes,14,opt,name=street_address,json=streetAddress,proto3" json:"street_address,omitempty"` - Password string `protobuf:"bytes,15,opt,name=password,proto3" json:"password,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FirstName string `protobuf:"bytes,1,opt,name=first_name,json=firstName,proto3" json:"first_name,omitempty"` + LastName string `protobuf:"bytes,2,opt,name=last_name,json=lastName,proto3" json:"last_name,omitempty"` + NickName string `protobuf:"bytes,3,opt,name=nick_name,json=nickName,proto3" json:"nick_name,omitempty"` + PreferredLanguage string `protobuf:"bytes,4,opt,name=preferred_language,json=preferredLanguage,proto3" json:"preferred_language,omitempty"` + Gender Gender `protobuf:"varint,5,opt,name=gender,proto3,enum=caos.zitadel.management.api.v1.Gender" json:"gender,omitempty"` + Email string `protobuf:"bytes,6,opt,name=email,proto3" json:"email,omitempty"` + IsEmailVerified bool `protobuf:"varint,7,opt,name=is_email_verified,json=isEmailVerified,proto3" json:"is_email_verified,omitempty"` + Phone string `protobuf:"bytes,8,opt,name=phone,proto3" json:"phone,omitempty"` + IsPhoneVerified bool `protobuf:"varint,9,opt,name=is_phone_verified,json=isPhoneVerified,proto3" json:"is_phone_verified,omitempty"` + Country string `protobuf:"bytes,10,opt,name=country,proto3" json:"country,omitempty"` + Locality string `protobuf:"bytes,11,opt,name=locality,proto3" json:"locality,omitempty"` + PostalCode string `protobuf:"bytes,12,opt,name=postal_code,json=postalCode,proto3" json:"postal_code,omitempty"` + Region string `protobuf:"bytes,13,opt,name=region,proto3" json:"region,omitempty"` + StreetAddress string `protobuf:"bytes,14,opt,name=street_address,json=streetAddress,proto3" json:"street_address,omitempty"` + Password string `protobuf:"bytes,15,opt,name=password,proto3" json:"password,omitempty"` } -func (m *CreateHumanRequest) Reset() { *m = CreateHumanRequest{} } -func (m *CreateHumanRequest) String() string { return proto.CompactTextString(m) } -func (*CreateHumanRequest) ProtoMessage() {} +func (x *CreateHumanRequest) Reset() { + *x = CreateHumanRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateHumanRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateHumanRequest) ProtoMessage() {} + +func (x *CreateHumanRequest) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateHumanRequest.ProtoReflect.Descriptor instead. func (*CreateHumanRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{12} + return file_management_proto_rawDescGZIP(), []int{12} } -func (m *CreateHumanRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_CreateHumanRequest.Unmarshal(m, b) -} -func (m *CreateHumanRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_CreateHumanRequest.Marshal(b, m, deterministic) -} -func (m *CreateHumanRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_CreateHumanRequest.Merge(m, src) -} -func (m *CreateHumanRequest) XXX_Size() int { - return xxx_messageInfo_CreateHumanRequest.Size(m) -} -func (m *CreateHumanRequest) XXX_DiscardUnknown() { - xxx_messageInfo_CreateHumanRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_CreateHumanRequest proto.InternalMessageInfo - -func (m *CreateHumanRequest) GetFirstName() string { - if m != nil { - return m.FirstName +func (x *CreateHumanRequest) GetFirstName() string { + if x != nil { + return x.FirstName } return "" } -func (m *CreateHumanRequest) GetLastName() string { - if m != nil { - return m.LastName +func (x *CreateHumanRequest) GetLastName() string { + if x != nil { + return x.LastName } return "" } -func (m *CreateHumanRequest) GetNickName() string { - if m != nil { - return m.NickName +func (x *CreateHumanRequest) GetNickName() string { + if x != nil { + return x.NickName } return "" } -func (m *CreateHumanRequest) GetPreferredLanguage() string { - if m != nil { - return m.PreferredLanguage +func (x *CreateHumanRequest) GetPreferredLanguage() string { + if x != nil { + return x.PreferredLanguage } return "" } -func (m *CreateHumanRequest) GetGender() Gender { - if m != nil { - return m.Gender +func (x *CreateHumanRequest) GetGender() Gender { + if x != nil { + return x.Gender } return Gender_GENDER_UNSPECIFIED } -func (m *CreateHumanRequest) GetEmail() string { - if m != nil { - return m.Email +func (x *CreateHumanRequest) GetEmail() string { + if x != nil { + return x.Email } return "" } -func (m *CreateHumanRequest) GetIsEmailVerified() bool { - if m != nil { - return m.IsEmailVerified +func (x *CreateHumanRequest) GetIsEmailVerified() bool { + if x != nil { + return x.IsEmailVerified } return false } -func (m *CreateHumanRequest) GetPhone() string { - if m != nil { - return m.Phone +func (x *CreateHumanRequest) GetPhone() string { + if x != nil { + return x.Phone } return "" } -func (m *CreateHumanRequest) GetIsPhoneVerified() bool { - if m != nil { - return m.IsPhoneVerified +func (x *CreateHumanRequest) GetIsPhoneVerified() bool { + if x != nil { + return x.IsPhoneVerified } return false } -func (m *CreateHumanRequest) GetCountry() string { - if m != nil { - return m.Country +func (x *CreateHumanRequest) GetCountry() string { + if x != nil { + return x.Country } return "" } -func (m *CreateHumanRequest) GetLocality() string { - if m != nil { - return m.Locality +func (x *CreateHumanRequest) GetLocality() string { + if x != nil { + return x.Locality } return "" } -func (m *CreateHumanRequest) GetPostalCode() string { - if m != nil { - return m.PostalCode +func (x *CreateHumanRequest) GetPostalCode() string { + if x != nil { + return x.PostalCode } return "" } -func (m *CreateHumanRequest) GetRegion() string { - if m != nil { - return m.Region +func (x *CreateHumanRequest) GetRegion() string { + if x != nil { + return x.Region } return "" } -func (m *CreateHumanRequest) GetStreetAddress() string { - if m != nil { - return m.StreetAddress +func (x *CreateHumanRequest) GetStreetAddress() string { + if x != nil { + return x.StreetAddress } return "" } -func (m *CreateHumanRequest) GetPassword() string { - if m != nil { - return m.Password +func (x *CreateHumanRequest) GetPassword() string { + if x != nil { + return x.Password } return "" } type CreateMachineRequest struct { - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` } -func (m *CreateMachineRequest) Reset() { *m = CreateMachineRequest{} } -func (m *CreateMachineRequest) String() string { return proto.CompactTextString(m) } -func (*CreateMachineRequest) ProtoMessage() {} +func (x *CreateMachineRequest) Reset() { + *x = CreateMachineRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateMachineRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateMachineRequest) ProtoMessage() {} + +func (x *CreateMachineRequest) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateMachineRequest.ProtoReflect.Descriptor instead. func (*CreateMachineRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{13} + return file_management_proto_rawDescGZIP(), []int{13} } -func (m *CreateMachineRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_CreateMachineRequest.Unmarshal(m, b) -} -func (m *CreateMachineRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_CreateMachineRequest.Marshal(b, m, deterministic) -} -func (m *CreateMachineRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_CreateMachineRequest.Merge(m, src) -} -func (m *CreateMachineRequest) XXX_Size() int { - return xxx_messageInfo_CreateMachineRequest.Size(m) -} -func (m *CreateMachineRequest) XXX_DiscardUnknown() { - xxx_messageInfo_CreateMachineRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_CreateMachineRequest proto.InternalMessageInfo - -func (m *CreateMachineRequest) GetName() string { - if m != nil { - return m.Name +func (x *CreateMachineRequest) GetName() string { + if x != nil { + return x.Name } return "" } -func (m *CreateMachineRequest) GetDescription() string { - if m != nil { - return m.Description +func (x *CreateMachineRequest) GetDescription() string { + if x != nil { + return x.Description } return "" } type UserResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` State UserState `protobuf:"varint,2,opt,name=state,proto3,enum=caos.zitadel.management.api.v1.UserState" json:"state,omitempty"` CreationDate *timestamp.Timestamp `protobuf:"bytes,3,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` ChangeDate *timestamp.Timestamp `protobuf:"bytes,4,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` Sequence uint64 `protobuf:"varint,5,opt,name=sequence,proto3" json:"sequence,omitempty"` UserName string `protobuf:"bytes,6,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` - // Types that are valid to be assigned to User: + // Types that are assignable to User: // *UserResponse_Human // *UserResponse_Machine - User isUserResponse_User `protobuf_oneof:"user"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + User isUserResponse_User `protobuf_oneof:"user"` } -func (m *UserResponse) Reset() { *m = UserResponse{} } -func (m *UserResponse) String() string { return proto.CompactTextString(m) } -func (*UserResponse) ProtoMessage() {} +func (x *UserResponse) Reset() { + *x = UserResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserResponse) ProtoMessage() {} + +func (x *UserResponse) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserResponse.ProtoReflect.Descriptor instead. func (*UserResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{14} + return file_management_proto_rawDescGZIP(), []int{14} } -func (m *UserResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserResponse.Unmarshal(m, b) -} -func (m *UserResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserResponse.Marshal(b, m, deterministic) -} -func (m *UserResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserResponse.Merge(m, src) -} -func (m *UserResponse) XXX_Size() int { - return xxx_messageInfo_UserResponse.Size(m) -} -func (m *UserResponse) XXX_DiscardUnknown() { - xxx_messageInfo_UserResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_UserResponse proto.InternalMessageInfo - -func (m *UserResponse) GetId() string { - if m != nil { - return m.Id +func (x *UserResponse) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *UserResponse) GetState() UserState { - if m != nil { - return m.State +func (x *UserResponse) GetState() UserState { + if x != nil { + return x.State } return UserState_USERSTATE_UNSPECIFIED } -func (m *UserResponse) GetCreationDate() *timestamp.Timestamp { - if m != nil { - return m.CreationDate +func (x *UserResponse) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate } return nil } -func (m *UserResponse) GetChangeDate() *timestamp.Timestamp { - if m != nil { - return m.ChangeDate +func (x *UserResponse) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate } return nil } -func (m *UserResponse) GetSequence() uint64 { - if m != nil { - return m.Sequence +func (x *UserResponse) GetSequence() uint64 { + if x != nil { + return x.Sequence } return 0 } -func (m *UserResponse) GetUserName() string { - if m != nil { - return m.UserName +func (x *UserResponse) GetUserName() string { + if x != nil { + return x.UserName } return "" } +func (m *UserResponse) GetUser() isUserResponse_User { + if m != nil { + return m.User + } + return nil +} + +func (x *UserResponse) GetHuman() *HumanResponse { + if x, ok := x.GetUser().(*UserResponse_Human); ok { + return x.Human + } + return nil +} + +func (x *UserResponse) GetMachine() *MachineResponse { + if x, ok := x.GetUser().(*UserResponse_Machine); ok { + return x.Machine + } + return nil +} + type isUserResponse_User interface { isUserResponse_User() } @@ -2072,36 +3015,11 @@ func (*UserResponse_Human) isUserResponse_User() {} func (*UserResponse_Machine) isUserResponse_User() {} -func (m *UserResponse) GetUser() isUserResponse_User { - if m != nil { - return m.User - } - return nil -} - -func (m *UserResponse) GetHuman() *HumanResponse { - if x, ok := m.GetUser().(*UserResponse_Human); ok { - return x.Human - } - return nil -} - -func (m *UserResponse) GetMachine() *MachineResponse { - if x, ok := m.GetUser().(*UserResponse_Machine); ok { - return x.Machine - } - return nil -} - -// XXX_OneofWrappers is for the internal use of the proto package. -func (*UserResponse) XXX_OneofWrappers() []interface{} { - return []interface{}{ - (*UserResponse_Human)(nil), - (*UserResponse_Machine)(nil), - } -} - type UserView struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` State UserState `protobuf:"varint,2,opt,name=state,proto3,enum=caos.zitadel.management.api.v1.UserState" json:"state,omitempty"` CreationDate *timestamp.Timestamp `protobuf:"bytes,3,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` @@ -2112,110 +3030,135 @@ type UserView struct { LastLogin *timestamp.Timestamp `protobuf:"bytes,8,opt,name=last_login,json=lastLogin,proto3" json:"last_login,omitempty"` ResourceOwner string `protobuf:"bytes,9,opt,name=resource_owner,json=resourceOwner,proto3" json:"resource_owner,omitempty"` UserName string `protobuf:"bytes,10,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` - // Types that are valid to be assigned to User: + // Types that are assignable to User: // *UserView_Human // *UserView_Machine - User isUserView_User `protobuf_oneof:"user"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + User isUserView_User `protobuf_oneof:"user"` } -func (m *UserView) Reset() { *m = UserView{} } -func (m *UserView) String() string { return proto.CompactTextString(m) } -func (*UserView) ProtoMessage() {} +func (x *UserView) Reset() { + *x = UserView{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserView) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserView) ProtoMessage() {} + +func (x *UserView) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserView.ProtoReflect.Descriptor instead. func (*UserView) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{15} + return file_management_proto_rawDescGZIP(), []int{15} } -func (m *UserView) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserView.Unmarshal(m, b) -} -func (m *UserView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserView.Marshal(b, m, deterministic) -} -func (m *UserView) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserView.Merge(m, src) -} -func (m *UserView) XXX_Size() int { - return xxx_messageInfo_UserView.Size(m) -} -func (m *UserView) XXX_DiscardUnknown() { - xxx_messageInfo_UserView.DiscardUnknown(m) -} - -var xxx_messageInfo_UserView proto.InternalMessageInfo - -func (m *UserView) GetId() string { - if m != nil { - return m.Id +func (x *UserView) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *UserView) GetState() UserState { - if m != nil { - return m.State +func (x *UserView) GetState() UserState { + if x != nil { + return x.State } return UserState_USERSTATE_UNSPECIFIED } -func (m *UserView) GetCreationDate() *timestamp.Timestamp { - if m != nil { - return m.CreationDate +func (x *UserView) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate } return nil } -func (m *UserView) GetChangeDate() *timestamp.Timestamp { - if m != nil { - return m.ChangeDate +func (x *UserView) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate } return nil } -func (m *UserView) GetSequence() uint64 { - if m != nil { - return m.Sequence +func (x *UserView) GetSequence() uint64 { + if x != nil { + return x.Sequence } return 0 } -func (m *UserView) GetLoginNames() []string { - if m != nil { - return m.LoginNames +func (x *UserView) GetLoginNames() []string { + if x != nil { + return x.LoginNames } return nil } -func (m *UserView) GetPreferredLoginName() string { - if m != nil { - return m.PreferredLoginName +func (x *UserView) GetPreferredLoginName() string { + if x != nil { + return x.PreferredLoginName } return "" } -func (m *UserView) GetLastLogin() *timestamp.Timestamp { - if m != nil { - return m.LastLogin +func (x *UserView) GetLastLogin() *timestamp.Timestamp { + if x != nil { + return x.LastLogin } return nil } -func (m *UserView) GetResourceOwner() string { - if m != nil { - return m.ResourceOwner +func (x *UserView) GetResourceOwner() string { + if x != nil { + return x.ResourceOwner } return "" } -func (m *UserView) GetUserName() string { - if m != nil { - return m.UserName +func (x *UserView) GetUserName() string { + if x != nil { + return x.UserName } return "" } +func (m *UserView) GetUser() isUserView_User { + if m != nil { + return m.User + } + return nil +} + +func (x *UserView) GetHuman() *HumanView { + if x, ok := x.GetUser().(*UserView_Human); ok { + return x.Human + } + return nil +} + +func (x *UserView) GetMachine() *MachineView { + if x, ok := x.GetUser().(*UserView_Machine); ok { + return x.Machine + } + return nil +} + type isUserView_User interface { isUserView_User() } @@ -2232,6376 +3175,7128 @@ func (*UserView_Human) isUserView_User() {} func (*UserView_Machine) isUserView_User() {} -func (m *UserView) GetUser() isUserView_User { - if m != nil { - return m.User - } - return nil -} - -func (m *UserView) GetHuman() *HumanView { - if x, ok := m.GetUser().(*UserView_Human); ok { - return x.Human - } - return nil -} - -func (m *UserView) GetMachine() *MachineView { - if x, ok := m.GetUser().(*UserView_Machine); ok { - return x.Machine - } - return nil -} - -// XXX_OneofWrappers is for the internal use of the proto package. -func (*UserView) XXX_OneofWrappers() []interface{} { - return []interface{}{ - (*UserView_Human)(nil), - (*UserView_Machine)(nil), - } -} - type HumanResponse struct { - FirstName string `protobuf:"bytes,1,opt,name=first_name,json=firstName,proto3" json:"first_name,omitempty"` - LastName string `protobuf:"bytes,2,opt,name=last_name,json=lastName,proto3" json:"last_name,omitempty"` - DisplayName string `protobuf:"bytes,3,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` - NickName string `protobuf:"bytes,4,opt,name=nick_name,json=nickName,proto3" json:"nick_name,omitempty"` - PreferredLanguage string `protobuf:"bytes,5,opt,name=preferred_language,json=preferredLanguage,proto3" json:"preferred_language,omitempty"` - Gender Gender `protobuf:"varint,6,opt,name=gender,proto3,enum=caos.zitadel.management.api.v1.Gender" json:"gender,omitempty"` - Email string `protobuf:"bytes,7,opt,name=email,proto3" json:"email,omitempty"` - IsEmailVerified bool `protobuf:"varint,8,opt,name=is_email_verified,json=isEmailVerified,proto3" json:"is_email_verified,omitempty"` - Phone string `protobuf:"bytes,9,opt,name=phone,proto3" json:"phone,omitempty"` - IsPhoneVerified bool `protobuf:"varint,10,opt,name=is_phone_verified,json=isPhoneVerified,proto3" json:"is_phone_verified,omitempty"` - Country string `protobuf:"bytes,11,opt,name=country,proto3" json:"country,omitempty"` - Locality string `protobuf:"bytes,12,opt,name=locality,proto3" json:"locality,omitempty"` - PostalCode string `protobuf:"bytes,13,opt,name=postal_code,json=postalCode,proto3" json:"postal_code,omitempty"` - Region string `protobuf:"bytes,14,opt,name=region,proto3" json:"region,omitempty"` - StreetAddress string `protobuf:"bytes,15,opt,name=street_address,json=streetAddress,proto3" json:"street_address,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FirstName string `protobuf:"bytes,1,opt,name=first_name,json=firstName,proto3" json:"first_name,omitempty"` + LastName string `protobuf:"bytes,2,opt,name=last_name,json=lastName,proto3" json:"last_name,omitempty"` + DisplayName string `protobuf:"bytes,3,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + NickName string `protobuf:"bytes,4,opt,name=nick_name,json=nickName,proto3" json:"nick_name,omitempty"` + PreferredLanguage string `protobuf:"bytes,5,opt,name=preferred_language,json=preferredLanguage,proto3" json:"preferred_language,omitempty"` + Gender Gender `protobuf:"varint,6,opt,name=gender,proto3,enum=caos.zitadel.management.api.v1.Gender" json:"gender,omitempty"` + Email string `protobuf:"bytes,7,opt,name=email,proto3" json:"email,omitempty"` + IsEmailVerified bool `protobuf:"varint,8,opt,name=is_email_verified,json=isEmailVerified,proto3" json:"is_email_verified,omitempty"` + Phone string `protobuf:"bytes,9,opt,name=phone,proto3" json:"phone,omitempty"` + IsPhoneVerified bool `protobuf:"varint,10,opt,name=is_phone_verified,json=isPhoneVerified,proto3" json:"is_phone_verified,omitempty"` + Country string `protobuf:"bytes,11,opt,name=country,proto3" json:"country,omitempty"` + Locality string `protobuf:"bytes,12,opt,name=locality,proto3" json:"locality,omitempty"` + PostalCode string `protobuf:"bytes,13,opt,name=postal_code,json=postalCode,proto3" json:"postal_code,omitempty"` + Region string `protobuf:"bytes,14,opt,name=region,proto3" json:"region,omitempty"` + StreetAddress string `protobuf:"bytes,15,opt,name=street_address,json=streetAddress,proto3" json:"street_address,omitempty"` } -func (m *HumanResponse) Reset() { *m = HumanResponse{} } -func (m *HumanResponse) String() string { return proto.CompactTextString(m) } -func (*HumanResponse) ProtoMessage() {} +func (x *HumanResponse) Reset() { + *x = HumanResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HumanResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HumanResponse) ProtoMessage() {} + +func (x *HumanResponse) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HumanResponse.ProtoReflect.Descriptor instead. func (*HumanResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{16} + return file_management_proto_rawDescGZIP(), []int{16} } -func (m *HumanResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_HumanResponse.Unmarshal(m, b) -} -func (m *HumanResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_HumanResponse.Marshal(b, m, deterministic) -} -func (m *HumanResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_HumanResponse.Merge(m, src) -} -func (m *HumanResponse) XXX_Size() int { - return xxx_messageInfo_HumanResponse.Size(m) -} -func (m *HumanResponse) XXX_DiscardUnknown() { - xxx_messageInfo_HumanResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_HumanResponse proto.InternalMessageInfo - -func (m *HumanResponse) GetFirstName() string { - if m != nil { - return m.FirstName +func (x *HumanResponse) GetFirstName() string { + if x != nil { + return x.FirstName } return "" } -func (m *HumanResponse) GetLastName() string { - if m != nil { - return m.LastName +func (x *HumanResponse) GetLastName() string { + if x != nil { + return x.LastName } return "" } -func (m *HumanResponse) GetDisplayName() string { - if m != nil { - return m.DisplayName +func (x *HumanResponse) GetDisplayName() string { + if x != nil { + return x.DisplayName } return "" } -func (m *HumanResponse) GetNickName() string { - if m != nil { - return m.NickName +func (x *HumanResponse) GetNickName() string { + if x != nil { + return x.NickName } return "" } -func (m *HumanResponse) GetPreferredLanguage() string { - if m != nil { - return m.PreferredLanguage +func (x *HumanResponse) GetPreferredLanguage() string { + if x != nil { + return x.PreferredLanguage } return "" } -func (m *HumanResponse) GetGender() Gender { - if m != nil { - return m.Gender +func (x *HumanResponse) GetGender() Gender { + if x != nil { + return x.Gender } return Gender_GENDER_UNSPECIFIED } -func (m *HumanResponse) GetEmail() string { - if m != nil { - return m.Email +func (x *HumanResponse) GetEmail() string { + if x != nil { + return x.Email } return "" } -func (m *HumanResponse) GetIsEmailVerified() bool { - if m != nil { - return m.IsEmailVerified +func (x *HumanResponse) GetIsEmailVerified() bool { + if x != nil { + return x.IsEmailVerified } return false } -func (m *HumanResponse) GetPhone() string { - if m != nil { - return m.Phone +func (x *HumanResponse) GetPhone() string { + if x != nil { + return x.Phone } return "" } -func (m *HumanResponse) GetIsPhoneVerified() bool { - if m != nil { - return m.IsPhoneVerified +func (x *HumanResponse) GetIsPhoneVerified() bool { + if x != nil { + return x.IsPhoneVerified } return false } -func (m *HumanResponse) GetCountry() string { - if m != nil { - return m.Country +func (x *HumanResponse) GetCountry() string { + if x != nil { + return x.Country } return "" } -func (m *HumanResponse) GetLocality() string { - if m != nil { - return m.Locality +func (x *HumanResponse) GetLocality() string { + if x != nil { + return x.Locality } return "" } -func (m *HumanResponse) GetPostalCode() string { - if m != nil { - return m.PostalCode +func (x *HumanResponse) GetPostalCode() string { + if x != nil { + return x.PostalCode } return "" } -func (m *HumanResponse) GetRegion() string { - if m != nil { - return m.Region +func (x *HumanResponse) GetRegion() string { + if x != nil { + return x.Region } return "" } -func (m *HumanResponse) GetStreetAddress() string { - if m != nil { - return m.StreetAddress +func (x *HumanResponse) GetStreetAddress() string { + if x != nil { + return x.StreetAddress } return "" } type HumanView struct { - PasswordChanged *timestamp.Timestamp `protobuf:"bytes,1,opt,name=password_changed,json=passwordChanged,proto3" json:"password_changed,omitempty"` - FirstName string `protobuf:"bytes,2,opt,name=first_name,json=firstName,proto3" json:"first_name,omitempty"` - LastName string `protobuf:"bytes,3,opt,name=last_name,json=lastName,proto3" json:"last_name,omitempty"` - DisplayName string `protobuf:"bytes,4,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` - NickName string `protobuf:"bytes,5,opt,name=nick_name,json=nickName,proto3" json:"nick_name,omitempty"` - PreferredLanguage string `protobuf:"bytes,6,opt,name=preferred_language,json=preferredLanguage,proto3" json:"preferred_language,omitempty"` - Gender Gender `protobuf:"varint,7,opt,name=gender,proto3,enum=caos.zitadel.management.api.v1.Gender" json:"gender,omitempty"` - Email string `protobuf:"bytes,8,opt,name=email,proto3" json:"email,omitempty"` - IsEmailVerified bool `protobuf:"varint,9,opt,name=is_email_verified,json=isEmailVerified,proto3" json:"is_email_verified,omitempty"` - Phone string `protobuf:"bytes,10,opt,name=phone,proto3" json:"phone,omitempty"` - IsPhoneVerified bool `protobuf:"varint,11,opt,name=is_phone_verified,json=isPhoneVerified,proto3" json:"is_phone_verified,omitempty"` - Country string `protobuf:"bytes,12,opt,name=country,proto3" json:"country,omitempty"` - Locality string `protobuf:"bytes,13,opt,name=locality,proto3" json:"locality,omitempty"` - PostalCode string `protobuf:"bytes,14,opt,name=postal_code,json=postalCode,proto3" json:"postal_code,omitempty"` - Region string `protobuf:"bytes,15,opt,name=region,proto3" json:"region,omitempty"` - StreetAddress string `protobuf:"bytes,16,opt,name=street_address,json=streetAddress,proto3" json:"street_address,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PasswordChanged *timestamp.Timestamp `protobuf:"bytes,1,opt,name=password_changed,json=passwordChanged,proto3" json:"password_changed,omitempty"` + FirstName string `protobuf:"bytes,2,opt,name=first_name,json=firstName,proto3" json:"first_name,omitempty"` + LastName string `protobuf:"bytes,3,opt,name=last_name,json=lastName,proto3" json:"last_name,omitempty"` + DisplayName string `protobuf:"bytes,4,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + NickName string `protobuf:"bytes,5,opt,name=nick_name,json=nickName,proto3" json:"nick_name,omitempty"` + PreferredLanguage string `protobuf:"bytes,6,opt,name=preferred_language,json=preferredLanguage,proto3" json:"preferred_language,omitempty"` + Gender Gender `protobuf:"varint,7,opt,name=gender,proto3,enum=caos.zitadel.management.api.v1.Gender" json:"gender,omitempty"` + Email string `protobuf:"bytes,8,opt,name=email,proto3" json:"email,omitempty"` + IsEmailVerified bool `protobuf:"varint,9,opt,name=is_email_verified,json=isEmailVerified,proto3" json:"is_email_verified,omitempty"` + Phone string `protobuf:"bytes,10,opt,name=phone,proto3" json:"phone,omitempty"` + IsPhoneVerified bool `protobuf:"varint,11,opt,name=is_phone_verified,json=isPhoneVerified,proto3" json:"is_phone_verified,omitempty"` + Country string `protobuf:"bytes,12,opt,name=country,proto3" json:"country,omitempty"` + Locality string `protobuf:"bytes,13,opt,name=locality,proto3" json:"locality,omitempty"` + PostalCode string `protobuf:"bytes,14,opt,name=postal_code,json=postalCode,proto3" json:"postal_code,omitempty"` + Region string `protobuf:"bytes,15,opt,name=region,proto3" json:"region,omitempty"` + StreetAddress string `protobuf:"bytes,16,opt,name=street_address,json=streetAddress,proto3" json:"street_address,omitempty"` } -func (m *HumanView) Reset() { *m = HumanView{} } -func (m *HumanView) String() string { return proto.CompactTextString(m) } -func (*HumanView) ProtoMessage() {} +func (x *HumanView) Reset() { + *x = HumanView{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HumanView) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HumanView) ProtoMessage() {} + +func (x *HumanView) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HumanView.ProtoReflect.Descriptor instead. func (*HumanView) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{17} + return file_management_proto_rawDescGZIP(), []int{17} } -func (m *HumanView) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_HumanView.Unmarshal(m, b) -} -func (m *HumanView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_HumanView.Marshal(b, m, deterministic) -} -func (m *HumanView) XXX_Merge(src proto.Message) { - xxx_messageInfo_HumanView.Merge(m, src) -} -func (m *HumanView) XXX_Size() int { - return xxx_messageInfo_HumanView.Size(m) -} -func (m *HumanView) XXX_DiscardUnknown() { - xxx_messageInfo_HumanView.DiscardUnknown(m) -} - -var xxx_messageInfo_HumanView proto.InternalMessageInfo - -func (m *HumanView) GetPasswordChanged() *timestamp.Timestamp { - if m != nil { - return m.PasswordChanged +func (x *HumanView) GetPasswordChanged() *timestamp.Timestamp { + if x != nil { + return x.PasswordChanged } return nil } -func (m *HumanView) GetFirstName() string { - if m != nil { - return m.FirstName +func (x *HumanView) GetFirstName() string { + if x != nil { + return x.FirstName } return "" } -func (m *HumanView) GetLastName() string { - if m != nil { - return m.LastName +func (x *HumanView) GetLastName() string { + if x != nil { + return x.LastName } return "" } -func (m *HumanView) GetDisplayName() string { - if m != nil { - return m.DisplayName +func (x *HumanView) GetDisplayName() string { + if x != nil { + return x.DisplayName } return "" } -func (m *HumanView) GetNickName() string { - if m != nil { - return m.NickName +func (x *HumanView) GetNickName() string { + if x != nil { + return x.NickName } return "" } -func (m *HumanView) GetPreferredLanguage() string { - if m != nil { - return m.PreferredLanguage +func (x *HumanView) GetPreferredLanguage() string { + if x != nil { + return x.PreferredLanguage } return "" } -func (m *HumanView) GetGender() Gender { - if m != nil { - return m.Gender +func (x *HumanView) GetGender() Gender { + if x != nil { + return x.Gender } return Gender_GENDER_UNSPECIFIED } -func (m *HumanView) GetEmail() string { - if m != nil { - return m.Email +func (x *HumanView) GetEmail() string { + if x != nil { + return x.Email } return "" } -func (m *HumanView) GetIsEmailVerified() bool { - if m != nil { - return m.IsEmailVerified +func (x *HumanView) GetIsEmailVerified() bool { + if x != nil { + return x.IsEmailVerified } return false } -func (m *HumanView) GetPhone() string { - if m != nil { - return m.Phone +func (x *HumanView) GetPhone() string { + if x != nil { + return x.Phone } return "" } -func (m *HumanView) GetIsPhoneVerified() bool { - if m != nil { - return m.IsPhoneVerified +func (x *HumanView) GetIsPhoneVerified() bool { + if x != nil { + return x.IsPhoneVerified } return false } -func (m *HumanView) GetCountry() string { - if m != nil { - return m.Country +func (x *HumanView) GetCountry() string { + if x != nil { + return x.Country } return "" } -func (m *HumanView) GetLocality() string { - if m != nil { - return m.Locality +func (x *HumanView) GetLocality() string { + if x != nil { + return x.Locality } return "" } -func (m *HumanView) GetPostalCode() string { - if m != nil { - return m.PostalCode +func (x *HumanView) GetPostalCode() string { + if x != nil { + return x.PostalCode } return "" } -func (m *HumanView) GetRegion() string { - if m != nil { - return m.Region +func (x *HumanView) GetRegion() string { + if x != nil { + return x.Region } return "" } -func (m *HumanView) GetStreetAddress() string { - if m != nil { - return m.StreetAddress +func (x *HumanView) GetStreetAddress() string { + if x != nil { + return x.StreetAddress } return "" } type MachineResponse struct { - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` } -func (m *MachineResponse) Reset() { *m = MachineResponse{} } -func (m *MachineResponse) String() string { return proto.CompactTextString(m) } -func (*MachineResponse) ProtoMessage() {} +func (x *MachineResponse) Reset() { + *x = MachineResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MachineResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MachineResponse) ProtoMessage() {} + +func (x *MachineResponse) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MachineResponse.ProtoReflect.Descriptor instead. func (*MachineResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{18} + return file_management_proto_rawDescGZIP(), []int{18} } -func (m *MachineResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MachineResponse.Unmarshal(m, b) -} -func (m *MachineResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MachineResponse.Marshal(b, m, deterministic) -} -func (m *MachineResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_MachineResponse.Merge(m, src) -} -func (m *MachineResponse) XXX_Size() int { - return xxx_messageInfo_MachineResponse.Size(m) -} -func (m *MachineResponse) XXX_DiscardUnknown() { - xxx_messageInfo_MachineResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_MachineResponse proto.InternalMessageInfo - -func (m *MachineResponse) GetName() string { - if m != nil { - return m.Name +func (x *MachineResponse) GetName() string { + if x != nil { + return x.Name } return "" } -func (m *MachineResponse) GetDescription() string { - if m != nil { - return m.Description +func (x *MachineResponse) GetDescription() string { + if x != nil { + return x.Description } return "" } type MachineView struct { - LastKeyAdded *timestamp.Timestamp `protobuf:"bytes,1,opt,name=last_key_added,json=lastKeyAdded,proto3" json:"last_key_added,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + LastKeyAdded *timestamp.Timestamp `protobuf:"bytes,1,opt,name=last_key_added,json=lastKeyAdded,proto3" json:"last_key_added,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` } -func (m *MachineView) Reset() { *m = MachineView{} } -func (m *MachineView) String() string { return proto.CompactTextString(m) } -func (*MachineView) ProtoMessage() {} +func (x *MachineView) Reset() { + *x = MachineView{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MachineView) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MachineView) ProtoMessage() {} + +func (x *MachineView) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MachineView.ProtoReflect.Descriptor instead. func (*MachineView) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{19} + return file_management_proto_rawDescGZIP(), []int{19} } -func (m *MachineView) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MachineView.Unmarshal(m, b) -} -func (m *MachineView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MachineView.Marshal(b, m, deterministic) -} -func (m *MachineView) XXX_Merge(src proto.Message) { - xxx_messageInfo_MachineView.Merge(m, src) -} -func (m *MachineView) XXX_Size() int { - return xxx_messageInfo_MachineView.Size(m) -} -func (m *MachineView) XXX_DiscardUnknown() { - xxx_messageInfo_MachineView.DiscardUnknown(m) -} - -var xxx_messageInfo_MachineView proto.InternalMessageInfo - -func (m *MachineView) GetLastKeyAdded() *timestamp.Timestamp { - if m != nil { - return m.LastKeyAdded +func (x *MachineView) GetLastKeyAdded() *timestamp.Timestamp { + if x != nil { + return x.LastKeyAdded } return nil } -func (m *MachineView) GetName() string { - if m != nil { - return m.Name +func (x *MachineView) GetName() string { + if x != nil { + return x.Name } return "" } -func (m *MachineView) GetDescription() string { - if m != nil { - return m.Description +func (x *MachineView) GetDescription() string { + if x != nil { + return x.Description } return "" } type UpdateMachineRequest struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` } -func (m *UpdateMachineRequest) Reset() { *m = UpdateMachineRequest{} } -func (m *UpdateMachineRequest) String() string { return proto.CompactTextString(m) } -func (*UpdateMachineRequest) ProtoMessage() {} +func (x *UpdateMachineRequest) Reset() { + *x = UpdateMachineRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateMachineRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateMachineRequest) ProtoMessage() {} + +func (x *UpdateMachineRequest) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateMachineRequest.ProtoReflect.Descriptor instead. func (*UpdateMachineRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{20} + return file_management_proto_rawDescGZIP(), []int{20} } -func (m *UpdateMachineRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UpdateMachineRequest.Unmarshal(m, b) -} -func (m *UpdateMachineRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UpdateMachineRequest.Marshal(b, m, deterministic) -} -func (m *UpdateMachineRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_UpdateMachineRequest.Merge(m, src) -} -func (m *UpdateMachineRequest) XXX_Size() int { - return xxx_messageInfo_UpdateMachineRequest.Size(m) -} -func (m *UpdateMachineRequest) XXX_DiscardUnknown() { - xxx_messageInfo_UpdateMachineRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_UpdateMachineRequest proto.InternalMessageInfo - -func (m *UpdateMachineRequest) GetId() string { - if m != nil { - return m.Id +func (x *UpdateMachineRequest) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *UpdateMachineRequest) GetDescription() string { - if m != nil { - return m.Description +func (x *UpdateMachineRequest) GetDescription() string { + if x != nil { + return x.Description } return "" } type AddMachineKeyRequest struct { - UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` - Type MachineKeyType `protobuf:"varint,2,opt,name=type,proto3,enum=caos.zitadel.management.api.v1.MachineKeyType" json:"type,omitempty"` - ExpirationDate *timestamp.Timestamp `protobuf:"bytes,3,opt,name=expiration_date,json=expirationDate,proto3" json:"expiration_date,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + Type MachineKeyType `protobuf:"varint,2,opt,name=type,proto3,enum=caos.zitadel.management.api.v1.MachineKeyType" json:"type,omitempty"` + ExpirationDate *timestamp.Timestamp `protobuf:"bytes,3,opt,name=expiration_date,json=expirationDate,proto3" json:"expiration_date,omitempty"` } -func (m *AddMachineKeyRequest) Reset() { *m = AddMachineKeyRequest{} } -func (m *AddMachineKeyRequest) String() string { return proto.CompactTextString(m) } -func (*AddMachineKeyRequest) ProtoMessage() {} +func (x *AddMachineKeyRequest) Reset() { + *x = AddMachineKeyRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddMachineKeyRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddMachineKeyRequest) ProtoMessage() {} + +func (x *AddMachineKeyRequest) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddMachineKeyRequest.ProtoReflect.Descriptor instead. func (*AddMachineKeyRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{21} + return file_management_proto_rawDescGZIP(), []int{21} } -func (m *AddMachineKeyRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_AddMachineKeyRequest.Unmarshal(m, b) -} -func (m *AddMachineKeyRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_AddMachineKeyRequest.Marshal(b, m, deterministic) -} -func (m *AddMachineKeyRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_AddMachineKeyRequest.Merge(m, src) -} -func (m *AddMachineKeyRequest) XXX_Size() int { - return xxx_messageInfo_AddMachineKeyRequest.Size(m) -} -func (m *AddMachineKeyRequest) XXX_DiscardUnknown() { - xxx_messageInfo_AddMachineKeyRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_AddMachineKeyRequest proto.InternalMessageInfo - -func (m *AddMachineKeyRequest) GetUserId() string { - if m != nil { - return m.UserId +func (x *AddMachineKeyRequest) GetUserId() string { + if x != nil { + return x.UserId } return "" } -func (m *AddMachineKeyRequest) GetType() MachineKeyType { - if m != nil { - return m.Type +func (x *AddMachineKeyRequest) GetType() MachineKeyType { + if x != nil { + return x.Type } return MachineKeyType_MACHINEKEY_UNSPECIFIED } -func (m *AddMachineKeyRequest) GetExpirationDate() *timestamp.Timestamp { - if m != nil { - return m.ExpirationDate +func (x *AddMachineKeyRequest) GetExpirationDate() *timestamp.Timestamp { + if x != nil { + return x.ExpirationDate } return nil } type AddMachineKeyResponse struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - CreationDate *timestamp.Timestamp `protobuf:"bytes,2,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` - Sequence uint64 `protobuf:"varint,3,opt,name=sequence,proto3" json:"sequence,omitempty"` - Type MachineKeyType `protobuf:"varint,4,opt,name=type,proto3,enum=caos.zitadel.management.api.v1.MachineKeyType" json:"type,omitempty"` - ExpirationDate *timestamp.Timestamp `protobuf:"bytes,5,opt,name=expiration_date,json=expirationDate,proto3" json:"expiration_date,omitempty"` - KeyDetails []byte `protobuf:"bytes,6,opt,name=key_details,json=keyDetails,proto3" json:"key_details,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,2,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + Sequence uint64 `protobuf:"varint,3,opt,name=sequence,proto3" json:"sequence,omitempty"` + Type MachineKeyType `protobuf:"varint,4,opt,name=type,proto3,enum=caos.zitadel.management.api.v1.MachineKeyType" json:"type,omitempty"` + ExpirationDate *timestamp.Timestamp `protobuf:"bytes,5,opt,name=expiration_date,json=expirationDate,proto3" json:"expiration_date,omitempty"` + KeyDetails []byte `protobuf:"bytes,6,opt,name=key_details,json=keyDetails,proto3" json:"key_details,omitempty"` } -func (m *AddMachineKeyResponse) Reset() { *m = AddMachineKeyResponse{} } -func (m *AddMachineKeyResponse) String() string { return proto.CompactTextString(m) } -func (*AddMachineKeyResponse) ProtoMessage() {} +func (x *AddMachineKeyResponse) Reset() { + *x = AddMachineKeyResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddMachineKeyResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddMachineKeyResponse) ProtoMessage() {} + +func (x *AddMachineKeyResponse) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddMachineKeyResponse.ProtoReflect.Descriptor instead. func (*AddMachineKeyResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{22} + return file_management_proto_rawDescGZIP(), []int{22} } -func (m *AddMachineKeyResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_AddMachineKeyResponse.Unmarshal(m, b) -} -func (m *AddMachineKeyResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_AddMachineKeyResponse.Marshal(b, m, deterministic) -} -func (m *AddMachineKeyResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_AddMachineKeyResponse.Merge(m, src) -} -func (m *AddMachineKeyResponse) XXX_Size() int { - return xxx_messageInfo_AddMachineKeyResponse.Size(m) -} -func (m *AddMachineKeyResponse) XXX_DiscardUnknown() { - xxx_messageInfo_AddMachineKeyResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_AddMachineKeyResponse proto.InternalMessageInfo - -func (m *AddMachineKeyResponse) GetId() string { - if m != nil { - return m.Id +func (x *AddMachineKeyResponse) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *AddMachineKeyResponse) GetCreationDate() *timestamp.Timestamp { - if m != nil { - return m.CreationDate +func (x *AddMachineKeyResponse) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate } return nil } -func (m *AddMachineKeyResponse) GetSequence() uint64 { - if m != nil { - return m.Sequence +func (x *AddMachineKeyResponse) GetSequence() uint64 { + if x != nil { + return x.Sequence } return 0 } -func (m *AddMachineKeyResponse) GetType() MachineKeyType { - if m != nil { - return m.Type +func (x *AddMachineKeyResponse) GetType() MachineKeyType { + if x != nil { + return x.Type } return MachineKeyType_MACHINEKEY_UNSPECIFIED } -func (m *AddMachineKeyResponse) GetExpirationDate() *timestamp.Timestamp { - if m != nil { - return m.ExpirationDate +func (x *AddMachineKeyResponse) GetExpirationDate() *timestamp.Timestamp { + if x != nil { + return x.ExpirationDate } return nil } -func (m *AddMachineKeyResponse) GetKeyDetails() []byte { - if m != nil { - return m.KeyDetails +func (x *AddMachineKeyResponse) GetKeyDetails() []byte { + if x != nil { + return x.KeyDetails } return nil } type MachineKeyIDRequest struct { - UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` - KeyId string `protobuf:"bytes,2,opt,name=key_id,json=keyId,proto3" json:"key_id,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + KeyId string `protobuf:"bytes,2,opt,name=key_id,json=keyId,proto3" json:"key_id,omitempty"` } -func (m *MachineKeyIDRequest) Reset() { *m = MachineKeyIDRequest{} } -func (m *MachineKeyIDRequest) String() string { return proto.CompactTextString(m) } -func (*MachineKeyIDRequest) ProtoMessage() {} +func (x *MachineKeyIDRequest) Reset() { + *x = MachineKeyIDRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MachineKeyIDRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MachineKeyIDRequest) ProtoMessage() {} + +func (x *MachineKeyIDRequest) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MachineKeyIDRequest.ProtoReflect.Descriptor instead. func (*MachineKeyIDRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{23} + return file_management_proto_rawDescGZIP(), []int{23} } -func (m *MachineKeyIDRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MachineKeyIDRequest.Unmarshal(m, b) -} -func (m *MachineKeyIDRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MachineKeyIDRequest.Marshal(b, m, deterministic) -} -func (m *MachineKeyIDRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_MachineKeyIDRequest.Merge(m, src) -} -func (m *MachineKeyIDRequest) XXX_Size() int { - return xxx_messageInfo_MachineKeyIDRequest.Size(m) -} -func (m *MachineKeyIDRequest) XXX_DiscardUnknown() { - xxx_messageInfo_MachineKeyIDRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_MachineKeyIDRequest proto.InternalMessageInfo - -func (m *MachineKeyIDRequest) GetUserId() string { - if m != nil { - return m.UserId +func (x *MachineKeyIDRequest) GetUserId() string { + if x != nil { + return x.UserId } return "" } -func (m *MachineKeyIDRequest) GetKeyId() string { - if m != nil { - return m.KeyId +func (x *MachineKeyIDRequest) GetKeyId() string { + if x != nil { + return x.KeyId } return "" } type MachineKeyView struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Type MachineKeyType `protobuf:"varint,2,opt,name=type,proto3,enum=caos.zitadel.management.api.v1.MachineKeyType" json:"type,omitempty"` - Sequence uint64 `protobuf:"varint,3,opt,name=sequence,proto3" json:"sequence,omitempty"` - CreationDate *timestamp.Timestamp `protobuf:"bytes,4,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` - ExpirationDate *timestamp.Timestamp `protobuf:"bytes,5,opt,name=expiration_date,json=expirationDate,proto3" json:"expiration_date,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Type MachineKeyType `protobuf:"varint,2,opt,name=type,proto3,enum=caos.zitadel.management.api.v1.MachineKeyType" json:"type,omitempty"` + Sequence uint64 `protobuf:"varint,3,opt,name=sequence,proto3" json:"sequence,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,4,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + ExpirationDate *timestamp.Timestamp `protobuf:"bytes,5,opt,name=expiration_date,json=expirationDate,proto3" json:"expiration_date,omitempty"` } -func (m *MachineKeyView) Reset() { *m = MachineKeyView{} } -func (m *MachineKeyView) String() string { return proto.CompactTextString(m) } -func (*MachineKeyView) ProtoMessage() {} +func (x *MachineKeyView) Reset() { + *x = MachineKeyView{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MachineKeyView) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MachineKeyView) ProtoMessage() {} + +func (x *MachineKeyView) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MachineKeyView.ProtoReflect.Descriptor instead. func (*MachineKeyView) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{24} + return file_management_proto_rawDescGZIP(), []int{24} } -func (m *MachineKeyView) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MachineKeyView.Unmarshal(m, b) -} -func (m *MachineKeyView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MachineKeyView.Marshal(b, m, deterministic) -} -func (m *MachineKeyView) XXX_Merge(src proto.Message) { - xxx_messageInfo_MachineKeyView.Merge(m, src) -} -func (m *MachineKeyView) XXX_Size() int { - return xxx_messageInfo_MachineKeyView.Size(m) -} -func (m *MachineKeyView) XXX_DiscardUnknown() { - xxx_messageInfo_MachineKeyView.DiscardUnknown(m) -} - -var xxx_messageInfo_MachineKeyView proto.InternalMessageInfo - -func (m *MachineKeyView) GetId() string { - if m != nil { - return m.Id +func (x *MachineKeyView) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *MachineKeyView) GetType() MachineKeyType { - if m != nil { - return m.Type +func (x *MachineKeyView) GetType() MachineKeyType { + if x != nil { + return x.Type } return MachineKeyType_MACHINEKEY_UNSPECIFIED } -func (m *MachineKeyView) GetSequence() uint64 { - if m != nil { - return m.Sequence +func (x *MachineKeyView) GetSequence() uint64 { + if x != nil { + return x.Sequence } return 0 } -func (m *MachineKeyView) GetCreationDate() *timestamp.Timestamp { - if m != nil { - return m.CreationDate +func (x *MachineKeyView) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate } return nil } -func (m *MachineKeyView) GetExpirationDate() *timestamp.Timestamp { - if m != nil { - return m.ExpirationDate +func (x *MachineKeyView) GetExpirationDate() *timestamp.Timestamp { + if x != nil { + return x.ExpirationDate } return nil } type MachineKeySearchRequest struct { - Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` - Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` - Asc bool `protobuf:"varint,3,opt,name=asc,proto3" json:"asc,omitempty"` - UserId string `protobuf:"bytes,4,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` + Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` + Asc bool `protobuf:"varint,3,opt,name=asc,proto3" json:"asc,omitempty"` + UserId string `protobuf:"bytes,4,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` } -func (m *MachineKeySearchRequest) Reset() { *m = MachineKeySearchRequest{} } -func (m *MachineKeySearchRequest) String() string { return proto.CompactTextString(m) } -func (*MachineKeySearchRequest) ProtoMessage() {} +func (x *MachineKeySearchRequest) Reset() { + *x = MachineKeySearchRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MachineKeySearchRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MachineKeySearchRequest) ProtoMessage() {} + +func (x *MachineKeySearchRequest) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MachineKeySearchRequest.ProtoReflect.Descriptor instead. func (*MachineKeySearchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{25} + return file_management_proto_rawDescGZIP(), []int{25} } -func (m *MachineKeySearchRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MachineKeySearchRequest.Unmarshal(m, b) -} -func (m *MachineKeySearchRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MachineKeySearchRequest.Marshal(b, m, deterministic) -} -func (m *MachineKeySearchRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_MachineKeySearchRequest.Merge(m, src) -} -func (m *MachineKeySearchRequest) XXX_Size() int { - return xxx_messageInfo_MachineKeySearchRequest.Size(m) -} -func (m *MachineKeySearchRequest) XXX_DiscardUnknown() { - xxx_messageInfo_MachineKeySearchRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_MachineKeySearchRequest proto.InternalMessageInfo - -func (m *MachineKeySearchRequest) GetOffset() uint64 { - if m != nil { - return m.Offset +func (x *MachineKeySearchRequest) GetOffset() uint64 { + if x != nil { + return x.Offset } return 0 } -func (m *MachineKeySearchRequest) GetLimit() uint64 { - if m != nil { - return m.Limit +func (x *MachineKeySearchRequest) GetLimit() uint64 { + if x != nil { + return x.Limit } return 0 } -func (m *MachineKeySearchRequest) GetAsc() bool { - if m != nil { - return m.Asc +func (x *MachineKeySearchRequest) GetAsc() bool { + if x != nil { + return x.Asc } return false } -func (m *MachineKeySearchRequest) GetUserId() string { - if m != nil { - return m.UserId +func (x *MachineKeySearchRequest) GetUserId() string { + if x != nil { + return x.UserId } return "" } type MachineKeySearchResponse struct { - Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` - Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` - TotalResult uint64 `protobuf:"varint,3,opt,name=total_result,json=totalResult,proto3" json:"total_result,omitempty"` - Result []*MachineKeyView `protobuf:"bytes,4,rep,name=result,proto3" json:"result,omitempty"` - ProcessedSequence uint64 `protobuf:"varint,5,opt,name=processed_sequence,json=processedSequence,proto3" json:"processed_sequence,omitempty"` - ViewTimestamp *timestamp.Timestamp `protobuf:"bytes,6,opt,name=view_timestamp,json=viewTimestamp,proto3" json:"view_timestamp,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` + Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` + TotalResult uint64 `protobuf:"varint,3,opt,name=total_result,json=totalResult,proto3" json:"total_result,omitempty"` + Result []*MachineKeyView `protobuf:"bytes,4,rep,name=result,proto3" json:"result,omitempty"` + ProcessedSequence uint64 `protobuf:"varint,5,opt,name=processed_sequence,json=processedSequence,proto3" json:"processed_sequence,omitempty"` + ViewTimestamp *timestamp.Timestamp `protobuf:"bytes,6,opt,name=view_timestamp,json=viewTimestamp,proto3" json:"view_timestamp,omitempty"` } -func (m *MachineKeySearchResponse) Reset() { *m = MachineKeySearchResponse{} } -func (m *MachineKeySearchResponse) String() string { return proto.CompactTextString(m) } -func (*MachineKeySearchResponse) ProtoMessage() {} +func (x *MachineKeySearchResponse) Reset() { + *x = MachineKeySearchResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MachineKeySearchResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MachineKeySearchResponse) ProtoMessage() {} + +func (x *MachineKeySearchResponse) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[26] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MachineKeySearchResponse.ProtoReflect.Descriptor instead. func (*MachineKeySearchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{26} + return file_management_proto_rawDescGZIP(), []int{26} } -func (m *MachineKeySearchResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MachineKeySearchResponse.Unmarshal(m, b) -} -func (m *MachineKeySearchResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MachineKeySearchResponse.Marshal(b, m, deterministic) -} -func (m *MachineKeySearchResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_MachineKeySearchResponse.Merge(m, src) -} -func (m *MachineKeySearchResponse) XXX_Size() int { - return xxx_messageInfo_MachineKeySearchResponse.Size(m) -} -func (m *MachineKeySearchResponse) XXX_DiscardUnknown() { - xxx_messageInfo_MachineKeySearchResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_MachineKeySearchResponse proto.InternalMessageInfo - -func (m *MachineKeySearchResponse) GetOffset() uint64 { - if m != nil { - return m.Offset +func (x *MachineKeySearchResponse) GetOffset() uint64 { + if x != nil { + return x.Offset } return 0 } -func (m *MachineKeySearchResponse) GetLimit() uint64 { - if m != nil { - return m.Limit +func (x *MachineKeySearchResponse) GetLimit() uint64 { + if x != nil { + return x.Limit } return 0 } -func (m *MachineKeySearchResponse) GetTotalResult() uint64 { - if m != nil { - return m.TotalResult +func (x *MachineKeySearchResponse) GetTotalResult() uint64 { + if x != nil { + return x.TotalResult } return 0 } -func (m *MachineKeySearchResponse) GetResult() []*MachineKeyView { - if m != nil { - return m.Result +func (x *MachineKeySearchResponse) GetResult() []*MachineKeyView { + if x != nil { + return x.Result } return nil } -func (m *MachineKeySearchResponse) GetProcessedSequence() uint64 { - if m != nil { - return m.ProcessedSequence +func (x *MachineKeySearchResponse) GetProcessedSequence() uint64 { + if x != nil { + return x.ProcessedSequence } return 0 } -func (m *MachineKeySearchResponse) GetViewTimestamp() *timestamp.Timestamp { - if m != nil { - return m.ViewTimestamp +func (x *MachineKeySearchResponse) GetViewTimestamp() *timestamp.Timestamp { + if x != nil { + return x.ViewTimestamp } return nil } type UserSearchRequest struct { - Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` - Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` - SortingColumn UserSearchKey `protobuf:"varint,3,opt,name=sorting_column,json=sortingColumn,proto3,enum=caos.zitadel.management.api.v1.UserSearchKey" json:"sorting_column,omitempty"` - Asc bool `protobuf:"varint,4,opt,name=asc,proto3" json:"asc,omitempty"` - Queries []*UserSearchQuery `protobuf:"bytes,5,rep,name=queries,proto3" json:"queries,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` + Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` + SortingColumn UserSearchKey `protobuf:"varint,3,opt,name=sorting_column,json=sortingColumn,proto3,enum=caos.zitadel.management.api.v1.UserSearchKey" json:"sorting_column,omitempty"` + Asc bool `protobuf:"varint,4,opt,name=asc,proto3" json:"asc,omitempty"` + Queries []*UserSearchQuery `protobuf:"bytes,5,rep,name=queries,proto3" json:"queries,omitempty"` } -func (m *UserSearchRequest) Reset() { *m = UserSearchRequest{} } -func (m *UserSearchRequest) String() string { return proto.CompactTextString(m) } -func (*UserSearchRequest) ProtoMessage() {} +func (x *UserSearchRequest) Reset() { + *x = UserSearchRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserSearchRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserSearchRequest) ProtoMessage() {} + +func (x *UserSearchRequest) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserSearchRequest.ProtoReflect.Descriptor instead. func (*UserSearchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{27} + return file_management_proto_rawDescGZIP(), []int{27} } -func (m *UserSearchRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserSearchRequest.Unmarshal(m, b) -} -func (m *UserSearchRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserSearchRequest.Marshal(b, m, deterministic) -} -func (m *UserSearchRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserSearchRequest.Merge(m, src) -} -func (m *UserSearchRequest) XXX_Size() int { - return xxx_messageInfo_UserSearchRequest.Size(m) -} -func (m *UserSearchRequest) XXX_DiscardUnknown() { - xxx_messageInfo_UserSearchRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_UserSearchRequest proto.InternalMessageInfo - -func (m *UserSearchRequest) GetOffset() uint64 { - if m != nil { - return m.Offset +func (x *UserSearchRequest) GetOffset() uint64 { + if x != nil { + return x.Offset } return 0 } -func (m *UserSearchRequest) GetLimit() uint64 { - if m != nil { - return m.Limit +func (x *UserSearchRequest) GetLimit() uint64 { + if x != nil { + return x.Limit } return 0 } -func (m *UserSearchRequest) GetSortingColumn() UserSearchKey { - if m != nil { - return m.SortingColumn +func (x *UserSearchRequest) GetSortingColumn() UserSearchKey { + if x != nil { + return x.SortingColumn } return UserSearchKey_USERSEARCHKEY_UNSPECIFIED } -func (m *UserSearchRequest) GetAsc() bool { - if m != nil { - return m.Asc +func (x *UserSearchRequest) GetAsc() bool { + if x != nil { + return x.Asc } return false } -func (m *UserSearchRequest) GetQueries() []*UserSearchQuery { - if m != nil { - return m.Queries +func (x *UserSearchRequest) GetQueries() []*UserSearchQuery { + if x != nil { + return x.Queries } return nil } type UserSearchQuery struct { - Key UserSearchKey `protobuf:"varint,1,opt,name=key,proto3,enum=caos.zitadel.management.api.v1.UserSearchKey" json:"key,omitempty"` - Method SearchMethod `protobuf:"varint,2,opt,name=method,proto3,enum=caos.zitadel.management.api.v1.SearchMethod" json:"method,omitempty"` - Value string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Key UserSearchKey `protobuf:"varint,1,opt,name=key,proto3,enum=caos.zitadel.management.api.v1.UserSearchKey" json:"key,omitempty"` + Method SearchMethod `protobuf:"varint,2,opt,name=method,proto3,enum=caos.zitadel.management.api.v1.SearchMethod" json:"method,omitempty"` + Value string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` } -func (m *UserSearchQuery) Reset() { *m = UserSearchQuery{} } -func (m *UserSearchQuery) String() string { return proto.CompactTextString(m) } -func (*UserSearchQuery) ProtoMessage() {} +func (x *UserSearchQuery) Reset() { + *x = UserSearchQuery{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserSearchQuery) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserSearchQuery) ProtoMessage() {} + +func (x *UserSearchQuery) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[28] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserSearchQuery.ProtoReflect.Descriptor instead. func (*UserSearchQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{28} + return file_management_proto_rawDescGZIP(), []int{28} } -func (m *UserSearchQuery) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserSearchQuery.Unmarshal(m, b) -} -func (m *UserSearchQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserSearchQuery.Marshal(b, m, deterministic) -} -func (m *UserSearchQuery) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserSearchQuery.Merge(m, src) -} -func (m *UserSearchQuery) XXX_Size() int { - return xxx_messageInfo_UserSearchQuery.Size(m) -} -func (m *UserSearchQuery) XXX_DiscardUnknown() { - xxx_messageInfo_UserSearchQuery.DiscardUnknown(m) -} - -var xxx_messageInfo_UserSearchQuery proto.InternalMessageInfo - -func (m *UserSearchQuery) GetKey() UserSearchKey { - if m != nil { - return m.Key +func (x *UserSearchQuery) GetKey() UserSearchKey { + if x != nil { + return x.Key } return UserSearchKey_USERSEARCHKEY_UNSPECIFIED } -func (m *UserSearchQuery) GetMethod() SearchMethod { - if m != nil { - return m.Method +func (x *UserSearchQuery) GetMethod() SearchMethod { + if x != nil { + return x.Method } return SearchMethod_SEARCHMETHOD_EQUALS } -func (m *UserSearchQuery) GetValue() string { - if m != nil { - return m.Value +func (x *UserSearchQuery) GetValue() string { + if x != nil { + return x.Value } return "" } type UserSearchResponse struct { - Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` - Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` - TotalResult uint64 `protobuf:"varint,3,opt,name=total_result,json=totalResult,proto3" json:"total_result,omitempty"` - Result []*UserView `protobuf:"bytes,4,rep,name=result,proto3" json:"result,omitempty"` - ProcessedSequence uint64 `protobuf:"varint,5,opt,name=processed_sequence,json=processedSequence,proto3" json:"processed_sequence,omitempty"` - ViewTimestamp *timestamp.Timestamp `protobuf:"bytes,6,opt,name=view_timestamp,json=viewTimestamp,proto3" json:"view_timestamp,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` + Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` + TotalResult uint64 `protobuf:"varint,3,opt,name=total_result,json=totalResult,proto3" json:"total_result,omitempty"` + Result []*UserView `protobuf:"bytes,4,rep,name=result,proto3" json:"result,omitempty"` + ProcessedSequence uint64 `protobuf:"varint,5,opt,name=processed_sequence,json=processedSequence,proto3" json:"processed_sequence,omitempty"` + ViewTimestamp *timestamp.Timestamp `protobuf:"bytes,6,opt,name=view_timestamp,json=viewTimestamp,proto3" json:"view_timestamp,omitempty"` } -func (m *UserSearchResponse) Reset() { *m = UserSearchResponse{} } -func (m *UserSearchResponse) String() string { return proto.CompactTextString(m) } -func (*UserSearchResponse) ProtoMessage() {} +func (x *UserSearchResponse) Reset() { + *x = UserSearchResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserSearchResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserSearchResponse) ProtoMessage() {} + +func (x *UserSearchResponse) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[29] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserSearchResponse.ProtoReflect.Descriptor instead. func (*UserSearchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{29} + return file_management_proto_rawDescGZIP(), []int{29} } -func (m *UserSearchResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserSearchResponse.Unmarshal(m, b) -} -func (m *UserSearchResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserSearchResponse.Marshal(b, m, deterministic) -} -func (m *UserSearchResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserSearchResponse.Merge(m, src) -} -func (m *UserSearchResponse) XXX_Size() int { - return xxx_messageInfo_UserSearchResponse.Size(m) -} -func (m *UserSearchResponse) XXX_DiscardUnknown() { - xxx_messageInfo_UserSearchResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_UserSearchResponse proto.InternalMessageInfo - -func (m *UserSearchResponse) GetOffset() uint64 { - if m != nil { - return m.Offset +func (x *UserSearchResponse) GetOffset() uint64 { + if x != nil { + return x.Offset } return 0 } -func (m *UserSearchResponse) GetLimit() uint64 { - if m != nil { - return m.Limit +func (x *UserSearchResponse) GetLimit() uint64 { + if x != nil { + return x.Limit } return 0 } -func (m *UserSearchResponse) GetTotalResult() uint64 { - if m != nil { - return m.TotalResult +func (x *UserSearchResponse) GetTotalResult() uint64 { + if x != nil { + return x.TotalResult } return 0 } -func (m *UserSearchResponse) GetResult() []*UserView { - if m != nil { - return m.Result +func (x *UserSearchResponse) GetResult() []*UserView { + if x != nil { + return x.Result } return nil } -func (m *UserSearchResponse) GetProcessedSequence() uint64 { - if m != nil { - return m.ProcessedSequence +func (x *UserSearchResponse) GetProcessedSequence() uint64 { + if x != nil { + return x.ProcessedSequence } return 0 } -func (m *UserSearchResponse) GetViewTimestamp() *timestamp.Timestamp { - if m != nil { - return m.ViewTimestamp +func (x *UserSearchResponse) GetViewTimestamp() *timestamp.Timestamp { + if x != nil { + return x.ViewTimestamp } return nil } type UserProfile struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - FirstName string `protobuf:"bytes,2,opt,name=first_name,json=firstName,proto3" json:"first_name,omitempty"` - LastName string `protobuf:"bytes,3,opt,name=last_name,json=lastName,proto3" json:"last_name,omitempty"` - NickName string `protobuf:"bytes,4,opt,name=nick_name,json=nickName,proto3" json:"nick_name,omitempty"` - DisplayName string `protobuf:"bytes,5,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` - PreferredLanguage string `protobuf:"bytes,6,opt,name=preferred_language,json=preferredLanguage,proto3" json:"preferred_language,omitempty"` - Gender Gender `protobuf:"varint,7,opt,name=gender,proto3,enum=caos.zitadel.management.api.v1.Gender" json:"gender,omitempty"` - Sequence uint64 `protobuf:"varint,8,opt,name=sequence,proto3" json:"sequence,omitempty"` - CreationDate *timestamp.Timestamp `protobuf:"bytes,9,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` - ChangeDate *timestamp.Timestamp `protobuf:"bytes,10,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + FirstName string `protobuf:"bytes,2,opt,name=first_name,json=firstName,proto3" json:"first_name,omitempty"` + LastName string `protobuf:"bytes,3,opt,name=last_name,json=lastName,proto3" json:"last_name,omitempty"` + NickName string `protobuf:"bytes,4,opt,name=nick_name,json=nickName,proto3" json:"nick_name,omitempty"` + DisplayName string `protobuf:"bytes,5,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + PreferredLanguage string `protobuf:"bytes,6,opt,name=preferred_language,json=preferredLanguage,proto3" json:"preferred_language,omitempty"` + Gender Gender `protobuf:"varint,7,opt,name=gender,proto3,enum=caos.zitadel.management.api.v1.Gender" json:"gender,omitempty"` + Sequence uint64 `protobuf:"varint,8,opt,name=sequence,proto3" json:"sequence,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,9,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + ChangeDate *timestamp.Timestamp `protobuf:"bytes,10,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` } -func (m *UserProfile) Reset() { *m = UserProfile{} } -func (m *UserProfile) String() string { return proto.CompactTextString(m) } -func (*UserProfile) ProtoMessage() {} +func (x *UserProfile) Reset() { + *x = UserProfile{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserProfile) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserProfile) ProtoMessage() {} + +func (x *UserProfile) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[30] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserProfile.ProtoReflect.Descriptor instead. func (*UserProfile) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{30} + return file_management_proto_rawDescGZIP(), []int{30} } -func (m *UserProfile) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserProfile.Unmarshal(m, b) -} -func (m *UserProfile) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserProfile.Marshal(b, m, deterministic) -} -func (m *UserProfile) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserProfile.Merge(m, src) -} -func (m *UserProfile) XXX_Size() int { - return xxx_messageInfo_UserProfile.Size(m) -} -func (m *UserProfile) XXX_DiscardUnknown() { - xxx_messageInfo_UserProfile.DiscardUnknown(m) -} - -var xxx_messageInfo_UserProfile proto.InternalMessageInfo - -func (m *UserProfile) GetId() string { - if m != nil { - return m.Id +func (x *UserProfile) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *UserProfile) GetFirstName() string { - if m != nil { - return m.FirstName +func (x *UserProfile) GetFirstName() string { + if x != nil { + return x.FirstName } return "" } -func (m *UserProfile) GetLastName() string { - if m != nil { - return m.LastName +func (x *UserProfile) GetLastName() string { + if x != nil { + return x.LastName } return "" } -func (m *UserProfile) GetNickName() string { - if m != nil { - return m.NickName +func (x *UserProfile) GetNickName() string { + if x != nil { + return x.NickName } return "" } -func (m *UserProfile) GetDisplayName() string { - if m != nil { - return m.DisplayName +func (x *UserProfile) GetDisplayName() string { + if x != nil { + return x.DisplayName } return "" } -func (m *UserProfile) GetPreferredLanguage() string { - if m != nil { - return m.PreferredLanguage +func (x *UserProfile) GetPreferredLanguage() string { + if x != nil { + return x.PreferredLanguage } return "" } -func (m *UserProfile) GetGender() Gender { - if m != nil { - return m.Gender +func (x *UserProfile) GetGender() Gender { + if x != nil { + return x.Gender } return Gender_GENDER_UNSPECIFIED } -func (m *UserProfile) GetSequence() uint64 { - if m != nil { - return m.Sequence +func (x *UserProfile) GetSequence() uint64 { + if x != nil { + return x.Sequence } return 0 } -func (m *UserProfile) GetCreationDate() *timestamp.Timestamp { - if m != nil { - return m.CreationDate +func (x *UserProfile) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate } return nil } -func (m *UserProfile) GetChangeDate() *timestamp.Timestamp { - if m != nil { - return m.ChangeDate +func (x *UserProfile) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate } return nil } type UserProfileView struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - FirstName string `protobuf:"bytes,2,opt,name=first_name,json=firstName,proto3" json:"first_name,omitempty"` - LastName string `protobuf:"bytes,3,opt,name=last_name,json=lastName,proto3" json:"last_name,omitempty"` - NickName string `protobuf:"bytes,4,opt,name=nick_name,json=nickName,proto3" json:"nick_name,omitempty"` - DisplayName string `protobuf:"bytes,5,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` - PreferredLanguage string `protobuf:"bytes,6,opt,name=preferred_language,json=preferredLanguage,proto3" json:"preferred_language,omitempty"` - Gender Gender `protobuf:"varint,7,opt,name=gender,proto3,enum=caos.zitadel.management.api.v1.Gender" json:"gender,omitempty"` - Sequence uint64 `protobuf:"varint,8,opt,name=sequence,proto3" json:"sequence,omitempty"` - CreationDate *timestamp.Timestamp `protobuf:"bytes,9,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` - ChangeDate *timestamp.Timestamp `protobuf:"bytes,10,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` - LoginNames []string `protobuf:"bytes,11,rep,name=login_names,json=loginNames,proto3" json:"login_names,omitempty"` - PreferredLoginName string `protobuf:"bytes,12,opt,name=preferred_login_name,json=preferredLoginName,proto3" json:"preferred_login_name,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + FirstName string `protobuf:"bytes,2,opt,name=first_name,json=firstName,proto3" json:"first_name,omitempty"` + LastName string `protobuf:"bytes,3,opt,name=last_name,json=lastName,proto3" json:"last_name,omitempty"` + NickName string `protobuf:"bytes,4,opt,name=nick_name,json=nickName,proto3" json:"nick_name,omitempty"` + DisplayName string `protobuf:"bytes,5,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + PreferredLanguage string `protobuf:"bytes,6,opt,name=preferred_language,json=preferredLanguage,proto3" json:"preferred_language,omitempty"` + Gender Gender `protobuf:"varint,7,opt,name=gender,proto3,enum=caos.zitadel.management.api.v1.Gender" json:"gender,omitempty"` + Sequence uint64 `protobuf:"varint,8,opt,name=sequence,proto3" json:"sequence,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,9,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + ChangeDate *timestamp.Timestamp `protobuf:"bytes,10,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` + LoginNames []string `protobuf:"bytes,11,rep,name=login_names,json=loginNames,proto3" json:"login_names,omitempty"` + PreferredLoginName string `protobuf:"bytes,12,opt,name=preferred_login_name,json=preferredLoginName,proto3" json:"preferred_login_name,omitempty"` } -func (m *UserProfileView) Reset() { *m = UserProfileView{} } -func (m *UserProfileView) String() string { return proto.CompactTextString(m) } -func (*UserProfileView) ProtoMessage() {} +func (x *UserProfileView) Reset() { + *x = UserProfileView{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserProfileView) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserProfileView) ProtoMessage() {} + +func (x *UserProfileView) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[31] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserProfileView.ProtoReflect.Descriptor instead. func (*UserProfileView) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{31} + return file_management_proto_rawDescGZIP(), []int{31} } -func (m *UserProfileView) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserProfileView.Unmarshal(m, b) -} -func (m *UserProfileView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserProfileView.Marshal(b, m, deterministic) -} -func (m *UserProfileView) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserProfileView.Merge(m, src) -} -func (m *UserProfileView) XXX_Size() int { - return xxx_messageInfo_UserProfileView.Size(m) -} -func (m *UserProfileView) XXX_DiscardUnknown() { - xxx_messageInfo_UserProfileView.DiscardUnknown(m) -} - -var xxx_messageInfo_UserProfileView proto.InternalMessageInfo - -func (m *UserProfileView) GetId() string { - if m != nil { - return m.Id +func (x *UserProfileView) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *UserProfileView) GetFirstName() string { - if m != nil { - return m.FirstName +func (x *UserProfileView) GetFirstName() string { + if x != nil { + return x.FirstName } return "" } -func (m *UserProfileView) GetLastName() string { - if m != nil { - return m.LastName +func (x *UserProfileView) GetLastName() string { + if x != nil { + return x.LastName } return "" } -func (m *UserProfileView) GetNickName() string { - if m != nil { - return m.NickName +func (x *UserProfileView) GetNickName() string { + if x != nil { + return x.NickName } return "" } -func (m *UserProfileView) GetDisplayName() string { - if m != nil { - return m.DisplayName +func (x *UserProfileView) GetDisplayName() string { + if x != nil { + return x.DisplayName } return "" } -func (m *UserProfileView) GetPreferredLanguage() string { - if m != nil { - return m.PreferredLanguage +func (x *UserProfileView) GetPreferredLanguage() string { + if x != nil { + return x.PreferredLanguage } return "" } -func (m *UserProfileView) GetGender() Gender { - if m != nil { - return m.Gender +func (x *UserProfileView) GetGender() Gender { + if x != nil { + return x.Gender } return Gender_GENDER_UNSPECIFIED } -func (m *UserProfileView) GetSequence() uint64 { - if m != nil { - return m.Sequence +func (x *UserProfileView) GetSequence() uint64 { + if x != nil { + return x.Sequence } return 0 } -func (m *UserProfileView) GetCreationDate() *timestamp.Timestamp { - if m != nil { - return m.CreationDate +func (x *UserProfileView) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate } return nil } -func (m *UserProfileView) GetChangeDate() *timestamp.Timestamp { - if m != nil { - return m.ChangeDate +func (x *UserProfileView) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate } return nil } -func (m *UserProfileView) GetLoginNames() []string { - if m != nil { - return m.LoginNames +func (x *UserProfileView) GetLoginNames() []string { + if x != nil { + return x.LoginNames } return nil } -func (m *UserProfileView) GetPreferredLoginName() string { - if m != nil { - return m.PreferredLoginName +func (x *UserProfileView) GetPreferredLoginName() string { + if x != nil { + return x.PreferredLoginName } return "" } type UpdateUserProfileRequest struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - FirstName string `protobuf:"bytes,2,opt,name=first_name,json=firstName,proto3" json:"first_name,omitempty"` - LastName string `protobuf:"bytes,3,opt,name=last_name,json=lastName,proto3" json:"last_name,omitempty"` - NickName string `protobuf:"bytes,4,opt,name=nick_name,json=nickName,proto3" json:"nick_name,omitempty"` - PreferredLanguage string `protobuf:"bytes,5,opt,name=preferred_language,json=preferredLanguage,proto3" json:"preferred_language,omitempty"` - Gender Gender `protobuf:"varint,6,opt,name=gender,proto3,enum=caos.zitadel.management.api.v1.Gender" json:"gender,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + FirstName string `protobuf:"bytes,2,opt,name=first_name,json=firstName,proto3" json:"first_name,omitempty"` + LastName string `protobuf:"bytes,3,opt,name=last_name,json=lastName,proto3" json:"last_name,omitempty"` + NickName string `protobuf:"bytes,4,opt,name=nick_name,json=nickName,proto3" json:"nick_name,omitempty"` + PreferredLanguage string `protobuf:"bytes,5,opt,name=preferred_language,json=preferredLanguage,proto3" json:"preferred_language,omitempty"` + Gender Gender `protobuf:"varint,6,opt,name=gender,proto3,enum=caos.zitadel.management.api.v1.Gender" json:"gender,omitempty"` } -func (m *UpdateUserProfileRequest) Reset() { *m = UpdateUserProfileRequest{} } -func (m *UpdateUserProfileRequest) String() string { return proto.CompactTextString(m) } -func (*UpdateUserProfileRequest) ProtoMessage() {} +func (x *UpdateUserProfileRequest) Reset() { + *x = UpdateUserProfileRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateUserProfileRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateUserProfileRequest) ProtoMessage() {} + +func (x *UpdateUserProfileRequest) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[32] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateUserProfileRequest.ProtoReflect.Descriptor instead. func (*UpdateUserProfileRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{32} + return file_management_proto_rawDescGZIP(), []int{32} } -func (m *UpdateUserProfileRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UpdateUserProfileRequest.Unmarshal(m, b) -} -func (m *UpdateUserProfileRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UpdateUserProfileRequest.Marshal(b, m, deterministic) -} -func (m *UpdateUserProfileRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_UpdateUserProfileRequest.Merge(m, src) -} -func (m *UpdateUserProfileRequest) XXX_Size() int { - return xxx_messageInfo_UpdateUserProfileRequest.Size(m) -} -func (m *UpdateUserProfileRequest) XXX_DiscardUnknown() { - xxx_messageInfo_UpdateUserProfileRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_UpdateUserProfileRequest proto.InternalMessageInfo - -func (m *UpdateUserProfileRequest) GetId() string { - if m != nil { - return m.Id +func (x *UpdateUserProfileRequest) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *UpdateUserProfileRequest) GetFirstName() string { - if m != nil { - return m.FirstName +func (x *UpdateUserProfileRequest) GetFirstName() string { + if x != nil { + return x.FirstName } return "" } -func (m *UpdateUserProfileRequest) GetLastName() string { - if m != nil { - return m.LastName +func (x *UpdateUserProfileRequest) GetLastName() string { + if x != nil { + return x.LastName } return "" } -func (m *UpdateUserProfileRequest) GetNickName() string { - if m != nil { - return m.NickName +func (x *UpdateUserProfileRequest) GetNickName() string { + if x != nil { + return x.NickName } return "" } -func (m *UpdateUserProfileRequest) GetPreferredLanguage() string { - if m != nil { - return m.PreferredLanguage +func (x *UpdateUserProfileRequest) GetPreferredLanguage() string { + if x != nil { + return x.PreferredLanguage } return "" } -func (m *UpdateUserProfileRequest) GetGender() Gender { - if m != nil { - return m.Gender +func (x *UpdateUserProfileRequest) GetGender() Gender { + if x != nil { + return x.Gender } return Gender_GENDER_UNSPECIFIED } type UpdateUserUserNameRequest struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - UserName string `protobuf:"bytes,2,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + UserName string `protobuf:"bytes,2,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` } -func (m *UpdateUserUserNameRequest) Reset() { *m = UpdateUserUserNameRequest{} } -func (m *UpdateUserUserNameRequest) String() string { return proto.CompactTextString(m) } -func (*UpdateUserUserNameRequest) ProtoMessage() {} +func (x *UpdateUserUserNameRequest) Reset() { + *x = UpdateUserUserNameRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateUserUserNameRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateUserUserNameRequest) ProtoMessage() {} + +func (x *UpdateUserUserNameRequest) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[33] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateUserUserNameRequest.ProtoReflect.Descriptor instead. func (*UpdateUserUserNameRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{33} + return file_management_proto_rawDescGZIP(), []int{33} } -func (m *UpdateUserUserNameRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UpdateUserUserNameRequest.Unmarshal(m, b) -} -func (m *UpdateUserUserNameRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UpdateUserUserNameRequest.Marshal(b, m, deterministic) -} -func (m *UpdateUserUserNameRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_UpdateUserUserNameRequest.Merge(m, src) -} -func (m *UpdateUserUserNameRequest) XXX_Size() int { - return xxx_messageInfo_UpdateUserUserNameRequest.Size(m) -} -func (m *UpdateUserUserNameRequest) XXX_DiscardUnknown() { - xxx_messageInfo_UpdateUserUserNameRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_UpdateUserUserNameRequest proto.InternalMessageInfo - -func (m *UpdateUserUserNameRequest) GetId() string { - if m != nil { - return m.Id +func (x *UpdateUserUserNameRequest) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *UpdateUserUserNameRequest) GetUserName() string { - if m != nil { - return m.UserName +func (x *UpdateUserUserNameRequest) GetUserName() string { + if x != nil { + return x.UserName } return "" } type UserEmail struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Email string `protobuf:"bytes,2,opt,name=email,proto3" json:"email,omitempty"` - IsEmailVerified bool `protobuf:"varint,3,opt,name=is_email_verified,json=isEmailVerified,proto3" json:"is_email_verified,omitempty"` - Sequence uint64 `protobuf:"varint,4,opt,name=sequence,proto3" json:"sequence,omitempty"` - CreationDate *timestamp.Timestamp `protobuf:"bytes,5,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` - ChangeDate *timestamp.Timestamp `protobuf:"bytes,6,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Email string `protobuf:"bytes,2,opt,name=email,proto3" json:"email,omitempty"` + IsEmailVerified bool `protobuf:"varint,3,opt,name=is_email_verified,json=isEmailVerified,proto3" json:"is_email_verified,omitempty"` + Sequence uint64 `protobuf:"varint,4,opt,name=sequence,proto3" json:"sequence,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,5,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + ChangeDate *timestamp.Timestamp `protobuf:"bytes,6,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` } -func (m *UserEmail) Reset() { *m = UserEmail{} } -func (m *UserEmail) String() string { return proto.CompactTextString(m) } -func (*UserEmail) ProtoMessage() {} +func (x *UserEmail) Reset() { + *x = UserEmail{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserEmail) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserEmail) ProtoMessage() {} + +func (x *UserEmail) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[34] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserEmail.ProtoReflect.Descriptor instead. func (*UserEmail) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{34} + return file_management_proto_rawDescGZIP(), []int{34} } -func (m *UserEmail) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserEmail.Unmarshal(m, b) -} -func (m *UserEmail) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserEmail.Marshal(b, m, deterministic) -} -func (m *UserEmail) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserEmail.Merge(m, src) -} -func (m *UserEmail) XXX_Size() int { - return xxx_messageInfo_UserEmail.Size(m) -} -func (m *UserEmail) XXX_DiscardUnknown() { - xxx_messageInfo_UserEmail.DiscardUnknown(m) -} - -var xxx_messageInfo_UserEmail proto.InternalMessageInfo - -func (m *UserEmail) GetId() string { - if m != nil { - return m.Id +func (x *UserEmail) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *UserEmail) GetEmail() string { - if m != nil { - return m.Email +func (x *UserEmail) GetEmail() string { + if x != nil { + return x.Email } return "" } -func (m *UserEmail) GetIsEmailVerified() bool { - if m != nil { - return m.IsEmailVerified +func (x *UserEmail) GetIsEmailVerified() bool { + if x != nil { + return x.IsEmailVerified } return false } -func (m *UserEmail) GetSequence() uint64 { - if m != nil { - return m.Sequence +func (x *UserEmail) GetSequence() uint64 { + if x != nil { + return x.Sequence } return 0 } -func (m *UserEmail) GetCreationDate() *timestamp.Timestamp { - if m != nil { - return m.CreationDate +func (x *UserEmail) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate } return nil } -func (m *UserEmail) GetChangeDate() *timestamp.Timestamp { - if m != nil { - return m.ChangeDate +func (x *UserEmail) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate } return nil } type UserEmailView struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Email string `protobuf:"bytes,2,opt,name=email,proto3" json:"email,omitempty"` - IsEmailVerified bool `protobuf:"varint,3,opt,name=is_email_verified,json=isEmailVerified,proto3" json:"is_email_verified,omitempty"` - Sequence uint64 `protobuf:"varint,4,opt,name=sequence,proto3" json:"sequence,omitempty"` - CreationDate *timestamp.Timestamp `protobuf:"bytes,5,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` - ChangeDate *timestamp.Timestamp `protobuf:"bytes,6,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Email string `protobuf:"bytes,2,opt,name=email,proto3" json:"email,omitempty"` + IsEmailVerified bool `protobuf:"varint,3,opt,name=is_email_verified,json=isEmailVerified,proto3" json:"is_email_verified,omitempty"` + Sequence uint64 `protobuf:"varint,4,opt,name=sequence,proto3" json:"sequence,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,5,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + ChangeDate *timestamp.Timestamp `protobuf:"bytes,6,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` } -func (m *UserEmailView) Reset() { *m = UserEmailView{} } -func (m *UserEmailView) String() string { return proto.CompactTextString(m) } -func (*UserEmailView) ProtoMessage() {} +func (x *UserEmailView) Reset() { + *x = UserEmailView{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserEmailView) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserEmailView) ProtoMessage() {} + +func (x *UserEmailView) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[35] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserEmailView.ProtoReflect.Descriptor instead. func (*UserEmailView) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{35} + return file_management_proto_rawDescGZIP(), []int{35} } -func (m *UserEmailView) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserEmailView.Unmarshal(m, b) -} -func (m *UserEmailView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserEmailView.Marshal(b, m, deterministic) -} -func (m *UserEmailView) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserEmailView.Merge(m, src) -} -func (m *UserEmailView) XXX_Size() int { - return xxx_messageInfo_UserEmailView.Size(m) -} -func (m *UserEmailView) XXX_DiscardUnknown() { - xxx_messageInfo_UserEmailView.DiscardUnknown(m) -} - -var xxx_messageInfo_UserEmailView proto.InternalMessageInfo - -func (m *UserEmailView) GetId() string { - if m != nil { - return m.Id +func (x *UserEmailView) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *UserEmailView) GetEmail() string { - if m != nil { - return m.Email +func (x *UserEmailView) GetEmail() string { + if x != nil { + return x.Email } return "" } -func (m *UserEmailView) GetIsEmailVerified() bool { - if m != nil { - return m.IsEmailVerified +func (x *UserEmailView) GetIsEmailVerified() bool { + if x != nil { + return x.IsEmailVerified } return false } -func (m *UserEmailView) GetSequence() uint64 { - if m != nil { - return m.Sequence +func (x *UserEmailView) GetSequence() uint64 { + if x != nil { + return x.Sequence } return 0 } -func (m *UserEmailView) GetCreationDate() *timestamp.Timestamp { - if m != nil { - return m.CreationDate +func (x *UserEmailView) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate } return nil } -func (m *UserEmailView) GetChangeDate() *timestamp.Timestamp { - if m != nil { - return m.ChangeDate +func (x *UserEmailView) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate } return nil } type UpdateUserEmailRequest struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Email string `protobuf:"bytes,2,opt,name=email,proto3" json:"email,omitempty"` - IsEmailVerified bool `protobuf:"varint,3,opt,name=is_email_verified,json=isEmailVerified,proto3" json:"is_email_verified,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Email string `protobuf:"bytes,2,opt,name=email,proto3" json:"email,omitempty"` + IsEmailVerified bool `protobuf:"varint,3,opt,name=is_email_verified,json=isEmailVerified,proto3" json:"is_email_verified,omitempty"` } -func (m *UpdateUserEmailRequest) Reset() { *m = UpdateUserEmailRequest{} } -func (m *UpdateUserEmailRequest) String() string { return proto.CompactTextString(m) } -func (*UpdateUserEmailRequest) ProtoMessage() {} +func (x *UpdateUserEmailRequest) Reset() { + *x = UpdateUserEmailRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateUserEmailRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateUserEmailRequest) ProtoMessage() {} + +func (x *UpdateUserEmailRequest) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[36] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateUserEmailRequest.ProtoReflect.Descriptor instead. func (*UpdateUserEmailRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{36} + return file_management_proto_rawDescGZIP(), []int{36} } -func (m *UpdateUserEmailRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UpdateUserEmailRequest.Unmarshal(m, b) -} -func (m *UpdateUserEmailRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UpdateUserEmailRequest.Marshal(b, m, deterministic) -} -func (m *UpdateUserEmailRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_UpdateUserEmailRequest.Merge(m, src) -} -func (m *UpdateUserEmailRequest) XXX_Size() int { - return xxx_messageInfo_UpdateUserEmailRequest.Size(m) -} -func (m *UpdateUserEmailRequest) XXX_DiscardUnknown() { - xxx_messageInfo_UpdateUserEmailRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_UpdateUserEmailRequest proto.InternalMessageInfo - -func (m *UpdateUserEmailRequest) GetId() string { - if m != nil { - return m.Id +func (x *UpdateUserEmailRequest) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *UpdateUserEmailRequest) GetEmail() string { - if m != nil { - return m.Email +func (x *UpdateUserEmailRequest) GetEmail() string { + if x != nil { + return x.Email } return "" } -func (m *UpdateUserEmailRequest) GetIsEmailVerified() bool { - if m != nil { - return m.IsEmailVerified +func (x *UpdateUserEmailRequest) GetIsEmailVerified() bool { + if x != nil { + return x.IsEmailVerified } return false } type UserPhone struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Phone string `protobuf:"bytes,2,opt,name=phone,proto3" json:"phone,omitempty"` - IsPhoneVerified bool `protobuf:"varint,3,opt,name=is_phone_verified,json=isPhoneVerified,proto3" json:"is_phone_verified,omitempty"` - Sequence uint64 `protobuf:"varint,5,opt,name=sequence,proto3" json:"sequence,omitempty"` - CreationDate *timestamp.Timestamp `protobuf:"bytes,6,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` - ChangeDate *timestamp.Timestamp `protobuf:"bytes,7,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Phone string `protobuf:"bytes,2,opt,name=phone,proto3" json:"phone,omitempty"` + IsPhoneVerified bool `protobuf:"varint,3,opt,name=is_phone_verified,json=isPhoneVerified,proto3" json:"is_phone_verified,omitempty"` + Sequence uint64 `protobuf:"varint,5,opt,name=sequence,proto3" json:"sequence,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,6,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + ChangeDate *timestamp.Timestamp `protobuf:"bytes,7,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` } -func (m *UserPhone) Reset() { *m = UserPhone{} } -func (m *UserPhone) String() string { return proto.CompactTextString(m) } -func (*UserPhone) ProtoMessage() {} +func (x *UserPhone) Reset() { + *x = UserPhone{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserPhone) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserPhone) ProtoMessage() {} + +func (x *UserPhone) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[37] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserPhone.ProtoReflect.Descriptor instead. func (*UserPhone) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{37} + return file_management_proto_rawDescGZIP(), []int{37} } -func (m *UserPhone) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserPhone.Unmarshal(m, b) -} -func (m *UserPhone) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserPhone.Marshal(b, m, deterministic) -} -func (m *UserPhone) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserPhone.Merge(m, src) -} -func (m *UserPhone) XXX_Size() int { - return xxx_messageInfo_UserPhone.Size(m) -} -func (m *UserPhone) XXX_DiscardUnknown() { - xxx_messageInfo_UserPhone.DiscardUnknown(m) -} - -var xxx_messageInfo_UserPhone proto.InternalMessageInfo - -func (m *UserPhone) GetId() string { - if m != nil { - return m.Id +func (x *UserPhone) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *UserPhone) GetPhone() string { - if m != nil { - return m.Phone +func (x *UserPhone) GetPhone() string { + if x != nil { + return x.Phone } return "" } -func (m *UserPhone) GetIsPhoneVerified() bool { - if m != nil { - return m.IsPhoneVerified +func (x *UserPhone) GetIsPhoneVerified() bool { + if x != nil { + return x.IsPhoneVerified } return false } -func (m *UserPhone) GetSequence() uint64 { - if m != nil { - return m.Sequence +func (x *UserPhone) GetSequence() uint64 { + if x != nil { + return x.Sequence } return 0 } -func (m *UserPhone) GetCreationDate() *timestamp.Timestamp { - if m != nil { - return m.CreationDate +func (x *UserPhone) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate } return nil } -func (m *UserPhone) GetChangeDate() *timestamp.Timestamp { - if m != nil { - return m.ChangeDate +func (x *UserPhone) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate } return nil } type UserPhoneView struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Phone string `protobuf:"bytes,2,opt,name=phone,proto3" json:"phone,omitempty"` - IsPhoneVerified bool `protobuf:"varint,3,opt,name=is_phone_verified,json=isPhoneVerified,proto3" json:"is_phone_verified,omitempty"` - Sequence uint64 `protobuf:"varint,5,opt,name=sequence,proto3" json:"sequence,omitempty"` - CreationDate *timestamp.Timestamp `protobuf:"bytes,6,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` - ChangeDate *timestamp.Timestamp `protobuf:"bytes,7,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Phone string `protobuf:"bytes,2,opt,name=phone,proto3" json:"phone,omitempty"` + IsPhoneVerified bool `protobuf:"varint,3,opt,name=is_phone_verified,json=isPhoneVerified,proto3" json:"is_phone_verified,omitempty"` + Sequence uint64 `protobuf:"varint,5,opt,name=sequence,proto3" json:"sequence,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,6,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + ChangeDate *timestamp.Timestamp `protobuf:"bytes,7,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` } -func (m *UserPhoneView) Reset() { *m = UserPhoneView{} } -func (m *UserPhoneView) String() string { return proto.CompactTextString(m) } -func (*UserPhoneView) ProtoMessage() {} +func (x *UserPhoneView) Reset() { + *x = UserPhoneView{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserPhoneView) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserPhoneView) ProtoMessage() {} + +func (x *UserPhoneView) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[38] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserPhoneView.ProtoReflect.Descriptor instead. func (*UserPhoneView) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{38} + return file_management_proto_rawDescGZIP(), []int{38} } -func (m *UserPhoneView) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserPhoneView.Unmarshal(m, b) -} -func (m *UserPhoneView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserPhoneView.Marshal(b, m, deterministic) -} -func (m *UserPhoneView) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserPhoneView.Merge(m, src) -} -func (m *UserPhoneView) XXX_Size() int { - return xxx_messageInfo_UserPhoneView.Size(m) -} -func (m *UserPhoneView) XXX_DiscardUnknown() { - xxx_messageInfo_UserPhoneView.DiscardUnknown(m) -} - -var xxx_messageInfo_UserPhoneView proto.InternalMessageInfo - -func (m *UserPhoneView) GetId() string { - if m != nil { - return m.Id +func (x *UserPhoneView) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *UserPhoneView) GetPhone() string { - if m != nil { - return m.Phone +func (x *UserPhoneView) GetPhone() string { + if x != nil { + return x.Phone } return "" } -func (m *UserPhoneView) GetIsPhoneVerified() bool { - if m != nil { - return m.IsPhoneVerified +func (x *UserPhoneView) GetIsPhoneVerified() bool { + if x != nil { + return x.IsPhoneVerified } return false } -func (m *UserPhoneView) GetSequence() uint64 { - if m != nil { - return m.Sequence +func (x *UserPhoneView) GetSequence() uint64 { + if x != nil { + return x.Sequence } return 0 } -func (m *UserPhoneView) GetCreationDate() *timestamp.Timestamp { - if m != nil { - return m.CreationDate +func (x *UserPhoneView) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate } return nil } -func (m *UserPhoneView) GetChangeDate() *timestamp.Timestamp { - if m != nil { - return m.ChangeDate +func (x *UserPhoneView) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate } return nil } type UpdateUserPhoneRequest struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Phone string `protobuf:"bytes,2,opt,name=phone,proto3" json:"phone,omitempty"` - IsPhoneVerified bool `protobuf:"varint,3,opt,name=is_phone_verified,json=isPhoneVerified,proto3" json:"is_phone_verified,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Phone string `protobuf:"bytes,2,opt,name=phone,proto3" json:"phone,omitempty"` + IsPhoneVerified bool `protobuf:"varint,3,opt,name=is_phone_verified,json=isPhoneVerified,proto3" json:"is_phone_verified,omitempty"` } -func (m *UpdateUserPhoneRequest) Reset() { *m = UpdateUserPhoneRequest{} } -func (m *UpdateUserPhoneRequest) String() string { return proto.CompactTextString(m) } -func (*UpdateUserPhoneRequest) ProtoMessage() {} +func (x *UpdateUserPhoneRequest) Reset() { + *x = UpdateUserPhoneRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateUserPhoneRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateUserPhoneRequest) ProtoMessage() {} + +func (x *UpdateUserPhoneRequest) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[39] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateUserPhoneRequest.ProtoReflect.Descriptor instead. func (*UpdateUserPhoneRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{39} + return file_management_proto_rawDescGZIP(), []int{39} } -func (m *UpdateUserPhoneRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UpdateUserPhoneRequest.Unmarshal(m, b) -} -func (m *UpdateUserPhoneRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UpdateUserPhoneRequest.Marshal(b, m, deterministic) -} -func (m *UpdateUserPhoneRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_UpdateUserPhoneRequest.Merge(m, src) -} -func (m *UpdateUserPhoneRequest) XXX_Size() int { - return xxx_messageInfo_UpdateUserPhoneRequest.Size(m) -} -func (m *UpdateUserPhoneRequest) XXX_DiscardUnknown() { - xxx_messageInfo_UpdateUserPhoneRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_UpdateUserPhoneRequest proto.InternalMessageInfo - -func (m *UpdateUserPhoneRequest) GetId() string { - if m != nil { - return m.Id +func (x *UpdateUserPhoneRequest) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *UpdateUserPhoneRequest) GetPhone() string { - if m != nil { - return m.Phone +func (x *UpdateUserPhoneRequest) GetPhone() string { + if x != nil { + return x.Phone } return "" } -func (m *UpdateUserPhoneRequest) GetIsPhoneVerified() bool { - if m != nil { - return m.IsPhoneVerified +func (x *UpdateUserPhoneRequest) GetIsPhoneVerified() bool { + if x != nil { + return x.IsPhoneVerified } return false } type UserAddress struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Country string `protobuf:"bytes,2,opt,name=country,proto3" json:"country,omitempty"` - Locality string `protobuf:"bytes,3,opt,name=locality,proto3" json:"locality,omitempty"` - PostalCode string `protobuf:"bytes,4,opt,name=postal_code,json=postalCode,proto3" json:"postal_code,omitempty"` - Region string `protobuf:"bytes,5,opt,name=region,proto3" json:"region,omitempty"` - StreetAddress string `protobuf:"bytes,6,opt,name=street_address,json=streetAddress,proto3" json:"street_address,omitempty"` - Sequence uint64 `protobuf:"varint,7,opt,name=sequence,proto3" json:"sequence,omitempty"` - CreationDate *timestamp.Timestamp `protobuf:"bytes,8,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` - ChangeDate *timestamp.Timestamp `protobuf:"bytes,9,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Country string `protobuf:"bytes,2,opt,name=country,proto3" json:"country,omitempty"` + Locality string `protobuf:"bytes,3,opt,name=locality,proto3" json:"locality,omitempty"` + PostalCode string `protobuf:"bytes,4,opt,name=postal_code,json=postalCode,proto3" json:"postal_code,omitempty"` + Region string `protobuf:"bytes,5,opt,name=region,proto3" json:"region,omitempty"` + StreetAddress string `protobuf:"bytes,6,opt,name=street_address,json=streetAddress,proto3" json:"street_address,omitempty"` + Sequence uint64 `protobuf:"varint,7,opt,name=sequence,proto3" json:"sequence,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,8,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + ChangeDate *timestamp.Timestamp `protobuf:"bytes,9,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` } -func (m *UserAddress) Reset() { *m = UserAddress{} } -func (m *UserAddress) String() string { return proto.CompactTextString(m) } -func (*UserAddress) ProtoMessage() {} +func (x *UserAddress) Reset() { + *x = UserAddress{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserAddress) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserAddress) ProtoMessage() {} + +func (x *UserAddress) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[40] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserAddress.ProtoReflect.Descriptor instead. func (*UserAddress) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{40} + return file_management_proto_rawDescGZIP(), []int{40} } -func (m *UserAddress) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserAddress.Unmarshal(m, b) -} -func (m *UserAddress) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserAddress.Marshal(b, m, deterministic) -} -func (m *UserAddress) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserAddress.Merge(m, src) -} -func (m *UserAddress) XXX_Size() int { - return xxx_messageInfo_UserAddress.Size(m) -} -func (m *UserAddress) XXX_DiscardUnknown() { - xxx_messageInfo_UserAddress.DiscardUnknown(m) -} - -var xxx_messageInfo_UserAddress proto.InternalMessageInfo - -func (m *UserAddress) GetId() string { - if m != nil { - return m.Id +func (x *UserAddress) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *UserAddress) GetCountry() string { - if m != nil { - return m.Country +func (x *UserAddress) GetCountry() string { + if x != nil { + return x.Country } return "" } -func (m *UserAddress) GetLocality() string { - if m != nil { - return m.Locality +func (x *UserAddress) GetLocality() string { + if x != nil { + return x.Locality } return "" } -func (m *UserAddress) GetPostalCode() string { - if m != nil { - return m.PostalCode +func (x *UserAddress) GetPostalCode() string { + if x != nil { + return x.PostalCode } return "" } -func (m *UserAddress) GetRegion() string { - if m != nil { - return m.Region +func (x *UserAddress) GetRegion() string { + if x != nil { + return x.Region } return "" } -func (m *UserAddress) GetStreetAddress() string { - if m != nil { - return m.StreetAddress +func (x *UserAddress) GetStreetAddress() string { + if x != nil { + return x.StreetAddress } return "" } -func (m *UserAddress) GetSequence() uint64 { - if m != nil { - return m.Sequence +func (x *UserAddress) GetSequence() uint64 { + if x != nil { + return x.Sequence } return 0 } -func (m *UserAddress) GetCreationDate() *timestamp.Timestamp { - if m != nil { - return m.CreationDate +func (x *UserAddress) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate } return nil } -func (m *UserAddress) GetChangeDate() *timestamp.Timestamp { - if m != nil { - return m.ChangeDate +func (x *UserAddress) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate } return nil } type UserAddressView struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Country string `protobuf:"bytes,2,opt,name=country,proto3" json:"country,omitempty"` - Locality string `protobuf:"bytes,3,opt,name=locality,proto3" json:"locality,omitempty"` - PostalCode string `protobuf:"bytes,4,opt,name=postal_code,json=postalCode,proto3" json:"postal_code,omitempty"` - Region string `protobuf:"bytes,5,opt,name=region,proto3" json:"region,omitempty"` - StreetAddress string `protobuf:"bytes,6,opt,name=street_address,json=streetAddress,proto3" json:"street_address,omitempty"` - Sequence uint64 `protobuf:"varint,7,opt,name=sequence,proto3" json:"sequence,omitempty"` - CreationDate *timestamp.Timestamp `protobuf:"bytes,8,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` - ChangeDate *timestamp.Timestamp `protobuf:"bytes,9,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Country string `protobuf:"bytes,2,opt,name=country,proto3" json:"country,omitempty"` + Locality string `protobuf:"bytes,3,opt,name=locality,proto3" json:"locality,omitempty"` + PostalCode string `protobuf:"bytes,4,opt,name=postal_code,json=postalCode,proto3" json:"postal_code,omitempty"` + Region string `protobuf:"bytes,5,opt,name=region,proto3" json:"region,omitempty"` + StreetAddress string `protobuf:"bytes,6,opt,name=street_address,json=streetAddress,proto3" json:"street_address,omitempty"` + Sequence uint64 `protobuf:"varint,7,opt,name=sequence,proto3" json:"sequence,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,8,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + ChangeDate *timestamp.Timestamp `protobuf:"bytes,9,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` } -func (m *UserAddressView) Reset() { *m = UserAddressView{} } -func (m *UserAddressView) String() string { return proto.CompactTextString(m) } -func (*UserAddressView) ProtoMessage() {} +func (x *UserAddressView) Reset() { + *x = UserAddressView{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserAddressView) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserAddressView) ProtoMessage() {} + +func (x *UserAddressView) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[41] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserAddressView.ProtoReflect.Descriptor instead. func (*UserAddressView) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{41} + return file_management_proto_rawDescGZIP(), []int{41} } -func (m *UserAddressView) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserAddressView.Unmarshal(m, b) -} -func (m *UserAddressView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserAddressView.Marshal(b, m, deterministic) -} -func (m *UserAddressView) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserAddressView.Merge(m, src) -} -func (m *UserAddressView) XXX_Size() int { - return xxx_messageInfo_UserAddressView.Size(m) -} -func (m *UserAddressView) XXX_DiscardUnknown() { - xxx_messageInfo_UserAddressView.DiscardUnknown(m) -} - -var xxx_messageInfo_UserAddressView proto.InternalMessageInfo - -func (m *UserAddressView) GetId() string { - if m != nil { - return m.Id +func (x *UserAddressView) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *UserAddressView) GetCountry() string { - if m != nil { - return m.Country +func (x *UserAddressView) GetCountry() string { + if x != nil { + return x.Country } return "" } -func (m *UserAddressView) GetLocality() string { - if m != nil { - return m.Locality +func (x *UserAddressView) GetLocality() string { + if x != nil { + return x.Locality } return "" } -func (m *UserAddressView) GetPostalCode() string { - if m != nil { - return m.PostalCode +func (x *UserAddressView) GetPostalCode() string { + if x != nil { + return x.PostalCode } return "" } -func (m *UserAddressView) GetRegion() string { - if m != nil { - return m.Region +func (x *UserAddressView) GetRegion() string { + if x != nil { + return x.Region } return "" } -func (m *UserAddressView) GetStreetAddress() string { - if m != nil { - return m.StreetAddress +func (x *UserAddressView) GetStreetAddress() string { + if x != nil { + return x.StreetAddress } return "" } -func (m *UserAddressView) GetSequence() uint64 { - if m != nil { - return m.Sequence +func (x *UserAddressView) GetSequence() uint64 { + if x != nil { + return x.Sequence } return 0 } -func (m *UserAddressView) GetCreationDate() *timestamp.Timestamp { - if m != nil { - return m.CreationDate +func (x *UserAddressView) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate } return nil } -func (m *UserAddressView) GetChangeDate() *timestamp.Timestamp { - if m != nil { - return m.ChangeDate +func (x *UserAddressView) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate } return nil } type UpdateUserAddressRequest struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Country string `protobuf:"bytes,2,opt,name=country,proto3" json:"country,omitempty"` - Locality string `protobuf:"bytes,3,opt,name=locality,proto3" json:"locality,omitempty"` - PostalCode string `protobuf:"bytes,4,opt,name=postal_code,json=postalCode,proto3" json:"postal_code,omitempty"` - Region string `protobuf:"bytes,5,opt,name=region,proto3" json:"region,omitempty"` - StreetAddress string `protobuf:"bytes,6,opt,name=street_address,json=streetAddress,proto3" json:"street_address,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Country string `protobuf:"bytes,2,opt,name=country,proto3" json:"country,omitempty"` + Locality string `protobuf:"bytes,3,opt,name=locality,proto3" json:"locality,omitempty"` + PostalCode string `protobuf:"bytes,4,opt,name=postal_code,json=postalCode,proto3" json:"postal_code,omitempty"` + Region string `protobuf:"bytes,5,opt,name=region,proto3" json:"region,omitempty"` + StreetAddress string `protobuf:"bytes,6,opt,name=street_address,json=streetAddress,proto3" json:"street_address,omitempty"` } -func (m *UpdateUserAddressRequest) Reset() { *m = UpdateUserAddressRequest{} } -func (m *UpdateUserAddressRequest) String() string { return proto.CompactTextString(m) } -func (*UpdateUserAddressRequest) ProtoMessage() {} +func (x *UpdateUserAddressRequest) Reset() { + *x = UpdateUserAddressRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateUserAddressRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateUserAddressRequest) ProtoMessage() {} + +func (x *UpdateUserAddressRequest) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[42] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateUserAddressRequest.ProtoReflect.Descriptor instead. func (*UpdateUserAddressRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{42} + return file_management_proto_rawDescGZIP(), []int{42} } -func (m *UpdateUserAddressRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UpdateUserAddressRequest.Unmarshal(m, b) -} -func (m *UpdateUserAddressRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UpdateUserAddressRequest.Marshal(b, m, deterministic) -} -func (m *UpdateUserAddressRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_UpdateUserAddressRequest.Merge(m, src) -} -func (m *UpdateUserAddressRequest) XXX_Size() int { - return xxx_messageInfo_UpdateUserAddressRequest.Size(m) -} -func (m *UpdateUserAddressRequest) XXX_DiscardUnknown() { - xxx_messageInfo_UpdateUserAddressRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_UpdateUserAddressRequest proto.InternalMessageInfo - -func (m *UpdateUserAddressRequest) GetId() string { - if m != nil { - return m.Id +func (x *UpdateUserAddressRequest) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *UpdateUserAddressRequest) GetCountry() string { - if m != nil { - return m.Country +func (x *UpdateUserAddressRequest) GetCountry() string { + if x != nil { + return x.Country } return "" } -func (m *UpdateUserAddressRequest) GetLocality() string { - if m != nil { - return m.Locality +func (x *UpdateUserAddressRequest) GetLocality() string { + if x != nil { + return x.Locality } return "" } -func (m *UpdateUserAddressRequest) GetPostalCode() string { - if m != nil { - return m.PostalCode +func (x *UpdateUserAddressRequest) GetPostalCode() string { + if x != nil { + return x.PostalCode } return "" } -func (m *UpdateUserAddressRequest) GetRegion() string { - if m != nil { - return m.Region +func (x *UpdateUserAddressRequest) GetRegion() string { + if x != nil { + return x.Region } return "" } -func (m *UpdateUserAddressRequest) GetStreetAddress() string { - if m != nil { - return m.StreetAddress +func (x *UpdateUserAddressRequest) GetStreetAddress() string { + if x != nil { + return x.StreetAddress } return "" } type MultiFactors struct { - Mfas []*MultiFactor `protobuf:"bytes,1,rep,name=mfas,proto3" json:"mfas,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Mfas []*MultiFactor `protobuf:"bytes,1,rep,name=mfas,proto3" json:"mfas,omitempty"` } -func (m *MultiFactors) Reset() { *m = MultiFactors{} } -func (m *MultiFactors) String() string { return proto.CompactTextString(m) } -func (*MultiFactors) ProtoMessage() {} +func (x *MultiFactors) Reset() { + *x = MultiFactors{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MultiFactors) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MultiFactors) ProtoMessage() {} + +func (x *MultiFactors) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[43] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MultiFactors.ProtoReflect.Descriptor instead. func (*MultiFactors) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{43} + return file_management_proto_rawDescGZIP(), []int{43} } -func (m *MultiFactors) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MultiFactors.Unmarshal(m, b) -} -func (m *MultiFactors) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MultiFactors.Marshal(b, m, deterministic) -} -func (m *MultiFactors) XXX_Merge(src proto.Message) { - xxx_messageInfo_MultiFactors.Merge(m, src) -} -func (m *MultiFactors) XXX_Size() int { - return xxx_messageInfo_MultiFactors.Size(m) -} -func (m *MultiFactors) XXX_DiscardUnknown() { - xxx_messageInfo_MultiFactors.DiscardUnknown(m) -} - -var xxx_messageInfo_MultiFactors proto.InternalMessageInfo - -func (m *MultiFactors) GetMfas() []*MultiFactor { - if m != nil { - return m.Mfas +func (x *MultiFactors) GetMfas() []*MultiFactor { + if x != nil { + return x.Mfas } return nil } type MultiFactor struct { - Type MfaType `protobuf:"varint,1,opt,name=type,proto3,enum=caos.zitadel.management.api.v1.MfaType" json:"type,omitempty"` - State MFAState `protobuf:"varint,2,opt,name=state,proto3,enum=caos.zitadel.management.api.v1.MFAState" json:"state,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type MfaType `protobuf:"varint,1,opt,name=type,proto3,enum=caos.zitadel.management.api.v1.MfaType" json:"type,omitempty"` + State MFAState `protobuf:"varint,2,opt,name=state,proto3,enum=caos.zitadel.management.api.v1.MFAState" json:"state,omitempty"` } -func (m *MultiFactor) Reset() { *m = MultiFactor{} } -func (m *MultiFactor) String() string { return proto.CompactTextString(m) } -func (*MultiFactor) ProtoMessage() {} +func (x *MultiFactor) Reset() { + *x = MultiFactor{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MultiFactor) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MultiFactor) ProtoMessage() {} + +func (x *MultiFactor) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[44] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MultiFactor.ProtoReflect.Descriptor instead. func (*MultiFactor) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{44} + return file_management_proto_rawDescGZIP(), []int{44} } -func (m *MultiFactor) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MultiFactor.Unmarshal(m, b) -} -func (m *MultiFactor) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MultiFactor.Marshal(b, m, deterministic) -} -func (m *MultiFactor) XXX_Merge(src proto.Message) { - xxx_messageInfo_MultiFactor.Merge(m, src) -} -func (m *MultiFactor) XXX_Size() int { - return xxx_messageInfo_MultiFactor.Size(m) -} -func (m *MultiFactor) XXX_DiscardUnknown() { - xxx_messageInfo_MultiFactor.DiscardUnknown(m) -} - -var xxx_messageInfo_MultiFactor proto.InternalMessageInfo - -func (m *MultiFactor) GetType() MfaType { - if m != nil { - return m.Type +func (x *MultiFactor) GetType() MfaType { + if x != nil { + return x.Type } return MfaType_MFATYPE_UNSPECIFIED } -func (m *MultiFactor) GetState() MFAState { - if m != nil { - return m.State +func (x *MultiFactor) GetState() MFAState { + if x != nil { + return x.State } return MFAState_MFASTATE_UNSPECIFIED } type PasswordRequest struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Password string `protobuf:"bytes,2,opt,name=password,proto3" json:"password,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Password string `protobuf:"bytes,2,opt,name=password,proto3" json:"password,omitempty"` } -func (m *PasswordRequest) Reset() { *m = PasswordRequest{} } -func (m *PasswordRequest) String() string { return proto.CompactTextString(m) } -func (*PasswordRequest) ProtoMessage() {} +func (x *PasswordRequest) Reset() { + *x = PasswordRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PasswordRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PasswordRequest) ProtoMessage() {} + +func (x *PasswordRequest) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[45] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PasswordRequest.ProtoReflect.Descriptor instead. func (*PasswordRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{45} + return file_management_proto_rawDescGZIP(), []int{45} } -func (m *PasswordRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_PasswordRequest.Unmarshal(m, b) -} -func (m *PasswordRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_PasswordRequest.Marshal(b, m, deterministic) -} -func (m *PasswordRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_PasswordRequest.Merge(m, src) -} -func (m *PasswordRequest) XXX_Size() int { - return xxx_messageInfo_PasswordRequest.Size(m) -} -func (m *PasswordRequest) XXX_DiscardUnknown() { - xxx_messageInfo_PasswordRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_PasswordRequest proto.InternalMessageInfo - -func (m *PasswordRequest) GetId() string { - if m != nil { - return m.Id +func (x *PasswordRequest) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *PasswordRequest) GetPassword() string { - if m != nil { - return m.Password +func (x *PasswordRequest) GetPassword() string { + if x != nil { + return x.Password } return "" } type SetPasswordNotificationRequest struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Type NotificationType `protobuf:"varint,2,opt,name=type,proto3,enum=caos.zitadel.management.api.v1.NotificationType" json:"type,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Type NotificationType `protobuf:"varint,2,opt,name=type,proto3,enum=caos.zitadel.management.api.v1.NotificationType" json:"type,omitempty"` } -func (m *SetPasswordNotificationRequest) Reset() { *m = SetPasswordNotificationRequest{} } -func (m *SetPasswordNotificationRequest) String() string { return proto.CompactTextString(m) } -func (*SetPasswordNotificationRequest) ProtoMessage() {} +func (x *SetPasswordNotificationRequest) Reset() { + *x = SetPasswordNotificationRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetPasswordNotificationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetPasswordNotificationRequest) ProtoMessage() {} + +func (x *SetPasswordNotificationRequest) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[46] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetPasswordNotificationRequest.ProtoReflect.Descriptor instead. func (*SetPasswordNotificationRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{46} + return file_management_proto_rawDescGZIP(), []int{46} } -func (m *SetPasswordNotificationRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SetPasswordNotificationRequest.Unmarshal(m, b) -} -func (m *SetPasswordNotificationRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SetPasswordNotificationRequest.Marshal(b, m, deterministic) -} -func (m *SetPasswordNotificationRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_SetPasswordNotificationRequest.Merge(m, src) -} -func (m *SetPasswordNotificationRequest) XXX_Size() int { - return xxx_messageInfo_SetPasswordNotificationRequest.Size(m) -} -func (m *SetPasswordNotificationRequest) XXX_DiscardUnknown() { - xxx_messageInfo_SetPasswordNotificationRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_SetPasswordNotificationRequest proto.InternalMessageInfo - -func (m *SetPasswordNotificationRequest) GetId() string { - if m != nil { - return m.Id +func (x *SetPasswordNotificationRequest) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *SetPasswordNotificationRequest) GetType() NotificationType { - if m != nil { - return m.Type +func (x *SetPasswordNotificationRequest) GetType() NotificationType { + if x != nil { + return x.Type } return NotificationType_NOTIFICATIONTYPE_EMAIL } type PasswordComplexityPolicyID struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` } -func (m *PasswordComplexityPolicyID) Reset() { *m = PasswordComplexityPolicyID{} } -func (m *PasswordComplexityPolicyID) String() string { return proto.CompactTextString(m) } -func (*PasswordComplexityPolicyID) ProtoMessage() {} +func (x *PasswordComplexityPolicyID) Reset() { + *x = PasswordComplexityPolicyID{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PasswordComplexityPolicyID) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PasswordComplexityPolicyID) ProtoMessage() {} + +func (x *PasswordComplexityPolicyID) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[47] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PasswordComplexityPolicyID.ProtoReflect.Descriptor instead. func (*PasswordComplexityPolicyID) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{47} + return file_management_proto_rawDescGZIP(), []int{47} } -func (m *PasswordComplexityPolicyID) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_PasswordComplexityPolicyID.Unmarshal(m, b) -} -func (m *PasswordComplexityPolicyID) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_PasswordComplexityPolicyID.Marshal(b, m, deterministic) -} -func (m *PasswordComplexityPolicyID) XXX_Merge(src proto.Message) { - xxx_messageInfo_PasswordComplexityPolicyID.Merge(m, src) -} -func (m *PasswordComplexityPolicyID) XXX_Size() int { - return xxx_messageInfo_PasswordComplexityPolicyID.Size(m) -} -func (m *PasswordComplexityPolicyID) XXX_DiscardUnknown() { - xxx_messageInfo_PasswordComplexityPolicyID.DiscardUnknown(m) -} - -var xxx_messageInfo_PasswordComplexityPolicyID proto.InternalMessageInfo - -func (m *PasswordComplexityPolicyID) GetId() string { - if m != nil { - return m.Id +func (x *PasswordComplexityPolicyID) GetId() string { + if x != nil { + return x.Id } return "" } type PasswordComplexityPolicy struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` - State PolicyState `protobuf:"varint,3,opt,name=state,proto3,enum=caos.zitadel.management.api.v1.PolicyState" json:"state,omitempty"` - CreationDate *timestamp.Timestamp `protobuf:"bytes,4,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` - ChangeDate *timestamp.Timestamp `protobuf:"bytes,5,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` - MinLength uint64 `protobuf:"varint,6,opt,name=min_length,json=minLength,proto3" json:"min_length,omitempty"` - HasLowercase bool `protobuf:"varint,7,opt,name=has_lowercase,json=hasLowercase,proto3" json:"has_lowercase,omitempty"` - HasUppercase bool `protobuf:"varint,8,opt,name=has_uppercase,json=hasUppercase,proto3" json:"has_uppercase,omitempty"` - HasNumber bool `protobuf:"varint,9,opt,name=has_number,json=hasNumber,proto3" json:"has_number,omitempty"` - HasSymbol bool `protobuf:"varint,10,opt,name=has_symbol,json=hasSymbol,proto3" json:"has_symbol,omitempty"` - Sequence uint64 `protobuf:"varint,11,opt,name=sequence,proto3" json:"sequence,omitempty"` - IsDefault bool `protobuf:"varint,12,opt,name=is_default,json=isDefault,proto3" json:"is_default,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` + State PolicyState `protobuf:"varint,3,opt,name=state,proto3,enum=caos.zitadel.management.api.v1.PolicyState" json:"state,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,4,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + ChangeDate *timestamp.Timestamp `protobuf:"bytes,5,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` + MinLength uint64 `protobuf:"varint,6,opt,name=min_length,json=minLength,proto3" json:"min_length,omitempty"` + HasLowercase bool `protobuf:"varint,7,opt,name=has_lowercase,json=hasLowercase,proto3" json:"has_lowercase,omitempty"` + HasUppercase bool `protobuf:"varint,8,opt,name=has_uppercase,json=hasUppercase,proto3" json:"has_uppercase,omitempty"` + HasNumber bool `protobuf:"varint,9,opt,name=has_number,json=hasNumber,proto3" json:"has_number,omitempty"` + HasSymbol bool `protobuf:"varint,10,opt,name=has_symbol,json=hasSymbol,proto3" json:"has_symbol,omitempty"` + Sequence uint64 `protobuf:"varint,11,opt,name=sequence,proto3" json:"sequence,omitempty"` + IsDefault bool `protobuf:"varint,12,opt,name=is_default,json=isDefault,proto3" json:"is_default,omitempty"` } -func (m *PasswordComplexityPolicy) Reset() { *m = PasswordComplexityPolicy{} } -func (m *PasswordComplexityPolicy) String() string { return proto.CompactTextString(m) } -func (*PasswordComplexityPolicy) ProtoMessage() {} +func (x *PasswordComplexityPolicy) Reset() { + *x = PasswordComplexityPolicy{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PasswordComplexityPolicy) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PasswordComplexityPolicy) ProtoMessage() {} + +func (x *PasswordComplexityPolicy) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[48] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PasswordComplexityPolicy.ProtoReflect.Descriptor instead. func (*PasswordComplexityPolicy) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{48} + return file_management_proto_rawDescGZIP(), []int{48} } -func (m *PasswordComplexityPolicy) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_PasswordComplexityPolicy.Unmarshal(m, b) -} -func (m *PasswordComplexityPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_PasswordComplexityPolicy.Marshal(b, m, deterministic) -} -func (m *PasswordComplexityPolicy) XXX_Merge(src proto.Message) { - xxx_messageInfo_PasswordComplexityPolicy.Merge(m, src) -} -func (m *PasswordComplexityPolicy) XXX_Size() int { - return xxx_messageInfo_PasswordComplexityPolicy.Size(m) -} -func (m *PasswordComplexityPolicy) XXX_DiscardUnknown() { - xxx_messageInfo_PasswordComplexityPolicy.DiscardUnknown(m) -} - -var xxx_messageInfo_PasswordComplexityPolicy proto.InternalMessageInfo - -func (m *PasswordComplexityPolicy) GetId() string { - if m != nil { - return m.Id +func (x *PasswordComplexityPolicy) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *PasswordComplexityPolicy) GetDescription() string { - if m != nil { - return m.Description +func (x *PasswordComplexityPolicy) GetDescription() string { + if x != nil { + return x.Description } return "" } -func (m *PasswordComplexityPolicy) GetState() PolicyState { - if m != nil { - return m.State +func (x *PasswordComplexityPolicy) GetState() PolicyState { + if x != nil { + return x.State } return PolicyState_POLICYSTATE_UNSPECIFIED } -func (m *PasswordComplexityPolicy) GetCreationDate() *timestamp.Timestamp { - if m != nil { - return m.CreationDate +func (x *PasswordComplexityPolicy) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate } return nil } -func (m *PasswordComplexityPolicy) GetChangeDate() *timestamp.Timestamp { - if m != nil { - return m.ChangeDate +func (x *PasswordComplexityPolicy) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate } return nil } -func (m *PasswordComplexityPolicy) GetMinLength() uint64 { - if m != nil { - return m.MinLength +func (x *PasswordComplexityPolicy) GetMinLength() uint64 { + if x != nil { + return x.MinLength } return 0 } -func (m *PasswordComplexityPolicy) GetHasLowercase() bool { - if m != nil { - return m.HasLowercase +func (x *PasswordComplexityPolicy) GetHasLowercase() bool { + if x != nil { + return x.HasLowercase } return false } -func (m *PasswordComplexityPolicy) GetHasUppercase() bool { - if m != nil { - return m.HasUppercase +func (x *PasswordComplexityPolicy) GetHasUppercase() bool { + if x != nil { + return x.HasUppercase } return false } -func (m *PasswordComplexityPolicy) GetHasNumber() bool { - if m != nil { - return m.HasNumber +func (x *PasswordComplexityPolicy) GetHasNumber() bool { + if x != nil { + return x.HasNumber } return false } -func (m *PasswordComplexityPolicy) GetHasSymbol() bool { - if m != nil { - return m.HasSymbol +func (x *PasswordComplexityPolicy) GetHasSymbol() bool { + if x != nil { + return x.HasSymbol } return false } -func (m *PasswordComplexityPolicy) GetSequence() uint64 { - if m != nil { - return m.Sequence +func (x *PasswordComplexityPolicy) GetSequence() uint64 { + if x != nil { + return x.Sequence } return 0 } -func (m *PasswordComplexityPolicy) GetIsDefault() bool { - if m != nil { - return m.IsDefault +func (x *PasswordComplexityPolicy) GetIsDefault() bool { + if x != nil { + return x.IsDefault } return false } type PasswordComplexityPolicyCreate struct { - Description string `protobuf:"bytes,1,opt,name=description,proto3" json:"description,omitempty"` - MinLength uint64 `protobuf:"varint,2,opt,name=min_length,json=minLength,proto3" json:"min_length,omitempty"` - HasLowercase bool `protobuf:"varint,3,opt,name=has_lowercase,json=hasLowercase,proto3" json:"has_lowercase,omitempty"` - HasUppercase bool `protobuf:"varint,4,opt,name=has_uppercase,json=hasUppercase,proto3" json:"has_uppercase,omitempty"` - HasNumber bool `protobuf:"varint,5,opt,name=has_number,json=hasNumber,proto3" json:"has_number,omitempty"` - HasSymbol bool `protobuf:"varint,6,opt,name=has_symbol,json=hasSymbol,proto3" json:"has_symbol,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Description string `protobuf:"bytes,1,opt,name=description,proto3" json:"description,omitempty"` + MinLength uint64 `protobuf:"varint,2,opt,name=min_length,json=minLength,proto3" json:"min_length,omitempty"` + HasLowercase bool `protobuf:"varint,3,opt,name=has_lowercase,json=hasLowercase,proto3" json:"has_lowercase,omitempty"` + HasUppercase bool `protobuf:"varint,4,opt,name=has_uppercase,json=hasUppercase,proto3" json:"has_uppercase,omitempty"` + HasNumber bool `protobuf:"varint,5,opt,name=has_number,json=hasNumber,proto3" json:"has_number,omitempty"` + HasSymbol bool `protobuf:"varint,6,opt,name=has_symbol,json=hasSymbol,proto3" json:"has_symbol,omitempty"` } -func (m *PasswordComplexityPolicyCreate) Reset() { *m = PasswordComplexityPolicyCreate{} } -func (m *PasswordComplexityPolicyCreate) String() string { return proto.CompactTextString(m) } -func (*PasswordComplexityPolicyCreate) ProtoMessage() {} +func (x *PasswordComplexityPolicyCreate) Reset() { + *x = PasswordComplexityPolicyCreate{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PasswordComplexityPolicyCreate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PasswordComplexityPolicyCreate) ProtoMessage() {} + +func (x *PasswordComplexityPolicyCreate) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[49] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PasswordComplexityPolicyCreate.ProtoReflect.Descriptor instead. func (*PasswordComplexityPolicyCreate) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{49} + return file_management_proto_rawDescGZIP(), []int{49} } -func (m *PasswordComplexityPolicyCreate) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_PasswordComplexityPolicyCreate.Unmarshal(m, b) -} -func (m *PasswordComplexityPolicyCreate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_PasswordComplexityPolicyCreate.Marshal(b, m, deterministic) -} -func (m *PasswordComplexityPolicyCreate) XXX_Merge(src proto.Message) { - xxx_messageInfo_PasswordComplexityPolicyCreate.Merge(m, src) -} -func (m *PasswordComplexityPolicyCreate) XXX_Size() int { - return xxx_messageInfo_PasswordComplexityPolicyCreate.Size(m) -} -func (m *PasswordComplexityPolicyCreate) XXX_DiscardUnknown() { - xxx_messageInfo_PasswordComplexityPolicyCreate.DiscardUnknown(m) -} - -var xxx_messageInfo_PasswordComplexityPolicyCreate proto.InternalMessageInfo - -func (m *PasswordComplexityPolicyCreate) GetDescription() string { - if m != nil { - return m.Description +func (x *PasswordComplexityPolicyCreate) GetDescription() string { + if x != nil { + return x.Description } return "" } -func (m *PasswordComplexityPolicyCreate) GetMinLength() uint64 { - if m != nil { - return m.MinLength +func (x *PasswordComplexityPolicyCreate) GetMinLength() uint64 { + if x != nil { + return x.MinLength } return 0 } -func (m *PasswordComplexityPolicyCreate) GetHasLowercase() bool { - if m != nil { - return m.HasLowercase +func (x *PasswordComplexityPolicyCreate) GetHasLowercase() bool { + if x != nil { + return x.HasLowercase } return false } -func (m *PasswordComplexityPolicyCreate) GetHasUppercase() bool { - if m != nil { - return m.HasUppercase +func (x *PasswordComplexityPolicyCreate) GetHasUppercase() bool { + if x != nil { + return x.HasUppercase } return false } -func (m *PasswordComplexityPolicyCreate) GetHasNumber() bool { - if m != nil { - return m.HasNumber +func (x *PasswordComplexityPolicyCreate) GetHasNumber() bool { + if x != nil { + return x.HasNumber } return false } -func (m *PasswordComplexityPolicyCreate) GetHasSymbol() bool { - if m != nil { - return m.HasSymbol +func (x *PasswordComplexityPolicyCreate) GetHasSymbol() bool { + if x != nil { + return x.HasSymbol } return false } type PasswordComplexityPolicyUpdate struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` - MinLength uint64 `protobuf:"varint,3,opt,name=min_length,json=minLength,proto3" json:"min_length,omitempty"` - HasLowercase bool `protobuf:"varint,4,opt,name=has_lowercase,json=hasLowercase,proto3" json:"has_lowercase,omitempty"` - HasUppercase bool `protobuf:"varint,5,opt,name=has_uppercase,json=hasUppercase,proto3" json:"has_uppercase,omitempty"` - HasNumber bool `protobuf:"varint,6,opt,name=has_number,json=hasNumber,proto3" json:"has_number,omitempty"` - HasSymbol bool `protobuf:"varint,7,opt,name=has_symbol,json=hasSymbol,proto3" json:"has_symbol,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` //TODO: do we need id? + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` + MinLength uint64 `protobuf:"varint,3,opt,name=min_length,json=minLength,proto3" json:"min_length,omitempty"` + HasLowercase bool `protobuf:"varint,4,opt,name=has_lowercase,json=hasLowercase,proto3" json:"has_lowercase,omitempty"` + HasUppercase bool `protobuf:"varint,5,opt,name=has_uppercase,json=hasUppercase,proto3" json:"has_uppercase,omitempty"` + HasNumber bool `protobuf:"varint,6,opt,name=has_number,json=hasNumber,proto3" json:"has_number,omitempty"` + HasSymbol bool `protobuf:"varint,7,opt,name=has_symbol,json=hasSymbol,proto3" json:"has_symbol,omitempty"` } -func (m *PasswordComplexityPolicyUpdate) Reset() { *m = PasswordComplexityPolicyUpdate{} } -func (m *PasswordComplexityPolicyUpdate) String() string { return proto.CompactTextString(m) } -func (*PasswordComplexityPolicyUpdate) ProtoMessage() {} +func (x *PasswordComplexityPolicyUpdate) Reset() { + *x = PasswordComplexityPolicyUpdate{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[50] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PasswordComplexityPolicyUpdate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PasswordComplexityPolicyUpdate) ProtoMessage() {} + +func (x *PasswordComplexityPolicyUpdate) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[50] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PasswordComplexityPolicyUpdate.ProtoReflect.Descriptor instead. func (*PasswordComplexityPolicyUpdate) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{50} + return file_management_proto_rawDescGZIP(), []int{50} } -func (m *PasswordComplexityPolicyUpdate) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_PasswordComplexityPolicyUpdate.Unmarshal(m, b) -} -func (m *PasswordComplexityPolicyUpdate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_PasswordComplexityPolicyUpdate.Marshal(b, m, deterministic) -} -func (m *PasswordComplexityPolicyUpdate) XXX_Merge(src proto.Message) { - xxx_messageInfo_PasswordComplexityPolicyUpdate.Merge(m, src) -} -func (m *PasswordComplexityPolicyUpdate) XXX_Size() int { - return xxx_messageInfo_PasswordComplexityPolicyUpdate.Size(m) -} -func (m *PasswordComplexityPolicyUpdate) XXX_DiscardUnknown() { - xxx_messageInfo_PasswordComplexityPolicyUpdate.DiscardUnknown(m) -} - -var xxx_messageInfo_PasswordComplexityPolicyUpdate proto.InternalMessageInfo - -func (m *PasswordComplexityPolicyUpdate) GetId() string { - if m != nil { - return m.Id +func (x *PasswordComplexityPolicyUpdate) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *PasswordComplexityPolicyUpdate) GetDescription() string { - if m != nil { - return m.Description +func (x *PasswordComplexityPolicyUpdate) GetDescription() string { + if x != nil { + return x.Description } return "" } -func (m *PasswordComplexityPolicyUpdate) GetMinLength() uint64 { - if m != nil { - return m.MinLength +func (x *PasswordComplexityPolicyUpdate) GetMinLength() uint64 { + if x != nil { + return x.MinLength } return 0 } -func (m *PasswordComplexityPolicyUpdate) GetHasLowercase() bool { - if m != nil { - return m.HasLowercase +func (x *PasswordComplexityPolicyUpdate) GetHasLowercase() bool { + if x != nil { + return x.HasLowercase } return false } -func (m *PasswordComplexityPolicyUpdate) GetHasUppercase() bool { - if m != nil { - return m.HasUppercase +func (x *PasswordComplexityPolicyUpdate) GetHasUppercase() bool { + if x != nil { + return x.HasUppercase } return false } -func (m *PasswordComplexityPolicyUpdate) GetHasNumber() bool { - if m != nil { - return m.HasNumber +func (x *PasswordComplexityPolicyUpdate) GetHasNumber() bool { + if x != nil { + return x.HasNumber } return false } -func (m *PasswordComplexityPolicyUpdate) GetHasSymbol() bool { - if m != nil { - return m.HasSymbol +func (x *PasswordComplexityPolicyUpdate) GetHasSymbol() bool { + if x != nil { + return x.HasSymbol } return false } type PasswordAgePolicyID struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` } -func (m *PasswordAgePolicyID) Reset() { *m = PasswordAgePolicyID{} } -func (m *PasswordAgePolicyID) String() string { return proto.CompactTextString(m) } -func (*PasswordAgePolicyID) ProtoMessage() {} +func (x *PasswordAgePolicyID) Reset() { + *x = PasswordAgePolicyID{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[51] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PasswordAgePolicyID) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PasswordAgePolicyID) ProtoMessage() {} + +func (x *PasswordAgePolicyID) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[51] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PasswordAgePolicyID.ProtoReflect.Descriptor instead. func (*PasswordAgePolicyID) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{51} + return file_management_proto_rawDescGZIP(), []int{51} } -func (m *PasswordAgePolicyID) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_PasswordAgePolicyID.Unmarshal(m, b) -} -func (m *PasswordAgePolicyID) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_PasswordAgePolicyID.Marshal(b, m, deterministic) -} -func (m *PasswordAgePolicyID) XXX_Merge(src proto.Message) { - xxx_messageInfo_PasswordAgePolicyID.Merge(m, src) -} -func (m *PasswordAgePolicyID) XXX_Size() int { - return xxx_messageInfo_PasswordAgePolicyID.Size(m) -} -func (m *PasswordAgePolicyID) XXX_DiscardUnknown() { - xxx_messageInfo_PasswordAgePolicyID.DiscardUnknown(m) -} - -var xxx_messageInfo_PasswordAgePolicyID proto.InternalMessageInfo - -func (m *PasswordAgePolicyID) GetId() string { - if m != nil { - return m.Id +func (x *PasswordAgePolicyID) GetId() string { + if x != nil { + return x.Id } return "" } type PasswordAgePolicy struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` - State PolicyState `protobuf:"varint,3,opt,name=state,proto3,enum=caos.zitadel.management.api.v1.PolicyState" json:"state,omitempty"` - CreationDate *timestamp.Timestamp `protobuf:"bytes,4,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` - ChangeDate *timestamp.Timestamp `protobuf:"bytes,5,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` - MaxAgeDays uint64 `protobuf:"varint,6,opt,name=max_age_days,json=maxAgeDays,proto3" json:"max_age_days,omitempty"` - ExpireWarnDays uint64 `protobuf:"varint,7,opt,name=expire_warn_days,json=expireWarnDays,proto3" json:"expire_warn_days,omitempty"` - Sequence uint64 `protobuf:"varint,8,opt,name=sequence,proto3" json:"sequence,omitempty"` - IsDefault bool `protobuf:"varint,9,opt,name=is_default,json=isDefault,proto3" json:"is_default,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` //TODO: do we need id? + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` + State PolicyState `protobuf:"varint,3,opt,name=state,proto3,enum=caos.zitadel.management.api.v1.PolicyState" json:"state,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,4,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + ChangeDate *timestamp.Timestamp `protobuf:"bytes,5,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` + MaxAgeDays uint64 `protobuf:"varint,6,opt,name=max_age_days,json=maxAgeDays,proto3" json:"max_age_days,omitempty"` + ExpireWarnDays uint64 `protobuf:"varint,7,opt,name=expire_warn_days,json=expireWarnDays,proto3" json:"expire_warn_days,omitempty"` + Sequence uint64 `protobuf:"varint,8,opt,name=sequence,proto3" json:"sequence,omitempty"` + IsDefault bool `protobuf:"varint,9,opt,name=is_default,json=isDefault,proto3" json:"is_default,omitempty"` } -func (m *PasswordAgePolicy) Reset() { *m = PasswordAgePolicy{} } -func (m *PasswordAgePolicy) String() string { return proto.CompactTextString(m) } -func (*PasswordAgePolicy) ProtoMessage() {} +func (x *PasswordAgePolicy) Reset() { + *x = PasswordAgePolicy{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[52] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PasswordAgePolicy) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PasswordAgePolicy) ProtoMessage() {} + +func (x *PasswordAgePolicy) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[52] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PasswordAgePolicy.ProtoReflect.Descriptor instead. func (*PasswordAgePolicy) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{52} + return file_management_proto_rawDescGZIP(), []int{52} } -func (m *PasswordAgePolicy) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_PasswordAgePolicy.Unmarshal(m, b) -} -func (m *PasswordAgePolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_PasswordAgePolicy.Marshal(b, m, deterministic) -} -func (m *PasswordAgePolicy) XXX_Merge(src proto.Message) { - xxx_messageInfo_PasswordAgePolicy.Merge(m, src) -} -func (m *PasswordAgePolicy) XXX_Size() int { - return xxx_messageInfo_PasswordAgePolicy.Size(m) -} -func (m *PasswordAgePolicy) XXX_DiscardUnknown() { - xxx_messageInfo_PasswordAgePolicy.DiscardUnknown(m) -} - -var xxx_messageInfo_PasswordAgePolicy proto.InternalMessageInfo - -func (m *PasswordAgePolicy) GetId() string { - if m != nil { - return m.Id +func (x *PasswordAgePolicy) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *PasswordAgePolicy) GetDescription() string { - if m != nil { - return m.Description +func (x *PasswordAgePolicy) GetDescription() string { + if x != nil { + return x.Description } return "" } -func (m *PasswordAgePolicy) GetState() PolicyState { - if m != nil { - return m.State +func (x *PasswordAgePolicy) GetState() PolicyState { + if x != nil { + return x.State } return PolicyState_POLICYSTATE_UNSPECIFIED } -func (m *PasswordAgePolicy) GetCreationDate() *timestamp.Timestamp { - if m != nil { - return m.CreationDate +func (x *PasswordAgePolicy) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate } return nil } -func (m *PasswordAgePolicy) GetChangeDate() *timestamp.Timestamp { - if m != nil { - return m.ChangeDate +func (x *PasswordAgePolicy) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate } return nil } -func (m *PasswordAgePolicy) GetMaxAgeDays() uint64 { - if m != nil { - return m.MaxAgeDays +func (x *PasswordAgePolicy) GetMaxAgeDays() uint64 { + if x != nil { + return x.MaxAgeDays } return 0 } -func (m *PasswordAgePolicy) GetExpireWarnDays() uint64 { - if m != nil { - return m.ExpireWarnDays +func (x *PasswordAgePolicy) GetExpireWarnDays() uint64 { + if x != nil { + return x.ExpireWarnDays } return 0 } -func (m *PasswordAgePolicy) GetSequence() uint64 { - if m != nil { - return m.Sequence +func (x *PasswordAgePolicy) GetSequence() uint64 { + if x != nil { + return x.Sequence } return 0 } -func (m *PasswordAgePolicy) GetIsDefault() bool { - if m != nil { - return m.IsDefault +func (x *PasswordAgePolicy) GetIsDefault() bool { + if x != nil { + return x.IsDefault } return false } type PasswordAgePolicyCreate struct { - Description string `protobuf:"bytes,1,opt,name=description,proto3" json:"description,omitempty"` - MaxAgeDays uint64 `protobuf:"varint,2,opt,name=max_age_days,json=maxAgeDays,proto3" json:"max_age_days,omitempty"` - ExpireWarnDays uint64 `protobuf:"varint,3,opt,name=expire_warn_days,json=expireWarnDays,proto3" json:"expire_warn_days,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Description string `protobuf:"bytes,1,opt,name=description,proto3" json:"description,omitempty"` + MaxAgeDays uint64 `protobuf:"varint,2,opt,name=max_age_days,json=maxAgeDays,proto3" json:"max_age_days,omitempty"` + ExpireWarnDays uint64 `protobuf:"varint,3,opt,name=expire_warn_days,json=expireWarnDays,proto3" json:"expire_warn_days,omitempty"` } -func (m *PasswordAgePolicyCreate) Reset() { *m = PasswordAgePolicyCreate{} } -func (m *PasswordAgePolicyCreate) String() string { return proto.CompactTextString(m) } -func (*PasswordAgePolicyCreate) ProtoMessage() {} +func (x *PasswordAgePolicyCreate) Reset() { + *x = PasswordAgePolicyCreate{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[53] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PasswordAgePolicyCreate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PasswordAgePolicyCreate) ProtoMessage() {} + +func (x *PasswordAgePolicyCreate) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[53] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PasswordAgePolicyCreate.ProtoReflect.Descriptor instead. func (*PasswordAgePolicyCreate) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{53} + return file_management_proto_rawDescGZIP(), []int{53} } -func (m *PasswordAgePolicyCreate) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_PasswordAgePolicyCreate.Unmarshal(m, b) -} -func (m *PasswordAgePolicyCreate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_PasswordAgePolicyCreate.Marshal(b, m, deterministic) -} -func (m *PasswordAgePolicyCreate) XXX_Merge(src proto.Message) { - xxx_messageInfo_PasswordAgePolicyCreate.Merge(m, src) -} -func (m *PasswordAgePolicyCreate) XXX_Size() int { - return xxx_messageInfo_PasswordAgePolicyCreate.Size(m) -} -func (m *PasswordAgePolicyCreate) XXX_DiscardUnknown() { - xxx_messageInfo_PasswordAgePolicyCreate.DiscardUnknown(m) -} - -var xxx_messageInfo_PasswordAgePolicyCreate proto.InternalMessageInfo - -func (m *PasswordAgePolicyCreate) GetDescription() string { - if m != nil { - return m.Description +func (x *PasswordAgePolicyCreate) GetDescription() string { + if x != nil { + return x.Description } return "" } -func (m *PasswordAgePolicyCreate) GetMaxAgeDays() uint64 { - if m != nil { - return m.MaxAgeDays +func (x *PasswordAgePolicyCreate) GetMaxAgeDays() uint64 { + if x != nil { + return x.MaxAgeDays } return 0 } -func (m *PasswordAgePolicyCreate) GetExpireWarnDays() uint64 { - if m != nil { - return m.ExpireWarnDays +func (x *PasswordAgePolicyCreate) GetExpireWarnDays() uint64 { + if x != nil { + return x.ExpireWarnDays } return 0 } type PasswordAgePolicyUpdate struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` - MaxAgeDays uint64 `protobuf:"varint,3,opt,name=max_age_days,json=maxAgeDays,proto3" json:"max_age_days,omitempty"` - ExpireWarnDays uint64 `protobuf:"varint,4,opt,name=expire_warn_days,json=expireWarnDays,proto3" json:"expire_warn_days,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` //TODO: do we need id? + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` + MaxAgeDays uint64 `protobuf:"varint,3,opt,name=max_age_days,json=maxAgeDays,proto3" json:"max_age_days,omitempty"` + ExpireWarnDays uint64 `protobuf:"varint,4,opt,name=expire_warn_days,json=expireWarnDays,proto3" json:"expire_warn_days,omitempty"` } -func (m *PasswordAgePolicyUpdate) Reset() { *m = PasswordAgePolicyUpdate{} } -func (m *PasswordAgePolicyUpdate) String() string { return proto.CompactTextString(m) } -func (*PasswordAgePolicyUpdate) ProtoMessage() {} +func (x *PasswordAgePolicyUpdate) Reset() { + *x = PasswordAgePolicyUpdate{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[54] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PasswordAgePolicyUpdate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PasswordAgePolicyUpdate) ProtoMessage() {} + +func (x *PasswordAgePolicyUpdate) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[54] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PasswordAgePolicyUpdate.ProtoReflect.Descriptor instead. func (*PasswordAgePolicyUpdate) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{54} + return file_management_proto_rawDescGZIP(), []int{54} } -func (m *PasswordAgePolicyUpdate) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_PasswordAgePolicyUpdate.Unmarshal(m, b) -} -func (m *PasswordAgePolicyUpdate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_PasswordAgePolicyUpdate.Marshal(b, m, deterministic) -} -func (m *PasswordAgePolicyUpdate) XXX_Merge(src proto.Message) { - xxx_messageInfo_PasswordAgePolicyUpdate.Merge(m, src) -} -func (m *PasswordAgePolicyUpdate) XXX_Size() int { - return xxx_messageInfo_PasswordAgePolicyUpdate.Size(m) -} -func (m *PasswordAgePolicyUpdate) XXX_DiscardUnknown() { - xxx_messageInfo_PasswordAgePolicyUpdate.DiscardUnknown(m) -} - -var xxx_messageInfo_PasswordAgePolicyUpdate proto.InternalMessageInfo - -func (m *PasswordAgePolicyUpdate) GetId() string { - if m != nil { - return m.Id +func (x *PasswordAgePolicyUpdate) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *PasswordAgePolicyUpdate) GetDescription() string { - if m != nil { - return m.Description +func (x *PasswordAgePolicyUpdate) GetDescription() string { + if x != nil { + return x.Description } return "" } -func (m *PasswordAgePolicyUpdate) GetMaxAgeDays() uint64 { - if m != nil { - return m.MaxAgeDays +func (x *PasswordAgePolicyUpdate) GetMaxAgeDays() uint64 { + if x != nil { + return x.MaxAgeDays } return 0 } -func (m *PasswordAgePolicyUpdate) GetExpireWarnDays() uint64 { - if m != nil { - return m.ExpireWarnDays +func (x *PasswordAgePolicyUpdate) GetExpireWarnDays() uint64 { + if x != nil { + return x.ExpireWarnDays } return 0 } type PasswordLockoutPolicyID struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` //TODO: why do we need this? } -func (m *PasswordLockoutPolicyID) Reset() { *m = PasswordLockoutPolicyID{} } -func (m *PasswordLockoutPolicyID) String() string { return proto.CompactTextString(m) } -func (*PasswordLockoutPolicyID) ProtoMessage() {} +func (x *PasswordLockoutPolicyID) Reset() { + *x = PasswordLockoutPolicyID{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[55] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PasswordLockoutPolicyID) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PasswordLockoutPolicyID) ProtoMessage() {} + +func (x *PasswordLockoutPolicyID) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[55] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PasswordLockoutPolicyID.ProtoReflect.Descriptor instead. func (*PasswordLockoutPolicyID) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{55} + return file_management_proto_rawDescGZIP(), []int{55} } -func (m *PasswordLockoutPolicyID) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_PasswordLockoutPolicyID.Unmarshal(m, b) -} -func (m *PasswordLockoutPolicyID) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_PasswordLockoutPolicyID.Marshal(b, m, deterministic) -} -func (m *PasswordLockoutPolicyID) XXX_Merge(src proto.Message) { - xxx_messageInfo_PasswordLockoutPolicyID.Merge(m, src) -} -func (m *PasswordLockoutPolicyID) XXX_Size() int { - return xxx_messageInfo_PasswordLockoutPolicyID.Size(m) -} -func (m *PasswordLockoutPolicyID) XXX_DiscardUnknown() { - xxx_messageInfo_PasswordLockoutPolicyID.DiscardUnknown(m) -} - -var xxx_messageInfo_PasswordLockoutPolicyID proto.InternalMessageInfo - -func (m *PasswordLockoutPolicyID) GetId() string { - if m != nil { - return m.Id +func (x *PasswordLockoutPolicyID) GetId() string { + if x != nil { + return x.Id } return "" } type PasswordLockoutPolicy struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` - State PolicyState `protobuf:"varint,3,opt,name=state,proto3,enum=caos.zitadel.management.api.v1.PolicyState" json:"state,omitempty"` - CreationDate *timestamp.Timestamp `protobuf:"bytes,4,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` - ChangeDate *timestamp.Timestamp `protobuf:"bytes,5,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` - MaxAttempts uint64 `protobuf:"varint,6,opt,name=max_attempts,json=maxAttempts,proto3" json:"max_attempts,omitempty"` - ShowLockOutFailures bool `protobuf:"varint,7,opt,name=show_lock_out_failures,json=showLockOutFailures,proto3" json:"show_lock_out_failures,omitempty"` - Sequence uint64 `protobuf:"varint,8,opt,name=sequence,proto3" json:"sequence,omitempty"` - IsDefault bool `protobuf:"varint,9,opt,name=is_default,json=isDefault,proto3" json:"is_default,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` //TODO: why do we need this? + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` + State PolicyState `protobuf:"varint,3,opt,name=state,proto3,enum=caos.zitadel.management.api.v1.PolicyState" json:"state,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,4,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + ChangeDate *timestamp.Timestamp `protobuf:"bytes,5,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` + MaxAttempts uint64 `protobuf:"varint,6,opt,name=max_attempts,json=maxAttempts,proto3" json:"max_attempts,omitempty"` + ShowLockOutFailures bool `protobuf:"varint,7,opt,name=show_lock_out_failures,json=showLockOutFailures,proto3" json:"show_lock_out_failures,omitempty"` + Sequence uint64 `protobuf:"varint,8,opt,name=sequence,proto3" json:"sequence,omitempty"` + IsDefault bool `protobuf:"varint,9,opt,name=is_default,json=isDefault,proto3" json:"is_default,omitempty"` } -func (m *PasswordLockoutPolicy) Reset() { *m = PasswordLockoutPolicy{} } -func (m *PasswordLockoutPolicy) String() string { return proto.CompactTextString(m) } -func (*PasswordLockoutPolicy) ProtoMessage() {} +func (x *PasswordLockoutPolicy) Reset() { + *x = PasswordLockoutPolicy{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[56] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PasswordLockoutPolicy) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PasswordLockoutPolicy) ProtoMessage() {} + +func (x *PasswordLockoutPolicy) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[56] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PasswordLockoutPolicy.ProtoReflect.Descriptor instead. func (*PasswordLockoutPolicy) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{56} + return file_management_proto_rawDescGZIP(), []int{56} } -func (m *PasswordLockoutPolicy) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_PasswordLockoutPolicy.Unmarshal(m, b) -} -func (m *PasswordLockoutPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_PasswordLockoutPolicy.Marshal(b, m, deterministic) -} -func (m *PasswordLockoutPolicy) XXX_Merge(src proto.Message) { - xxx_messageInfo_PasswordLockoutPolicy.Merge(m, src) -} -func (m *PasswordLockoutPolicy) XXX_Size() int { - return xxx_messageInfo_PasswordLockoutPolicy.Size(m) -} -func (m *PasswordLockoutPolicy) XXX_DiscardUnknown() { - xxx_messageInfo_PasswordLockoutPolicy.DiscardUnknown(m) -} - -var xxx_messageInfo_PasswordLockoutPolicy proto.InternalMessageInfo - -func (m *PasswordLockoutPolicy) GetId() string { - if m != nil { - return m.Id +func (x *PasswordLockoutPolicy) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *PasswordLockoutPolicy) GetDescription() string { - if m != nil { - return m.Description +func (x *PasswordLockoutPolicy) GetDescription() string { + if x != nil { + return x.Description } return "" } -func (m *PasswordLockoutPolicy) GetState() PolicyState { - if m != nil { - return m.State +func (x *PasswordLockoutPolicy) GetState() PolicyState { + if x != nil { + return x.State } return PolicyState_POLICYSTATE_UNSPECIFIED } -func (m *PasswordLockoutPolicy) GetCreationDate() *timestamp.Timestamp { - if m != nil { - return m.CreationDate +func (x *PasswordLockoutPolicy) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate } return nil } -func (m *PasswordLockoutPolicy) GetChangeDate() *timestamp.Timestamp { - if m != nil { - return m.ChangeDate +func (x *PasswordLockoutPolicy) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate } return nil } -func (m *PasswordLockoutPolicy) GetMaxAttempts() uint64 { - if m != nil { - return m.MaxAttempts +func (x *PasswordLockoutPolicy) GetMaxAttempts() uint64 { + if x != nil { + return x.MaxAttempts } return 0 } -func (m *PasswordLockoutPolicy) GetShowLockOutFailures() bool { - if m != nil { - return m.ShowLockOutFailures +func (x *PasswordLockoutPolicy) GetShowLockOutFailures() bool { + if x != nil { + return x.ShowLockOutFailures } return false } -func (m *PasswordLockoutPolicy) GetSequence() uint64 { - if m != nil { - return m.Sequence +func (x *PasswordLockoutPolicy) GetSequence() uint64 { + if x != nil { + return x.Sequence } return 0 } -func (m *PasswordLockoutPolicy) GetIsDefault() bool { - if m != nil { - return m.IsDefault +func (x *PasswordLockoutPolicy) GetIsDefault() bool { + if x != nil { + return x.IsDefault } return false } type PasswordLockoutPolicyCreate struct { - Description string `protobuf:"bytes,1,opt,name=description,proto3" json:"description,omitempty"` - MaxAttempts uint64 `protobuf:"varint,2,opt,name=max_attempts,json=maxAttempts,proto3" json:"max_attempts,omitempty"` - ShowLockOutFailures bool `protobuf:"varint,3,opt,name=show_lock_out_failures,json=showLockOutFailures,proto3" json:"show_lock_out_failures,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Description string `protobuf:"bytes,1,opt,name=description,proto3" json:"description,omitempty"` + MaxAttempts uint64 `protobuf:"varint,2,opt,name=max_attempts,json=maxAttempts,proto3" json:"max_attempts,omitempty"` + ShowLockOutFailures bool `protobuf:"varint,3,opt,name=show_lock_out_failures,json=showLockOutFailures,proto3" json:"show_lock_out_failures,omitempty"` } -func (m *PasswordLockoutPolicyCreate) Reset() { *m = PasswordLockoutPolicyCreate{} } -func (m *PasswordLockoutPolicyCreate) String() string { return proto.CompactTextString(m) } -func (*PasswordLockoutPolicyCreate) ProtoMessage() {} +func (x *PasswordLockoutPolicyCreate) Reset() { + *x = PasswordLockoutPolicyCreate{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[57] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PasswordLockoutPolicyCreate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PasswordLockoutPolicyCreate) ProtoMessage() {} + +func (x *PasswordLockoutPolicyCreate) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[57] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PasswordLockoutPolicyCreate.ProtoReflect.Descriptor instead. func (*PasswordLockoutPolicyCreate) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{57} + return file_management_proto_rawDescGZIP(), []int{57} } -func (m *PasswordLockoutPolicyCreate) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_PasswordLockoutPolicyCreate.Unmarshal(m, b) -} -func (m *PasswordLockoutPolicyCreate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_PasswordLockoutPolicyCreate.Marshal(b, m, deterministic) -} -func (m *PasswordLockoutPolicyCreate) XXX_Merge(src proto.Message) { - xxx_messageInfo_PasswordLockoutPolicyCreate.Merge(m, src) -} -func (m *PasswordLockoutPolicyCreate) XXX_Size() int { - return xxx_messageInfo_PasswordLockoutPolicyCreate.Size(m) -} -func (m *PasswordLockoutPolicyCreate) XXX_DiscardUnknown() { - xxx_messageInfo_PasswordLockoutPolicyCreate.DiscardUnknown(m) -} - -var xxx_messageInfo_PasswordLockoutPolicyCreate proto.InternalMessageInfo - -func (m *PasswordLockoutPolicyCreate) GetDescription() string { - if m != nil { - return m.Description +func (x *PasswordLockoutPolicyCreate) GetDescription() string { + if x != nil { + return x.Description } return "" } -func (m *PasswordLockoutPolicyCreate) GetMaxAttempts() uint64 { - if m != nil { - return m.MaxAttempts +func (x *PasswordLockoutPolicyCreate) GetMaxAttempts() uint64 { + if x != nil { + return x.MaxAttempts } return 0 } -func (m *PasswordLockoutPolicyCreate) GetShowLockOutFailures() bool { - if m != nil { - return m.ShowLockOutFailures +func (x *PasswordLockoutPolicyCreate) GetShowLockOutFailures() bool { + if x != nil { + return x.ShowLockOutFailures } return false } type PasswordLockoutPolicyUpdate struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` - MaxAttempts uint64 `protobuf:"varint,3,opt,name=max_attempts,json=maxAttempts,proto3" json:"max_attempts,omitempty"` - ShowLockOutFailures bool `protobuf:"varint,4,opt,name=show_lock_out_failures,json=showLockOutFailures,proto3" json:"show_lock_out_failures,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` //TODO: do we need id? + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` + MaxAttempts uint64 `protobuf:"varint,3,opt,name=max_attempts,json=maxAttempts,proto3" json:"max_attempts,omitempty"` + ShowLockOutFailures bool `protobuf:"varint,4,opt,name=show_lock_out_failures,json=showLockOutFailures,proto3" json:"show_lock_out_failures,omitempty"` } -func (m *PasswordLockoutPolicyUpdate) Reset() { *m = PasswordLockoutPolicyUpdate{} } -func (m *PasswordLockoutPolicyUpdate) String() string { return proto.CompactTextString(m) } -func (*PasswordLockoutPolicyUpdate) ProtoMessage() {} +func (x *PasswordLockoutPolicyUpdate) Reset() { + *x = PasswordLockoutPolicyUpdate{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[58] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PasswordLockoutPolicyUpdate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PasswordLockoutPolicyUpdate) ProtoMessage() {} + +func (x *PasswordLockoutPolicyUpdate) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[58] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PasswordLockoutPolicyUpdate.ProtoReflect.Descriptor instead. func (*PasswordLockoutPolicyUpdate) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{58} + return file_management_proto_rawDescGZIP(), []int{58} } -func (m *PasswordLockoutPolicyUpdate) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_PasswordLockoutPolicyUpdate.Unmarshal(m, b) -} -func (m *PasswordLockoutPolicyUpdate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_PasswordLockoutPolicyUpdate.Marshal(b, m, deterministic) -} -func (m *PasswordLockoutPolicyUpdate) XXX_Merge(src proto.Message) { - xxx_messageInfo_PasswordLockoutPolicyUpdate.Merge(m, src) -} -func (m *PasswordLockoutPolicyUpdate) XXX_Size() int { - return xxx_messageInfo_PasswordLockoutPolicyUpdate.Size(m) -} -func (m *PasswordLockoutPolicyUpdate) XXX_DiscardUnknown() { - xxx_messageInfo_PasswordLockoutPolicyUpdate.DiscardUnknown(m) -} - -var xxx_messageInfo_PasswordLockoutPolicyUpdate proto.InternalMessageInfo - -func (m *PasswordLockoutPolicyUpdate) GetId() string { - if m != nil { - return m.Id +func (x *PasswordLockoutPolicyUpdate) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *PasswordLockoutPolicyUpdate) GetDescription() string { - if m != nil { - return m.Description +func (x *PasswordLockoutPolicyUpdate) GetDescription() string { + if x != nil { + return x.Description } return "" } -func (m *PasswordLockoutPolicyUpdate) GetMaxAttempts() uint64 { - if m != nil { - return m.MaxAttempts +func (x *PasswordLockoutPolicyUpdate) GetMaxAttempts() uint64 { + if x != nil { + return x.MaxAttempts } return 0 } -func (m *PasswordLockoutPolicyUpdate) GetShowLockOutFailures() bool { - if m != nil { - return m.ShowLockOutFailures +func (x *PasswordLockoutPolicyUpdate) GetShowLockOutFailures() bool { + if x != nil { + return x.ShowLockOutFailures } return false } type OrgIamPolicy struct { - OrgId string `protobuf:"bytes,1,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"` - Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` - UserLoginMustBeDomain bool `protobuf:"varint,3,opt,name=user_login_must_be_domain,json=userLoginMustBeDomain,proto3" json:"user_login_must_be_domain,omitempty"` - Default bool `protobuf:"varint,4,opt,name=default,proto3" json:"default,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OrgId string `protobuf:"bytes,1,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"` //TODO: do we need id? + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` + UserLoginMustBeDomain bool `protobuf:"varint,3,opt,name=user_login_must_be_domain,json=userLoginMustBeDomain,proto3" json:"user_login_must_be_domain,omitempty"` + Default bool `protobuf:"varint,4,opt,name=default,proto3" json:"default,omitempty"` } -func (m *OrgIamPolicy) Reset() { *m = OrgIamPolicy{} } -func (m *OrgIamPolicy) String() string { return proto.CompactTextString(m) } -func (*OrgIamPolicy) ProtoMessage() {} +func (x *OrgIamPolicy) Reset() { + *x = OrgIamPolicy{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[59] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OrgIamPolicy) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrgIamPolicy) ProtoMessage() {} + +func (x *OrgIamPolicy) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[59] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OrgIamPolicy.ProtoReflect.Descriptor instead. func (*OrgIamPolicy) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{59} + return file_management_proto_rawDescGZIP(), []int{59} } -func (m *OrgIamPolicy) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_OrgIamPolicy.Unmarshal(m, b) -} -func (m *OrgIamPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_OrgIamPolicy.Marshal(b, m, deterministic) -} -func (m *OrgIamPolicy) XXX_Merge(src proto.Message) { - xxx_messageInfo_OrgIamPolicy.Merge(m, src) -} -func (m *OrgIamPolicy) XXX_Size() int { - return xxx_messageInfo_OrgIamPolicy.Size(m) -} -func (m *OrgIamPolicy) XXX_DiscardUnknown() { - xxx_messageInfo_OrgIamPolicy.DiscardUnknown(m) -} - -var xxx_messageInfo_OrgIamPolicy proto.InternalMessageInfo - -func (m *OrgIamPolicy) GetOrgId() string { - if m != nil { - return m.OrgId +func (x *OrgIamPolicy) GetOrgId() string { + if x != nil { + return x.OrgId } return "" } -func (m *OrgIamPolicy) GetDescription() string { - if m != nil { - return m.Description +func (x *OrgIamPolicy) GetDescription() string { + if x != nil { + return x.Description } return "" } -func (m *OrgIamPolicy) GetUserLoginMustBeDomain() bool { - if m != nil { - return m.UserLoginMustBeDomain +func (x *OrgIamPolicy) GetUserLoginMustBeDomain() bool { + if x != nil { + return x.UserLoginMustBeDomain } return false } -func (m *OrgIamPolicy) GetDefault() bool { - if m != nil { - return m.Default +func (x *OrgIamPolicy) GetDefault() bool { + if x != nil { + return x.Default } return false } type OrgCreateRequest struct { - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` } -func (m *OrgCreateRequest) Reset() { *m = OrgCreateRequest{} } -func (m *OrgCreateRequest) String() string { return proto.CompactTextString(m) } -func (*OrgCreateRequest) ProtoMessage() {} +func (x *OrgCreateRequest) Reset() { + *x = OrgCreateRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[60] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OrgCreateRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrgCreateRequest) ProtoMessage() {} + +func (x *OrgCreateRequest) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[60] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OrgCreateRequest.ProtoReflect.Descriptor instead. func (*OrgCreateRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{60} + return file_management_proto_rawDescGZIP(), []int{60} } -func (m *OrgCreateRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_OrgCreateRequest.Unmarshal(m, b) -} -func (m *OrgCreateRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_OrgCreateRequest.Marshal(b, m, deterministic) -} -func (m *OrgCreateRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_OrgCreateRequest.Merge(m, src) -} -func (m *OrgCreateRequest) XXX_Size() int { - return xxx_messageInfo_OrgCreateRequest.Size(m) -} -func (m *OrgCreateRequest) XXX_DiscardUnknown() { - xxx_messageInfo_OrgCreateRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_OrgCreateRequest proto.InternalMessageInfo - -func (m *OrgCreateRequest) GetName() string { - if m != nil { - return m.Name +func (x *OrgCreateRequest) GetName() string { + if x != nil { + return x.Name } return "" } type Org struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - State OrgState `protobuf:"varint,2,opt,name=state,proto3,enum=caos.zitadel.management.api.v1.OrgState" json:"state,omitempty"` - CreationDate *timestamp.Timestamp `protobuf:"bytes,3,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` - ChangeDate *timestamp.Timestamp `protobuf:"bytes,4,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` - Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"` - Sequence uint64 `protobuf:"varint,6,opt,name=sequence,proto3" json:"sequence,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + State OrgState `protobuf:"varint,2,opt,name=state,proto3,enum=caos.zitadel.management.api.v1.OrgState" json:"state,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,3,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + ChangeDate *timestamp.Timestamp `protobuf:"bytes,4,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` + Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"` + Sequence uint64 `protobuf:"varint,6,opt,name=sequence,proto3" json:"sequence,omitempty"` } -func (m *Org) Reset() { *m = Org{} } -func (m *Org) String() string { return proto.CompactTextString(m) } -func (*Org) ProtoMessage() {} +func (x *Org) Reset() { + *x = Org{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[61] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Org) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Org) ProtoMessage() {} + +func (x *Org) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[61] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Org.ProtoReflect.Descriptor instead. func (*Org) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{61} + return file_management_proto_rawDescGZIP(), []int{61} } -func (m *Org) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Org.Unmarshal(m, b) -} -func (m *Org) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Org.Marshal(b, m, deterministic) -} -func (m *Org) XXX_Merge(src proto.Message) { - xxx_messageInfo_Org.Merge(m, src) -} -func (m *Org) XXX_Size() int { - return xxx_messageInfo_Org.Size(m) -} -func (m *Org) XXX_DiscardUnknown() { - xxx_messageInfo_Org.DiscardUnknown(m) -} - -var xxx_messageInfo_Org proto.InternalMessageInfo - -func (m *Org) GetId() string { - if m != nil { - return m.Id +func (x *Org) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *Org) GetState() OrgState { - if m != nil { - return m.State +func (x *Org) GetState() OrgState { + if x != nil { + return x.State } return OrgState_ORGSTATE_UNSPECIFIED } -func (m *Org) GetCreationDate() *timestamp.Timestamp { - if m != nil { - return m.CreationDate +func (x *Org) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate } return nil } -func (m *Org) GetChangeDate() *timestamp.Timestamp { - if m != nil { - return m.ChangeDate +func (x *Org) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate } return nil } -func (m *Org) GetName() string { - if m != nil { - return m.Name +func (x *Org) GetName() string { + if x != nil { + return x.Name } return "" } -func (m *Org) GetSequence() uint64 { - if m != nil { - return m.Sequence +func (x *Org) GetSequence() uint64 { + if x != nil { + return x.Sequence } return 0 } type OrgView struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - State OrgState `protobuf:"varint,2,opt,name=state,proto3,enum=caos.zitadel.management.api.v1.OrgState" json:"state,omitempty"` - CreationDate *timestamp.Timestamp `protobuf:"bytes,3,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` - ChangeDate *timestamp.Timestamp `protobuf:"bytes,4,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` - Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"` - Sequence uint64 `protobuf:"varint,6,opt,name=sequence,proto3" json:"sequence,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + State OrgState `protobuf:"varint,2,opt,name=state,proto3,enum=caos.zitadel.management.api.v1.OrgState" json:"state,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,3,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + ChangeDate *timestamp.Timestamp `protobuf:"bytes,4,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` + Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"` + Sequence uint64 `protobuf:"varint,6,opt,name=sequence,proto3" json:"sequence,omitempty"` } -func (m *OrgView) Reset() { *m = OrgView{} } -func (m *OrgView) String() string { return proto.CompactTextString(m) } -func (*OrgView) ProtoMessage() {} +func (x *OrgView) Reset() { + *x = OrgView{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[62] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OrgView) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrgView) ProtoMessage() {} + +func (x *OrgView) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[62] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OrgView.ProtoReflect.Descriptor instead. func (*OrgView) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{62} + return file_management_proto_rawDescGZIP(), []int{62} } -func (m *OrgView) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_OrgView.Unmarshal(m, b) -} -func (m *OrgView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_OrgView.Marshal(b, m, deterministic) -} -func (m *OrgView) XXX_Merge(src proto.Message) { - xxx_messageInfo_OrgView.Merge(m, src) -} -func (m *OrgView) XXX_Size() int { - return xxx_messageInfo_OrgView.Size(m) -} -func (m *OrgView) XXX_DiscardUnknown() { - xxx_messageInfo_OrgView.DiscardUnknown(m) -} - -var xxx_messageInfo_OrgView proto.InternalMessageInfo - -func (m *OrgView) GetId() string { - if m != nil { - return m.Id +func (x *OrgView) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *OrgView) GetState() OrgState { - if m != nil { - return m.State +func (x *OrgView) GetState() OrgState { + if x != nil { + return x.State } return OrgState_ORGSTATE_UNSPECIFIED } -func (m *OrgView) GetCreationDate() *timestamp.Timestamp { - if m != nil { - return m.CreationDate +func (x *OrgView) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate } return nil } -func (m *OrgView) GetChangeDate() *timestamp.Timestamp { - if m != nil { - return m.ChangeDate +func (x *OrgView) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate } return nil } -func (m *OrgView) GetName() string { - if m != nil { - return m.Name +func (x *OrgView) GetName() string { + if x != nil { + return x.Name } return "" } -func (m *OrgView) GetSequence() uint64 { - if m != nil { - return m.Sequence +func (x *OrgView) GetSequence() uint64 { + if x != nil { + return x.Sequence } return 0 } type Domain struct { - Domain string `protobuf:"bytes,1,opt,name=domain,proto3" json:"domain,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Domain string `protobuf:"bytes,1,opt,name=domain,proto3" json:"domain,omitempty"` } -func (m *Domain) Reset() { *m = Domain{} } -func (m *Domain) String() string { return proto.CompactTextString(m) } -func (*Domain) ProtoMessage() {} +func (x *Domain) Reset() { + *x = Domain{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[63] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Domain) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Domain) ProtoMessage() {} + +func (x *Domain) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[63] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Domain.ProtoReflect.Descriptor instead. func (*Domain) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{63} + return file_management_proto_rawDescGZIP(), []int{63} } -func (m *Domain) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Domain.Unmarshal(m, b) -} -func (m *Domain) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Domain.Marshal(b, m, deterministic) -} -func (m *Domain) XXX_Merge(src proto.Message) { - xxx_messageInfo_Domain.Merge(m, src) -} -func (m *Domain) XXX_Size() int { - return xxx_messageInfo_Domain.Size(m) -} -func (m *Domain) XXX_DiscardUnknown() { - xxx_messageInfo_Domain.DiscardUnknown(m) -} - -var xxx_messageInfo_Domain proto.InternalMessageInfo - -func (m *Domain) GetDomain() string { - if m != nil { - return m.Domain +func (x *Domain) GetDomain() string { + if x != nil { + return x.Domain } return "" } type OrgDomain struct { - OrgId string `protobuf:"bytes,1,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"` - CreationDate *timestamp.Timestamp `protobuf:"bytes,2,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` - ChangeDate *timestamp.Timestamp `protobuf:"bytes,3,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` - Domain string `protobuf:"bytes,4,opt,name=domain,proto3" json:"domain,omitempty"` - Verified bool `protobuf:"varint,5,opt,name=verified,proto3" json:"verified,omitempty"` - Primary bool `protobuf:"varint,6,opt,name=primary,proto3" json:"primary,omitempty"` - Sequence uint64 `protobuf:"varint,7,opt,name=sequence,proto3" json:"sequence,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OrgId string `protobuf:"bytes,1,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,2,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + ChangeDate *timestamp.Timestamp `protobuf:"bytes,3,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` + Domain string `protobuf:"bytes,4,opt,name=domain,proto3" json:"domain,omitempty"` + Verified bool `protobuf:"varint,5,opt,name=verified,proto3" json:"verified,omitempty"` + Primary bool `protobuf:"varint,6,opt,name=primary,proto3" json:"primary,omitempty"` + Sequence uint64 `protobuf:"varint,7,opt,name=sequence,proto3" json:"sequence,omitempty"` } -func (m *OrgDomain) Reset() { *m = OrgDomain{} } -func (m *OrgDomain) String() string { return proto.CompactTextString(m) } -func (*OrgDomain) ProtoMessage() {} +func (x *OrgDomain) Reset() { + *x = OrgDomain{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[64] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OrgDomain) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrgDomain) ProtoMessage() {} + +func (x *OrgDomain) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[64] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OrgDomain.ProtoReflect.Descriptor instead. func (*OrgDomain) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{64} + return file_management_proto_rawDescGZIP(), []int{64} } -func (m *OrgDomain) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_OrgDomain.Unmarshal(m, b) -} -func (m *OrgDomain) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_OrgDomain.Marshal(b, m, deterministic) -} -func (m *OrgDomain) XXX_Merge(src proto.Message) { - xxx_messageInfo_OrgDomain.Merge(m, src) -} -func (m *OrgDomain) XXX_Size() int { - return xxx_messageInfo_OrgDomain.Size(m) -} -func (m *OrgDomain) XXX_DiscardUnknown() { - xxx_messageInfo_OrgDomain.DiscardUnknown(m) -} - -var xxx_messageInfo_OrgDomain proto.InternalMessageInfo - -func (m *OrgDomain) GetOrgId() string { - if m != nil { - return m.OrgId +func (x *OrgDomain) GetOrgId() string { + if x != nil { + return x.OrgId } return "" } -func (m *OrgDomain) GetCreationDate() *timestamp.Timestamp { - if m != nil { - return m.CreationDate +func (x *OrgDomain) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate } return nil } -func (m *OrgDomain) GetChangeDate() *timestamp.Timestamp { - if m != nil { - return m.ChangeDate +func (x *OrgDomain) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate } return nil } -func (m *OrgDomain) GetDomain() string { - if m != nil { - return m.Domain +func (x *OrgDomain) GetDomain() string { + if x != nil { + return x.Domain } return "" } -func (m *OrgDomain) GetVerified() bool { - if m != nil { - return m.Verified +func (x *OrgDomain) GetVerified() bool { + if x != nil { + return x.Verified } return false } -func (m *OrgDomain) GetPrimary() bool { - if m != nil { - return m.Primary +func (x *OrgDomain) GetPrimary() bool { + if x != nil { + return x.Primary } return false } -func (m *OrgDomain) GetSequence() uint64 { - if m != nil { - return m.Sequence +func (x *OrgDomain) GetSequence() uint64 { + if x != nil { + return x.Sequence } return 0 } type OrgDomainView struct { - OrgId string `protobuf:"bytes,1,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"` - CreationDate *timestamp.Timestamp `protobuf:"bytes,2,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` - ChangeDate *timestamp.Timestamp `protobuf:"bytes,3,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` - Domain string `protobuf:"bytes,4,opt,name=domain,proto3" json:"domain,omitempty"` - Verified bool `protobuf:"varint,5,opt,name=verified,proto3" json:"verified,omitempty"` - Primary bool `protobuf:"varint,6,opt,name=primary,proto3" json:"primary,omitempty"` - Sequence uint64 `protobuf:"varint,7,opt,name=sequence,proto3" json:"sequence,omitempty"` - ValidationType OrgDomainValidationType `protobuf:"varint,8,opt,name=validation_type,json=validationType,proto3,enum=caos.zitadel.management.api.v1.OrgDomainValidationType" json:"validation_type,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OrgId string `protobuf:"bytes,1,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,2,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + ChangeDate *timestamp.Timestamp `protobuf:"bytes,3,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` + Domain string `protobuf:"bytes,4,opt,name=domain,proto3" json:"domain,omitempty"` + Verified bool `protobuf:"varint,5,opt,name=verified,proto3" json:"verified,omitempty"` + Primary bool `protobuf:"varint,6,opt,name=primary,proto3" json:"primary,omitempty"` + Sequence uint64 `protobuf:"varint,7,opt,name=sequence,proto3" json:"sequence,omitempty"` + ValidationType OrgDomainValidationType `protobuf:"varint,8,opt,name=validation_type,json=validationType,proto3,enum=caos.zitadel.management.api.v1.OrgDomainValidationType" json:"validation_type,omitempty"` } -func (m *OrgDomainView) Reset() { *m = OrgDomainView{} } -func (m *OrgDomainView) String() string { return proto.CompactTextString(m) } -func (*OrgDomainView) ProtoMessage() {} +func (x *OrgDomainView) Reset() { + *x = OrgDomainView{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[65] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OrgDomainView) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrgDomainView) ProtoMessage() {} + +func (x *OrgDomainView) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[65] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OrgDomainView.ProtoReflect.Descriptor instead. func (*OrgDomainView) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{65} + return file_management_proto_rawDescGZIP(), []int{65} } -func (m *OrgDomainView) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_OrgDomainView.Unmarshal(m, b) -} -func (m *OrgDomainView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_OrgDomainView.Marshal(b, m, deterministic) -} -func (m *OrgDomainView) XXX_Merge(src proto.Message) { - xxx_messageInfo_OrgDomainView.Merge(m, src) -} -func (m *OrgDomainView) XXX_Size() int { - return xxx_messageInfo_OrgDomainView.Size(m) -} -func (m *OrgDomainView) XXX_DiscardUnknown() { - xxx_messageInfo_OrgDomainView.DiscardUnknown(m) -} - -var xxx_messageInfo_OrgDomainView proto.InternalMessageInfo - -func (m *OrgDomainView) GetOrgId() string { - if m != nil { - return m.OrgId +func (x *OrgDomainView) GetOrgId() string { + if x != nil { + return x.OrgId } return "" } -func (m *OrgDomainView) GetCreationDate() *timestamp.Timestamp { - if m != nil { - return m.CreationDate +func (x *OrgDomainView) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate } return nil } -func (m *OrgDomainView) GetChangeDate() *timestamp.Timestamp { - if m != nil { - return m.ChangeDate +func (x *OrgDomainView) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate } return nil } -func (m *OrgDomainView) GetDomain() string { - if m != nil { - return m.Domain +func (x *OrgDomainView) GetDomain() string { + if x != nil { + return x.Domain } return "" } -func (m *OrgDomainView) GetVerified() bool { - if m != nil { - return m.Verified +func (x *OrgDomainView) GetVerified() bool { + if x != nil { + return x.Verified } return false } -func (m *OrgDomainView) GetPrimary() bool { - if m != nil { - return m.Primary +func (x *OrgDomainView) GetPrimary() bool { + if x != nil { + return x.Primary } return false } -func (m *OrgDomainView) GetSequence() uint64 { - if m != nil { - return m.Sequence +func (x *OrgDomainView) GetSequence() uint64 { + if x != nil { + return x.Sequence } return 0 } -func (m *OrgDomainView) GetValidationType() OrgDomainValidationType { - if m != nil { - return m.ValidationType +func (x *OrgDomainView) GetValidationType() OrgDomainValidationType { + if x != nil { + return x.ValidationType } return OrgDomainValidationType_ORGDOMAINVALIDATIONTYPE_UNSPECIFIED } type AddOrgDomainRequest struct { - Domain string `protobuf:"bytes,1,opt,name=domain,proto3" json:"domain,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Domain string `protobuf:"bytes,1,opt,name=domain,proto3" json:"domain,omitempty"` } -func (m *AddOrgDomainRequest) Reset() { *m = AddOrgDomainRequest{} } -func (m *AddOrgDomainRequest) String() string { return proto.CompactTextString(m) } -func (*AddOrgDomainRequest) ProtoMessage() {} +func (x *AddOrgDomainRequest) Reset() { + *x = AddOrgDomainRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[66] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddOrgDomainRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddOrgDomainRequest) ProtoMessage() {} + +func (x *AddOrgDomainRequest) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[66] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddOrgDomainRequest.ProtoReflect.Descriptor instead. func (*AddOrgDomainRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{66} + return file_management_proto_rawDescGZIP(), []int{66} } -func (m *AddOrgDomainRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_AddOrgDomainRequest.Unmarshal(m, b) -} -func (m *AddOrgDomainRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_AddOrgDomainRequest.Marshal(b, m, deterministic) -} -func (m *AddOrgDomainRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_AddOrgDomainRequest.Merge(m, src) -} -func (m *AddOrgDomainRequest) XXX_Size() int { - return xxx_messageInfo_AddOrgDomainRequest.Size(m) -} -func (m *AddOrgDomainRequest) XXX_DiscardUnknown() { - xxx_messageInfo_AddOrgDomainRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_AddOrgDomainRequest proto.InternalMessageInfo - -func (m *AddOrgDomainRequest) GetDomain() string { - if m != nil { - return m.Domain +func (x *AddOrgDomainRequest) GetDomain() string { + if x != nil { + return x.Domain } return "" } type OrgDomainValidationRequest struct { - Domain string `protobuf:"bytes,1,opt,name=domain,proto3" json:"domain,omitempty"` - Type OrgDomainValidationType `protobuf:"varint,2,opt,name=type,proto3,enum=caos.zitadel.management.api.v1.OrgDomainValidationType" json:"type,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Domain string `protobuf:"bytes,1,opt,name=domain,proto3" json:"domain,omitempty"` + Type OrgDomainValidationType `protobuf:"varint,2,opt,name=type,proto3,enum=caos.zitadel.management.api.v1.OrgDomainValidationType" json:"type,omitempty"` } -func (m *OrgDomainValidationRequest) Reset() { *m = OrgDomainValidationRequest{} } -func (m *OrgDomainValidationRequest) String() string { return proto.CompactTextString(m) } -func (*OrgDomainValidationRequest) ProtoMessage() {} +func (x *OrgDomainValidationRequest) Reset() { + *x = OrgDomainValidationRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[67] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OrgDomainValidationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrgDomainValidationRequest) ProtoMessage() {} + +func (x *OrgDomainValidationRequest) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[67] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OrgDomainValidationRequest.ProtoReflect.Descriptor instead. func (*OrgDomainValidationRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{67} + return file_management_proto_rawDescGZIP(), []int{67} } -func (m *OrgDomainValidationRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_OrgDomainValidationRequest.Unmarshal(m, b) -} -func (m *OrgDomainValidationRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_OrgDomainValidationRequest.Marshal(b, m, deterministic) -} -func (m *OrgDomainValidationRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_OrgDomainValidationRequest.Merge(m, src) -} -func (m *OrgDomainValidationRequest) XXX_Size() int { - return xxx_messageInfo_OrgDomainValidationRequest.Size(m) -} -func (m *OrgDomainValidationRequest) XXX_DiscardUnknown() { - xxx_messageInfo_OrgDomainValidationRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_OrgDomainValidationRequest proto.InternalMessageInfo - -func (m *OrgDomainValidationRequest) GetDomain() string { - if m != nil { - return m.Domain +func (x *OrgDomainValidationRequest) GetDomain() string { + if x != nil { + return x.Domain } return "" } -func (m *OrgDomainValidationRequest) GetType() OrgDomainValidationType { - if m != nil { - return m.Type +func (x *OrgDomainValidationRequest) GetType() OrgDomainValidationType { + if x != nil { + return x.Type } return OrgDomainValidationType_ORGDOMAINVALIDATIONTYPE_UNSPECIFIED } type OrgDomainValidationResponse struct { - Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` - Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` + Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"` } -func (m *OrgDomainValidationResponse) Reset() { *m = OrgDomainValidationResponse{} } -func (m *OrgDomainValidationResponse) String() string { return proto.CompactTextString(m) } -func (*OrgDomainValidationResponse) ProtoMessage() {} +func (x *OrgDomainValidationResponse) Reset() { + *x = OrgDomainValidationResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[68] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OrgDomainValidationResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrgDomainValidationResponse) ProtoMessage() {} + +func (x *OrgDomainValidationResponse) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[68] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OrgDomainValidationResponse.ProtoReflect.Descriptor instead. func (*OrgDomainValidationResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{68} + return file_management_proto_rawDescGZIP(), []int{68} } -func (m *OrgDomainValidationResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_OrgDomainValidationResponse.Unmarshal(m, b) -} -func (m *OrgDomainValidationResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_OrgDomainValidationResponse.Marshal(b, m, deterministic) -} -func (m *OrgDomainValidationResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_OrgDomainValidationResponse.Merge(m, src) -} -func (m *OrgDomainValidationResponse) XXX_Size() int { - return xxx_messageInfo_OrgDomainValidationResponse.Size(m) -} -func (m *OrgDomainValidationResponse) XXX_DiscardUnknown() { - xxx_messageInfo_OrgDomainValidationResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_OrgDomainValidationResponse proto.InternalMessageInfo - -func (m *OrgDomainValidationResponse) GetToken() string { - if m != nil { - return m.Token +func (x *OrgDomainValidationResponse) GetToken() string { + if x != nil { + return x.Token } return "" } -func (m *OrgDomainValidationResponse) GetUrl() string { - if m != nil { - return m.Url +func (x *OrgDomainValidationResponse) GetUrl() string { + if x != nil { + return x.Url } return "" } type ValidateOrgDomainRequest struct { - Domain string `protobuf:"bytes,1,opt,name=domain,proto3" json:"domain,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Domain string `protobuf:"bytes,1,opt,name=domain,proto3" json:"domain,omitempty"` } -func (m *ValidateOrgDomainRequest) Reset() { *m = ValidateOrgDomainRequest{} } -func (m *ValidateOrgDomainRequest) String() string { return proto.CompactTextString(m) } -func (*ValidateOrgDomainRequest) ProtoMessage() {} +func (x *ValidateOrgDomainRequest) Reset() { + *x = ValidateOrgDomainRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[69] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ValidateOrgDomainRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ValidateOrgDomainRequest) ProtoMessage() {} + +func (x *ValidateOrgDomainRequest) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[69] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ValidateOrgDomainRequest.ProtoReflect.Descriptor instead. func (*ValidateOrgDomainRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{69} + return file_management_proto_rawDescGZIP(), []int{69} } -func (m *ValidateOrgDomainRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ValidateOrgDomainRequest.Unmarshal(m, b) -} -func (m *ValidateOrgDomainRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ValidateOrgDomainRequest.Marshal(b, m, deterministic) -} -func (m *ValidateOrgDomainRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_ValidateOrgDomainRequest.Merge(m, src) -} -func (m *ValidateOrgDomainRequest) XXX_Size() int { - return xxx_messageInfo_ValidateOrgDomainRequest.Size(m) -} -func (m *ValidateOrgDomainRequest) XXX_DiscardUnknown() { - xxx_messageInfo_ValidateOrgDomainRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_ValidateOrgDomainRequest proto.InternalMessageInfo - -func (m *ValidateOrgDomainRequest) GetDomain() string { - if m != nil { - return m.Domain +func (x *ValidateOrgDomainRequest) GetDomain() string { + if x != nil { + return x.Domain } return "" } type PrimaryOrgDomainRequest struct { - Domain string `protobuf:"bytes,1,opt,name=domain,proto3" json:"domain,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Domain string `protobuf:"bytes,1,opt,name=domain,proto3" json:"domain,omitempty"` } -func (m *PrimaryOrgDomainRequest) Reset() { *m = PrimaryOrgDomainRequest{} } -func (m *PrimaryOrgDomainRequest) String() string { return proto.CompactTextString(m) } -func (*PrimaryOrgDomainRequest) ProtoMessage() {} +func (x *PrimaryOrgDomainRequest) Reset() { + *x = PrimaryOrgDomainRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[70] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PrimaryOrgDomainRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PrimaryOrgDomainRequest) ProtoMessage() {} + +func (x *PrimaryOrgDomainRequest) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[70] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PrimaryOrgDomainRequest.ProtoReflect.Descriptor instead. func (*PrimaryOrgDomainRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{70} + return file_management_proto_rawDescGZIP(), []int{70} } -func (m *PrimaryOrgDomainRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_PrimaryOrgDomainRequest.Unmarshal(m, b) -} -func (m *PrimaryOrgDomainRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_PrimaryOrgDomainRequest.Marshal(b, m, deterministic) -} -func (m *PrimaryOrgDomainRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_PrimaryOrgDomainRequest.Merge(m, src) -} -func (m *PrimaryOrgDomainRequest) XXX_Size() int { - return xxx_messageInfo_PrimaryOrgDomainRequest.Size(m) -} -func (m *PrimaryOrgDomainRequest) XXX_DiscardUnknown() { - xxx_messageInfo_PrimaryOrgDomainRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_PrimaryOrgDomainRequest proto.InternalMessageInfo - -func (m *PrimaryOrgDomainRequest) GetDomain() string { - if m != nil { - return m.Domain +func (x *PrimaryOrgDomainRequest) GetDomain() string { + if x != nil { + return x.Domain } return "" } type RemoveOrgDomainRequest struct { - Domain string `protobuf:"bytes,1,opt,name=domain,proto3" json:"domain,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Domain string `protobuf:"bytes,1,opt,name=domain,proto3" json:"domain,omitempty"` } -func (m *RemoveOrgDomainRequest) Reset() { *m = RemoveOrgDomainRequest{} } -func (m *RemoveOrgDomainRequest) String() string { return proto.CompactTextString(m) } -func (*RemoveOrgDomainRequest) ProtoMessage() {} +func (x *RemoveOrgDomainRequest) Reset() { + *x = RemoveOrgDomainRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[71] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RemoveOrgDomainRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RemoveOrgDomainRequest) ProtoMessage() {} + +func (x *RemoveOrgDomainRequest) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[71] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RemoveOrgDomainRequest.ProtoReflect.Descriptor instead. func (*RemoveOrgDomainRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{71} + return file_management_proto_rawDescGZIP(), []int{71} } -func (m *RemoveOrgDomainRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_RemoveOrgDomainRequest.Unmarshal(m, b) -} -func (m *RemoveOrgDomainRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_RemoveOrgDomainRequest.Marshal(b, m, deterministic) -} -func (m *RemoveOrgDomainRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_RemoveOrgDomainRequest.Merge(m, src) -} -func (m *RemoveOrgDomainRequest) XXX_Size() int { - return xxx_messageInfo_RemoveOrgDomainRequest.Size(m) -} -func (m *RemoveOrgDomainRequest) XXX_DiscardUnknown() { - xxx_messageInfo_RemoveOrgDomainRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_RemoveOrgDomainRequest proto.InternalMessageInfo - -func (m *RemoveOrgDomainRequest) GetDomain() string { - if m != nil { - return m.Domain +func (x *RemoveOrgDomainRequest) GetDomain() string { + if x != nil { + return x.Domain } return "" } type OrgDomainSearchResponse struct { - Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` - Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` - TotalResult uint64 `protobuf:"varint,3,opt,name=total_result,json=totalResult,proto3" json:"total_result,omitempty"` - Result []*OrgDomainView `protobuf:"bytes,4,rep,name=result,proto3" json:"result,omitempty"` - ProcessedSequence uint64 `protobuf:"varint,5,opt,name=processed_sequence,json=processedSequence,proto3" json:"processed_sequence,omitempty"` - ViewTimestamp *timestamp.Timestamp `protobuf:"bytes,6,opt,name=view_timestamp,json=viewTimestamp,proto3" json:"view_timestamp,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` + Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` + TotalResult uint64 `protobuf:"varint,3,opt,name=total_result,json=totalResult,proto3" json:"total_result,omitempty"` + Result []*OrgDomainView `protobuf:"bytes,4,rep,name=result,proto3" json:"result,omitempty"` + ProcessedSequence uint64 `protobuf:"varint,5,opt,name=processed_sequence,json=processedSequence,proto3" json:"processed_sequence,omitempty"` + ViewTimestamp *timestamp.Timestamp `protobuf:"bytes,6,opt,name=view_timestamp,json=viewTimestamp,proto3" json:"view_timestamp,omitempty"` } -func (m *OrgDomainSearchResponse) Reset() { *m = OrgDomainSearchResponse{} } -func (m *OrgDomainSearchResponse) String() string { return proto.CompactTextString(m) } -func (*OrgDomainSearchResponse) ProtoMessage() {} +func (x *OrgDomainSearchResponse) Reset() { + *x = OrgDomainSearchResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[72] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OrgDomainSearchResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrgDomainSearchResponse) ProtoMessage() {} + +func (x *OrgDomainSearchResponse) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[72] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OrgDomainSearchResponse.ProtoReflect.Descriptor instead. func (*OrgDomainSearchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{72} + return file_management_proto_rawDescGZIP(), []int{72} } -func (m *OrgDomainSearchResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_OrgDomainSearchResponse.Unmarshal(m, b) -} -func (m *OrgDomainSearchResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_OrgDomainSearchResponse.Marshal(b, m, deterministic) -} -func (m *OrgDomainSearchResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_OrgDomainSearchResponse.Merge(m, src) -} -func (m *OrgDomainSearchResponse) XXX_Size() int { - return xxx_messageInfo_OrgDomainSearchResponse.Size(m) -} -func (m *OrgDomainSearchResponse) XXX_DiscardUnknown() { - xxx_messageInfo_OrgDomainSearchResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_OrgDomainSearchResponse proto.InternalMessageInfo - -func (m *OrgDomainSearchResponse) GetOffset() uint64 { - if m != nil { - return m.Offset +func (x *OrgDomainSearchResponse) GetOffset() uint64 { + if x != nil { + return x.Offset } return 0 } -func (m *OrgDomainSearchResponse) GetLimit() uint64 { - if m != nil { - return m.Limit +func (x *OrgDomainSearchResponse) GetLimit() uint64 { + if x != nil { + return x.Limit } return 0 } -func (m *OrgDomainSearchResponse) GetTotalResult() uint64 { - if m != nil { - return m.TotalResult +func (x *OrgDomainSearchResponse) GetTotalResult() uint64 { + if x != nil { + return x.TotalResult } return 0 } -func (m *OrgDomainSearchResponse) GetResult() []*OrgDomainView { - if m != nil { - return m.Result +func (x *OrgDomainSearchResponse) GetResult() []*OrgDomainView { + if x != nil { + return x.Result } return nil } -func (m *OrgDomainSearchResponse) GetProcessedSequence() uint64 { - if m != nil { - return m.ProcessedSequence +func (x *OrgDomainSearchResponse) GetProcessedSequence() uint64 { + if x != nil { + return x.ProcessedSequence } return 0 } -func (m *OrgDomainSearchResponse) GetViewTimestamp() *timestamp.Timestamp { - if m != nil { - return m.ViewTimestamp +func (x *OrgDomainSearchResponse) GetViewTimestamp() *timestamp.Timestamp { + if x != nil { + return x.ViewTimestamp } return nil } type OrgDomainSearchRequest struct { - Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` - Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` - Queries []*OrgDomainSearchQuery `protobuf:"bytes,3,rep,name=queries,proto3" json:"queries,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` + Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` + Queries []*OrgDomainSearchQuery `protobuf:"bytes,3,rep,name=queries,proto3" json:"queries,omitempty"` } -func (m *OrgDomainSearchRequest) Reset() { *m = OrgDomainSearchRequest{} } -func (m *OrgDomainSearchRequest) String() string { return proto.CompactTextString(m) } -func (*OrgDomainSearchRequest) ProtoMessage() {} +func (x *OrgDomainSearchRequest) Reset() { + *x = OrgDomainSearchRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[73] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OrgDomainSearchRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrgDomainSearchRequest) ProtoMessage() {} + +func (x *OrgDomainSearchRequest) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[73] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OrgDomainSearchRequest.ProtoReflect.Descriptor instead. func (*OrgDomainSearchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{73} + return file_management_proto_rawDescGZIP(), []int{73} } -func (m *OrgDomainSearchRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_OrgDomainSearchRequest.Unmarshal(m, b) -} -func (m *OrgDomainSearchRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_OrgDomainSearchRequest.Marshal(b, m, deterministic) -} -func (m *OrgDomainSearchRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_OrgDomainSearchRequest.Merge(m, src) -} -func (m *OrgDomainSearchRequest) XXX_Size() int { - return xxx_messageInfo_OrgDomainSearchRequest.Size(m) -} -func (m *OrgDomainSearchRequest) XXX_DiscardUnknown() { - xxx_messageInfo_OrgDomainSearchRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_OrgDomainSearchRequest proto.InternalMessageInfo - -func (m *OrgDomainSearchRequest) GetOffset() uint64 { - if m != nil { - return m.Offset +func (x *OrgDomainSearchRequest) GetOffset() uint64 { + if x != nil { + return x.Offset } return 0 } -func (m *OrgDomainSearchRequest) GetLimit() uint64 { - if m != nil { - return m.Limit +func (x *OrgDomainSearchRequest) GetLimit() uint64 { + if x != nil { + return x.Limit } return 0 } -func (m *OrgDomainSearchRequest) GetQueries() []*OrgDomainSearchQuery { - if m != nil { - return m.Queries +func (x *OrgDomainSearchRequest) GetQueries() []*OrgDomainSearchQuery { + if x != nil { + return x.Queries } return nil } type OrgDomainSearchQuery struct { - Key OrgDomainSearchKey `protobuf:"varint,1,opt,name=key,proto3,enum=caos.zitadel.management.api.v1.OrgDomainSearchKey" json:"key,omitempty"` - Method SearchMethod `protobuf:"varint,2,opt,name=method,proto3,enum=caos.zitadel.management.api.v1.SearchMethod" json:"method,omitempty"` - Value string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Key OrgDomainSearchKey `protobuf:"varint,1,opt,name=key,proto3,enum=caos.zitadel.management.api.v1.OrgDomainSearchKey" json:"key,omitempty"` + Method SearchMethod `protobuf:"varint,2,opt,name=method,proto3,enum=caos.zitadel.management.api.v1.SearchMethod" json:"method,omitempty"` + Value string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` } -func (m *OrgDomainSearchQuery) Reset() { *m = OrgDomainSearchQuery{} } -func (m *OrgDomainSearchQuery) String() string { return proto.CompactTextString(m) } -func (*OrgDomainSearchQuery) ProtoMessage() {} +func (x *OrgDomainSearchQuery) Reset() { + *x = OrgDomainSearchQuery{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[74] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OrgDomainSearchQuery) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrgDomainSearchQuery) ProtoMessage() {} + +func (x *OrgDomainSearchQuery) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[74] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OrgDomainSearchQuery.ProtoReflect.Descriptor instead. func (*OrgDomainSearchQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{74} + return file_management_proto_rawDescGZIP(), []int{74} } -func (m *OrgDomainSearchQuery) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_OrgDomainSearchQuery.Unmarshal(m, b) -} -func (m *OrgDomainSearchQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_OrgDomainSearchQuery.Marshal(b, m, deterministic) -} -func (m *OrgDomainSearchQuery) XXX_Merge(src proto.Message) { - xxx_messageInfo_OrgDomainSearchQuery.Merge(m, src) -} -func (m *OrgDomainSearchQuery) XXX_Size() int { - return xxx_messageInfo_OrgDomainSearchQuery.Size(m) -} -func (m *OrgDomainSearchQuery) XXX_DiscardUnknown() { - xxx_messageInfo_OrgDomainSearchQuery.DiscardUnknown(m) -} - -var xxx_messageInfo_OrgDomainSearchQuery proto.InternalMessageInfo - -func (m *OrgDomainSearchQuery) GetKey() OrgDomainSearchKey { - if m != nil { - return m.Key +func (x *OrgDomainSearchQuery) GetKey() OrgDomainSearchKey { + if x != nil { + return x.Key } return OrgDomainSearchKey_ORGDOMAINSEARCHKEY_UNSPECIFIED } -func (m *OrgDomainSearchQuery) GetMethod() SearchMethod { - if m != nil { - return m.Method +func (x *OrgDomainSearchQuery) GetMethod() SearchMethod { + if x != nil { + return x.Method } return SearchMethod_SEARCHMETHOD_EQUALS } -func (m *OrgDomainSearchQuery) GetValue() string { - if m != nil { - return m.Value +func (x *OrgDomainSearchQuery) GetValue() string { + if x != nil { + return x.Value } return "" } type OrgMemberRoles struct { - Roles []string `protobuf:"bytes,1,rep,name=roles,proto3" json:"roles,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Roles []string `protobuf:"bytes,1,rep,name=roles,proto3" json:"roles,omitempty"` } -func (m *OrgMemberRoles) Reset() { *m = OrgMemberRoles{} } -func (m *OrgMemberRoles) String() string { return proto.CompactTextString(m) } -func (*OrgMemberRoles) ProtoMessage() {} +func (x *OrgMemberRoles) Reset() { + *x = OrgMemberRoles{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[75] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OrgMemberRoles) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrgMemberRoles) ProtoMessage() {} + +func (x *OrgMemberRoles) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[75] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OrgMemberRoles.ProtoReflect.Descriptor instead. func (*OrgMemberRoles) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{75} + return file_management_proto_rawDescGZIP(), []int{75} } -func (m *OrgMemberRoles) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_OrgMemberRoles.Unmarshal(m, b) -} -func (m *OrgMemberRoles) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_OrgMemberRoles.Marshal(b, m, deterministic) -} -func (m *OrgMemberRoles) XXX_Merge(src proto.Message) { - xxx_messageInfo_OrgMemberRoles.Merge(m, src) -} -func (m *OrgMemberRoles) XXX_Size() int { - return xxx_messageInfo_OrgMemberRoles.Size(m) -} -func (m *OrgMemberRoles) XXX_DiscardUnknown() { - xxx_messageInfo_OrgMemberRoles.DiscardUnknown(m) -} - -var xxx_messageInfo_OrgMemberRoles proto.InternalMessageInfo - -func (m *OrgMemberRoles) GetRoles() []string { - if m != nil { - return m.Roles +func (x *OrgMemberRoles) GetRoles() []string { + if x != nil { + return x.Roles } return nil } type OrgMember struct { - UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` - Roles []string `protobuf:"bytes,2,rep,name=roles,proto3" json:"roles,omitempty"` - ChangeDate *timestamp.Timestamp `protobuf:"bytes,3,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` - CreationDate *timestamp.Timestamp `protobuf:"bytes,4,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` - Sequence uint64 `protobuf:"varint,5,opt,name=sequence,proto3" json:"sequence,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + Roles []string `protobuf:"bytes,2,rep,name=roles,proto3" json:"roles,omitempty"` + ChangeDate *timestamp.Timestamp `protobuf:"bytes,3,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,4,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + Sequence uint64 `protobuf:"varint,5,opt,name=sequence,proto3" json:"sequence,omitempty"` } -func (m *OrgMember) Reset() { *m = OrgMember{} } -func (m *OrgMember) String() string { return proto.CompactTextString(m) } -func (*OrgMember) ProtoMessage() {} +func (x *OrgMember) Reset() { + *x = OrgMember{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[76] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OrgMember) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrgMember) ProtoMessage() {} + +func (x *OrgMember) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[76] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OrgMember.ProtoReflect.Descriptor instead. func (*OrgMember) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{76} + return file_management_proto_rawDescGZIP(), []int{76} } -func (m *OrgMember) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_OrgMember.Unmarshal(m, b) -} -func (m *OrgMember) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_OrgMember.Marshal(b, m, deterministic) -} -func (m *OrgMember) XXX_Merge(src proto.Message) { - xxx_messageInfo_OrgMember.Merge(m, src) -} -func (m *OrgMember) XXX_Size() int { - return xxx_messageInfo_OrgMember.Size(m) -} -func (m *OrgMember) XXX_DiscardUnknown() { - xxx_messageInfo_OrgMember.DiscardUnknown(m) -} - -var xxx_messageInfo_OrgMember proto.InternalMessageInfo - -func (m *OrgMember) GetUserId() string { - if m != nil { - return m.UserId +func (x *OrgMember) GetUserId() string { + if x != nil { + return x.UserId } return "" } -func (m *OrgMember) GetRoles() []string { - if m != nil { - return m.Roles +func (x *OrgMember) GetRoles() []string { + if x != nil { + return x.Roles } return nil } -func (m *OrgMember) GetChangeDate() *timestamp.Timestamp { - if m != nil { - return m.ChangeDate +func (x *OrgMember) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate } return nil } -func (m *OrgMember) GetCreationDate() *timestamp.Timestamp { - if m != nil { - return m.CreationDate +func (x *OrgMember) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate } return nil } -func (m *OrgMember) GetSequence() uint64 { - if m != nil { - return m.Sequence +func (x *OrgMember) GetSequence() uint64 { + if x != nil { + return x.Sequence } return 0 } type AddOrgMemberRequest struct { - UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` - Roles []string `protobuf:"bytes,2,rep,name=roles,proto3" json:"roles,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + Roles []string `protobuf:"bytes,2,rep,name=roles,proto3" json:"roles,omitempty"` } -func (m *AddOrgMemberRequest) Reset() { *m = AddOrgMemberRequest{} } -func (m *AddOrgMemberRequest) String() string { return proto.CompactTextString(m) } -func (*AddOrgMemberRequest) ProtoMessage() {} +func (x *AddOrgMemberRequest) Reset() { + *x = AddOrgMemberRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[77] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddOrgMemberRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddOrgMemberRequest) ProtoMessage() {} + +func (x *AddOrgMemberRequest) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[77] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddOrgMemberRequest.ProtoReflect.Descriptor instead. func (*AddOrgMemberRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{77} + return file_management_proto_rawDescGZIP(), []int{77} } -func (m *AddOrgMemberRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_AddOrgMemberRequest.Unmarshal(m, b) -} -func (m *AddOrgMemberRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_AddOrgMemberRequest.Marshal(b, m, deterministic) -} -func (m *AddOrgMemberRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_AddOrgMemberRequest.Merge(m, src) -} -func (m *AddOrgMemberRequest) XXX_Size() int { - return xxx_messageInfo_AddOrgMemberRequest.Size(m) -} -func (m *AddOrgMemberRequest) XXX_DiscardUnknown() { - xxx_messageInfo_AddOrgMemberRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_AddOrgMemberRequest proto.InternalMessageInfo - -func (m *AddOrgMemberRequest) GetUserId() string { - if m != nil { - return m.UserId +func (x *AddOrgMemberRequest) GetUserId() string { + if x != nil { + return x.UserId } return "" } -func (m *AddOrgMemberRequest) GetRoles() []string { - if m != nil { - return m.Roles +func (x *AddOrgMemberRequest) GetRoles() []string { + if x != nil { + return x.Roles } return nil } type ChangeOrgMemberRequest struct { - UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` - Roles []string `protobuf:"bytes,2,rep,name=roles,proto3" json:"roles,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + Roles []string `protobuf:"bytes,2,rep,name=roles,proto3" json:"roles,omitempty"` } -func (m *ChangeOrgMemberRequest) Reset() { *m = ChangeOrgMemberRequest{} } -func (m *ChangeOrgMemberRequest) String() string { return proto.CompactTextString(m) } -func (*ChangeOrgMemberRequest) ProtoMessage() {} +func (x *ChangeOrgMemberRequest) Reset() { + *x = ChangeOrgMemberRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[78] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChangeOrgMemberRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChangeOrgMemberRequest) ProtoMessage() {} + +func (x *ChangeOrgMemberRequest) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[78] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChangeOrgMemberRequest.ProtoReflect.Descriptor instead. func (*ChangeOrgMemberRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{78} + return file_management_proto_rawDescGZIP(), []int{78} } -func (m *ChangeOrgMemberRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ChangeOrgMemberRequest.Unmarshal(m, b) -} -func (m *ChangeOrgMemberRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ChangeOrgMemberRequest.Marshal(b, m, deterministic) -} -func (m *ChangeOrgMemberRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_ChangeOrgMemberRequest.Merge(m, src) -} -func (m *ChangeOrgMemberRequest) XXX_Size() int { - return xxx_messageInfo_ChangeOrgMemberRequest.Size(m) -} -func (m *ChangeOrgMemberRequest) XXX_DiscardUnknown() { - xxx_messageInfo_ChangeOrgMemberRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_ChangeOrgMemberRequest proto.InternalMessageInfo - -func (m *ChangeOrgMemberRequest) GetUserId() string { - if m != nil { - return m.UserId +func (x *ChangeOrgMemberRequest) GetUserId() string { + if x != nil { + return x.UserId } return "" } -func (m *ChangeOrgMemberRequest) GetRoles() []string { - if m != nil { - return m.Roles +func (x *ChangeOrgMemberRequest) GetRoles() []string { + if x != nil { + return x.Roles } return nil } type RemoveOrgMemberRequest struct { - UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` } -func (m *RemoveOrgMemberRequest) Reset() { *m = RemoveOrgMemberRequest{} } -func (m *RemoveOrgMemberRequest) String() string { return proto.CompactTextString(m) } -func (*RemoveOrgMemberRequest) ProtoMessage() {} +func (x *RemoveOrgMemberRequest) Reset() { + *x = RemoveOrgMemberRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[79] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RemoveOrgMemberRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RemoveOrgMemberRequest) ProtoMessage() {} + +func (x *RemoveOrgMemberRequest) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[79] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RemoveOrgMemberRequest.ProtoReflect.Descriptor instead. func (*RemoveOrgMemberRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{79} + return file_management_proto_rawDescGZIP(), []int{79} } -func (m *RemoveOrgMemberRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_RemoveOrgMemberRequest.Unmarshal(m, b) -} -func (m *RemoveOrgMemberRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_RemoveOrgMemberRequest.Marshal(b, m, deterministic) -} -func (m *RemoveOrgMemberRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_RemoveOrgMemberRequest.Merge(m, src) -} -func (m *RemoveOrgMemberRequest) XXX_Size() int { - return xxx_messageInfo_RemoveOrgMemberRequest.Size(m) -} -func (m *RemoveOrgMemberRequest) XXX_DiscardUnknown() { - xxx_messageInfo_RemoveOrgMemberRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_RemoveOrgMemberRequest proto.InternalMessageInfo - -func (m *RemoveOrgMemberRequest) GetUserId() string { - if m != nil { - return m.UserId +func (x *RemoveOrgMemberRequest) GetUserId() string { + if x != nil { + return x.UserId } return "" } type OrgMemberSearchResponse struct { - Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` - Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` - TotalResult uint64 `protobuf:"varint,3,opt,name=total_result,json=totalResult,proto3" json:"total_result,omitempty"` - Result []*OrgMemberView `protobuf:"bytes,4,rep,name=result,proto3" json:"result,omitempty"` - ProcessedSequence uint64 `protobuf:"varint,5,opt,name=processed_sequence,json=processedSequence,proto3" json:"processed_sequence,omitempty"` - ViewTimestamp *timestamp.Timestamp `protobuf:"bytes,6,opt,name=view_timestamp,json=viewTimestamp,proto3" json:"view_timestamp,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` + Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` + TotalResult uint64 `protobuf:"varint,3,opt,name=total_result,json=totalResult,proto3" json:"total_result,omitempty"` + Result []*OrgMemberView `protobuf:"bytes,4,rep,name=result,proto3" json:"result,omitempty"` + ProcessedSequence uint64 `protobuf:"varint,5,opt,name=processed_sequence,json=processedSequence,proto3" json:"processed_sequence,omitempty"` + ViewTimestamp *timestamp.Timestamp `protobuf:"bytes,6,opt,name=view_timestamp,json=viewTimestamp,proto3" json:"view_timestamp,omitempty"` } -func (m *OrgMemberSearchResponse) Reset() { *m = OrgMemberSearchResponse{} } -func (m *OrgMemberSearchResponse) String() string { return proto.CompactTextString(m) } -func (*OrgMemberSearchResponse) ProtoMessage() {} +func (x *OrgMemberSearchResponse) Reset() { + *x = OrgMemberSearchResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[80] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OrgMemberSearchResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrgMemberSearchResponse) ProtoMessage() {} + +func (x *OrgMemberSearchResponse) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[80] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OrgMemberSearchResponse.ProtoReflect.Descriptor instead. func (*OrgMemberSearchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{80} + return file_management_proto_rawDescGZIP(), []int{80} } -func (m *OrgMemberSearchResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_OrgMemberSearchResponse.Unmarshal(m, b) -} -func (m *OrgMemberSearchResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_OrgMemberSearchResponse.Marshal(b, m, deterministic) -} -func (m *OrgMemberSearchResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_OrgMemberSearchResponse.Merge(m, src) -} -func (m *OrgMemberSearchResponse) XXX_Size() int { - return xxx_messageInfo_OrgMemberSearchResponse.Size(m) -} -func (m *OrgMemberSearchResponse) XXX_DiscardUnknown() { - xxx_messageInfo_OrgMemberSearchResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_OrgMemberSearchResponse proto.InternalMessageInfo - -func (m *OrgMemberSearchResponse) GetOffset() uint64 { - if m != nil { - return m.Offset +func (x *OrgMemberSearchResponse) GetOffset() uint64 { + if x != nil { + return x.Offset } return 0 } -func (m *OrgMemberSearchResponse) GetLimit() uint64 { - if m != nil { - return m.Limit +func (x *OrgMemberSearchResponse) GetLimit() uint64 { + if x != nil { + return x.Limit } return 0 } -func (m *OrgMemberSearchResponse) GetTotalResult() uint64 { - if m != nil { - return m.TotalResult +func (x *OrgMemberSearchResponse) GetTotalResult() uint64 { + if x != nil { + return x.TotalResult } return 0 } -func (m *OrgMemberSearchResponse) GetResult() []*OrgMemberView { - if m != nil { - return m.Result +func (x *OrgMemberSearchResponse) GetResult() []*OrgMemberView { + if x != nil { + return x.Result } return nil } -func (m *OrgMemberSearchResponse) GetProcessedSequence() uint64 { - if m != nil { - return m.ProcessedSequence +func (x *OrgMemberSearchResponse) GetProcessedSequence() uint64 { + if x != nil { + return x.ProcessedSequence } return 0 } -func (m *OrgMemberSearchResponse) GetViewTimestamp() *timestamp.Timestamp { - if m != nil { - return m.ViewTimestamp +func (x *OrgMemberSearchResponse) GetViewTimestamp() *timestamp.Timestamp { + if x != nil { + return x.ViewTimestamp } return nil } type OrgMemberView struct { - UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` - Roles []string `protobuf:"bytes,2,rep,name=roles,proto3" json:"roles,omitempty"` - ChangeDate *timestamp.Timestamp `protobuf:"bytes,3,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` - CreationDate *timestamp.Timestamp `protobuf:"bytes,4,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` - Sequence uint64 `protobuf:"varint,5,opt,name=sequence,proto3" json:"sequence,omitempty"` - UserName string `protobuf:"bytes,6,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` - Email string `protobuf:"bytes,7,opt,name=email,proto3" json:"email,omitempty"` - FirstName string `protobuf:"bytes,8,opt,name=first_name,json=firstName,proto3" json:"first_name,omitempty"` - LastName string `protobuf:"bytes,9,opt,name=last_name,json=lastName,proto3" json:"last_name,omitempty"` - DisplayName string `protobuf:"bytes,10,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + Roles []string `protobuf:"bytes,2,rep,name=roles,proto3" json:"roles,omitempty"` + ChangeDate *timestamp.Timestamp `protobuf:"bytes,3,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,4,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + Sequence uint64 `protobuf:"varint,5,opt,name=sequence,proto3" json:"sequence,omitempty"` + UserName string `protobuf:"bytes,6,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` + Email string `protobuf:"bytes,7,opt,name=email,proto3" json:"email,omitempty"` + FirstName string `protobuf:"bytes,8,opt,name=first_name,json=firstName,proto3" json:"first_name,omitempty"` + LastName string `protobuf:"bytes,9,opt,name=last_name,json=lastName,proto3" json:"last_name,omitempty"` + DisplayName string `protobuf:"bytes,10,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` } -func (m *OrgMemberView) Reset() { *m = OrgMemberView{} } -func (m *OrgMemberView) String() string { return proto.CompactTextString(m) } -func (*OrgMemberView) ProtoMessage() {} +func (x *OrgMemberView) Reset() { + *x = OrgMemberView{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[81] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OrgMemberView) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrgMemberView) ProtoMessage() {} + +func (x *OrgMemberView) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[81] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OrgMemberView.ProtoReflect.Descriptor instead. func (*OrgMemberView) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{81} + return file_management_proto_rawDescGZIP(), []int{81} } -func (m *OrgMemberView) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_OrgMemberView.Unmarshal(m, b) -} -func (m *OrgMemberView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_OrgMemberView.Marshal(b, m, deterministic) -} -func (m *OrgMemberView) XXX_Merge(src proto.Message) { - xxx_messageInfo_OrgMemberView.Merge(m, src) -} -func (m *OrgMemberView) XXX_Size() int { - return xxx_messageInfo_OrgMemberView.Size(m) -} -func (m *OrgMemberView) XXX_DiscardUnknown() { - xxx_messageInfo_OrgMemberView.DiscardUnknown(m) -} - -var xxx_messageInfo_OrgMemberView proto.InternalMessageInfo - -func (m *OrgMemberView) GetUserId() string { - if m != nil { - return m.UserId +func (x *OrgMemberView) GetUserId() string { + if x != nil { + return x.UserId } return "" } -func (m *OrgMemberView) GetRoles() []string { - if m != nil { - return m.Roles +func (x *OrgMemberView) GetRoles() []string { + if x != nil { + return x.Roles } return nil } -func (m *OrgMemberView) GetChangeDate() *timestamp.Timestamp { - if m != nil { - return m.ChangeDate +func (x *OrgMemberView) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate } return nil } -func (m *OrgMemberView) GetCreationDate() *timestamp.Timestamp { - if m != nil { - return m.CreationDate +func (x *OrgMemberView) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate } return nil } -func (m *OrgMemberView) GetSequence() uint64 { - if m != nil { - return m.Sequence +func (x *OrgMemberView) GetSequence() uint64 { + if x != nil { + return x.Sequence } return 0 } -func (m *OrgMemberView) GetUserName() string { - if m != nil { - return m.UserName +func (x *OrgMemberView) GetUserName() string { + if x != nil { + return x.UserName } return "" } -func (m *OrgMemberView) GetEmail() string { - if m != nil { - return m.Email +func (x *OrgMemberView) GetEmail() string { + if x != nil { + return x.Email } return "" } -func (m *OrgMemberView) GetFirstName() string { - if m != nil { - return m.FirstName +func (x *OrgMemberView) GetFirstName() string { + if x != nil { + return x.FirstName } return "" } -func (m *OrgMemberView) GetLastName() string { - if m != nil { - return m.LastName +func (x *OrgMemberView) GetLastName() string { + if x != nil { + return x.LastName } return "" } -func (m *OrgMemberView) GetDisplayName() string { - if m != nil { - return m.DisplayName +func (x *OrgMemberView) GetDisplayName() string { + if x != nil { + return x.DisplayName } return "" } type OrgMemberSearchRequest struct { - Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` - Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` - Queries []*OrgMemberSearchQuery `protobuf:"bytes,3,rep,name=queries,proto3" json:"queries,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` + Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` + Queries []*OrgMemberSearchQuery `protobuf:"bytes,3,rep,name=queries,proto3" json:"queries,omitempty"` } -func (m *OrgMemberSearchRequest) Reset() { *m = OrgMemberSearchRequest{} } -func (m *OrgMemberSearchRequest) String() string { return proto.CompactTextString(m) } -func (*OrgMemberSearchRequest) ProtoMessage() {} +func (x *OrgMemberSearchRequest) Reset() { + *x = OrgMemberSearchRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[82] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OrgMemberSearchRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrgMemberSearchRequest) ProtoMessage() {} + +func (x *OrgMemberSearchRequest) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[82] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OrgMemberSearchRequest.ProtoReflect.Descriptor instead. func (*OrgMemberSearchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{82} + return file_management_proto_rawDescGZIP(), []int{82} } -func (m *OrgMemberSearchRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_OrgMemberSearchRequest.Unmarshal(m, b) -} -func (m *OrgMemberSearchRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_OrgMemberSearchRequest.Marshal(b, m, deterministic) -} -func (m *OrgMemberSearchRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_OrgMemberSearchRequest.Merge(m, src) -} -func (m *OrgMemberSearchRequest) XXX_Size() int { - return xxx_messageInfo_OrgMemberSearchRequest.Size(m) -} -func (m *OrgMemberSearchRequest) XXX_DiscardUnknown() { - xxx_messageInfo_OrgMemberSearchRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_OrgMemberSearchRequest proto.InternalMessageInfo - -func (m *OrgMemberSearchRequest) GetOffset() uint64 { - if m != nil { - return m.Offset +func (x *OrgMemberSearchRequest) GetOffset() uint64 { + if x != nil { + return x.Offset } return 0 } -func (m *OrgMemberSearchRequest) GetLimit() uint64 { - if m != nil { - return m.Limit +func (x *OrgMemberSearchRequest) GetLimit() uint64 { + if x != nil { + return x.Limit } return 0 } -func (m *OrgMemberSearchRequest) GetQueries() []*OrgMemberSearchQuery { - if m != nil { - return m.Queries +func (x *OrgMemberSearchRequest) GetQueries() []*OrgMemberSearchQuery { + if x != nil { + return x.Queries } return nil } type OrgMemberSearchQuery struct { - Key OrgMemberSearchKey `protobuf:"varint,1,opt,name=key,proto3,enum=caos.zitadel.management.api.v1.OrgMemberSearchKey" json:"key,omitempty"` - Method SearchMethod `protobuf:"varint,2,opt,name=method,proto3,enum=caos.zitadel.management.api.v1.SearchMethod" json:"method,omitempty"` - Value string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Key OrgMemberSearchKey `protobuf:"varint,1,opt,name=key,proto3,enum=caos.zitadel.management.api.v1.OrgMemberSearchKey" json:"key,omitempty"` + Method SearchMethod `protobuf:"varint,2,opt,name=method,proto3,enum=caos.zitadel.management.api.v1.SearchMethod" json:"method,omitempty"` + Value string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` } -func (m *OrgMemberSearchQuery) Reset() { *m = OrgMemberSearchQuery{} } -func (m *OrgMemberSearchQuery) String() string { return proto.CompactTextString(m) } -func (*OrgMemberSearchQuery) ProtoMessage() {} +func (x *OrgMemberSearchQuery) Reset() { + *x = OrgMemberSearchQuery{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[83] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OrgMemberSearchQuery) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrgMemberSearchQuery) ProtoMessage() {} + +func (x *OrgMemberSearchQuery) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[83] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OrgMemberSearchQuery.ProtoReflect.Descriptor instead. func (*OrgMemberSearchQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{83} + return file_management_proto_rawDescGZIP(), []int{83} } -func (m *OrgMemberSearchQuery) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_OrgMemberSearchQuery.Unmarshal(m, b) -} -func (m *OrgMemberSearchQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_OrgMemberSearchQuery.Marshal(b, m, deterministic) -} -func (m *OrgMemberSearchQuery) XXX_Merge(src proto.Message) { - xxx_messageInfo_OrgMemberSearchQuery.Merge(m, src) -} -func (m *OrgMemberSearchQuery) XXX_Size() int { - return xxx_messageInfo_OrgMemberSearchQuery.Size(m) -} -func (m *OrgMemberSearchQuery) XXX_DiscardUnknown() { - xxx_messageInfo_OrgMemberSearchQuery.DiscardUnknown(m) -} - -var xxx_messageInfo_OrgMemberSearchQuery proto.InternalMessageInfo - -func (m *OrgMemberSearchQuery) GetKey() OrgMemberSearchKey { - if m != nil { - return m.Key +func (x *OrgMemberSearchQuery) GetKey() OrgMemberSearchKey { + if x != nil { + return x.Key } return OrgMemberSearchKey_ORGMEMBERSEARCHKEY_UNSPECIFIED } -func (m *OrgMemberSearchQuery) GetMethod() SearchMethod { - if m != nil { - return m.Method +func (x *OrgMemberSearchQuery) GetMethod() SearchMethod { + if x != nil { + return x.Method } return SearchMethod_SEARCHMETHOD_EQUALS } -func (m *OrgMemberSearchQuery) GetValue() string { - if m != nil { - return m.Value +func (x *OrgMemberSearchQuery) GetValue() string { + if x != nil { + return x.Value } return "" } type ProjectCreateRequest struct { - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` } -func (m *ProjectCreateRequest) Reset() { *m = ProjectCreateRequest{} } -func (m *ProjectCreateRequest) String() string { return proto.CompactTextString(m) } -func (*ProjectCreateRequest) ProtoMessage() {} +func (x *ProjectCreateRequest) Reset() { + *x = ProjectCreateRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[84] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProjectCreateRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProjectCreateRequest) ProtoMessage() {} + +func (x *ProjectCreateRequest) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[84] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProjectCreateRequest.ProtoReflect.Descriptor instead. func (*ProjectCreateRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{84} + return file_management_proto_rawDescGZIP(), []int{84} } -func (m *ProjectCreateRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ProjectCreateRequest.Unmarshal(m, b) -} -func (m *ProjectCreateRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ProjectCreateRequest.Marshal(b, m, deterministic) -} -func (m *ProjectCreateRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProjectCreateRequest.Merge(m, src) -} -func (m *ProjectCreateRequest) XXX_Size() int { - return xxx_messageInfo_ProjectCreateRequest.Size(m) -} -func (m *ProjectCreateRequest) XXX_DiscardUnknown() { - xxx_messageInfo_ProjectCreateRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_ProjectCreateRequest proto.InternalMessageInfo - -func (m *ProjectCreateRequest) GetName() string { - if m != nil { - return m.Name +func (x *ProjectCreateRequest) GetName() string { + if x != nil { + return x.Name } return "" } type ProjectUpdateRequest struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` } -func (m *ProjectUpdateRequest) Reset() { *m = ProjectUpdateRequest{} } -func (m *ProjectUpdateRequest) String() string { return proto.CompactTextString(m) } -func (*ProjectUpdateRequest) ProtoMessage() {} +func (x *ProjectUpdateRequest) Reset() { + *x = ProjectUpdateRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[85] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProjectUpdateRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProjectUpdateRequest) ProtoMessage() {} + +func (x *ProjectUpdateRequest) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[85] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProjectUpdateRequest.ProtoReflect.Descriptor instead. func (*ProjectUpdateRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{85} + return file_management_proto_rawDescGZIP(), []int{85} } -func (m *ProjectUpdateRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ProjectUpdateRequest.Unmarshal(m, b) -} -func (m *ProjectUpdateRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ProjectUpdateRequest.Marshal(b, m, deterministic) -} -func (m *ProjectUpdateRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProjectUpdateRequest.Merge(m, src) -} -func (m *ProjectUpdateRequest) XXX_Size() int { - return xxx_messageInfo_ProjectUpdateRequest.Size(m) -} -func (m *ProjectUpdateRequest) XXX_DiscardUnknown() { - xxx_messageInfo_ProjectUpdateRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_ProjectUpdateRequest proto.InternalMessageInfo - -func (m *ProjectUpdateRequest) GetId() string { - if m != nil { - return m.Id +func (x *ProjectUpdateRequest) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *ProjectUpdateRequest) GetName() string { - if m != nil { - return m.Name +func (x *ProjectUpdateRequest) GetName() string { + if x != nil { + return x.Name } return "" } type ProjectSearchResponse struct { - Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` - Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` - TotalResult uint64 `protobuf:"varint,3,opt,name=total_result,json=totalResult,proto3" json:"total_result,omitempty"` - Result []*ProjectView `protobuf:"bytes,4,rep,name=result,proto3" json:"result,omitempty"` - ProcessedSequence uint64 `protobuf:"varint,5,opt,name=processed_sequence,json=processedSequence,proto3" json:"processed_sequence,omitempty"` - ViewTimestamp *timestamp.Timestamp `protobuf:"bytes,6,opt,name=view_timestamp,json=viewTimestamp,proto3" json:"view_timestamp,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` + Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` + TotalResult uint64 `protobuf:"varint,3,opt,name=total_result,json=totalResult,proto3" json:"total_result,omitempty"` + Result []*ProjectView `protobuf:"bytes,4,rep,name=result,proto3" json:"result,omitempty"` + ProcessedSequence uint64 `protobuf:"varint,5,opt,name=processed_sequence,json=processedSequence,proto3" json:"processed_sequence,omitempty"` + ViewTimestamp *timestamp.Timestamp `protobuf:"bytes,6,opt,name=view_timestamp,json=viewTimestamp,proto3" json:"view_timestamp,omitempty"` } -func (m *ProjectSearchResponse) Reset() { *m = ProjectSearchResponse{} } -func (m *ProjectSearchResponse) String() string { return proto.CompactTextString(m) } -func (*ProjectSearchResponse) ProtoMessage() {} +func (x *ProjectSearchResponse) Reset() { + *x = ProjectSearchResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[86] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProjectSearchResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProjectSearchResponse) ProtoMessage() {} + +func (x *ProjectSearchResponse) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[86] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProjectSearchResponse.ProtoReflect.Descriptor instead. func (*ProjectSearchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{86} + return file_management_proto_rawDescGZIP(), []int{86} } -func (m *ProjectSearchResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ProjectSearchResponse.Unmarshal(m, b) -} -func (m *ProjectSearchResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ProjectSearchResponse.Marshal(b, m, deterministic) -} -func (m *ProjectSearchResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProjectSearchResponse.Merge(m, src) -} -func (m *ProjectSearchResponse) XXX_Size() int { - return xxx_messageInfo_ProjectSearchResponse.Size(m) -} -func (m *ProjectSearchResponse) XXX_DiscardUnknown() { - xxx_messageInfo_ProjectSearchResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_ProjectSearchResponse proto.InternalMessageInfo - -func (m *ProjectSearchResponse) GetOffset() uint64 { - if m != nil { - return m.Offset +func (x *ProjectSearchResponse) GetOffset() uint64 { + if x != nil { + return x.Offset } return 0 } -func (m *ProjectSearchResponse) GetLimit() uint64 { - if m != nil { - return m.Limit +func (x *ProjectSearchResponse) GetLimit() uint64 { + if x != nil { + return x.Limit } return 0 } -func (m *ProjectSearchResponse) GetTotalResult() uint64 { - if m != nil { - return m.TotalResult +func (x *ProjectSearchResponse) GetTotalResult() uint64 { + if x != nil { + return x.TotalResult } return 0 } -func (m *ProjectSearchResponse) GetResult() []*ProjectView { - if m != nil { - return m.Result +func (x *ProjectSearchResponse) GetResult() []*ProjectView { + if x != nil { + return x.Result } return nil } -func (m *ProjectSearchResponse) GetProcessedSequence() uint64 { - if m != nil { - return m.ProcessedSequence +func (x *ProjectSearchResponse) GetProcessedSequence() uint64 { + if x != nil { + return x.ProcessedSequence } return 0 } -func (m *ProjectSearchResponse) GetViewTimestamp() *timestamp.Timestamp { - if m != nil { - return m.ViewTimestamp +func (x *ProjectSearchResponse) GetViewTimestamp() *timestamp.Timestamp { + if x != nil { + return x.ViewTimestamp } return nil } type ProjectView struct { - ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - State ProjectState `protobuf:"varint,3,opt,name=state,proto3,enum=caos.zitadel.management.api.v1.ProjectState" json:"state,omitempty"` - ChangeDate *timestamp.Timestamp `protobuf:"bytes,4,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` - CreationDate *timestamp.Timestamp `protobuf:"bytes,5,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` - ResourceOwner string `protobuf:"bytes,6,opt,name=resource_owner,json=resourceOwner,proto3" json:"resource_owner,omitempty"` - Sequence uint64 `protobuf:"varint,7,opt,name=sequence,proto3" json:"sequence,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + State ProjectState `protobuf:"varint,3,opt,name=state,proto3,enum=caos.zitadel.management.api.v1.ProjectState" json:"state,omitempty"` + ChangeDate *timestamp.Timestamp `protobuf:"bytes,4,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,5,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + ResourceOwner string `protobuf:"bytes,6,opt,name=resource_owner,json=resourceOwner,proto3" json:"resource_owner,omitempty"` + Sequence uint64 `protobuf:"varint,7,opt,name=sequence,proto3" json:"sequence,omitempty"` } -func (m *ProjectView) Reset() { *m = ProjectView{} } -func (m *ProjectView) String() string { return proto.CompactTextString(m) } -func (*ProjectView) ProtoMessage() {} +func (x *ProjectView) Reset() { + *x = ProjectView{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[87] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProjectView) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProjectView) ProtoMessage() {} + +func (x *ProjectView) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[87] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProjectView.ProtoReflect.Descriptor instead. func (*ProjectView) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{87} + return file_management_proto_rawDescGZIP(), []int{87} } -func (m *ProjectView) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ProjectView.Unmarshal(m, b) -} -func (m *ProjectView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ProjectView.Marshal(b, m, deterministic) -} -func (m *ProjectView) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProjectView.Merge(m, src) -} -func (m *ProjectView) XXX_Size() int { - return xxx_messageInfo_ProjectView.Size(m) -} -func (m *ProjectView) XXX_DiscardUnknown() { - xxx_messageInfo_ProjectView.DiscardUnknown(m) -} - -var xxx_messageInfo_ProjectView proto.InternalMessageInfo - -func (m *ProjectView) GetProjectId() string { - if m != nil { - return m.ProjectId +func (x *ProjectView) GetProjectId() string { + if x != nil { + return x.ProjectId } return "" } -func (m *ProjectView) GetName() string { - if m != nil { - return m.Name +func (x *ProjectView) GetName() string { + if x != nil { + return x.Name } return "" } -func (m *ProjectView) GetState() ProjectState { - if m != nil { - return m.State +func (x *ProjectView) GetState() ProjectState { + if x != nil { + return x.State } return ProjectState_PROJECTSTATE_UNSPECIFIED } -func (m *ProjectView) GetChangeDate() *timestamp.Timestamp { - if m != nil { - return m.ChangeDate +func (x *ProjectView) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate } return nil } -func (m *ProjectView) GetCreationDate() *timestamp.Timestamp { - if m != nil { - return m.CreationDate +func (x *ProjectView) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate } return nil } -func (m *ProjectView) GetResourceOwner() string { - if m != nil { - return m.ResourceOwner +func (x *ProjectView) GetResourceOwner() string { + if x != nil { + return x.ResourceOwner } return "" } -func (m *ProjectView) GetSequence() uint64 { - if m != nil { - return m.Sequence +func (x *ProjectView) GetSequence() uint64 { + if x != nil { + return x.Sequence } return 0 } type ProjectSearchRequest struct { - Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` - Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` - Queries []*ProjectSearchQuery `protobuf:"bytes,3,rep,name=queries,proto3" json:"queries,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` + Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` + Queries []*ProjectSearchQuery `protobuf:"bytes,3,rep,name=queries,proto3" json:"queries,omitempty"` } -func (m *ProjectSearchRequest) Reset() { *m = ProjectSearchRequest{} } -func (m *ProjectSearchRequest) String() string { return proto.CompactTextString(m) } -func (*ProjectSearchRequest) ProtoMessage() {} +func (x *ProjectSearchRequest) Reset() { + *x = ProjectSearchRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[88] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProjectSearchRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProjectSearchRequest) ProtoMessage() {} + +func (x *ProjectSearchRequest) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[88] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProjectSearchRequest.ProtoReflect.Descriptor instead. func (*ProjectSearchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{88} + return file_management_proto_rawDescGZIP(), []int{88} } -func (m *ProjectSearchRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ProjectSearchRequest.Unmarshal(m, b) -} -func (m *ProjectSearchRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ProjectSearchRequest.Marshal(b, m, deterministic) -} -func (m *ProjectSearchRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProjectSearchRequest.Merge(m, src) -} -func (m *ProjectSearchRequest) XXX_Size() int { - return xxx_messageInfo_ProjectSearchRequest.Size(m) -} -func (m *ProjectSearchRequest) XXX_DiscardUnknown() { - xxx_messageInfo_ProjectSearchRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_ProjectSearchRequest proto.InternalMessageInfo - -func (m *ProjectSearchRequest) GetOffset() uint64 { - if m != nil { - return m.Offset +func (x *ProjectSearchRequest) GetOffset() uint64 { + if x != nil { + return x.Offset } return 0 } -func (m *ProjectSearchRequest) GetLimit() uint64 { - if m != nil { - return m.Limit +func (x *ProjectSearchRequest) GetLimit() uint64 { + if x != nil { + return x.Limit } return 0 } -func (m *ProjectSearchRequest) GetQueries() []*ProjectSearchQuery { - if m != nil { - return m.Queries +func (x *ProjectSearchRequest) GetQueries() []*ProjectSearchQuery { + if x != nil { + return x.Queries } return nil } type ProjectSearchQuery struct { - Key ProjectSearchKey `protobuf:"varint,1,opt,name=key,proto3,enum=caos.zitadel.management.api.v1.ProjectSearchKey" json:"key,omitempty"` - Method SearchMethod `protobuf:"varint,2,opt,name=method,proto3,enum=caos.zitadel.management.api.v1.SearchMethod" json:"method,omitempty"` - Value string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Key ProjectSearchKey `protobuf:"varint,1,opt,name=key,proto3,enum=caos.zitadel.management.api.v1.ProjectSearchKey" json:"key,omitempty"` + Method SearchMethod `protobuf:"varint,2,opt,name=method,proto3,enum=caos.zitadel.management.api.v1.SearchMethod" json:"method,omitempty"` + Value string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` } -func (m *ProjectSearchQuery) Reset() { *m = ProjectSearchQuery{} } -func (m *ProjectSearchQuery) String() string { return proto.CompactTextString(m) } -func (*ProjectSearchQuery) ProtoMessage() {} +func (x *ProjectSearchQuery) Reset() { + *x = ProjectSearchQuery{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[89] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProjectSearchQuery) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProjectSearchQuery) ProtoMessage() {} + +func (x *ProjectSearchQuery) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[89] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProjectSearchQuery.ProtoReflect.Descriptor instead. func (*ProjectSearchQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{89} + return file_management_proto_rawDescGZIP(), []int{89} } -func (m *ProjectSearchQuery) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ProjectSearchQuery.Unmarshal(m, b) -} -func (m *ProjectSearchQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ProjectSearchQuery.Marshal(b, m, deterministic) -} -func (m *ProjectSearchQuery) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProjectSearchQuery.Merge(m, src) -} -func (m *ProjectSearchQuery) XXX_Size() int { - return xxx_messageInfo_ProjectSearchQuery.Size(m) -} -func (m *ProjectSearchQuery) XXX_DiscardUnknown() { - xxx_messageInfo_ProjectSearchQuery.DiscardUnknown(m) -} - -var xxx_messageInfo_ProjectSearchQuery proto.InternalMessageInfo - -func (m *ProjectSearchQuery) GetKey() ProjectSearchKey { - if m != nil { - return m.Key +func (x *ProjectSearchQuery) GetKey() ProjectSearchKey { + if x != nil { + return x.Key } return ProjectSearchKey_PROJECTSEARCHKEY_UNSPECIFIED } -func (m *ProjectSearchQuery) GetMethod() SearchMethod { - if m != nil { - return m.Method +func (x *ProjectSearchQuery) GetMethod() SearchMethod { + if x != nil { + return x.Method } return SearchMethod_SEARCHMETHOD_EQUALS } -func (m *ProjectSearchQuery) GetValue() string { - if m != nil { - return m.Value +func (x *ProjectSearchQuery) GetValue() string { + if x != nil { + return x.Value } return "" } type Projects struct { - Projects []*Project `protobuf:"bytes,1,rep,name=projects,proto3" json:"projects,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Projects []*Project `protobuf:"bytes,1,rep,name=projects,proto3" json:"projects,omitempty"` } -func (m *Projects) Reset() { *m = Projects{} } -func (m *Projects) String() string { return proto.CompactTextString(m) } -func (*Projects) ProtoMessage() {} +func (x *Projects) Reset() { + *x = Projects{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[90] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Projects) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Projects) ProtoMessage() {} + +func (x *Projects) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[90] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Projects.ProtoReflect.Descriptor instead. func (*Projects) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{90} + return file_management_proto_rawDescGZIP(), []int{90} } -func (m *Projects) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Projects.Unmarshal(m, b) -} -func (m *Projects) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Projects.Marshal(b, m, deterministic) -} -func (m *Projects) XXX_Merge(src proto.Message) { - xxx_messageInfo_Projects.Merge(m, src) -} -func (m *Projects) XXX_Size() int { - return xxx_messageInfo_Projects.Size(m) -} -func (m *Projects) XXX_DiscardUnknown() { - xxx_messageInfo_Projects.DiscardUnknown(m) -} - -var xxx_messageInfo_Projects proto.InternalMessageInfo - -func (m *Projects) GetProjects() []*Project { - if m != nil { - return m.Projects +func (x *Projects) GetProjects() []*Project { + if x != nil { + return x.Projects } return nil } type Project struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - State ProjectState `protobuf:"varint,3,opt,name=state,proto3,enum=caos.zitadel.management.api.v1.ProjectState" json:"state,omitempty"` - ChangeDate *timestamp.Timestamp `protobuf:"bytes,4,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` - CreationDate *timestamp.Timestamp `protobuf:"bytes,5,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` - Sequence uint64 `protobuf:"varint,6,opt,name=sequence,proto3" json:"sequence,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + State ProjectState `protobuf:"varint,3,opt,name=state,proto3,enum=caos.zitadel.management.api.v1.ProjectState" json:"state,omitempty"` + ChangeDate *timestamp.Timestamp `protobuf:"bytes,4,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,5,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + Sequence uint64 `protobuf:"varint,6,opt,name=sequence,proto3" json:"sequence,omitempty"` } -func (m *Project) Reset() { *m = Project{} } -func (m *Project) String() string { return proto.CompactTextString(m) } -func (*Project) ProtoMessage() {} +func (x *Project) Reset() { + *x = Project{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[91] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Project) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Project) ProtoMessage() {} + +func (x *Project) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[91] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Project.ProtoReflect.Descriptor instead. func (*Project) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{91} + return file_management_proto_rawDescGZIP(), []int{91} } -func (m *Project) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Project.Unmarshal(m, b) -} -func (m *Project) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Project.Marshal(b, m, deterministic) -} -func (m *Project) XXX_Merge(src proto.Message) { - xxx_messageInfo_Project.Merge(m, src) -} -func (m *Project) XXX_Size() int { - return xxx_messageInfo_Project.Size(m) -} -func (m *Project) XXX_DiscardUnknown() { - xxx_messageInfo_Project.DiscardUnknown(m) -} - -var xxx_messageInfo_Project proto.InternalMessageInfo - -func (m *Project) GetId() string { - if m != nil { - return m.Id +func (x *Project) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *Project) GetName() string { - if m != nil { - return m.Name +func (x *Project) GetName() string { + if x != nil { + return x.Name } return "" } -func (m *Project) GetState() ProjectState { - if m != nil { - return m.State +func (x *Project) GetState() ProjectState { + if x != nil { + return x.State } return ProjectState_PROJECTSTATE_UNSPECIFIED } -func (m *Project) GetChangeDate() *timestamp.Timestamp { - if m != nil { - return m.ChangeDate +func (x *Project) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate } return nil } -func (m *Project) GetCreationDate() *timestamp.Timestamp { - if m != nil { - return m.CreationDate +func (x *Project) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate } return nil } -func (m *Project) GetSequence() uint64 { - if m != nil { - return m.Sequence +func (x *Project) GetSequence() uint64 { + if x != nil { + return x.Sequence } return 0 } type ProjectMemberRoles struct { - Roles []string `protobuf:"bytes,1,rep,name=roles,proto3" json:"roles,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Roles []string `protobuf:"bytes,1,rep,name=roles,proto3" json:"roles,omitempty"` } -func (m *ProjectMemberRoles) Reset() { *m = ProjectMemberRoles{} } -func (m *ProjectMemberRoles) String() string { return proto.CompactTextString(m) } -func (*ProjectMemberRoles) ProtoMessage() {} +func (x *ProjectMemberRoles) Reset() { + *x = ProjectMemberRoles{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[92] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProjectMemberRoles) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProjectMemberRoles) ProtoMessage() {} + +func (x *ProjectMemberRoles) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[92] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProjectMemberRoles.ProtoReflect.Descriptor instead. func (*ProjectMemberRoles) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{92} + return file_management_proto_rawDescGZIP(), []int{92} } -func (m *ProjectMemberRoles) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ProjectMemberRoles.Unmarshal(m, b) -} -func (m *ProjectMemberRoles) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ProjectMemberRoles.Marshal(b, m, deterministic) -} -func (m *ProjectMemberRoles) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProjectMemberRoles.Merge(m, src) -} -func (m *ProjectMemberRoles) XXX_Size() int { - return xxx_messageInfo_ProjectMemberRoles.Size(m) -} -func (m *ProjectMemberRoles) XXX_DiscardUnknown() { - xxx_messageInfo_ProjectMemberRoles.DiscardUnknown(m) -} - -var xxx_messageInfo_ProjectMemberRoles proto.InternalMessageInfo - -func (m *ProjectMemberRoles) GetRoles() []string { - if m != nil { - return m.Roles +func (x *ProjectMemberRoles) GetRoles() []string { + if x != nil { + return x.Roles } return nil } type ProjectMember struct { - UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` - Roles []string `protobuf:"bytes,2,rep,name=roles,proto3" json:"roles,omitempty"` - ChangeDate *timestamp.Timestamp `protobuf:"bytes,3,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` - CreationDate *timestamp.Timestamp `protobuf:"bytes,4,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` - Sequence uint64 `protobuf:"varint,5,opt,name=sequence,proto3" json:"sequence,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + Roles []string `protobuf:"bytes,2,rep,name=roles,proto3" json:"roles,omitempty"` + ChangeDate *timestamp.Timestamp `protobuf:"bytes,3,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,4,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + Sequence uint64 `protobuf:"varint,5,opt,name=sequence,proto3" json:"sequence,omitempty"` } -func (m *ProjectMember) Reset() { *m = ProjectMember{} } -func (m *ProjectMember) String() string { return proto.CompactTextString(m) } -func (*ProjectMember) ProtoMessage() {} +func (x *ProjectMember) Reset() { + *x = ProjectMember{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[93] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProjectMember) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProjectMember) ProtoMessage() {} + +func (x *ProjectMember) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[93] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProjectMember.ProtoReflect.Descriptor instead. func (*ProjectMember) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{93} + return file_management_proto_rawDescGZIP(), []int{93} } -func (m *ProjectMember) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ProjectMember.Unmarshal(m, b) -} -func (m *ProjectMember) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ProjectMember.Marshal(b, m, deterministic) -} -func (m *ProjectMember) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProjectMember.Merge(m, src) -} -func (m *ProjectMember) XXX_Size() int { - return xxx_messageInfo_ProjectMember.Size(m) -} -func (m *ProjectMember) XXX_DiscardUnknown() { - xxx_messageInfo_ProjectMember.DiscardUnknown(m) -} - -var xxx_messageInfo_ProjectMember proto.InternalMessageInfo - -func (m *ProjectMember) GetUserId() string { - if m != nil { - return m.UserId +func (x *ProjectMember) GetUserId() string { + if x != nil { + return x.UserId } return "" } -func (m *ProjectMember) GetRoles() []string { - if m != nil { - return m.Roles +func (x *ProjectMember) GetRoles() []string { + if x != nil { + return x.Roles } return nil } -func (m *ProjectMember) GetChangeDate() *timestamp.Timestamp { - if m != nil { - return m.ChangeDate +func (x *ProjectMember) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate } return nil } -func (m *ProjectMember) GetCreationDate() *timestamp.Timestamp { - if m != nil { - return m.CreationDate +func (x *ProjectMember) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate } return nil } -func (m *ProjectMember) GetSequence() uint64 { - if m != nil { - return m.Sequence +func (x *ProjectMember) GetSequence() uint64 { + if x != nil { + return x.Sequence } return 0 } type ProjectMemberAdd struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - UserId string `protobuf:"bytes,2,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` - Roles []string `protobuf:"bytes,3,rep,name=roles,proto3" json:"roles,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + UserId string `protobuf:"bytes,2,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + Roles []string `protobuf:"bytes,3,rep,name=roles,proto3" json:"roles,omitempty"` } -func (m *ProjectMemberAdd) Reset() { *m = ProjectMemberAdd{} } -func (m *ProjectMemberAdd) String() string { return proto.CompactTextString(m) } -func (*ProjectMemberAdd) ProtoMessage() {} +func (x *ProjectMemberAdd) Reset() { + *x = ProjectMemberAdd{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[94] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProjectMemberAdd) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProjectMemberAdd) ProtoMessage() {} + +func (x *ProjectMemberAdd) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[94] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProjectMemberAdd.ProtoReflect.Descriptor instead. func (*ProjectMemberAdd) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{94} + return file_management_proto_rawDescGZIP(), []int{94} } -func (m *ProjectMemberAdd) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ProjectMemberAdd.Unmarshal(m, b) -} -func (m *ProjectMemberAdd) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ProjectMemberAdd.Marshal(b, m, deterministic) -} -func (m *ProjectMemberAdd) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProjectMemberAdd.Merge(m, src) -} -func (m *ProjectMemberAdd) XXX_Size() int { - return xxx_messageInfo_ProjectMemberAdd.Size(m) -} -func (m *ProjectMemberAdd) XXX_DiscardUnknown() { - xxx_messageInfo_ProjectMemberAdd.DiscardUnknown(m) -} - -var xxx_messageInfo_ProjectMemberAdd proto.InternalMessageInfo - -func (m *ProjectMemberAdd) GetId() string { - if m != nil { - return m.Id +func (x *ProjectMemberAdd) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *ProjectMemberAdd) GetUserId() string { - if m != nil { - return m.UserId +func (x *ProjectMemberAdd) GetUserId() string { + if x != nil { + return x.UserId } return "" } -func (m *ProjectMemberAdd) GetRoles() []string { - if m != nil { - return m.Roles +func (x *ProjectMemberAdd) GetRoles() []string { + if x != nil { + return x.Roles } return nil } type ProjectMemberChange struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - UserId string `protobuf:"bytes,2,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` - Roles []string `protobuf:"bytes,3,rep,name=roles,proto3" json:"roles,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + UserId string `protobuf:"bytes,2,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + Roles []string `protobuf:"bytes,3,rep,name=roles,proto3" json:"roles,omitempty"` } -func (m *ProjectMemberChange) Reset() { *m = ProjectMemberChange{} } -func (m *ProjectMemberChange) String() string { return proto.CompactTextString(m) } -func (*ProjectMemberChange) ProtoMessage() {} +func (x *ProjectMemberChange) Reset() { + *x = ProjectMemberChange{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[95] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProjectMemberChange) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProjectMemberChange) ProtoMessage() {} + +func (x *ProjectMemberChange) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[95] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProjectMemberChange.ProtoReflect.Descriptor instead. func (*ProjectMemberChange) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{95} + return file_management_proto_rawDescGZIP(), []int{95} } -func (m *ProjectMemberChange) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ProjectMemberChange.Unmarshal(m, b) -} -func (m *ProjectMemberChange) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ProjectMemberChange.Marshal(b, m, deterministic) -} -func (m *ProjectMemberChange) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProjectMemberChange.Merge(m, src) -} -func (m *ProjectMemberChange) XXX_Size() int { - return xxx_messageInfo_ProjectMemberChange.Size(m) -} -func (m *ProjectMemberChange) XXX_DiscardUnknown() { - xxx_messageInfo_ProjectMemberChange.DiscardUnknown(m) -} - -var xxx_messageInfo_ProjectMemberChange proto.InternalMessageInfo - -func (m *ProjectMemberChange) GetId() string { - if m != nil { - return m.Id +func (x *ProjectMemberChange) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *ProjectMemberChange) GetUserId() string { - if m != nil { - return m.UserId +func (x *ProjectMemberChange) GetUserId() string { + if x != nil { + return x.UserId } return "" } -func (m *ProjectMemberChange) GetRoles() []string { - if m != nil { - return m.Roles +func (x *ProjectMemberChange) GetRoles() []string { + if x != nil { + return x.Roles } return nil } type ProjectMemberRemove struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - UserId string `protobuf:"bytes,2,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + UserId string `protobuf:"bytes,2,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` } -func (m *ProjectMemberRemove) Reset() { *m = ProjectMemberRemove{} } -func (m *ProjectMemberRemove) String() string { return proto.CompactTextString(m) } -func (*ProjectMemberRemove) ProtoMessage() {} +func (x *ProjectMemberRemove) Reset() { + *x = ProjectMemberRemove{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[96] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProjectMemberRemove) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProjectMemberRemove) ProtoMessage() {} + +func (x *ProjectMemberRemove) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[96] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProjectMemberRemove.ProtoReflect.Descriptor instead. func (*ProjectMemberRemove) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{96} + return file_management_proto_rawDescGZIP(), []int{96} } -func (m *ProjectMemberRemove) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ProjectMemberRemove.Unmarshal(m, b) -} -func (m *ProjectMemberRemove) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ProjectMemberRemove.Marshal(b, m, deterministic) -} -func (m *ProjectMemberRemove) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProjectMemberRemove.Merge(m, src) -} -func (m *ProjectMemberRemove) XXX_Size() int { - return xxx_messageInfo_ProjectMemberRemove.Size(m) -} -func (m *ProjectMemberRemove) XXX_DiscardUnknown() { - xxx_messageInfo_ProjectMemberRemove.DiscardUnknown(m) -} - -var xxx_messageInfo_ProjectMemberRemove proto.InternalMessageInfo - -func (m *ProjectMemberRemove) GetId() string { - if m != nil { - return m.Id +func (x *ProjectMemberRemove) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *ProjectMemberRemove) GetUserId() string { - if m != nil { - return m.UserId +func (x *ProjectMemberRemove) GetUserId() string { + if x != nil { + return x.UserId } return "" } type ProjectRoleAdd struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Key string `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"` - DisplayName string `protobuf:"bytes,3,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` - Group string `protobuf:"bytes,4,opt,name=group,proto3" json:"group,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Key string `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"` + DisplayName string `protobuf:"bytes,3,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + Group string `protobuf:"bytes,4,opt,name=group,proto3" json:"group,omitempty"` } -func (m *ProjectRoleAdd) Reset() { *m = ProjectRoleAdd{} } -func (m *ProjectRoleAdd) String() string { return proto.CompactTextString(m) } -func (*ProjectRoleAdd) ProtoMessage() {} +func (x *ProjectRoleAdd) Reset() { + *x = ProjectRoleAdd{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[97] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProjectRoleAdd) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProjectRoleAdd) ProtoMessage() {} + +func (x *ProjectRoleAdd) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[97] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProjectRoleAdd.ProtoReflect.Descriptor instead. func (*ProjectRoleAdd) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{97} + return file_management_proto_rawDescGZIP(), []int{97} } -func (m *ProjectRoleAdd) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ProjectRoleAdd.Unmarshal(m, b) -} -func (m *ProjectRoleAdd) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ProjectRoleAdd.Marshal(b, m, deterministic) -} -func (m *ProjectRoleAdd) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProjectRoleAdd.Merge(m, src) -} -func (m *ProjectRoleAdd) XXX_Size() int { - return xxx_messageInfo_ProjectRoleAdd.Size(m) -} -func (m *ProjectRoleAdd) XXX_DiscardUnknown() { - xxx_messageInfo_ProjectRoleAdd.DiscardUnknown(m) -} - -var xxx_messageInfo_ProjectRoleAdd proto.InternalMessageInfo - -func (m *ProjectRoleAdd) GetId() string { - if m != nil { - return m.Id +func (x *ProjectRoleAdd) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *ProjectRoleAdd) GetKey() string { - if m != nil { - return m.Key +func (x *ProjectRoleAdd) GetKey() string { + if x != nil { + return x.Key } return "" } -func (m *ProjectRoleAdd) GetDisplayName() string { - if m != nil { - return m.DisplayName +func (x *ProjectRoleAdd) GetDisplayName() string { + if x != nil { + return x.DisplayName } return "" } -func (m *ProjectRoleAdd) GetGroup() string { - if m != nil { - return m.Group +func (x *ProjectRoleAdd) GetGroup() string { + if x != nil { + return x.Group } return "" } type ProjectRoleAddBulk struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - ProjectRoles []*ProjectRoleAdd `protobuf:"bytes,2,rep,name=project_roles,json=projectRoles,proto3" json:"project_roles,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + ProjectRoles []*ProjectRoleAdd `protobuf:"bytes,2,rep,name=project_roles,json=projectRoles,proto3" json:"project_roles,omitempty"` } -func (m *ProjectRoleAddBulk) Reset() { *m = ProjectRoleAddBulk{} } -func (m *ProjectRoleAddBulk) String() string { return proto.CompactTextString(m) } -func (*ProjectRoleAddBulk) ProtoMessage() {} +func (x *ProjectRoleAddBulk) Reset() { + *x = ProjectRoleAddBulk{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[98] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProjectRoleAddBulk) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProjectRoleAddBulk) ProtoMessage() {} + +func (x *ProjectRoleAddBulk) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[98] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProjectRoleAddBulk.ProtoReflect.Descriptor instead. func (*ProjectRoleAddBulk) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{98} + return file_management_proto_rawDescGZIP(), []int{98} } -func (m *ProjectRoleAddBulk) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ProjectRoleAddBulk.Unmarshal(m, b) -} -func (m *ProjectRoleAddBulk) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ProjectRoleAddBulk.Marshal(b, m, deterministic) -} -func (m *ProjectRoleAddBulk) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProjectRoleAddBulk.Merge(m, src) -} -func (m *ProjectRoleAddBulk) XXX_Size() int { - return xxx_messageInfo_ProjectRoleAddBulk.Size(m) -} -func (m *ProjectRoleAddBulk) XXX_DiscardUnknown() { - xxx_messageInfo_ProjectRoleAddBulk.DiscardUnknown(m) -} - -var xxx_messageInfo_ProjectRoleAddBulk proto.InternalMessageInfo - -func (m *ProjectRoleAddBulk) GetId() string { - if m != nil { - return m.Id +func (x *ProjectRoleAddBulk) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *ProjectRoleAddBulk) GetProjectRoles() []*ProjectRoleAdd { - if m != nil { - return m.ProjectRoles +func (x *ProjectRoleAddBulk) GetProjectRoles() []*ProjectRoleAdd { + if x != nil { + return x.ProjectRoles } return nil } type ProjectRoleChange struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Key string `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"` - DisplayName string `protobuf:"bytes,3,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` - Group string `protobuf:"bytes,4,opt,name=group,proto3" json:"group,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Key string `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"` + DisplayName string `protobuf:"bytes,3,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + Group string `protobuf:"bytes,4,opt,name=group,proto3" json:"group,omitempty"` } -func (m *ProjectRoleChange) Reset() { *m = ProjectRoleChange{} } -func (m *ProjectRoleChange) String() string { return proto.CompactTextString(m) } -func (*ProjectRoleChange) ProtoMessage() {} +func (x *ProjectRoleChange) Reset() { + *x = ProjectRoleChange{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[99] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProjectRoleChange) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProjectRoleChange) ProtoMessage() {} + +func (x *ProjectRoleChange) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[99] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProjectRoleChange.ProtoReflect.Descriptor instead. func (*ProjectRoleChange) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{99} + return file_management_proto_rawDescGZIP(), []int{99} } -func (m *ProjectRoleChange) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ProjectRoleChange.Unmarshal(m, b) -} -func (m *ProjectRoleChange) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ProjectRoleChange.Marshal(b, m, deterministic) -} -func (m *ProjectRoleChange) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProjectRoleChange.Merge(m, src) -} -func (m *ProjectRoleChange) XXX_Size() int { - return xxx_messageInfo_ProjectRoleChange.Size(m) -} -func (m *ProjectRoleChange) XXX_DiscardUnknown() { - xxx_messageInfo_ProjectRoleChange.DiscardUnknown(m) -} - -var xxx_messageInfo_ProjectRoleChange proto.InternalMessageInfo - -func (m *ProjectRoleChange) GetId() string { - if m != nil { - return m.Id +func (x *ProjectRoleChange) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *ProjectRoleChange) GetKey() string { - if m != nil { - return m.Key +func (x *ProjectRoleChange) GetKey() string { + if x != nil { + return x.Key } return "" } -func (m *ProjectRoleChange) GetDisplayName() string { - if m != nil { - return m.DisplayName +func (x *ProjectRoleChange) GetDisplayName() string { + if x != nil { + return x.DisplayName } return "" } -func (m *ProjectRoleChange) GetGroup() string { - if m != nil { - return m.Group +func (x *ProjectRoleChange) GetGroup() string { + if x != nil { + return x.Group } return "" } type ProjectRole struct { - ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - Key string `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"` - DisplayName string `protobuf:"bytes,3,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` - CreationDate *timestamp.Timestamp `protobuf:"bytes,4,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` - ChangeDate *timestamp.Timestamp `protobuf:"bytes,5,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` - Group string `protobuf:"bytes,6,opt,name=group,proto3" json:"group,omitempty"` - Sequence uint64 `protobuf:"varint,7,opt,name=sequence,proto3" json:"sequence,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` + Key string `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"` + DisplayName string `protobuf:"bytes,3,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,4,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + ChangeDate *timestamp.Timestamp `protobuf:"bytes,5,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` + Group string `protobuf:"bytes,6,opt,name=group,proto3" json:"group,omitempty"` + Sequence uint64 `protobuf:"varint,7,opt,name=sequence,proto3" json:"sequence,omitempty"` } -func (m *ProjectRole) Reset() { *m = ProjectRole{} } -func (m *ProjectRole) String() string { return proto.CompactTextString(m) } -func (*ProjectRole) ProtoMessage() {} +func (x *ProjectRole) Reset() { + *x = ProjectRole{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[100] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProjectRole) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProjectRole) ProtoMessage() {} + +func (x *ProjectRole) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[100] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProjectRole.ProtoReflect.Descriptor instead. func (*ProjectRole) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{100} + return file_management_proto_rawDescGZIP(), []int{100} } -func (m *ProjectRole) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ProjectRole.Unmarshal(m, b) -} -func (m *ProjectRole) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ProjectRole.Marshal(b, m, deterministic) -} -func (m *ProjectRole) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProjectRole.Merge(m, src) -} -func (m *ProjectRole) XXX_Size() int { - return xxx_messageInfo_ProjectRole.Size(m) -} -func (m *ProjectRole) XXX_DiscardUnknown() { - xxx_messageInfo_ProjectRole.DiscardUnknown(m) -} - -var xxx_messageInfo_ProjectRole proto.InternalMessageInfo - -func (m *ProjectRole) GetProjectId() string { - if m != nil { - return m.ProjectId +func (x *ProjectRole) GetProjectId() string { + if x != nil { + return x.ProjectId } return "" } -func (m *ProjectRole) GetKey() string { - if m != nil { - return m.Key +func (x *ProjectRole) GetKey() string { + if x != nil { + return x.Key } return "" } -func (m *ProjectRole) GetDisplayName() string { - if m != nil { - return m.DisplayName +func (x *ProjectRole) GetDisplayName() string { + if x != nil { + return x.DisplayName } return "" } -func (m *ProjectRole) GetCreationDate() *timestamp.Timestamp { - if m != nil { - return m.CreationDate +func (x *ProjectRole) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate } return nil } -func (m *ProjectRole) GetChangeDate() *timestamp.Timestamp { - if m != nil { - return m.ChangeDate +func (x *ProjectRole) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate } return nil } -func (m *ProjectRole) GetGroup() string { - if m != nil { - return m.Group +func (x *ProjectRole) GetGroup() string { + if x != nil { + return x.Group } return "" } -func (m *ProjectRole) GetSequence() uint64 { - if m != nil { - return m.Sequence +func (x *ProjectRole) GetSequence() uint64 { + if x != nil { + return x.Sequence } return 0 } type ProjectRoleView struct { - ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - Key string `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"` - DisplayName string `protobuf:"bytes,3,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` - CreationDate *timestamp.Timestamp `protobuf:"bytes,4,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` - Group string `protobuf:"bytes,6,opt,name=group,proto3" json:"group,omitempty"` - Sequence uint64 `protobuf:"varint,7,opt,name=sequence,proto3" json:"sequence,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` + Key string `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"` + DisplayName string `protobuf:"bytes,3,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,4,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + Group string `protobuf:"bytes,6,opt,name=group,proto3" json:"group,omitempty"` + Sequence uint64 `protobuf:"varint,7,opt,name=sequence,proto3" json:"sequence,omitempty"` } -func (m *ProjectRoleView) Reset() { *m = ProjectRoleView{} } -func (m *ProjectRoleView) String() string { return proto.CompactTextString(m) } -func (*ProjectRoleView) ProtoMessage() {} +func (x *ProjectRoleView) Reset() { + *x = ProjectRoleView{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[101] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProjectRoleView) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProjectRoleView) ProtoMessage() {} + +func (x *ProjectRoleView) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[101] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProjectRoleView.ProtoReflect.Descriptor instead. func (*ProjectRoleView) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{101} + return file_management_proto_rawDescGZIP(), []int{101} } -func (m *ProjectRoleView) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ProjectRoleView.Unmarshal(m, b) -} -func (m *ProjectRoleView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ProjectRoleView.Marshal(b, m, deterministic) -} -func (m *ProjectRoleView) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProjectRoleView.Merge(m, src) -} -func (m *ProjectRoleView) XXX_Size() int { - return xxx_messageInfo_ProjectRoleView.Size(m) -} -func (m *ProjectRoleView) XXX_DiscardUnknown() { - xxx_messageInfo_ProjectRoleView.DiscardUnknown(m) -} - -var xxx_messageInfo_ProjectRoleView proto.InternalMessageInfo - -func (m *ProjectRoleView) GetProjectId() string { - if m != nil { - return m.ProjectId +func (x *ProjectRoleView) GetProjectId() string { + if x != nil { + return x.ProjectId } return "" } -func (m *ProjectRoleView) GetKey() string { - if m != nil { - return m.Key +func (x *ProjectRoleView) GetKey() string { + if x != nil { + return x.Key } return "" } -func (m *ProjectRoleView) GetDisplayName() string { - if m != nil { - return m.DisplayName +func (x *ProjectRoleView) GetDisplayName() string { + if x != nil { + return x.DisplayName } return "" } -func (m *ProjectRoleView) GetCreationDate() *timestamp.Timestamp { - if m != nil { - return m.CreationDate +func (x *ProjectRoleView) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate } return nil } -func (m *ProjectRoleView) GetGroup() string { - if m != nil { - return m.Group +func (x *ProjectRoleView) GetGroup() string { + if x != nil { + return x.Group } return "" } -func (m *ProjectRoleView) GetSequence() uint64 { - if m != nil { - return m.Sequence +func (x *ProjectRoleView) GetSequence() uint64 { + if x != nil { + return x.Sequence } return 0 } type ProjectRoleRemove struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Key string `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Key string `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"` } -func (m *ProjectRoleRemove) Reset() { *m = ProjectRoleRemove{} } -func (m *ProjectRoleRemove) String() string { return proto.CompactTextString(m) } -func (*ProjectRoleRemove) ProtoMessage() {} +func (x *ProjectRoleRemove) Reset() { + *x = ProjectRoleRemove{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[102] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProjectRoleRemove) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProjectRoleRemove) ProtoMessage() {} + +func (x *ProjectRoleRemove) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[102] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProjectRoleRemove.ProtoReflect.Descriptor instead. func (*ProjectRoleRemove) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{102} + return file_management_proto_rawDescGZIP(), []int{102} } -func (m *ProjectRoleRemove) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ProjectRoleRemove.Unmarshal(m, b) -} -func (m *ProjectRoleRemove) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ProjectRoleRemove.Marshal(b, m, deterministic) -} -func (m *ProjectRoleRemove) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProjectRoleRemove.Merge(m, src) -} -func (m *ProjectRoleRemove) XXX_Size() int { - return xxx_messageInfo_ProjectRoleRemove.Size(m) -} -func (m *ProjectRoleRemove) XXX_DiscardUnknown() { - xxx_messageInfo_ProjectRoleRemove.DiscardUnknown(m) -} - -var xxx_messageInfo_ProjectRoleRemove proto.InternalMessageInfo - -func (m *ProjectRoleRemove) GetId() string { - if m != nil { - return m.Id +func (x *ProjectRoleRemove) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *ProjectRoleRemove) GetKey() string { - if m != nil { - return m.Key +func (x *ProjectRoleRemove) GetKey() string { + if x != nil { + return x.Key } return "" } type ProjectRoleSearchResponse struct { - Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` - Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` - TotalResult uint64 `protobuf:"varint,3,opt,name=total_result,json=totalResult,proto3" json:"total_result,omitempty"` - Result []*ProjectRoleView `protobuf:"bytes,4,rep,name=result,proto3" json:"result,omitempty"` - ProcessedSequence uint64 `protobuf:"varint,5,opt,name=processed_sequence,json=processedSequence,proto3" json:"processed_sequence,omitempty"` - ViewTimestamp *timestamp.Timestamp `protobuf:"bytes,6,opt,name=view_timestamp,json=viewTimestamp,proto3" json:"view_timestamp,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` + Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` + TotalResult uint64 `protobuf:"varint,3,opt,name=total_result,json=totalResult,proto3" json:"total_result,omitempty"` + Result []*ProjectRoleView `protobuf:"bytes,4,rep,name=result,proto3" json:"result,omitempty"` + ProcessedSequence uint64 `protobuf:"varint,5,opt,name=processed_sequence,json=processedSequence,proto3" json:"processed_sequence,omitempty"` + ViewTimestamp *timestamp.Timestamp `protobuf:"bytes,6,opt,name=view_timestamp,json=viewTimestamp,proto3" json:"view_timestamp,omitempty"` } -func (m *ProjectRoleSearchResponse) Reset() { *m = ProjectRoleSearchResponse{} } -func (m *ProjectRoleSearchResponse) String() string { return proto.CompactTextString(m) } -func (*ProjectRoleSearchResponse) ProtoMessage() {} +func (x *ProjectRoleSearchResponse) Reset() { + *x = ProjectRoleSearchResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[103] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProjectRoleSearchResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProjectRoleSearchResponse) ProtoMessage() {} + +func (x *ProjectRoleSearchResponse) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[103] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProjectRoleSearchResponse.ProtoReflect.Descriptor instead. func (*ProjectRoleSearchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{103} + return file_management_proto_rawDescGZIP(), []int{103} } -func (m *ProjectRoleSearchResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ProjectRoleSearchResponse.Unmarshal(m, b) -} -func (m *ProjectRoleSearchResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ProjectRoleSearchResponse.Marshal(b, m, deterministic) -} -func (m *ProjectRoleSearchResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProjectRoleSearchResponse.Merge(m, src) -} -func (m *ProjectRoleSearchResponse) XXX_Size() int { - return xxx_messageInfo_ProjectRoleSearchResponse.Size(m) -} -func (m *ProjectRoleSearchResponse) XXX_DiscardUnknown() { - xxx_messageInfo_ProjectRoleSearchResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_ProjectRoleSearchResponse proto.InternalMessageInfo - -func (m *ProjectRoleSearchResponse) GetOffset() uint64 { - if m != nil { - return m.Offset +func (x *ProjectRoleSearchResponse) GetOffset() uint64 { + if x != nil { + return x.Offset } return 0 } -func (m *ProjectRoleSearchResponse) GetLimit() uint64 { - if m != nil { - return m.Limit +func (x *ProjectRoleSearchResponse) GetLimit() uint64 { + if x != nil { + return x.Limit } return 0 } -func (m *ProjectRoleSearchResponse) GetTotalResult() uint64 { - if m != nil { - return m.TotalResult +func (x *ProjectRoleSearchResponse) GetTotalResult() uint64 { + if x != nil { + return x.TotalResult } return 0 } -func (m *ProjectRoleSearchResponse) GetResult() []*ProjectRoleView { - if m != nil { - return m.Result +func (x *ProjectRoleSearchResponse) GetResult() []*ProjectRoleView { + if x != nil { + return x.Result } return nil } -func (m *ProjectRoleSearchResponse) GetProcessedSequence() uint64 { - if m != nil { - return m.ProcessedSequence +func (x *ProjectRoleSearchResponse) GetProcessedSequence() uint64 { + if x != nil { + return x.ProcessedSequence } return 0 } -func (m *ProjectRoleSearchResponse) GetViewTimestamp() *timestamp.Timestamp { - if m != nil { - return m.ViewTimestamp +func (x *ProjectRoleSearchResponse) GetViewTimestamp() *timestamp.Timestamp { + if x != nil { + return x.ViewTimestamp } return nil } type ProjectRoleSearchRequest struct { - ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - Offset uint64 `protobuf:"varint,2,opt,name=offset,proto3" json:"offset,omitempty"` - Limit uint64 `protobuf:"varint,3,opt,name=limit,proto3" json:"limit,omitempty"` - Queries []*ProjectRoleSearchQuery `protobuf:"bytes,4,rep,name=queries,proto3" json:"queries,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` + Offset uint64 `protobuf:"varint,2,opt,name=offset,proto3" json:"offset,omitempty"` + Limit uint64 `protobuf:"varint,3,opt,name=limit,proto3" json:"limit,omitempty"` + Queries []*ProjectRoleSearchQuery `protobuf:"bytes,4,rep,name=queries,proto3" json:"queries,omitempty"` } -func (m *ProjectRoleSearchRequest) Reset() { *m = ProjectRoleSearchRequest{} } -func (m *ProjectRoleSearchRequest) String() string { return proto.CompactTextString(m) } -func (*ProjectRoleSearchRequest) ProtoMessage() {} +func (x *ProjectRoleSearchRequest) Reset() { + *x = ProjectRoleSearchRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[104] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProjectRoleSearchRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProjectRoleSearchRequest) ProtoMessage() {} + +func (x *ProjectRoleSearchRequest) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[104] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProjectRoleSearchRequest.ProtoReflect.Descriptor instead. func (*ProjectRoleSearchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{104} + return file_management_proto_rawDescGZIP(), []int{104} } -func (m *ProjectRoleSearchRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ProjectRoleSearchRequest.Unmarshal(m, b) -} -func (m *ProjectRoleSearchRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ProjectRoleSearchRequest.Marshal(b, m, deterministic) -} -func (m *ProjectRoleSearchRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProjectRoleSearchRequest.Merge(m, src) -} -func (m *ProjectRoleSearchRequest) XXX_Size() int { - return xxx_messageInfo_ProjectRoleSearchRequest.Size(m) -} -func (m *ProjectRoleSearchRequest) XXX_DiscardUnknown() { - xxx_messageInfo_ProjectRoleSearchRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_ProjectRoleSearchRequest proto.InternalMessageInfo - -func (m *ProjectRoleSearchRequest) GetProjectId() string { - if m != nil { - return m.ProjectId +func (x *ProjectRoleSearchRequest) GetProjectId() string { + if x != nil { + return x.ProjectId } return "" } -func (m *ProjectRoleSearchRequest) GetOffset() uint64 { - if m != nil { - return m.Offset +func (x *ProjectRoleSearchRequest) GetOffset() uint64 { + if x != nil { + return x.Offset } return 0 } -func (m *ProjectRoleSearchRequest) GetLimit() uint64 { - if m != nil { - return m.Limit +func (x *ProjectRoleSearchRequest) GetLimit() uint64 { + if x != nil { + return x.Limit } return 0 } -func (m *ProjectRoleSearchRequest) GetQueries() []*ProjectRoleSearchQuery { - if m != nil { - return m.Queries +func (x *ProjectRoleSearchRequest) GetQueries() []*ProjectRoleSearchQuery { + if x != nil { + return x.Queries } return nil } type ProjectRoleSearchQuery struct { - Key ProjectRoleSearchKey `protobuf:"varint,1,opt,name=key,proto3,enum=caos.zitadel.management.api.v1.ProjectRoleSearchKey" json:"key,omitempty"` - Method SearchMethod `protobuf:"varint,2,opt,name=method,proto3,enum=caos.zitadel.management.api.v1.SearchMethod" json:"method,omitempty"` - Value string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Key ProjectRoleSearchKey `protobuf:"varint,1,opt,name=key,proto3,enum=caos.zitadel.management.api.v1.ProjectRoleSearchKey" json:"key,omitempty"` + Method SearchMethod `protobuf:"varint,2,opt,name=method,proto3,enum=caos.zitadel.management.api.v1.SearchMethod" json:"method,omitempty"` + Value string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` } -func (m *ProjectRoleSearchQuery) Reset() { *m = ProjectRoleSearchQuery{} } -func (m *ProjectRoleSearchQuery) String() string { return proto.CompactTextString(m) } -func (*ProjectRoleSearchQuery) ProtoMessage() {} +func (x *ProjectRoleSearchQuery) Reset() { + *x = ProjectRoleSearchQuery{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[105] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProjectRoleSearchQuery) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProjectRoleSearchQuery) ProtoMessage() {} + +func (x *ProjectRoleSearchQuery) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[105] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProjectRoleSearchQuery.ProtoReflect.Descriptor instead. func (*ProjectRoleSearchQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{105} + return file_management_proto_rawDescGZIP(), []int{105} } -func (m *ProjectRoleSearchQuery) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ProjectRoleSearchQuery.Unmarshal(m, b) -} -func (m *ProjectRoleSearchQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ProjectRoleSearchQuery.Marshal(b, m, deterministic) -} -func (m *ProjectRoleSearchQuery) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProjectRoleSearchQuery.Merge(m, src) -} -func (m *ProjectRoleSearchQuery) XXX_Size() int { - return xxx_messageInfo_ProjectRoleSearchQuery.Size(m) -} -func (m *ProjectRoleSearchQuery) XXX_DiscardUnknown() { - xxx_messageInfo_ProjectRoleSearchQuery.DiscardUnknown(m) -} - -var xxx_messageInfo_ProjectRoleSearchQuery proto.InternalMessageInfo - -func (m *ProjectRoleSearchQuery) GetKey() ProjectRoleSearchKey { - if m != nil { - return m.Key +func (x *ProjectRoleSearchQuery) GetKey() ProjectRoleSearchKey { + if x != nil { + return x.Key } return ProjectRoleSearchKey_PROJECTROLESEARCHKEY_UNSPECIFIED } -func (m *ProjectRoleSearchQuery) GetMethod() SearchMethod { - if m != nil { - return m.Method +func (x *ProjectRoleSearchQuery) GetMethod() SearchMethod { + if x != nil { + return x.Method } return SearchMethod_SEARCHMETHOD_EQUALS } -func (m *ProjectRoleSearchQuery) GetValue() string { - if m != nil { - return m.Value +func (x *ProjectRoleSearchQuery) GetValue() string { + if x != nil { + return x.Value } return "" } type ProjectMemberView struct { - UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` - UserName string `protobuf:"bytes,2,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` - Email string `protobuf:"bytes,3,opt,name=email,proto3" json:"email,omitempty"` - FirstName string `protobuf:"bytes,4,opt,name=first_name,json=firstName,proto3" json:"first_name,omitempty"` - LastName string `protobuf:"bytes,5,opt,name=last_name,json=lastName,proto3" json:"last_name,omitempty"` - Roles []string `protobuf:"bytes,6,rep,name=roles,proto3" json:"roles,omitempty"` - ChangeDate *timestamp.Timestamp `protobuf:"bytes,7,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` - CreationDate *timestamp.Timestamp `protobuf:"bytes,8,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` - Sequence uint64 `protobuf:"varint,10,opt,name=sequence,proto3" json:"sequence,omitempty"` - DisplayName string `protobuf:"bytes,11,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + UserName string `protobuf:"bytes,2,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` + Email string `protobuf:"bytes,3,opt,name=email,proto3" json:"email,omitempty"` + FirstName string `protobuf:"bytes,4,opt,name=first_name,json=firstName,proto3" json:"first_name,omitempty"` + LastName string `protobuf:"bytes,5,opt,name=last_name,json=lastName,proto3" json:"last_name,omitempty"` + Roles []string `protobuf:"bytes,6,rep,name=roles,proto3" json:"roles,omitempty"` + ChangeDate *timestamp.Timestamp `protobuf:"bytes,7,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,8,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + Sequence uint64 `protobuf:"varint,10,opt,name=sequence,proto3" json:"sequence,omitempty"` + DisplayName string `protobuf:"bytes,11,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` } -func (m *ProjectMemberView) Reset() { *m = ProjectMemberView{} } -func (m *ProjectMemberView) String() string { return proto.CompactTextString(m) } -func (*ProjectMemberView) ProtoMessage() {} +func (x *ProjectMemberView) Reset() { + *x = ProjectMemberView{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[106] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProjectMemberView) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProjectMemberView) ProtoMessage() {} + +func (x *ProjectMemberView) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[106] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProjectMemberView.ProtoReflect.Descriptor instead. func (*ProjectMemberView) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{106} + return file_management_proto_rawDescGZIP(), []int{106} } -func (m *ProjectMemberView) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ProjectMemberView.Unmarshal(m, b) -} -func (m *ProjectMemberView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ProjectMemberView.Marshal(b, m, deterministic) -} -func (m *ProjectMemberView) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProjectMemberView.Merge(m, src) -} -func (m *ProjectMemberView) XXX_Size() int { - return xxx_messageInfo_ProjectMemberView.Size(m) -} -func (m *ProjectMemberView) XXX_DiscardUnknown() { - xxx_messageInfo_ProjectMemberView.DiscardUnknown(m) -} - -var xxx_messageInfo_ProjectMemberView proto.InternalMessageInfo - -func (m *ProjectMemberView) GetUserId() string { - if m != nil { - return m.UserId +func (x *ProjectMemberView) GetUserId() string { + if x != nil { + return x.UserId } return "" } -func (m *ProjectMemberView) GetUserName() string { - if m != nil { - return m.UserName +func (x *ProjectMemberView) GetUserName() string { + if x != nil { + return x.UserName } return "" } -func (m *ProjectMemberView) GetEmail() string { - if m != nil { - return m.Email +func (x *ProjectMemberView) GetEmail() string { + if x != nil { + return x.Email } return "" } -func (m *ProjectMemberView) GetFirstName() string { - if m != nil { - return m.FirstName +func (x *ProjectMemberView) GetFirstName() string { + if x != nil { + return x.FirstName } return "" } -func (m *ProjectMemberView) GetLastName() string { - if m != nil { - return m.LastName +func (x *ProjectMemberView) GetLastName() string { + if x != nil { + return x.LastName } return "" } -func (m *ProjectMemberView) GetRoles() []string { - if m != nil { - return m.Roles +func (x *ProjectMemberView) GetRoles() []string { + if x != nil { + return x.Roles } return nil } -func (m *ProjectMemberView) GetChangeDate() *timestamp.Timestamp { - if m != nil { - return m.ChangeDate +func (x *ProjectMemberView) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate } return nil } -func (m *ProjectMemberView) GetCreationDate() *timestamp.Timestamp { - if m != nil { - return m.CreationDate +func (x *ProjectMemberView) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate } return nil } -func (m *ProjectMemberView) GetSequence() uint64 { - if m != nil { - return m.Sequence +func (x *ProjectMemberView) GetSequence() uint64 { + if x != nil { + return x.Sequence } return 0 } -func (m *ProjectMemberView) GetDisplayName() string { - if m != nil { - return m.DisplayName +func (x *ProjectMemberView) GetDisplayName() string { + if x != nil { + return x.DisplayName } return "" } type ProjectMemberSearchResponse struct { - Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` - Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` - TotalResult uint64 `protobuf:"varint,3,opt,name=total_result,json=totalResult,proto3" json:"total_result,omitempty"` - Result []*ProjectMemberView `protobuf:"bytes,4,rep,name=result,proto3" json:"result,omitempty"` - ProcessedSequence uint64 `protobuf:"varint,5,opt,name=processed_sequence,json=processedSequence,proto3" json:"processed_sequence,omitempty"` - ViewTimestamp *timestamp.Timestamp `protobuf:"bytes,6,opt,name=view_timestamp,json=viewTimestamp,proto3" json:"view_timestamp,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` + Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` + TotalResult uint64 `protobuf:"varint,3,opt,name=total_result,json=totalResult,proto3" json:"total_result,omitempty"` + Result []*ProjectMemberView `protobuf:"bytes,4,rep,name=result,proto3" json:"result,omitempty"` + ProcessedSequence uint64 `protobuf:"varint,5,opt,name=processed_sequence,json=processedSequence,proto3" json:"processed_sequence,omitempty"` + ViewTimestamp *timestamp.Timestamp `protobuf:"bytes,6,opt,name=view_timestamp,json=viewTimestamp,proto3" json:"view_timestamp,omitempty"` } -func (m *ProjectMemberSearchResponse) Reset() { *m = ProjectMemberSearchResponse{} } -func (m *ProjectMemberSearchResponse) String() string { return proto.CompactTextString(m) } -func (*ProjectMemberSearchResponse) ProtoMessage() {} +func (x *ProjectMemberSearchResponse) Reset() { + *x = ProjectMemberSearchResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[107] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProjectMemberSearchResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProjectMemberSearchResponse) ProtoMessage() {} + +func (x *ProjectMemberSearchResponse) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[107] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProjectMemberSearchResponse.ProtoReflect.Descriptor instead. func (*ProjectMemberSearchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{107} + return file_management_proto_rawDescGZIP(), []int{107} } -func (m *ProjectMemberSearchResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ProjectMemberSearchResponse.Unmarshal(m, b) -} -func (m *ProjectMemberSearchResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ProjectMemberSearchResponse.Marshal(b, m, deterministic) -} -func (m *ProjectMemberSearchResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProjectMemberSearchResponse.Merge(m, src) -} -func (m *ProjectMemberSearchResponse) XXX_Size() int { - return xxx_messageInfo_ProjectMemberSearchResponse.Size(m) -} -func (m *ProjectMemberSearchResponse) XXX_DiscardUnknown() { - xxx_messageInfo_ProjectMemberSearchResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_ProjectMemberSearchResponse proto.InternalMessageInfo - -func (m *ProjectMemberSearchResponse) GetOffset() uint64 { - if m != nil { - return m.Offset +func (x *ProjectMemberSearchResponse) GetOffset() uint64 { + if x != nil { + return x.Offset } return 0 } -func (m *ProjectMemberSearchResponse) GetLimit() uint64 { - if m != nil { - return m.Limit +func (x *ProjectMemberSearchResponse) GetLimit() uint64 { + if x != nil { + return x.Limit } return 0 } -func (m *ProjectMemberSearchResponse) GetTotalResult() uint64 { - if m != nil { - return m.TotalResult +func (x *ProjectMemberSearchResponse) GetTotalResult() uint64 { + if x != nil { + return x.TotalResult } return 0 } -func (m *ProjectMemberSearchResponse) GetResult() []*ProjectMemberView { - if m != nil { - return m.Result +func (x *ProjectMemberSearchResponse) GetResult() []*ProjectMemberView { + if x != nil { + return x.Result } return nil } -func (m *ProjectMemberSearchResponse) GetProcessedSequence() uint64 { - if m != nil { - return m.ProcessedSequence +func (x *ProjectMemberSearchResponse) GetProcessedSequence() uint64 { + if x != nil { + return x.ProcessedSequence } return 0 } -func (m *ProjectMemberSearchResponse) GetViewTimestamp() *timestamp.Timestamp { - if m != nil { - return m.ViewTimestamp +func (x *ProjectMemberSearchResponse) GetViewTimestamp() *timestamp.Timestamp { + if x != nil { + return x.ViewTimestamp } return nil } type ProjectMemberSearchRequest struct { - ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - Offset uint64 `protobuf:"varint,2,opt,name=offset,proto3" json:"offset,omitempty"` - Limit uint64 `protobuf:"varint,3,opt,name=limit,proto3" json:"limit,omitempty"` - Queries []*ProjectMemberSearchQuery `protobuf:"bytes,4,rep,name=queries,proto3" json:"queries,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` + Offset uint64 `protobuf:"varint,2,opt,name=offset,proto3" json:"offset,omitempty"` + Limit uint64 `protobuf:"varint,3,opt,name=limit,proto3" json:"limit,omitempty"` + Queries []*ProjectMemberSearchQuery `protobuf:"bytes,4,rep,name=queries,proto3" json:"queries,omitempty"` } -func (m *ProjectMemberSearchRequest) Reset() { *m = ProjectMemberSearchRequest{} } -func (m *ProjectMemberSearchRequest) String() string { return proto.CompactTextString(m) } -func (*ProjectMemberSearchRequest) ProtoMessage() {} +func (x *ProjectMemberSearchRequest) Reset() { + *x = ProjectMemberSearchRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[108] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProjectMemberSearchRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProjectMemberSearchRequest) ProtoMessage() {} + +func (x *ProjectMemberSearchRequest) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[108] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProjectMemberSearchRequest.ProtoReflect.Descriptor instead. func (*ProjectMemberSearchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{108} + return file_management_proto_rawDescGZIP(), []int{108} } -func (m *ProjectMemberSearchRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ProjectMemberSearchRequest.Unmarshal(m, b) -} -func (m *ProjectMemberSearchRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ProjectMemberSearchRequest.Marshal(b, m, deterministic) -} -func (m *ProjectMemberSearchRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProjectMemberSearchRequest.Merge(m, src) -} -func (m *ProjectMemberSearchRequest) XXX_Size() int { - return xxx_messageInfo_ProjectMemberSearchRequest.Size(m) -} -func (m *ProjectMemberSearchRequest) XXX_DiscardUnknown() { - xxx_messageInfo_ProjectMemberSearchRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_ProjectMemberSearchRequest proto.InternalMessageInfo - -func (m *ProjectMemberSearchRequest) GetProjectId() string { - if m != nil { - return m.ProjectId +func (x *ProjectMemberSearchRequest) GetProjectId() string { + if x != nil { + return x.ProjectId } return "" } -func (m *ProjectMemberSearchRequest) GetOffset() uint64 { - if m != nil { - return m.Offset +func (x *ProjectMemberSearchRequest) GetOffset() uint64 { + if x != nil { + return x.Offset } return 0 } -func (m *ProjectMemberSearchRequest) GetLimit() uint64 { - if m != nil { - return m.Limit +func (x *ProjectMemberSearchRequest) GetLimit() uint64 { + if x != nil { + return x.Limit } return 0 } -func (m *ProjectMemberSearchRequest) GetQueries() []*ProjectMemberSearchQuery { - if m != nil { - return m.Queries +func (x *ProjectMemberSearchRequest) GetQueries() []*ProjectMemberSearchQuery { + if x != nil { + return x.Queries } return nil } type ProjectMemberSearchQuery struct { - Key ProjectMemberSearchKey `protobuf:"varint,1,opt,name=key,proto3,enum=caos.zitadel.management.api.v1.ProjectMemberSearchKey" json:"key,omitempty"` - Method SearchMethod `protobuf:"varint,2,opt,name=method,proto3,enum=caos.zitadel.management.api.v1.SearchMethod" json:"method,omitempty"` - Value string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Key ProjectMemberSearchKey `protobuf:"varint,1,opt,name=key,proto3,enum=caos.zitadel.management.api.v1.ProjectMemberSearchKey" json:"key,omitempty"` + Method SearchMethod `protobuf:"varint,2,opt,name=method,proto3,enum=caos.zitadel.management.api.v1.SearchMethod" json:"method,omitempty"` + Value string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` } -func (m *ProjectMemberSearchQuery) Reset() { *m = ProjectMemberSearchQuery{} } -func (m *ProjectMemberSearchQuery) String() string { return proto.CompactTextString(m) } -func (*ProjectMemberSearchQuery) ProtoMessage() {} +func (x *ProjectMemberSearchQuery) Reset() { + *x = ProjectMemberSearchQuery{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[109] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProjectMemberSearchQuery) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProjectMemberSearchQuery) ProtoMessage() {} + +func (x *ProjectMemberSearchQuery) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[109] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProjectMemberSearchQuery.ProtoReflect.Descriptor instead. func (*ProjectMemberSearchQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{109} + return file_management_proto_rawDescGZIP(), []int{109} } -func (m *ProjectMemberSearchQuery) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ProjectMemberSearchQuery.Unmarshal(m, b) -} -func (m *ProjectMemberSearchQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ProjectMemberSearchQuery.Marshal(b, m, deterministic) -} -func (m *ProjectMemberSearchQuery) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProjectMemberSearchQuery.Merge(m, src) -} -func (m *ProjectMemberSearchQuery) XXX_Size() int { - return xxx_messageInfo_ProjectMemberSearchQuery.Size(m) -} -func (m *ProjectMemberSearchQuery) XXX_DiscardUnknown() { - xxx_messageInfo_ProjectMemberSearchQuery.DiscardUnknown(m) -} - -var xxx_messageInfo_ProjectMemberSearchQuery proto.InternalMessageInfo - -func (m *ProjectMemberSearchQuery) GetKey() ProjectMemberSearchKey { - if m != nil { - return m.Key +func (x *ProjectMemberSearchQuery) GetKey() ProjectMemberSearchKey { + if x != nil { + return x.Key } return ProjectMemberSearchKey_PROJECTMEMBERSEARCHKEY_UNSPECIFIED } -func (m *ProjectMemberSearchQuery) GetMethod() SearchMethod { - if m != nil { - return m.Method +func (x *ProjectMemberSearchQuery) GetMethod() SearchMethod { + if x != nil { + return x.Method } return SearchMethod_SEARCHMETHOD_EQUALS } -func (m *ProjectMemberSearchQuery) GetValue() string { - if m != nil { - return m.Value +func (x *ProjectMemberSearchQuery) GetValue() string { + if x != nil { + return x.Value } return "" } type Application struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` State AppState `protobuf:"varint,2,opt,name=state,proto3,enum=caos.zitadel.management.api.v1.AppState" json:"state,omitempty"` CreationDate *timestamp.Timestamp `protobuf:"bytes,3,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` ChangeDate *timestamp.Timestamp `protobuf:"bytes,4,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"` - // Types that are valid to be assigned to AppConfig: + // Types that are assignable to AppConfig: // *Application_OidcConfig - AppConfig isApplication_AppConfig `protobuf_oneof:"app_config"` - Sequence uint64 `protobuf:"varint,9,opt,name=sequence,proto3" json:"sequence,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + AppConfig isApplication_AppConfig `protobuf_oneof:"app_config"` + Sequence uint64 `protobuf:"varint,9,opt,name=sequence,proto3" json:"sequence,omitempty"` } -func (m *Application) Reset() { *m = Application{} } -func (m *Application) String() string { return proto.CompactTextString(m) } -func (*Application) ProtoMessage() {} +func (x *Application) Reset() { + *x = Application{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[110] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Application) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Application) ProtoMessage() {} + +func (x *Application) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[110] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Application.ProtoReflect.Descriptor instead. func (*Application) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{110} + return file_management_proto_rawDescGZIP(), []int{110} } -func (m *Application) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Application.Unmarshal(m, b) -} -func (m *Application) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Application.Marshal(b, m, deterministic) -} -func (m *Application) XXX_Merge(src proto.Message) { - xxx_messageInfo_Application.Merge(m, src) -} -func (m *Application) XXX_Size() int { - return xxx_messageInfo_Application.Size(m) -} -func (m *Application) XXX_DiscardUnknown() { - xxx_messageInfo_Application.DiscardUnknown(m) -} - -var xxx_messageInfo_Application proto.InternalMessageInfo - -func (m *Application) GetId() string { - if m != nil { - return m.Id +func (x *Application) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *Application) GetState() AppState { - if m != nil { - return m.State +func (x *Application) GetState() AppState { + if x != nil { + return x.State } return AppState_APPSTATE_UNSPECIFIED } -func (m *Application) GetCreationDate() *timestamp.Timestamp { - if m != nil { - return m.CreationDate +func (x *Application) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate } return nil } -func (m *Application) GetChangeDate() *timestamp.Timestamp { - if m != nil { - return m.ChangeDate +func (x *Application) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate } return nil } -func (m *Application) GetName() string { - if m != nil { - return m.Name +func (x *Application) GetName() string { + if x != nil { + return x.Name } return "" } +func (m *Application) GetAppConfig() isApplication_AppConfig { + if m != nil { + return m.AppConfig + } + return nil +} + +func (x *Application) GetOidcConfig() *OIDCConfig { + if x, ok := x.GetAppConfig().(*Application_OidcConfig); ok { + return x.OidcConfig + } + return nil +} + +func (x *Application) GetSequence() uint64 { + if x != nil { + return x.Sequence + } + return 0 +} + type isApplication_AppConfig interface { isApplication_AppConfig() } @@ -8612,90 +10307,74 @@ type Application_OidcConfig struct { func (*Application_OidcConfig) isApplication_AppConfig() {} -func (m *Application) GetAppConfig() isApplication_AppConfig { - if m != nil { - return m.AppConfig - } - return nil -} - -func (m *Application) GetOidcConfig() *OIDCConfig { - if x, ok := m.GetAppConfig().(*Application_OidcConfig); ok { - return x.OidcConfig - } - return nil -} - -func (m *Application) GetSequence() uint64 { - if m != nil { - return m.Sequence - } - return 0 -} - -// XXX_OneofWrappers is for the internal use of the proto package. -func (*Application) XXX_OneofWrappers() []interface{} { - return []interface{}{ - (*Application_OidcConfig)(nil), - } -} - type ApplicationUpdate struct { - ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` - Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` + Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"` } -func (m *ApplicationUpdate) Reset() { *m = ApplicationUpdate{} } -func (m *ApplicationUpdate) String() string { return proto.CompactTextString(m) } -func (*ApplicationUpdate) ProtoMessage() {} +func (x *ApplicationUpdate) Reset() { + *x = ApplicationUpdate{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[111] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ApplicationUpdate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ApplicationUpdate) ProtoMessage() {} + +func (x *ApplicationUpdate) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[111] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ApplicationUpdate.ProtoReflect.Descriptor instead. func (*ApplicationUpdate) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{111} + return file_management_proto_rawDescGZIP(), []int{111} } -func (m *ApplicationUpdate) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ApplicationUpdate.Unmarshal(m, b) -} -func (m *ApplicationUpdate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ApplicationUpdate.Marshal(b, m, deterministic) -} -func (m *ApplicationUpdate) XXX_Merge(src proto.Message) { - xxx_messageInfo_ApplicationUpdate.Merge(m, src) -} -func (m *ApplicationUpdate) XXX_Size() int { - return xxx_messageInfo_ApplicationUpdate.Size(m) -} -func (m *ApplicationUpdate) XXX_DiscardUnknown() { - xxx_messageInfo_ApplicationUpdate.DiscardUnknown(m) -} - -var xxx_messageInfo_ApplicationUpdate proto.InternalMessageInfo - -func (m *ApplicationUpdate) GetProjectId() string { - if m != nil { - return m.ProjectId +func (x *ApplicationUpdate) GetProjectId() string { + if x != nil { + return x.ProjectId } return "" } -func (m *ApplicationUpdate) GetId() string { - if m != nil { - return m.Id +func (x *ApplicationUpdate) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *ApplicationUpdate) GetName() string { - if m != nil { - return m.Name +func (x *ApplicationUpdate) GetName() string { + if x != nil { + return x.Name } return "" } type OIDCConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + RedirectUris []string `protobuf:"bytes,1,rep,name=redirect_uris,json=redirectUris,proto3" json:"redirect_uris,omitempty"` ResponseTypes []OIDCResponseType `protobuf:"varint,2,rep,packed,name=response_types,json=responseTypes,proto3,enum=caos.zitadel.management.api.v1.OIDCResponseType" json:"response_types,omitempty"` GrantTypes []OIDCGrantType `protobuf:"varint,3,rep,packed,name=grant_types,json=grantTypes,proto3,enum=caos.zitadel.management.api.v1.OIDCGrantType" json:"grant_types,omitempty"` @@ -8708,121 +10387,129 @@ type OIDCConfig struct { NoneCompliant bool `protobuf:"varint,10,opt,name=none_compliant,json=noneCompliant,proto3" json:"none_compliant,omitempty"` ComplianceProblems []*message.LocalizedMessage `protobuf:"bytes,11,rep,name=compliance_problems,json=complianceProblems,proto3" json:"compliance_problems,omitempty"` DevMode bool `protobuf:"varint,12,opt,name=dev_mode,json=devMode,proto3" json:"dev_mode,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` } -func (m *OIDCConfig) Reset() { *m = OIDCConfig{} } -func (m *OIDCConfig) String() string { return proto.CompactTextString(m) } -func (*OIDCConfig) ProtoMessage() {} +func (x *OIDCConfig) Reset() { + *x = OIDCConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[112] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OIDCConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OIDCConfig) ProtoMessage() {} + +func (x *OIDCConfig) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[112] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OIDCConfig.ProtoReflect.Descriptor instead. func (*OIDCConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{112} + return file_management_proto_rawDescGZIP(), []int{112} } -func (m *OIDCConfig) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_OIDCConfig.Unmarshal(m, b) -} -func (m *OIDCConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_OIDCConfig.Marshal(b, m, deterministic) -} -func (m *OIDCConfig) XXX_Merge(src proto.Message) { - xxx_messageInfo_OIDCConfig.Merge(m, src) -} -func (m *OIDCConfig) XXX_Size() int { - return xxx_messageInfo_OIDCConfig.Size(m) -} -func (m *OIDCConfig) XXX_DiscardUnknown() { - xxx_messageInfo_OIDCConfig.DiscardUnknown(m) -} - -var xxx_messageInfo_OIDCConfig proto.InternalMessageInfo - -func (m *OIDCConfig) GetRedirectUris() []string { - if m != nil { - return m.RedirectUris +func (x *OIDCConfig) GetRedirectUris() []string { + if x != nil { + return x.RedirectUris } return nil } -func (m *OIDCConfig) GetResponseTypes() []OIDCResponseType { - if m != nil { - return m.ResponseTypes +func (x *OIDCConfig) GetResponseTypes() []OIDCResponseType { + if x != nil { + return x.ResponseTypes } return nil } -func (m *OIDCConfig) GetGrantTypes() []OIDCGrantType { - if m != nil { - return m.GrantTypes +func (x *OIDCConfig) GetGrantTypes() []OIDCGrantType { + if x != nil { + return x.GrantTypes } return nil } -func (m *OIDCConfig) GetApplicationType() OIDCApplicationType { - if m != nil { - return m.ApplicationType +func (x *OIDCConfig) GetApplicationType() OIDCApplicationType { + if x != nil { + return x.ApplicationType } return OIDCApplicationType_OIDCAPPLICATIONTYPE_WEB } -func (m *OIDCConfig) GetClientId() string { - if m != nil { - return m.ClientId +func (x *OIDCConfig) GetClientId() string { + if x != nil { + return x.ClientId } return "" } -func (m *OIDCConfig) GetClientSecret() string { - if m != nil { - return m.ClientSecret +func (x *OIDCConfig) GetClientSecret() string { + if x != nil { + return x.ClientSecret } return "" } -func (m *OIDCConfig) GetAuthMethodType() OIDCAuthMethodType { - if m != nil { - return m.AuthMethodType +func (x *OIDCConfig) GetAuthMethodType() OIDCAuthMethodType { + if x != nil { + return x.AuthMethodType } return OIDCAuthMethodType_OIDCAUTHMETHODTYPE_BASIC } -func (m *OIDCConfig) GetPostLogoutRedirectUris() []string { - if m != nil { - return m.PostLogoutRedirectUris +func (x *OIDCConfig) GetPostLogoutRedirectUris() []string { + if x != nil { + return x.PostLogoutRedirectUris } return nil } -func (m *OIDCConfig) GetVersion() OIDCVersion { - if m != nil { - return m.Version +func (x *OIDCConfig) GetVersion() OIDCVersion { + if x != nil { + return x.Version } return OIDCVersion_OIDCV1_0 } -func (m *OIDCConfig) GetNoneCompliant() bool { - if m != nil { - return m.NoneCompliant +func (x *OIDCConfig) GetNoneCompliant() bool { + if x != nil { + return x.NoneCompliant } return false } -func (m *OIDCConfig) GetComplianceProblems() []*message.LocalizedMessage { - if m != nil { - return m.ComplianceProblems +func (x *OIDCConfig) GetComplianceProblems() []*message.LocalizedMessage { + if x != nil { + return x.ComplianceProblems } return nil } -func (m *OIDCConfig) GetDevMode() bool { - if m != nil { - return m.DevMode +func (x *OIDCConfig) GetDevMode() bool { + if x != nil { + return x.DevMode } return false } type OIDCApplicationCreate struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` RedirectUris []string `protobuf:"bytes,3,rep,name=redirect_uris,json=redirectUris,proto3" json:"redirect_uris,omitempty"` @@ -8833,107 +10520,115 @@ type OIDCApplicationCreate struct { PostLogoutRedirectUris []string `protobuf:"bytes,8,rep,name=post_logout_redirect_uris,json=postLogoutRedirectUris,proto3" json:"post_logout_redirect_uris,omitempty"` Version OIDCVersion `protobuf:"varint,9,opt,name=version,proto3,enum=caos.zitadel.management.api.v1.OIDCVersion" json:"version,omitempty"` DevMode bool `protobuf:"varint,10,opt,name=dev_mode,json=devMode,proto3" json:"dev_mode,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` } -func (m *OIDCApplicationCreate) Reset() { *m = OIDCApplicationCreate{} } -func (m *OIDCApplicationCreate) String() string { return proto.CompactTextString(m) } -func (*OIDCApplicationCreate) ProtoMessage() {} +func (x *OIDCApplicationCreate) Reset() { + *x = OIDCApplicationCreate{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[113] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OIDCApplicationCreate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OIDCApplicationCreate) ProtoMessage() {} + +func (x *OIDCApplicationCreate) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[113] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OIDCApplicationCreate.ProtoReflect.Descriptor instead. func (*OIDCApplicationCreate) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{113} + return file_management_proto_rawDescGZIP(), []int{113} } -func (m *OIDCApplicationCreate) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_OIDCApplicationCreate.Unmarshal(m, b) -} -func (m *OIDCApplicationCreate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_OIDCApplicationCreate.Marshal(b, m, deterministic) -} -func (m *OIDCApplicationCreate) XXX_Merge(src proto.Message) { - xxx_messageInfo_OIDCApplicationCreate.Merge(m, src) -} -func (m *OIDCApplicationCreate) XXX_Size() int { - return xxx_messageInfo_OIDCApplicationCreate.Size(m) -} -func (m *OIDCApplicationCreate) XXX_DiscardUnknown() { - xxx_messageInfo_OIDCApplicationCreate.DiscardUnknown(m) -} - -var xxx_messageInfo_OIDCApplicationCreate proto.InternalMessageInfo - -func (m *OIDCApplicationCreate) GetProjectId() string { - if m != nil { - return m.ProjectId +func (x *OIDCApplicationCreate) GetProjectId() string { + if x != nil { + return x.ProjectId } return "" } -func (m *OIDCApplicationCreate) GetName() string { - if m != nil { - return m.Name +func (x *OIDCApplicationCreate) GetName() string { + if x != nil { + return x.Name } return "" } -func (m *OIDCApplicationCreate) GetRedirectUris() []string { - if m != nil { - return m.RedirectUris +func (x *OIDCApplicationCreate) GetRedirectUris() []string { + if x != nil { + return x.RedirectUris } return nil } -func (m *OIDCApplicationCreate) GetResponseTypes() []OIDCResponseType { - if m != nil { - return m.ResponseTypes +func (x *OIDCApplicationCreate) GetResponseTypes() []OIDCResponseType { + if x != nil { + return x.ResponseTypes } return nil } -func (m *OIDCApplicationCreate) GetGrantTypes() []OIDCGrantType { - if m != nil { - return m.GrantTypes +func (x *OIDCApplicationCreate) GetGrantTypes() []OIDCGrantType { + if x != nil { + return x.GrantTypes } return nil } -func (m *OIDCApplicationCreate) GetApplicationType() OIDCApplicationType { - if m != nil { - return m.ApplicationType +func (x *OIDCApplicationCreate) GetApplicationType() OIDCApplicationType { + if x != nil { + return x.ApplicationType } return OIDCApplicationType_OIDCAPPLICATIONTYPE_WEB } -func (m *OIDCApplicationCreate) GetAuthMethodType() OIDCAuthMethodType { - if m != nil { - return m.AuthMethodType +func (x *OIDCApplicationCreate) GetAuthMethodType() OIDCAuthMethodType { + if x != nil { + return x.AuthMethodType } return OIDCAuthMethodType_OIDCAUTHMETHODTYPE_BASIC } -func (m *OIDCApplicationCreate) GetPostLogoutRedirectUris() []string { - if m != nil { - return m.PostLogoutRedirectUris +func (x *OIDCApplicationCreate) GetPostLogoutRedirectUris() []string { + if x != nil { + return x.PostLogoutRedirectUris } return nil } -func (m *OIDCApplicationCreate) GetVersion() OIDCVersion { - if m != nil { - return m.Version +func (x *OIDCApplicationCreate) GetVersion() OIDCVersion { + if x != nil { + return x.Version } return OIDCVersion_OIDCV1_0 } -func (m *OIDCApplicationCreate) GetDevMode() bool { - if m != nil { - return m.DevMode +func (x *OIDCApplicationCreate) GetDevMode() bool { + if x != nil { + return x.DevMode } return false } type OIDCConfigUpdate struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` ApplicationId string `protobuf:"bytes,2,opt,name=application_id,json=applicationId,proto3" json:"application_id,omitempty"` RedirectUris []string `protobuf:"bytes,3,rep,name=redirect_uris,json=redirectUris,proto3" json:"redirect_uris,omitempty"` @@ -8943,213 +10638,254 @@ type OIDCConfigUpdate struct { AuthMethodType OIDCAuthMethodType `protobuf:"varint,7,opt,name=auth_method_type,json=authMethodType,proto3,enum=caos.zitadel.management.api.v1.OIDCAuthMethodType" json:"auth_method_type,omitempty"` PostLogoutRedirectUris []string `protobuf:"bytes,8,rep,name=post_logout_redirect_uris,json=postLogoutRedirectUris,proto3" json:"post_logout_redirect_uris,omitempty"` DevMode bool `protobuf:"varint,9,opt,name=dev_mode,json=devMode,proto3" json:"dev_mode,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` } -func (m *OIDCConfigUpdate) Reset() { *m = OIDCConfigUpdate{} } -func (m *OIDCConfigUpdate) String() string { return proto.CompactTextString(m) } -func (*OIDCConfigUpdate) ProtoMessage() {} +func (x *OIDCConfigUpdate) Reset() { + *x = OIDCConfigUpdate{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[114] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OIDCConfigUpdate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OIDCConfigUpdate) ProtoMessage() {} + +func (x *OIDCConfigUpdate) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[114] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OIDCConfigUpdate.ProtoReflect.Descriptor instead. func (*OIDCConfigUpdate) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{114} + return file_management_proto_rawDescGZIP(), []int{114} } -func (m *OIDCConfigUpdate) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_OIDCConfigUpdate.Unmarshal(m, b) -} -func (m *OIDCConfigUpdate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_OIDCConfigUpdate.Marshal(b, m, deterministic) -} -func (m *OIDCConfigUpdate) XXX_Merge(src proto.Message) { - xxx_messageInfo_OIDCConfigUpdate.Merge(m, src) -} -func (m *OIDCConfigUpdate) XXX_Size() int { - return xxx_messageInfo_OIDCConfigUpdate.Size(m) -} -func (m *OIDCConfigUpdate) XXX_DiscardUnknown() { - xxx_messageInfo_OIDCConfigUpdate.DiscardUnknown(m) -} - -var xxx_messageInfo_OIDCConfigUpdate proto.InternalMessageInfo - -func (m *OIDCConfigUpdate) GetProjectId() string { - if m != nil { - return m.ProjectId +func (x *OIDCConfigUpdate) GetProjectId() string { + if x != nil { + return x.ProjectId } return "" } -func (m *OIDCConfigUpdate) GetApplicationId() string { - if m != nil { - return m.ApplicationId +func (x *OIDCConfigUpdate) GetApplicationId() string { + if x != nil { + return x.ApplicationId } return "" } -func (m *OIDCConfigUpdate) GetRedirectUris() []string { - if m != nil { - return m.RedirectUris +func (x *OIDCConfigUpdate) GetRedirectUris() []string { + if x != nil { + return x.RedirectUris } return nil } -func (m *OIDCConfigUpdate) GetResponseTypes() []OIDCResponseType { - if m != nil { - return m.ResponseTypes +func (x *OIDCConfigUpdate) GetResponseTypes() []OIDCResponseType { + if x != nil { + return x.ResponseTypes } return nil } -func (m *OIDCConfigUpdate) GetGrantTypes() []OIDCGrantType { - if m != nil { - return m.GrantTypes +func (x *OIDCConfigUpdate) GetGrantTypes() []OIDCGrantType { + if x != nil { + return x.GrantTypes } return nil } -func (m *OIDCConfigUpdate) GetApplicationType() OIDCApplicationType { - if m != nil { - return m.ApplicationType +func (x *OIDCConfigUpdate) GetApplicationType() OIDCApplicationType { + if x != nil { + return x.ApplicationType } return OIDCApplicationType_OIDCAPPLICATIONTYPE_WEB } -func (m *OIDCConfigUpdate) GetAuthMethodType() OIDCAuthMethodType { - if m != nil { - return m.AuthMethodType +func (x *OIDCConfigUpdate) GetAuthMethodType() OIDCAuthMethodType { + if x != nil { + return x.AuthMethodType } return OIDCAuthMethodType_OIDCAUTHMETHODTYPE_BASIC } -func (m *OIDCConfigUpdate) GetPostLogoutRedirectUris() []string { - if m != nil { - return m.PostLogoutRedirectUris +func (x *OIDCConfigUpdate) GetPostLogoutRedirectUris() []string { + if x != nil { + return x.PostLogoutRedirectUris } return nil } -func (m *OIDCConfigUpdate) GetDevMode() bool { - if m != nil { - return m.DevMode +func (x *OIDCConfigUpdate) GetDevMode() bool { + if x != nil { + return x.DevMode } return false } type ClientSecret struct { - ClientSecret string `protobuf:"bytes,1,opt,name=client_secret,json=clientSecret,proto3" json:"client_secret,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ClientSecret string `protobuf:"bytes,1,opt,name=client_secret,json=clientSecret,proto3" json:"client_secret,omitempty"` } -func (m *ClientSecret) Reset() { *m = ClientSecret{} } -func (m *ClientSecret) String() string { return proto.CompactTextString(m) } -func (*ClientSecret) ProtoMessage() {} +func (x *ClientSecret) Reset() { + *x = ClientSecret{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[115] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ClientSecret) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ClientSecret) ProtoMessage() {} + +func (x *ClientSecret) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[115] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ClientSecret.ProtoReflect.Descriptor instead. func (*ClientSecret) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{115} + return file_management_proto_rawDescGZIP(), []int{115} } -func (m *ClientSecret) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ClientSecret.Unmarshal(m, b) -} -func (m *ClientSecret) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ClientSecret.Marshal(b, m, deterministic) -} -func (m *ClientSecret) XXX_Merge(src proto.Message) { - xxx_messageInfo_ClientSecret.Merge(m, src) -} -func (m *ClientSecret) XXX_Size() int { - return xxx_messageInfo_ClientSecret.Size(m) -} -func (m *ClientSecret) XXX_DiscardUnknown() { - xxx_messageInfo_ClientSecret.DiscardUnknown(m) -} - -var xxx_messageInfo_ClientSecret proto.InternalMessageInfo - -func (m *ClientSecret) GetClientSecret() string { - if m != nil { - return m.ClientSecret +func (x *ClientSecret) GetClientSecret() string { + if x != nil { + return x.ClientSecret } return "" } type ApplicationView struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` State AppState `protobuf:"varint,2,opt,name=state,proto3,enum=caos.zitadel.management.api.v1.AppState" json:"state,omitempty"` CreationDate *timestamp.Timestamp `protobuf:"bytes,3,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` ChangeDate *timestamp.Timestamp `protobuf:"bytes,4,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"` - // Types that are valid to be assigned to AppConfig: + // Types that are assignable to AppConfig: // *ApplicationView_OidcConfig - AppConfig isApplicationView_AppConfig `protobuf_oneof:"app_config"` - Sequence uint64 `protobuf:"varint,9,opt,name=sequence,proto3" json:"sequence,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + AppConfig isApplicationView_AppConfig `protobuf_oneof:"app_config"` + Sequence uint64 `protobuf:"varint,9,opt,name=sequence,proto3" json:"sequence,omitempty"` } -func (m *ApplicationView) Reset() { *m = ApplicationView{} } -func (m *ApplicationView) String() string { return proto.CompactTextString(m) } -func (*ApplicationView) ProtoMessage() {} +func (x *ApplicationView) Reset() { + *x = ApplicationView{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[116] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ApplicationView) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ApplicationView) ProtoMessage() {} + +func (x *ApplicationView) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[116] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ApplicationView.ProtoReflect.Descriptor instead. func (*ApplicationView) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{116} + return file_management_proto_rawDescGZIP(), []int{116} } -func (m *ApplicationView) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ApplicationView.Unmarshal(m, b) -} -func (m *ApplicationView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ApplicationView.Marshal(b, m, deterministic) -} -func (m *ApplicationView) XXX_Merge(src proto.Message) { - xxx_messageInfo_ApplicationView.Merge(m, src) -} -func (m *ApplicationView) XXX_Size() int { - return xxx_messageInfo_ApplicationView.Size(m) -} -func (m *ApplicationView) XXX_DiscardUnknown() { - xxx_messageInfo_ApplicationView.DiscardUnknown(m) -} - -var xxx_messageInfo_ApplicationView proto.InternalMessageInfo - -func (m *ApplicationView) GetId() string { - if m != nil { - return m.Id +func (x *ApplicationView) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *ApplicationView) GetState() AppState { - if m != nil { - return m.State +func (x *ApplicationView) GetState() AppState { + if x != nil { + return x.State } return AppState_APPSTATE_UNSPECIFIED } -func (m *ApplicationView) GetCreationDate() *timestamp.Timestamp { - if m != nil { - return m.CreationDate +func (x *ApplicationView) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate } return nil } -func (m *ApplicationView) GetChangeDate() *timestamp.Timestamp { - if m != nil { - return m.ChangeDate +func (x *ApplicationView) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate } return nil } -func (m *ApplicationView) GetName() string { - if m != nil { - return m.Name +func (x *ApplicationView) GetName() string { + if x != nil { + return x.Name } return "" } +func (m *ApplicationView) GetAppConfig() isApplicationView_AppConfig { + if m != nil { + return m.AppConfig + } + return nil +} + +func (x *ApplicationView) GetOidcConfig() *OIDCConfig { + if x, ok := x.GetAppConfig().(*ApplicationView_OidcConfig); ok { + return x.OidcConfig + } + return nil +} + +func (x *ApplicationView) GetSequence() uint64 { + if x != nil { + return x.Sequence + } + return 0 +} + type isApplicationView_AppConfig interface { isApplicationView_AppConfig() } @@ -9160,2586 +10896,2867 @@ type ApplicationView_OidcConfig struct { func (*ApplicationView_OidcConfig) isApplicationView_AppConfig() {} -func (m *ApplicationView) GetAppConfig() isApplicationView_AppConfig { - if m != nil { - return m.AppConfig - } - return nil -} - -func (m *ApplicationView) GetOidcConfig() *OIDCConfig { - if x, ok := m.GetAppConfig().(*ApplicationView_OidcConfig); ok { - return x.OidcConfig - } - return nil -} - -func (m *ApplicationView) GetSequence() uint64 { - if m != nil { - return m.Sequence - } - return 0 -} - -// XXX_OneofWrappers is for the internal use of the proto package. -func (*ApplicationView) XXX_OneofWrappers() []interface{} { - return []interface{}{ - (*ApplicationView_OidcConfig)(nil), - } -} - type ApplicationSearchResponse struct { - Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` - Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` - TotalResult uint64 `protobuf:"varint,3,opt,name=total_result,json=totalResult,proto3" json:"total_result,omitempty"` - Result []*ApplicationView `protobuf:"bytes,4,rep,name=result,proto3" json:"result,omitempty"` - ProcessedSequence uint64 `protobuf:"varint,5,opt,name=processed_sequence,json=processedSequence,proto3" json:"processed_sequence,omitempty"` - ViewTimestamp *timestamp.Timestamp `protobuf:"bytes,6,opt,name=view_timestamp,json=viewTimestamp,proto3" json:"view_timestamp,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` + Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` + TotalResult uint64 `protobuf:"varint,3,opt,name=total_result,json=totalResult,proto3" json:"total_result,omitempty"` + Result []*ApplicationView `protobuf:"bytes,4,rep,name=result,proto3" json:"result,omitempty"` + ProcessedSequence uint64 `protobuf:"varint,5,opt,name=processed_sequence,json=processedSequence,proto3" json:"processed_sequence,omitempty"` + ViewTimestamp *timestamp.Timestamp `protobuf:"bytes,6,opt,name=view_timestamp,json=viewTimestamp,proto3" json:"view_timestamp,omitempty"` } -func (m *ApplicationSearchResponse) Reset() { *m = ApplicationSearchResponse{} } -func (m *ApplicationSearchResponse) String() string { return proto.CompactTextString(m) } -func (*ApplicationSearchResponse) ProtoMessage() {} +func (x *ApplicationSearchResponse) Reset() { + *x = ApplicationSearchResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[117] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ApplicationSearchResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ApplicationSearchResponse) ProtoMessage() {} + +func (x *ApplicationSearchResponse) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[117] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ApplicationSearchResponse.ProtoReflect.Descriptor instead. func (*ApplicationSearchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{117} + return file_management_proto_rawDescGZIP(), []int{117} } -func (m *ApplicationSearchResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ApplicationSearchResponse.Unmarshal(m, b) -} -func (m *ApplicationSearchResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ApplicationSearchResponse.Marshal(b, m, deterministic) -} -func (m *ApplicationSearchResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_ApplicationSearchResponse.Merge(m, src) -} -func (m *ApplicationSearchResponse) XXX_Size() int { - return xxx_messageInfo_ApplicationSearchResponse.Size(m) -} -func (m *ApplicationSearchResponse) XXX_DiscardUnknown() { - xxx_messageInfo_ApplicationSearchResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_ApplicationSearchResponse proto.InternalMessageInfo - -func (m *ApplicationSearchResponse) GetOffset() uint64 { - if m != nil { - return m.Offset +func (x *ApplicationSearchResponse) GetOffset() uint64 { + if x != nil { + return x.Offset } return 0 } -func (m *ApplicationSearchResponse) GetLimit() uint64 { - if m != nil { - return m.Limit +func (x *ApplicationSearchResponse) GetLimit() uint64 { + if x != nil { + return x.Limit } return 0 } -func (m *ApplicationSearchResponse) GetTotalResult() uint64 { - if m != nil { - return m.TotalResult +func (x *ApplicationSearchResponse) GetTotalResult() uint64 { + if x != nil { + return x.TotalResult } return 0 } -func (m *ApplicationSearchResponse) GetResult() []*ApplicationView { - if m != nil { - return m.Result +func (x *ApplicationSearchResponse) GetResult() []*ApplicationView { + if x != nil { + return x.Result } return nil } -func (m *ApplicationSearchResponse) GetProcessedSequence() uint64 { - if m != nil { - return m.ProcessedSequence +func (x *ApplicationSearchResponse) GetProcessedSequence() uint64 { + if x != nil { + return x.ProcessedSequence } return 0 } -func (m *ApplicationSearchResponse) GetViewTimestamp() *timestamp.Timestamp { - if m != nil { - return m.ViewTimestamp +func (x *ApplicationSearchResponse) GetViewTimestamp() *timestamp.Timestamp { + if x != nil { + return x.ViewTimestamp } return nil } type ApplicationSearchRequest struct { - ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - Offset uint64 `protobuf:"varint,2,opt,name=offset,proto3" json:"offset,omitempty"` - Limit uint64 `protobuf:"varint,3,opt,name=limit,proto3" json:"limit,omitempty"` - Queries []*ApplicationSearchQuery `protobuf:"bytes,4,rep,name=queries,proto3" json:"queries,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` + Offset uint64 `protobuf:"varint,2,opt,name=offset,proto3" json:"offset,omitempty"` + Limit uint64 `protobuf:"varint,3,opt,name=limit,proto3" json:"limit,omitempty"` + Queries []*ApplicationSearchQuery `protobuf:"bytes,4,rep,name=queries,proto3" json:"queries,omitempty"` } -func (m *ApplicationSearchRequest) Reset() { *m = ApplicationSearchRequest{} } -func (m *ApplicationSearchRequest) String() string { return proto.CompactTextString(m) } -func (*ApplicationSearchRequest) ProtoMessage() {} +func (x *ApplicationSearchRequest) Reset() { + *x = ApplicationSearchRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[118] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ApplicationSearchRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ApplicationSearchRequest) ProtoMessage() {} + +func (x *ApplicationSearchRequest) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[118] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ApplicationSearchRequest.ProtoReflect.Descriptor instead. func (*ApplicationSearchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{118} + return file_management_proto_rawDescGZIP(), []int{118} } -func (m *ApplicationSearchRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ApplicationSearchRequest.Unmarshal(m, b) -} -func (m *ApplicationSearchRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ApplicationSearchRequest.Marshal(b, m, deterministic) -} -func (m *ApplicationSearchRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_ApplicationSearchRequest.Merge(m, src) -} -func (m *ApplicationSearchRequest) XXX_Size() int { - return xxx_messageInfo_ApplicationSearchRequest.Size(m) -} -func (m *ApplicationSearchRequest) XXX_DiscardUnknown() { - xxx_messageInfo_ApplicationSearchRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_ApplicationSearchRequest proto.InternalMessageInfo - -func (m *ApplicationSearchRequest) GetProjectId() string { - if m != nil { - return m.ProjectId +func (x *ApplicationSearchRequest) GetProjectId() string { + if x != nil { + return x.ProjectId } return "" } -func (m *ApplicationSearchRequest) GetOffset() uint64 { - if m != nil { - return m.Offset +func (x *ApplicationSearchRequest) GetOffset() uint64 { + if x != nil { + return x.Offset } return 0 } -func (m *ApplicationSearchRequest) GetLimit() uint64 { - if m != nil { - return m.Limit +func (x *ApplicationSearchRequest) GetLimit() uint64 { + if x != nil { + return x.Limit } return 0 } -func (m *ApplicationSearchRequest) GetQueries() []*ApplicationSearchQuery { - if m != nil { - return m.Queries +func (x *ApplicationSearchRequest) GetQueries() []*ApplicationSearchQuery { + if x != nil { + return x.Queries } return nil } type ApplicationSearchQuery struct { - Key ApplicationSearchKey `protobuf:"varint,1,opt,name=key,proto3,enum=caos.zitadel.management.api.v1.ApplicationSearchKey" json:"key,omitempty"` - Method SearchMethod `protobuf:"varint,2,opt,name=method,proto3,enum=caos.zitadel.management.api.v1.SearchMethod" json:"method,omitempty"` - Value string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Key ApplicationSearchKey `protobuf:"varint,1,opt,name=key,proto3,enum=caos.zitadel.management.api.v1.ApplicationSearchKey" json:"key,omitempty"` + Method SearchMethod `protobuf:"varint,2,opt,name=method,proto3,enum=caos.zitadel.management.api.v1.SearchMethod" json:"method,omitempty"` + Value string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` } -func (m *ApplicationSearchQuery) Reset() { *m = ApplicationSearchQuery{} } -func (m *ApplicationSearchQuery) String() string { return proto.CompactTextString(m) } -func (*ApplicationSearchQuery) ProtoMessage() {} +func (x *ApplicationSearchQuery) Reset() { + *x = ApplicationSearchQuery{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[119] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ApplicationSearchQuery) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ApplicationSearchQuery) ProtoMessage() {} + +func (x *ApplicationSearchQuery) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[119] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ApplicationSearchQuery.ProtoReflect.Descriptor instead. func (*ApplicationSearchQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{119} + return file_management_proto_rawDescGZIP(), []int{119} } -func (m *ApplicationSearchQuery) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ApplicationSearchQuery.Unmarshal(m, b) -} -func (m *ApplicationSearchQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ApplicationSearchQuery.Marshal(b, m, deterministic) -} -func (m *ApplicationSearchQuery) XXX_Merge(src proto.Message) { - xxx_messageInfo_ApplicationSearchQuery.Merge(m, src) -} -func (m *ApplicationSearchQuery) XXX_Size() int { - return xxx_messageInfo_ApplicationSearchQuery.Size(m) -} -func (m *ApplicationSearchQuery) XXX_DiscardUnknown() { - xxx_messageInfo_ApplicationSearchQuery.DiscardUnknown(m) -} - -var xxx_messageInfo_ApplicationSearchQuery proto.InternalMessageInfo - -func (m *ApplicationSearchQuery) GetKey() ApplicationSearchKey { - if m != nil { - return m.Key +func (x *ApplicationSearchQuery) GetKey() ApplicationSearchKey { + if x != nil { + return x.Key } return ApplicationSearchKey_APPLICATIONSERACHKEY_UNSPECIFIED } -func (m *ApplicationSearchQuery) GetMethod() SearchMethod { - if m != nil { - return m.Method +func (x *ApplicationSearchQuery) GetMethod() SearchMethod { + if x != nil { + return x.Method } return SearchMethod_SEARCHMETHOD_EQUALS } -func (m *ApplicationSearchQuery) GetValue() string { - if m != nil { - return m.Value +func (x *ApplicationSearchQuery) GetValue() string { + if x != nil { + return x.Value } return "" } type ProjectGrant struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - ProjectId string `protobuf:"bytes,2,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - GrantedOrgId string `protobuf:"bytes,3,opt,name=granted_org_id,json=grantedOrgId,proto3" json:"granted_org_id,omitempty"` - RoleKeys []string `protobuf:"bytes,4,rep,name=role_keys,json=roleKeys,proto3" json:"role_keys,omitempty"` - State ProjectGrantState `protobuf:"varint,5,opt,name=state,proto3,enum=caos.zitadel.management.api.v1.ProjectGrantState" json:"state,omitempty"` - CreationDate *timestamp.Timestamp `protobuf:"bytes,6,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` - ChangeDate *timestamp.Timestamp `protobuf:"bytes,7,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` - Sequence uint64 `protobuf:"varint,9,opt,name=sequence,proto3" json:"sequence,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + ProjectId string `protobuf:"bytes,2,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` + GrantedOrgId string `protobuf:"bytes,3,opt,name=granted_org_id,json=grantedOrgId,proto3" json:"granted_org_id,omitempty"` + RoleKeys []string `protobuf:"bytes,4,rep,name=role_keys,json=roleKeys,proto3" json:"role_keys,omitempty"` + State ProjectGrantState `protobuf:"varint,5,opt,name=state,proto3,enum=caos.zitadel.management.api.v1.ProjectGrantState" json:"state,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,6,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + ChangeDate *timestamp.Timestamp `protobuf:"bytes,7,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` + Sequence uint64 `protobuf:"varint,9,opt,name=sequence,proto3" json:"sequence,omitempty"` } -func (m *ProjectGrant) Reset() { *m = ProjectGrant{} } -func (m *ProjectGrant) String() string { return proto.CompactTextString(m) } -func (*ProjectGrant) ProtoMessage() {} +func (x *ProjectGrant) Reset() { + *x = ProjectGrant{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[120] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProjectGrant) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProjectGrant) ProtoMessage() {} + +func (x *ProjectGrant) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[120] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProjectGrant.ProtoReflect.Descriptor instead. func (*ProjectGrant) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{120} + return file_management_proto_rawDescGZIP(), []int{120} } -func (m *ProjectGrant) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ProjectGrant.Unmarshal(m, b) -} -func (m *ProjectGrant) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ProjectGrant.Marshal(b, m, deterministic) -} -func (m *ProjectGrant) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProjectGrant.Merge(m, src) -} -func (m *ProjectGrant) XXX_Size() int { - return xxx_messageInfo_ProjectGrant.Size(m) -} -func (m *ProjectGrant) XXX_DiscardUnknown() { - xxx_messageInfo_ProjectGrant.DiscardUnknown(m) -} - -var xxx_messageInfo_ProjectGrant proto.InternalMessageInfo - -func (m *ProjectGrant) GetId() string { - if m != nil { - return m.Id +func (x *ProjectGrant) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *ProjectGrant) GetProjectId() string { - if m != nil { - return m.ProjectId +func (x *ProjectGrant) GetProjectId() string { + if x != nil { + return x.ProjectId } return "" } -func (m *ProjectGrant) GetGrantedOrgId() string { - if m != nil { - return m.GrantedOrgId +func (x *ProjectGrant) GetGrantedOrgId() string { + if x != nil { + return x.GrantedOrgId } return "" } -func (m *ProjectGrant) GetRoleKeys() []string { - if m != nil { - return m.RoleKeys +func (x *ProjectGrant) GetRoleKeys() []string { + if x != nil { + return x.RoleKeys } return nil } -func (m *ProjectGrant) GetState() ProjectGrantState { - if m != nil { - return m.State +func (x *ProjectGrant) GetState() ProjectGrantState { + if x != nil { + return x.State } return ProjectGrantState_PROJECTGRANTSTATE_UNSPECIFIED } -func (m *ProjectGrant) GetCreationDate() *timestamp.Timestamp { - if m != nil { - return m.CreationDate +func (x *ProjectGrant) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate } return nil } -func (m *ProjectGrant) GetChangeDate() *timestamp.Timestamp { - if m != nil { - return m.ChangeDate +func (x *ProjectGrant) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate } return nil } -func (m *ProjectGrant) GetSequence() uint64 { - if m != nil { - return m.Sequence +func (x *ProjectGrant) GetSequence() uint64 { + if x != nil { + return x.Sequence } return 0 } type ProjectGrantCreate struct { - ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - GrantedOrgId string `protobuf:"bytes,2,opt,name=granted_org_id,json=grantedOrgId,proto3" json:"granted_org_id,omitempty"` - RoleKeys []string `protobuf:"bytes,3,rep,name=role_keys,json=roleKeys,proto3" json:"role_keys,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` + GrantedOrgId string `protobuf:"bytes,2,opt,name=granted_org_id,json=grantedOrgId,proto3" json:"granted_org_id,omitempty"` + RoleKeys []string `protobuf:"bytes,3,rep,name=role_keys,json=roleKeys,proto3" json:"role_keys,omitempty"` } -func (m *ProjectGrantCreate) Reset() { *m = ProjectGrantCreate{} } -func (m *ProjectGrantCreate) String() string { return proto.CompactTextString(m) } -func (*ProjectGrantCreate) ProtoMessage() {} +func (x *ProjectGrantCreate) Reset() { + *x = ProjectGrantCreate{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[121] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProjectGrantCreate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProjectGrantCreate) ProtoMessage() {} + +func (x *ProjectGrantCreate) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[121] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProjectGrantCreate.ProtoReflect.Descriptor instead. func (*ProjectGrantCreate) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{121} + return file_management_proto_rawDescGZIP(), []int{121} } -func (m *ProjectGrantCreate) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ProjectGrantCreate.Unmarshal(m, b) -} -func (m *ProjectGrantCreate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ProjectGrantCreate.Marshal(b, m, deterministic) -} -func (m *ProjectGrantCreate) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProjectGrantCreate.Merge(m, src) -} -func (m *ProjectGrantCreate) XXX_Size() int { - return xxx_messageInfo_ProjectGrantCreate.Size(m) -} -func (m *ProjectGrantCreate) XXX_DiscardUnknown() { - xxx_messageInfo_ProjectGrantCreate.DiscardUnknown(m) -} - -var xxx_messageInfo_ProjectGrantCreate proto.InternalMessageInfo - -func (m *ProjectGrantCreate) GetProjectId() string { - if m != nil { - return m.ProjectId +func (x *ProjectGrantCreate) GetProjectId() string { + if x != nil { + return x.ProjectId } return "" } -func (m *ProjectGrantCreate) GetGrantedOrgId() string { - if m != nil { - return m.GrantedOrgId +func (x *ProjectGrantCreate) GetGrantedOrgId() string { + if x != nil { + return x.GrantedOrgId } return "" } -func (m *ProjectGrantCreate) GetRoleKeys() []string { - if m != nil { - return m.RoleKeys +func (x *ProjectGrantCreate) GetRoleKeys() []string { + if x != nil { + return x.RoleKeys } return nil } type ProjectGrantUpdate struct { - ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` - RoleKeys []string `protobuf:"bytes,3,rep,name=role_keys,json=roleKeys,proto3" json:"role_keys,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` + RoleKeys []string `protobuf:"bytes,3,rep,name=role_keys,json=roleKeys,proto3" json:"role_keys,omitempty"` } -func (m *ProjectGrantUpdate) Reset() { *m = ProjectGrantUpdate{} } -func (m *ProjectGrantUpdate) String() string { return proto.CompactTextString(m) } -func (*ProjectGrantUpdate) ProtoMessage() {} +func (x *ProjectGrantUpdate) Reset() { + *x = ProjectGrantUpdate{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[122] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProjectGrantUpdate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProjectGrantUpdate) ProtoMessage() {} + +func (x *ProjectGrantUpdate) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[122] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProjectGrantUpdate.ProtoReflect.Descriptor instead. func (*ProjectGrantUpdate) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{122} + return file_management_proto_rawDescGZIP(), []int{122} } -func (m *ProjectGrantUpdate) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ProjectGrantUpdate.Unmarshal(m, b) -} -func (m *ProjectGrantUpdate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ProjectGrantUpdate.Marshal(b, m, deterministic) -} -func (m *ProjectGrantUpdate) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProjectGrantUpdate.Merge(m, src) -} -func (m *ProjectGrantUpdate) XXX_Size() int { - return xxx_messageInfo_ProjectGrantUpdate.Size(m) -} -func (m *ProjectGrantUpdate) XXX_DiscardUnknown() { - xxx_messageInfo_ProjectGrantUpdate.DiscardUnknown(m) -} - -var xxx_messageInfo_ProjectGrantUpdate proto.InternalMessageInfo - -func (m *ProjectGrantUpdate) GetProjectId() string { - if m != nil { - return m.ProjectId +func (x *ProjectGrantUpdate) GetProjectId() string { + if x != nil { + return x.ProjectId } return "" } -func (m *ProjectGrantUpdate) GetId() string { - if m != nil { - return m.Id +func (x *ProjectGrantUpdate) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *ProjectGrantUpdate) GetRoleKeys() []string { - if m != nil { - return m.RoleKeys +func (x *ProjectGrantUpdate) GetRoleKeys() []string { + if x != nil { + return x.RoleKeys } return nil } type ProjectGrantID struct { - ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` } -func (m *ProjectGrantID) Reset() { *m = ProjectGrantID{} } -func (m *ProjectGrantID) String() string { return proto.CompactTextString(m) } -func (*ProjectGrantID) ProtoMessage() {} +func (x *ProjectGrantID) Reset() { + *x = ProjectGrantID{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[123] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProjectGrantID) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProjectGrantID) ProtoMessage() {} + +func (x *ProjectGrantID) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[123] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProjectGrantID.ProtoReflect.Descriptor instead. func (*ProjectGrantID) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{123} + return file_management_proto_rawDescGZIP(), []int{123} } -func (m *ProjectGrantID) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ProjectGrantID.Unmarshal(m, b) -} -func (m *ProjectGrantID) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ProjectGrantID.Marshal(b, m, deterministic) -} -func (m *ProjectGrantID) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProjectGrantID.Merge(m, src) -} -func (m *ProjectGrantID) XXX_Size() int { - return xxx_messageInfo_ProjectGrantID.Size(m) -} -func (m *ProjectGrantID) XXX_DiscardUnknown() { - xxx_messageInfo_ProjectGrantID.DiscardUnknown(m) -} - -var xxx_messageInfo_ProjectGrantID proto.InternalMessageInfo - -func (m *ProjectGrantID) GetProjectId() string { - if m != nil { - return m.ProjectId +func (x *ProjectGrantID) GetProjectId() string { + if x != nil { + return x.ProjectId } return "" } -func (m *ProjectGrantID) GetId() string { - if m != nil { - return m.Id +func (x *ProjectGrantID) GetId() string { + if x != nil { + return x.Id } return "" } type ProjectGrantView struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - ProjectId string `protobuf:"bytes,2,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - GrantedOrgId string `protobuf:"bytes,3,opt,name=granted_org_id,json=grantedOrgId,proto3" json:"granted_org_id,omitempty"` - GrantedOrgName string `protobuf:"bytes,4,opt,name=granted_org_name,json=grantedOrgName,proto3" json:"granted_org_name,omitempty"` - RoleKeys []string `protobuf:"bytes,5,rep,name=role_keys,json=roleKeys,proto3" json:"role_keys,omitempty"` - State ProjectGrantState `protobuf:"varint,6,opt,name=state,proto3,enum=caos.zitadel.management.api.v1.ProjectGrantState" json:"state,omitempty"` - CreationDate *timestamp.Timestamp `protobuf:"bytes,7,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` - ChangeDate *timestamp.Timestamp `protobuf:"bytes,8,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` - ProjectName string `protobuf:"bytes,9,opt,name=project_name,json=projectName,proto3" json:"project_name,omitempty"` - Sequence uint64 `protobuf:"varint,10,opt,name=sequence,proto3" json:"sequence,omitempty"` - ResourceOwner string `protobuf:"bytes,11,opt,name=resource_owner,json=resourceOwner,proto3" json:"resource_owner,omitempty"` - ResourceOwnerName string `protobuf:"bytes,12,opt,name=resource_owner_name,json=resourceOwnerName,proto3" json:"resource_owner_name,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + ProjectId string `protobuf:"bytes,2,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` + GrantedOrgId string `protobuf:"bytes,3,opt,name=granted_org_id,json=grantedOrgId,proto3" json:"granted_org_id,omitempty"` + GrantedOrgName string `protobuf:"bytes,4,opt,name=granted_org_name,json=grantedOrgName,proto3" json:"granted_org_name,omitempty"` + RoleKeys []string `protobuf:"bytes,5,rep,name=role_keys,json=roleKeys,proto3" json:"role_keys,omitempty"` + State ProjectGrantState `protobuf:"varint,6,opt,name=state,proto3,enum=caos.zitadel.management.api.v1.ProjectGrantState" json:"state,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,7,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + ChangeDate *timestamp.Timestamp `protobuf:"bytes,8,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` + ProjectName string `protobuf:"bytes,9,opt,name=project_name,json=projectName,proto3" json:"project_name,omitempty"` + Sequence uint64 `protobuf:"varint,10,opt,name=sequence,proto3" json:"sequence,omitempty"` + ResourceOwner string `protobuf:"bytes,11,opt,name=resource_owner,json=resourceOwner,proto3" json:"resource_owner,omitempty"` + ResourceOwnerName string `protobuf:"bytes,12,opt,name=resource_owner_name,json=resourceOwnerName,proto3" json:"resource_owner_name,omitempty"` } -func (m *ProjectGrantView) Reset() { *m = ProjectGrantView{} } -func (m *ProjectGrantView) String() string { return proto.CompactTextString(m) } -func (*ProjectGrantView) ProtoMessage() {} +func (x *ProjectGrantView) Reset() { + *x = ProjectGrantView{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[124] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProjectGrantView) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProjectGrantView) ProtoMessage() {} + +func (x *ProjectGrantView) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[124] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProjectGrantView.ProtoReflect.Descriptor instead. func (*ProjectGrantView) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{124} + return file_management_proto_rawDescGZIP(), []int{124} } -func (m *ProjectGrantView) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ProjectGrantView.Unmarshal(m, b) -} -func (m *ProjectGrantView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ProjectGrantView.Marshal(b, m, deterministic) -} -func (m *ProjectGrantView) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProjectGrantView.Merge(m, src) -} -func (m *ProjectGrantView) XXX_Size() int { - return xxx_messageInfo_ProjectGrantView.Size(m) -} -func (m *ProjectGrantView) XXX_DiscardUnknown() { - xxx_messageInfo_ProjectGrantView.DiscardUnknown(m) -} - -var xxx_messageInfo_ProjectGrantView proto.InternalMessageInfo - -func (m *ProjectGrantView) GetId() string { - if m != nil { - return m.Id +func (x *ProjectGrantView) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *ProjectGrantView) GetProjectId() string { - if m != nil { - return m.ProjectId +func (x *ProjectGrantView) GetProjectId() string { + if x != nil { + return x.ProjectId } return "" } -func (m *ProjectGrantView) GetGrantedOrgId() string { - if m != nil { - return m.GrantedOrgId +func (x *ProjectGrantView) GetGrantedOrgId() string { + if x != nil { + return x.GrantedOrgId } return "" } -func (m *ProjectGrantView) GetGrantedOrgName() string { - if m != nil { - return m.GrantedOrgName +func (x *ProjectGrantView) GetGrantedOrgName() string { + if x != nil { + return x.GrantedOrgName } return "" } -func (m *ProjectGrantView) GetRoleKeys() []string { - if m != nil { - return m.RoleKeys +func (x *ProjectGrantView) GetRoleKeys() []string { + if x != nil { + return x.RoleKeys } return nil } -func (m *ProjectGrantView) GetState() ProjectGrantState { - if m != nil { - return m.State +func (x *ProjectGrantView) GetState() ProjectGrantState { + if x != nil { + return x.State } return ProjectGrantState_PROJECTGRANTSTATE_UNSPECIFIED } -func (m *ProjectGrantView) GetCreationDate() *timestamp.Timestamp { - if m != nil { - return m.CreationDate +func (x *ProjectGrantView) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate } return nil } -func (m *ProjectGrantView) GetChangeDate() *timestamp.Timestamp { - if m != nil { - return m.ChangeDate +func (x *ProjectGrantView) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate } return nil } -func (m *ProjectGrantView) GetProjectName() string { - if m != nil { - return m.ProjectName +func (x *ProjectGrantView) GetProjectName() string { + if x != nil { + return x.ProjectName } return "" } -func (m *ProjectGrantView) GetSequence() uint64 { - if m != nil { - return m.Sequence +func (x *ProjectGrantView) GetSequence() uint64 { + if x != nil { + return x.Sequence } return 0 } -func (m *ProjectGrantView) GetResourceOwner() string { - if m != nil { - return m.ResourceOwner +func (x *ProjectGrantView) GetResourceOwner() string { + if x != nil { + return x.ResourceOwner } return "" } -func (m *ProjectGrantView) GetResourceOwnerName() string { - if m != nil { - return m.ResourceOwnerName +func (x *ProjectGrantView) GetResourceOwnerName() string { + if x != nil { + return x.ResourceOwnerName } return "" } type ProjectGrantSearchResponse struct { - Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` - Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` - TotalResult uint64 `protobuf:"varint,3,opt,name=total_result,json=totalResult,proto3" json:"total_result,omitempty"` - Result []*ProjectGrantView `protobuf:"bytes,4,rep,name=result,proto3" json:"result,omitempty"` - ProcessedSequence uint64 `protobuf:"varint,5,opt,name=processed_sequence,json=processedSequence,proto3" json:"processed_sequence,omitempty"` - ViewTimestamp *timestamp.Timestamp `protobuf:"bytes,6,opt,name=view_timestamp,json=viewTimestamp,proto3" json:"view_timestamp,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` + Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` + TotalResult uint64 `protobuf:"varint,3,opt,name=total_result,json=totalResult,proto3" json:"total_result,omitempty"` + Result []*ProjectGrantView `protobuf:"bytes,4,rep,name=result,proto3" json:"result,omitempty"` + ProcessedSequence uint64 `protobuf:"varint,5,opt,name=processed_sequence,json=processedSequence,proto3" json:"processed_sequence,omitempty"` + ViewTimestamp *timestamp.Timestamp `protobuf:"bytes,6,opt,name=view_timestamp,json=viewTimestamp,proto3" json:"view_timestamp,omitempty"` } -func (m *ProjectGrantSearchResponse) Reset() { *m = ProjectGrantSearchResponse{} } -func (m *ProjectGrantSearchResponse) String() string { return proto.CompactTextString(m) } -func (*ProjectGrantSearchResponse) ProtoMessage() {} +func (x *ProjectGrantSearchResponse) Reset() { + *x = ProjectGrantSearchResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[125] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProjectGrantSearchResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProjectGrantSearchResponse) ProtoMessage() {} + +func (x *ProjectGrantSearchResponse) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[125] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProjectGrantSearchResponse.ProtoReflect.Descriptor instead. func (*ProjectGrantSearchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{125} + return file_management_proto_rawDescGZIP(), []int{125} } -func (m *ProjectGrantSearchResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ProjectGrantSearchResponse.Unmarshal(m, b) -} -func (m *ProjectGrantSearchResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ProjectGrantSearchResponse.Marshal(b, m, deterministic) -} -func (m *ProjectGrantSearchResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProjectGrantSearchResponse.Merge(m, src) -} -func (m *ProjectGrantSearchResponse) XXX_Size() int { - return xxx_messageInfo_ProjectGrantSearchResponse.Size(m) -} -func (m *ProjectGrantSearchResponse) XXX_DiscardUnknown() { - xxx_messageInfo_ProjectGrantSearchResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_ProjectGrantSearchResponse proto.InternalMessageInfo - -func (m *ProjectGrantSearchResponse) GetOffset() uint64 { - if m != nil { - return m.Offset +func (x *ProjectGrantSearchResponse) GetOffset() uint64 { + if x != nil { + return x.Offset } return 0 } -func (m *ProjectGrantSearchResponse) GetLimit() uint64 { - if m != nil { - return m.Limit +func (x *ProjectGrantSearchResponse) GetLimit() uint64 { + if x != nil { + return x.Limit } return 0 } -func (m *ProjectGrantSearchResponse) GetTotalResult() uint64 { - if m != nil { - return m.TotalResult +func (x *ProjectGrantSearchResponse) GetTotalResult() uint64 { + if x != nil { + return x.TotalResult } return 0 } -func (m *ProjectGrantSearchResponse) GetResult() []*ProjectGrantView { - if m != nil { - return m.Result +func (x *ProjectGrantSearchResponse) GetResult() []*ProjectGrantView { + if x != nil { + return x.Result } return nil } -func (m *ProjectGrantSearchResponse) GetProcessedSequence() uint64 { - if m != nil { - return m.ProcessedSequence +func (x *ProjectGrantSearchResponse) GetProcessedSequence() uint64 { + if x != nil { + return x.ProcessedSequence } return 0 } -func (m *ProjectGrantSearchResponse) GetViewTimestamp() *timestamp.Timestamp { - if m != nil { - return m.ViewTimestamp +func (x *ProjectGrantSearchResponse) GetViewTimestamp() *timestamp.Timestamp { + if x != nil { + return x.ViewTimestamp } return nil } type GrantedProjectSearchRequest struct { - Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` - Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` - Queries []*ProjectSearchQuery `protobuf:"bytes,3,rep,name=queries,proto3" json:"queries,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` + Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` + Queries []*ProjectSearchQuery `protobuf:"bytes,3,rep,name=queries,proto3" json:"queries,omitempty"` } -func (m *GrantedProjectSearchRequest) Reset() { *m = GrantedProjectSearchRequest{} } -func (m *GrantedProjectSearchRequest) String() string { return proto.CompactTextString(m) } -func (*GrantedProjectSearchRequest) ProtoMessage() {} +func (x *GrantedProjectSearchRequest) Reset() { + *x = GrantedProjectSearchRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[126] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GrantedProjectSearchRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GrantedProjectSearchRequest) ProtoMessage() {} + +func (x *GrantedProjectSearchRequest) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[126] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GrantedProjectSearchRequest.ProtoReflect.Descriptor instead. func (*GrantedProjectSearchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{126} + return file_management_proto_rawDescGZIP(), []int{126} } -func (m *GrantedProjectSearchRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GrantedProjectSearchRequest.Unmarshal(m, b) -} -func (m *GrantedProjectSearchRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GrantedProjectSearchRequest.Marshal(b, m, deterministic) -} -func (m *GrantedProjectSearchRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_GrantedProjectSearchRequest.Merge(m, src) -} -func (m *GrantedProjectSearchRequest) XXX_Size() int { - return xxx_messageInfo_GrantedProjectSearchRequest.Size(m) -} -func (m *GrantedProjectSearchRequest) XXX_DiscardUnknown() { - xxx_messageInfo_GrantedProjectSearchRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_GrantedProjectSearchRequest proto.InternalMessageInfo - -func (m *GrantedProjectSearchRequest) GetOffset() uint64 { - if m != nil { - return m.Offset +func (x *GrantedProjectSearchRequest) GetOffset() uint64 { + if x != nil { + return x.Offset } return 0 } -func (m *GrantedProjectSearchRequest) GetLimit() uint64 { - if m != nil { - return m.Limit +func (x *GrantedProjectSearchRequest) GetLimit() uint64 { + if x != nil { + return x.Limit } return 0 } -func (m *GrantedProjectSearchRequest) GetQueries() []*ProjectSearchQuery { - if m != nil { - return m.Queries +func (x *GrantedProjectSearchRequest) GetQueries() []*ProjectSearchQuery { + if x != nil { + return x.Queries } return nil } type ProjectGrantSearchRequest struct { - ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - Offset uint64 `protobuf:"varint,2,opt,name=offset,proto3" json:"offset,omitempty"` - Limit uint64 `protobuf:"varint,3,opt,name=limit,proto3" json:"limit,omitempty"` - Queries []*ProjectGrantSearchQuery `protobuf:"bytes,4,rep,name=queries,proto3" json:"queries,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` + Offset uint64 `protobuf:"varint,2,opt,name=offset,proto3" json:"offset,omitempty"` + Limit uint64 `protobuf:"varint,3,opt,name=limit,proto3" json:"limit,omitempty"` + Queries []*ProjectGrantSearchQuery `protobuf:"bytes,4,rep,name=queries,proto3" json:"queries,omitempty"` } -func (m *ProjectGrantSearchRequest) Reset() { *m = ProjectGrantSearchRequest{} } -func (m *ProjectGrantSearchRequest) String() string { return proto.CompactTextString(m) } -func (*ProjectGrantSearchRequest) ProtoMessage() {} +func (x *ProjectGrantSearchRequest) Reset() { + *x = ProjectGrantSearchRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[127] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProjectGrantSearchRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProjectGrantSearchRequest) ProtoMessage() {} + +func (x *ProjectGrantSearchRequest) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[127] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProjectGrantSearchRequest.ProtoReflect.Descriptor instead. func (*ProjectGrantSearchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{127} + return file_management_proto_rawDescGZIP(), []int{127} } -func (m *ProjectGrantSearchRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ProjectGrantSearchRequest.Unmarshal(m, b) -} -func (m *ProjectGrantSearchRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ProjectGrantSearchRequest.Marshal(b, m, deterministic) -} -func (m *ProjectGrantSearchRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProjectGrantSearchRequest.Merge(m, src) -} -func (m *ProjectGrantSearchRequest) XXX_Size() int { - return xxx_messageInfo_ProjectGrantSearchRequest.Size(m) -} -func (m *ProjectGrantSearchRequest) XXX_DiscardUnknown() { - xxx_messageInfo_ProjectGrantSearchRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_ProjectGrantSearchRequest proto.InternalMessageInfo - -func (m *ProjectGrantSearchRequest) GetProjectId() string { - if m != nil { - return m.ProjectId +func (x *ProjectGrantSearchRequest) GetProjectId() string { + if x != nil { + return x.ProjectId } return "" } -func (m *ProjectGrantSearchRequest) GetOffset() uint64 { - if m != nil { - return m.Offset +func (x *ProjectGrantSearchRequest) GetOffset() uint64 { + if x != nil { + return x.Offset } return 0 } -func (m *ProjectGrantSearchRequest) GetLimit() uint64 { - if m != nil { - return m.Limit +func (x *ProjectGrantSearchRequest) GetLimit() uint64 { + if x != nil { + return x.Limit } return 0 } -func (m *ProjectGrantSearchRequest) GetQueries() []*ProjectGrantSearchQuery { - if m != nil { - return m.Queries +func (x *ProjectGrantSearchRequest) GetQueries() []*ProjectGrantSearchQuery { + if x != nil { + return x.Queries } return nil } type ProjectGrantSearchQuery struct { - Key ProjectGrantSearchKey `protobuf:"varint,1,opt,name=key,proto3,enum=caos.zitadel.management.api.v1.ProjectGrantSearchKey" json:"key,omitempty"` - Method SearchMethod `protobuf:"varint,2,opt,name=method,proto3,enum=caos.zitadel.management.api.v1.SearchMethod" json:"method,omitempty"` - Value string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Key ProjectGrantSearchKey `protobuf:"varint,1,opt,name=key,proto3,enum=caos.zitadel.management.api.v1.ProjectGrantSearchKey" json:"key,omitempty"` + Method SearchMethod `protobuf:"varint,2,opt,name=method,proto3,enum=caos.zitadel.management.api.v1.SearchMethod" json:"method,omitempty"` + Value string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` } -func (m *ProjectGrantSearchQuery) Reset() { *m = ProjectGrantSearchQuery{} } -func (m *ProjectGrantSearchQuery) String() string { return proto.CompactTextString(m) } -func (*ProjectGrantSearchQuery) ProtoMessage() {} +func (x *ProjectGrantSearchQuery) Reset() { + *x = ProjectGrantSearchQuery{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[128] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProjectGrantSearchQuery) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProjectGrantSearchQuery) ProtoMessage() {} + +func (x *ProjectGrantSearchQuery) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[128] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProjectGrantSearchQuery.ProtoReflect.Descriptor instead. func (*ProjectGrantSearchQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{128} + return file_management_proto_rawDescGZIP(), []int{128} } -func (m *ProjectGrantSearchQuery) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ProjectGrantSearchQuery.Unmarshal(m, b) -} -func (m *ProjectGrantSearchQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ProjectGrantSearchQuery.Marshal(b, m, deterministic) -} -func (m *ProjectGrantSearchQuery) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProjectGrantSearchQuery.Merge(m, src) -} -func (m *ProjectGrantSearchQuery) XXX_Size() int { - return xxx_messageInfo_ProjectGrantSearchQuery.Size(m) -} -func (m *ProjectGrantSearchQuery) XXX_DiscardUnknown() { - xxx_messageInfo_ProjectGrantSearchQuery.DiscardUnknown(m) -} - -var xxx_messageInfo_ProjectGrantSearchQuery proto.InternalMessageInfo - -func (m *ProjectGrantSearchQuery) GetKey() ProjectGrantSearchKey { - if m != nil { - return m.Key +func (x *ProjectGrantSearchQuery) GetKey() ProjectGrantSearchKey { + if x != nil { + return x.Key } return ProjectGrantSearchKey_PROJECTGRANTSEARCHKEY_UNSPECIFIED } -func (m *ProjectGrantSearchQuery) GetMethod() SearchMethod { - if m != nil { - return m.Method +func (x *ProjectGrantSearchQuery) GetMethod() SearchMethod { + if x != nil { + return x.Method } return SearchMethod_SEARCHMETHOD_EQUALS } -func (m *ProjectGrantSearchQuery) GetValue() string { - if m != nil { - return m.Value +func (x *ProjectGrantSearchQuery) GetValue() string { + if x != nil { + return x.Value } return "" } type ProjectGrantMemberRoles struct { - Roles []string `protobuf:"bytes,1,rep,name=roles,proto3" json:"roles,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Roles []string `protobuf:"bytes,1,rep,name=roles,proto3" json:"roles,omitempty"` } -func (m *ProjectGrantMemberRoles) Reset() { *m = ProjectGrantMemberRoles{} } -func (m *ProjectGrantMemberRoles) String() string { return proto.CompactTextString(m) } -func (*ProjectGrantMemberRoles) ProtoMessage() {} +func (x *ProjectGrantMemberRoles) Reset() { + *x = ProjectGrantMemberRoles{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[129] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProjectGrantMemberRoles) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProjectGrantMemberRoles) ProtoMessage() {} + +func (x *ProjectGrantMemberRoles) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[129] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProjectGrantMemberRoles.ProtoReflect.Descriptor instead. func (*ProjectGrantMemberRoles) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{129} + return file_management_proto_rawDescGZIP(), []int{129} } -func (m *ProjectGrantMemberRoles) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ProjectGrantMemberRoles.Unmarshal(m, b) -} -func (m *ProjectGrantMemberRoles) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ProjectGrantMemberRoles.Marshal(b, m, deterministic) -} -func (m *ProjectGrantMemberRoles) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProjectGrantMemberRoles.Merge(m, src) -} -func (m *ProjectGrantMemberRoles) XXX_Size() int { - return xxx_messageInfo_ProjectGrantMemberRoles.Size(m) -} -func (m *ProjectGrantMemberRoles) XXX_DiscardUnknown() { - xxx_messageInfo_ProjectGrantMemberRoles.DiscardUnknown(m) -} - -var xxx_messageInfo_ProjectGrantMemberRoles proto.InternalMessageInfo - -func (m *ProjectGrantMemberRoles) GetRoles() []string { - if m != nil { - return m.Roles +func (x *ProjectGrantMemberRoles) GetRoles() []string { + if x != nil { + return x.Roles } return nil } type ProjectGrantMember struct { - UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` - Roles []string `protobuf:"bytes,2,rep,name=roles,proto3" json:"roles,omitempty"` - ChangeDate *timestamp.Timestamp `protobuf:"bytes,3,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` - CreationDate *timestamp.Timestamp `protobuf:"bytes,4,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` - Sequence uint64 `protobuf:"varint,5,opt,name=sequence,proto3" json:"sequence,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + Roles []string `protobuf:"bytes,2,rep,name=roles,proto3" json:"roles,omitempty"` + ChangeDate *timestamp.Timestamp `protobuf:"bytes,3,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,4,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + Sequence uint64 `protobuf:"varint,5,opt,name=sequence,proto3" json:"sequence,omitempty"` } -func (m *ProjectGrantMember) Reset() { *m = ProjectGrantMember{} } -func (m *ProjectGrantMember) String() string { return proto.CompactTextString(m) } -func (*ProjectGrantMember) ProtoMessage() {} +func (x *ProjectGrantMember) Reset() { + *x = ProjectGrantMember{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[130] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProjectGrantMember) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProjectGrantMember) ProtoMessage() {} + +func (x *ProjectGrantMember) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[130] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProjectGrantMember.ProtoReflect.Descriptor instead. func (*ProjectGrantMember) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{130} + return file_management_proto_rawDescGZIP(), []int{130} } -func (m *ProjectGrantMember) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ProjectGrantMember.Unmarshal(m, b) -} -func (m *ProjectGrantMember) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ProjectGrantMember.Marshal(b, m, deterministic) -} -func (m *ProjectGrantMember) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProjectGrantMember.Merge(m, src) -} -func (m *ProjectGrantMember) XXX_Size() int { - return xxx_messageInfo_ProjectGrantMember.Size(m) -} -func (m *ProjectGrantMember) XXX_DiscardUnknown() { - xxx_messageInfo_ProjectGrantMember.DiscardUnknown(m) -} - -var xxx_messageInfo_ProjectGrantMember proto.InternalMessageInfo - -func (m *ProjectGrantMember) GetUserId() string { - if m != nil { - return m.UserId +func (x *ProjectGrantMember) GetUserId() string { + if x != nil { + return x.UserId } return "" } -func (m *ProjectGrantMember) GetRoles() []string { - if m != nil { - return m.Roles +func (x *ProjectGrantMember) GetRoles() []string { + if x != nil { + return x.Roles } return nil } -func (m *ProjectGrantMember) GetChangeDate() *timestamp.Timestamp { - if m != nil { - return m.ChangeDate +func (x *ProjectGrantMember) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate } return nil } -func (m *ProjectGrantMember) GetCreationDate() *timestamp.Timestamp { - if m != nil { - return m.CreationDate +func (x *ProjectGrantMember) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate } return nil } -func (m *ProjectGrantMember) GetSequence() uint64 { - if m != nil { - return m.Sequence +func (x *ProjectGrantMember) GetSequence() uint64 { + if x != nil { + return x.Sequence } return 0 } type ProjectGrantMemberAdd struct { - ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - GrantId string `protobuf:"bytes,2,opt,name=grant_id,json=grantId,proto3" json:"grant_id,omitempty"` - UserId string `protobuf:"bytes,3,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` - Roles []string `protobuf:"bytes,4,rep,name=roles,proto3" json:"roles,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` + GrantId string `protobuf:"bytes,2,opt,name=grant_id,json=grantId,proto3" json:"grant_id,omitempty"` + UserId string `protobuf:"bytes,3,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + Roles []string `protobuf:"bytes,4,rep,name=roles,proto3" json:"roles,omitempty"` } -func (m *ProjectGrantMemberAdd) Reset() { *m = ProjectGrantMemberAdd{} } -func (m *ProjectGrantMemberAdd) String() string { return proto.CompactTextString(m) } -func (*ProjectGrantMemberAdd) ProtoMessage() {} +func (x *ProjectGrantMemberAdd) Reset() { + *x = ProjectGrantMemberAdd{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[131] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProjectGrantMemberAdd) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProjectGrantMemberAdd) ProtoMessage() {} + +func (x *ProjectGrantMemberAdd) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[131] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProjectGrantMemberAdd.ProtoReflect.Descriptor instead. func (*ProjectGrantMemberAdd) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{131} + return file_management_proto_rawDescGZIP(), []int{131} } -func (m *ProjectGrantMemberAdd) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ProjectGrantMemberAdd.Unmarshal(m, b) -} -func (m *ProjectGrantMemberAdd) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ProjectGrantMemberAdd.Marshal(b, m, deterministic) -} -func (m *ProjectGrantMemberAdd) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProjectGrantMemberAdd.Merge(m, src) -} -func (m *ProjectGrantMemberAdd) XXX_Size() int { - return xxx_messageInfo_ProjectGrantMemberAdd.Size(m) -} -func (m *ProjectGrantMemberAdd) XXX_DiscardUnknown() { - xxx_messageInfo_ProjectGrantMemberAdd.DiscardUnknown(m) -} - -var xxx_messageInfo_ProjectGrantMemberAdd proto.InternalMessageInfo - -func (m *ProjectGrantMemberAdd) GetProjectId() string { - if m != nil { - return m.ProjectId +func (x *ProjectGrantMemberAdd) GetProjectId() string { + if x != nil { + return x.ProjectId } return "" } -func (m *ProjectGrantMemberAdd) GetGrantId() string { - if m != nil { - return m.GrantId +func (x *ProjectGrantMemberAdd) GetGrantId() string { + if x != nil { + return x.GrantId } return "" } -func (m *ProjectGrantMemberAdd) GetUserId() string { - if m != nil { - return m.UserId +func (x *ProjectGrantMemberAdd) GetUserId() string { + if x != nil { + return x.UserId } return "" } -func (m *ProjectGrantMemberAdd) GetRoles() []string { - if m != nil { - return m.Roles +func (x *ProjectGrantMemberAdd) GetRoles() []string { + if x != nil { + return x.Roles } return nil } type ProjectGrantMemberChange struct { - ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - GrantId string `protobuf:"bytes,2,opt,name=grant_id,json=grantId,proto3" json:"grant_id,omitempty"` - UserId string `protobuf:"bytes,3,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` - Roles []string `protobuf:"bytes,4,rep,name=roles,proto3" json:"roles,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` + GrantId string `protobuf:"bytes,2,opt,name=grant_id,json=grantId,proto3" json:"grant_id,omitempty"` + UserId string `protobuf:"bytes,3,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + Roles []string `protobuf:"bytes,4,rep,name=roles,proto3" json:"roles,omitempty"` } -func (m *ProjectGrantMemberChange) Reset() { *m = ProjectGrantMemberChange{} } -func (m *ProjectGrantMemberChange) String() string { return proto.CompactTextString(m) } -func (*ProjectGrantMemberChange) ProtoMessage() {} +func (x *ProjectGrantMemberChange) Reset() { + *x = ProjectGrantMemberChange{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[132] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProjectGrantMemberChange) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProjectGrantMemberChange) ProtoMessage() {} + +func (x *ProjectGrantMemberChange) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[132] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProjectGrantMemberChange.ProtoReflect.Descriptor instead. func (*ProjectGrantMemberChange) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{132} + return file_management_proto_rawDescGZIP(), []int{132} } -func (m *ProjectGrantMemberChange) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ProjectGrantMemberChange.Unmarshal(m, b) -} -func (m *ProjectGrantMemberChange) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ProjectGrantMemberChange.Marshal(b, m, deterministic) -} -func (m *ProjectGrantMemberChange) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProjectGrantMemberChange.Merge(m, src) -} -func (m *ProjectGrantMemberChange) XXX_Size() int { - return xxx_messageInfo_ProjectGrantMemberChange.Size(m) -} -func (m *ProjectGrantMemberChange) XXX_DiscardUnknown() { - xxx_messageInfo_ProjectGrantMemberChange.DiscardUnknown(m) -} - -var xxx_messageInfo_ProjectGrantMemberChange proto.InternalMessageInfo - -func (m *ProjectGrantMemberChange) GetProjectId() string { - if m != nil { - return m.ProjectId +func (x *ProjectGrantMemberChange) GetProjectId() string { + if x != nil { + return x.ProjectId } return "" } -func (m *ProjectGrantMemberChange) GetGrantId() string { - if m != nil { - return m.GrantId +func (x *ProjectGrantMemberChange) GetGrantId() string { + if x != nil { + return x.GrantId } return "" } -func (m *ProjectGrantMemberChange) GetUserId() string { - if m != nil { - return m.UserId +func (x *ProjectGrantMemberChange) GetUserId() string { + if x != nil { + return x.UserId } return "" } -func (m *ProjectGrantMemberChange) GetRoles() []string { - if m != nil { - return m.Roles +func (x *ProjectGrantMemberChange) GetRoles() []string { + if x != nil { + return x.Roles } return nil } type ProjectGrantMemberRemove struct { - ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - GrantId string `protobuf:"bytes,2,opt,name=grant_id,json=grantId,proto3" json:"grant_id,omitempty"` - UserId string `protobuf:"bytes,3,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` + GrantId string `protobuf:"bytes,2,opt,name=grant_id,json=grantId,proto3" json:"grant_id,omitempty"` + UserId string `protobuf:"bytes,3,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` } -func (m *ProjectGrantMemberRemove) Reset() { *m = ProjectGrantMemberRemove{} } -func (m *ProjectGrantMemberRemove) String() string { return proto.CompactTextString(m) } -func (*ProjectGrantMemberRemove) ProtoMessage() {} +func (x *ProjectGrantMemberRemove) Reset() { + *x = ProjectGrantMemberRemove{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[133] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProjectGrantMemberRemove) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProjectGrantMemberRemove) ProtoMessage() {} + +func (x *ProjectGrantMemberRemove) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[133] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProjectGrantMemberRemove.ProtoReflect.Descriptor instead. func (*ProjectGrantMemberRemove) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{133} + return file_management_proto_rawDescGZIP(), []int{133} } -func (m *ProjectGrantMemberRemove) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ProjectGrantMemberRemove.Unmarshal(m, b) -} -func (m *ProjectGrantMemberRemove) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ProjectGrantMemberRemove.Marshal(b, m, deterministic) -} -func (m *ProjectGrantMemberRemove) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProjectGrantMemberRemove.Merge(m, src) -} -func (m *ProjectGrantMemberRemove) XXX_Size() int { - return xxx_messageInfo_ProjectGrantMemberRemove.Size(m) -} -func (m *ProjectGrantMemberRemove) XXX_DiscardUnknown() { - xxx_messageInfo_ProjectGrantMemberRemove.DiscardUnknown(m) -} - -var xxx_messageInfo_ProjectGrantMemberRemove proto.InternalMessageInfo - -func (m *ProjectGrantMemberRemove) GetProjectId() string { - if m != nil { - return m.ProjectId +func (x *ProjectGrantMemberRemove) GetProjectId() string { + if x != nil { + return x.ProjectId } return "" } -func (m *ProjectGrantMemberRemove) GetGrantId() string { - if m != nil { - return m.GrantId +func (x *ProjectGrantMemberRemove) GetGrantId() string { + if x != nil { + return x.GrantId } return "" } -func (m *ProjectGrantMemberRemove) GetUserId() string { - if m != nil { - return m.UserId +func (x *ProjectGrantMemberRemove) GetUserId() string { + if x != nil { + return x.UserId } return "" } type ProjectGrantMemberView struct { - UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` - UserName string `protobuf:"bytes,2,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` - Email string `protobuf:"bytes,3,opt,name=email,proto3" json:"email,omitempty"` - FirstName string `protobuf:"bytes,4,opt,name=first_name,json=firstName,proto3" json:"first_name,omitempty"` - LastName string `protobuf:"bytes,5,opt,name=last_name,json=lastName,proto3" json:"last_name,omitempty"` - Roles []string `protobuf:"bytes,6,rep,name=roles,proto3" json:"roles,omitempty"` - ChangeDate *timestamp.Timestamp `protobuf:"bytes,7,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` - CreationDate *timestamp.Timestamp `protobuf:"bytes,8,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` - Sequence uint64 `protobuf:"varint,9,opt,name=sequence,proto3" json:"sequence,omitempty"` - DisplayName string `protobuf:"bytes,10,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + UserName string `protobuf:"bytes,2,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` + Email string `protobuf:"bytes,3,opt,name=email,proto3" json:"email,omitempty"` + FirstName string `protobuf:"bytes,4,opt,name=first_name,json=firstName,proto3" json:"first_name,omitempty"` + LastName string `protobuf:"bytes,5,opt,name=last_name,json=lastName,proto3" json:"last_name,omitempty"` + Roles []string `protobuf:"bytes,6,rep,name=roles,proto3" json:"roles,omitempty"` + ChangeDate *timestamp.Timestamp `protobuf:"bytes,7,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,8,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + Sequence uint64 `protobuf:"varint,9,opt,name=sequence,proto3" json:"sequence,omitempty"` + DisplayName string `protobuf:"bytes,10,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` } -func (m *ProjectGrantMemberView) Reset() { *m = ProjectGrantMemberView{} } -func (m *ProjectGrantMemberView) String() string { return proto.CompactTextString(m) } -func (*ProjectGrantMemberView) ProtoMessage() {} +func (x *ProjectGrantMemberView) Reset() { + *x = ProjectGrantMemberView{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[134] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProjectGrantMemberView) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProjectGrantMemberView) ProtoMessage() {} + +func (x *ProjectGrantMemberView) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[134] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProjectGrantMemberView.ProtoReflect.Descriptor instead. func (*ProjectGrantMemberView) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{134} + return file_management_proto_rawDescGZIP(), []int{134} } -func (m *ProjectGrantMemberView) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ProjectGrantMemberView.Unmarshal(m, b) -} -func (m *ProjectGrantMemberView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ProjectGrantMemberView.Marshal(b, m, deterministic) -} -func (m *ProjectGrantMemberView) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProjectGrantMemberView.Merge(m, src) -} -func (m *ProjectGrantMemberView) XXX_Size() int { - return xxx_messageInfo_ProjectGrantMemberView.Size(m) -} -func (m *ProjectGrantMemberView) XXX_DiscardUnknown() { - xxx_messageInfo_ProjectGrantMemberView.DiscardUnknown(m) -} - -var xxx_messageInfo_ProjectGrantMemberView proto.InternalMessageInfo - -func (m *ProjectGrantMemberView) GetUserId() string { - if m != nil { - return m.UserId +func (x *ProjectGrantMemberView) GetUserId() string { + if x != nil { + return x.UserId } return "" } -func (m *ProjectGrantMemberView) GetUserName() string { - if m != nil { - return m.UserName +func (x *ProjectGrantMemberView) GetUserName() string { + if x != nil { + return x.UserName } return "" } -func (m *ProjectGrantMemberView) GetEmail() string { - if m != nil { - return m.Email +func (x *ProjectGrantMemberView) GetEmail() string { + if x != nil { + return x.Email } return "" } -func (m *ProjectGrantMemberView) GetFirstName() string { - if m != nil { - return m.FirstName +func (x *ProjectGrantMemberView) GetFirstName() string { + if x != nil { + return x.FirstName } return "" } -func (m *ProjectGrantMemberView) GetLastName() string { - if m != nil { - return m.LastName +func (x *ProjectGrantMemberView) GetLastName() string { + if x != nil { + return x.LastName } return "" } -func (m *ProjectGrantMemberView) GetRoles() []string { - if m != nil { - return m.Roles +func (x *ProjectGrantMemberView) GetRoles() []string { + if x != nil { + return x.Roles } return nil } -func (m *ProjectGrantMemberView) GetChangeDate() *timestamp.Timestamp { - if m != nil { - return m.ChangeDate +func (x *ProjectGrantMemberView) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate } return nil } -func (m *ProjectGrantMemberView) GetCreationDate() *timestamp.Timestamp { - if m != nil { - return m.CreationDate +func (x *ProjectGrantMemberView) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate } return nil } -func (m *ProjectGrantMemberView) GetSequence() uint64 { - if m != nil { - return m.Sequence +func (x *ProjectGrantMemberView) GetSequence() uint64 { + if x != nil { + return x.Sequence } return 0 } -func (m *ProjectGrantMemberView) GetDisplayName() string { - if m != nil { - return m.DisplayName +func (x *ProjectGrantMemberView) GetDisplayName() string { + if x != nil { + return x.DisplayName } return "" } type ProjectGrantMemberSearchResponse struct { - Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` - Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` - TotalResult uint64 `protobuf:"varint,3,opt,name=total_result,json=totalResult,proto3" json:"total_result,omitempty"` - Result []*ProjectGrantMemberView `protobuf:"bytes,4,rep,name=result,proto3" json:"result,omitempty"` - ProcessedSequence uint64 `protobuf:"varint,5,opt,name=processed_sequence,json=processedSequence,proto3" json:"processed_sequence,omitempty"` - ViewTimestamp *timestamp.Timestamp `protobuf:"bytes,6,opt,name=view_timestamp,json=viewTimestamp,proto3" json:"view_timestamp,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` + Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` + TotalResult uint64 `protobuf:"varint,3,opt,name=total_result,json=totalResult,proto3" json:"total_result,omitempty"` + Result []*ProjectGrantMemberView `protobuf:"bytes,4,rep,name=result,proto3" json:"result,omitempty"` + ProcessedSequence uint64 `protobuf:"varint,5,opt,name=processed_sequence,json=processedSequence,proto3" json:"processed_sequence,omitempty"` + ViewTimestamp *timestamp.Timestamp `protobuf:"bytes,6,opt,name=view_timestamp,json=viewTimestamp,proto3" json:"view_timestamp,omitempty"` } -func (m *ProjectGrantMemberSearchResponse) Reset() { *m = ProjectGrantMemberSearchResponse{} } -func (m *ProjectGrantMemberSearchResponse) String() string { return proto.CompactTextString(m) } -func (*ProjectGrantMemberSearchResponse) ProtoMessage() {} +func (x *ProjectGrantMemberSearchResponse) Reset() { + *x = ProjectGrantMemberSearchResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[135] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProjectGrantMemberSearchResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProjectGrantMemberSearchResponse) ProtoMessage() {} + +func (x *ProjectGrantMemberSearchResponse) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[135] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProjectGrantMemberSearchResponse.ProtoReflect.Descriptor instead. func (*ProjectGrantMemberSearchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{135} + return file_management_proto_rawDescGZIP(), []int{135} } -func (m *ProjectGrantMemberSearchResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ProjectGrantMemberSearchResponse.Unmarshal(m, b) -} -func (m *ProjectGrantMemberSearchResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ProjectGrantMemberSearchResponse.Marshal(b, m, deterministic) -} -func (m *ProjectGrantMemberSearchResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProjectGrantMemberSearchResponse.Merge(m, src) -} -func (m *ProjectGrantMemberSearchResponse) XXX_Size() int { - return xxx_messageInfo_ProjectGrantMemberSearchResponse.Size(m) -} -func (m *ProjectGrantMemberSearchResponse) XXX_DiscardUnknown() { - xxx_messageInfo_ProjectGrantMemberSearchResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_ProjectGrantMemberSearchResponse proto.InternalMessageInfo - -func (m *ProjectGrantMemberSearchResponse) GetOffset() uint64 { - if m != nil { - return m.Offset +func (x *ProjectGrantMemberSearchResponse) GetOffset() uint64 { + if x != nil { + return x.Offset } return 0 } -func (m *ProjectGrantMemberSearchResponse) GetLimit() uint64 { - if m != nil { - return m.Limit +func (x *ProjectGrantMemberSearchResponse) GetLimit() uint64 { + if x != nil { + return x.Limit } return 0 } -func (m *ProjectGrantMemberSearchResponse) GetTotalResult() uint64 { - if m != nil { - return m.TotalResult +func (x *ProjectGrantMemberSearchResponse) GetTotalResult() uint64 { + if x != nil { + return x.TotalResult } return 0 } -func (m *ProjectGrantMemberSearchResponse) GetResult() []*ProjectGrantMemberView { - if m != nil { - return m.Result +func (x *ProjectGrantMemberSearchResponse) GetResult() []*ProjectGrantMemberView { + if x != nil { + return x.Result } return nil } -func (m *ProjectGrantMemberSearchResponse) GetProcessedSequence() uint64 { - if m != nil { - return m.ProcessedSequence +func (x *ProjectGrantMemberSearchResponse) GetProcessedSequence() uint64 { + if x != nil { + return x.ProcessedSequence } return 0 } -func (m *ProjectGrantMemberSearchResponse) GetViewTimestamp() *timestamp.Timestamp { - if m != nil { - return m.ViewTimestamp +func (x *ProjectGrantMemberSearchResponse) GetViewTimestamp() *timestamp.Timestamp { + if x != nil { + return x.ViewTimestamp } return nil } type ProjectGrantMemberSearchRequest struct { - ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - GrantId string `protobuf:"bytes,2,opt,name=grant_id,json=grantId,proto3" json:"grant_id,omitempty"` - Offset uint64 `protobuf:"varint,3,opt,name=offset,proto3" json:"offset,omitempty"` - Limit uint64 `protobuf:"varint,4,opt,name=limit,proto3" json:"limit,omitempty"` - Queries []*ProjectGrantMemberSearchQuery `protobuf:"bytes,5,rep,name=queries,proto3" json:"queries,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` + GrantId string `protobuf:"bytes,2,opt,name=grant_id,json=grantId,proto3" json:"grant_id,omitempty"` + Offset uint64 `protobuf:"varint,3,opt,name=offset,proto3" json:"offset,omitempty"` + Limit uint64 `protobuf:"varint,4,opt,name=limit,proto3" json:"limit,omitempty"` + Queries []*ProjectGrantMemberSearchQuery `protobuf:"bytes,5,rep,name=queries,proto3" json:"queries,omitempty"` } -func (m *ProjectGrantMemberSearchRequest) Reset() { *m = ProjectGrantMemberSearchRequest{} } -func (m *ProjectGrantMemberSearchRequest) String() string { return proto.CompactTextString(m) } -func (*ProjectGrantMemberSearchRequest) ProtoMessage() {} +func (x *ProjectGrantMemberSearchRequest) Reset() { + *x = ProjectGrantMemberSearchRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[136] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProjectGrantMemberSearchRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProjectGrantMemberSearchRequest) ProtoMessage() {} + +func (x *ProjectGrantMemberSearchRequest) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[136] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProjectGrantMemberSearchRequest.ProtoReflect.Descriptor instead. func (*ProjectGrantMemberSearchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{136} + return file_management_proto_rawDescGZIP(), []int{136} } -func (m *ProjectGrantMemberSearchRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ProjectGrantMemberSearchRequest.Unmarshal(m, b) -} -func (m *ProjectGrantMemberSearchRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ProjectGrantMemberSearchRequest.Marshal(b, m, deterministic) -} -func (m *ProjectGrantMemberSearchRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProjectGrantMemberSearchRequest.Merge(m, src) -} -func (m *ProjectGrantMemberSearchRequest) XXX_Size() int { - return xxx_messageInfo_ProjectGrantMemberSearchRequest.Size(m) -} -func (m *ProjectGrantMemberSearchRequest) XXX_DiscardUnknown() { - xxx_messageInfo_ProjectGrantMemberSearchRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_ProjectGrantMemberSearchRequest proto.InternalMessageInfo - -func (m *ProjectGrantMemberSearchRequest) GetProjectId() string { - if m != nil { - return m.ProjectId +func (x *ProjectGrantMemberSearchRequest) GetProjectId() string { + if x != nil { + return x.ProjectId } return "" } -func (m *ProjectGrantMemberSearchRequest) GetGrantId() string { - if m != nil { - return m.GrantId +func (x *ProjectGrantMemberSearchRequest) GetGrantId() string { + if x != nil { + return x.GrantId } return "" } -func (m *ProjectGrantMemberSearchRequest) GetOffset() uint64 { - if m != nil { - return m.Offset +func (x *ProjectGrantMemberSearchRequest) GetOffset() uint64 { + if x != nil { + return x.Offset } return 0 } -func (m *ProjectGrantMemberSearchRequest) GetLimit() uint64 { - if m != nil { - return m.Limit +func (x *ProjectGrantMemberSearchRequest) GetLimit() uint64 { + if x != nil { + return x.Limit } return 0 } -func (m *ProjectGrantMemberSearchRequest) GetQueries() []*ProjectGrantMemberSearchQuery { - if m != nil { - return m.Queries +func (x *ProjectGrantMemberSearchRequest) GetQueries() []*ProjectGrantMemberSearchQuery { + if x != nil { + return x.Queries } return nil } type ProjectGrantMemberSearchQuery struct { - Key ProjectGrantMemberSearchKey `protobuf:"varint,1,opt,name=key,proto3,enum=caos.zitadel.management.api.v1.ProjectGrantMemberSearchKey" json:"key,omitempty"` - Method SearchMethod `protobuf:"varint,2,opt,name=method,proto3,enum=caos.zitadel.management.api.v1.SearchMethod" json:"method,omitempty"` - Value string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Key ProjectGrantMemberSearchKey `protobuf:"varint,1,opt,name=key,proto3,enum=caos.zitadel.management.api.v1.ProjectGrantMemberSearchKey" json:"key,omitempty"` + Method SearchMethod `protobuf:"varint,2,opt,name=method,proto3,enum=caos.zitadel.management.api.v1.SearchMethod" json:"method,omitempty"` + Value string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` } -func (m *ProjectGrantMemberSearchQuery) Reset() { *m = ProjectGrantMemberSearchQuery{} } -func (m *ProjectGrantMemberSearchQuery) String() string { return proto.CompactTextString(m) } -func (*ProjectGrantMemberSearchQuery) ProtoMessage() {} +func (x *ProjectGrantMemberSearchQuery) Reset() { + *x = ProjectGrantMemberSearchQuery{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[137] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProjectGrantMemberSearchQuery) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProjectGrantMemberSearchQuery) ProtoMessage() {} + +func (x *ProjectGrantMemberSearchQuery) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[137] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProjectGrantMemberSearchQuery.ProtoReflect.Descriptor instead. func (*ProjectGrantMemberSearchQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{137} + return file_management_proto_rawDescGZIP(), []int{137} } -func (m *ProjectGrantMemberSearchQuery) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ProjectGrantMemberSearchQuery.Unmarshal(m, b) -} -func (m *ProjectGrantMemberSearchQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ProjectGrantMemberSearchQuery.Marshal(b, m, deterministic) -} -func (m *ProjectGrantMemberSearchQuery) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProjectGrantMemberSearchQuery.Merge(m, src) -} -func (m *ProjectGrantMemberSearchQuery) XXX_Size() int { - return xxx_messageInfo_ProjectGrantMemberSearchQuery.Size(m) -} -func (m *ProjectGrantMemberSearchQuery) XXX_DiscardUnknown() { - xxx_messageInfo_ProjectGrantMemberSearchQuery.DiscardUnknown(m) -} - -var xxx_messageInfo_ProjectGrantMemberSearchQuery proto.InternalMessageInfo - -func (m *ProjectGrantMemberSearchQuery) GetKey() ProjectGrantMemberSearchKey { - if m != nil { - return m.Key +func (x *ProjectGrantMemberSearchQuery) GetKey() ProjectGrantMemberSearchKey { + if x != nil { + return x.Key } return ProjectGrantMemberSearchKey_PROJECTGRANTMEMBERSEARCHKEY_UNSPECIFIED } -func (m *ProjectGrantMemberSearchQuery) GetMethod() SearchMethod { - if m != nil { - return m.Method +func (x *ProjectGrantMemberSearchQuery) GetMethod() SearchMethod { + if x != nil { + return x.Method } return SearchMethod_SEARCHMETHOD_EQUALS } -func (m *ProjectGrantMemberSearchQuery) GetValue() string { - if m != nil { - return m.Value +func (x *ProjectGrantMemberSearchQuery) GetValue() string { + if x != nil { + return x.Value } return "" } type UserGrant struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - UserId string `protobuf:"bytes,2,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` - OrgId string `protobuf:"bytes,3,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"` - ProjectId string `protobuf:"bytes,4,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - RoleKeys []string `protobuf:"bytes,5,rep,name=role_keys,json=roleKeys,proto3" json:"role_keys,omitempty"` - State UserGrantState `protobuf:"varint,6,opt,name=state,proto3,enum=caos.zitadel.management.api.v1.UserGrantState" json:"state,omitempty"` - CreationDate *timestamp.Timestamp `protobuf:"bytes,7,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` - ChangeDate *timestamp.Timestamp `protobuf:"bytes,8,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` - Sequence uint64 `protobuf:"varint,9,opt,name=sequence,proto3" json:"sequence,omitempty"` - GrantId string `protobuf:"bytes,10,opt,name=grant_id,json=grantId,proto3" json:"grant_id,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + UserId string `protobuf:"bytes,2,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + OrgId string `protobuf:"bytes,3,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"` + ProjectId string `protobuf:"bytes,4,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` + RoleKeys []string `protobuf:"bytes,5,rep,name=role_keys,json=roleKeys,proto3" json:"role_keys,omitempty"` + State UserGrantState `protobuf:"varint,6,opt,name=state,proto3,enum=caos.zitadel.management.api.v1.UserGrantState" json:"state,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,7,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + ChangeDate *timestamp.Timestamp `protobuf:"bytes,8,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` + Sequence uint64 `protobuf:"varint,9,opt,name=sequence,proto3" json:"sequence,omitempty"` + GrantId string `protobuf:"bytes,10,opt,name=grant_id,json=grantId,proto3" json:"grant_id,omitempty"` } -func (m *UserGrant) Reset() { *m = UserGrant{} } -func (m *UserGrant) String() string { return proto.CompactTextString(m) } -func (*UserGrant) ProtoMessage() {} +func (x *UserGrant) Reset() { + *x = UserGrant{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[138] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserGrant) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserGrant) ProtoMessage() {} + +func (x *UserGrant) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[138] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserGrant.ProtoReflect.Descriptor instead. func (*UserGrant) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{138} + return file_management_proto_rawDescGZIP(), []int{138} } -func (m *UserGrant) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserGrant.Unmarshal(m, b) -} -func (m *UserGrant) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserGrant.Marshal(b, m, deterministic) -} -func (m *UserGrant) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserGrant.Merge(m, src) -} -func (m *UserGrant) XXX_Size() int { - return xxx_messageInfo_UserGrant.Size(m) -} -func (m *UserGrant) XXX_DiscardUnknown() { - xxx_messageInfo_UserGrant.DiscardUnknown(m) -} - -var xxx_messageInfo_UserGrant proto.InternalMessageInfo - -func (m *UserGrant) GetId() string { - if m != nil { - return m.Id +func (x *UserGrant) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *UserGrant) GetUserId() string { - if m != nil { - return m.UserId +func (x *UserGrant) GetUserId() string { + if x != nil { + return x.UserId } return "" } -func (m *UserGrant) GetOrgId() string { - if m != nil { - return m.OrgId +func (x *UserGrant) GetOrgId() string { + if x != nil { + return x.OrgId } return "" } -func (m *UserGrant) GetProjectId() string { - if m != nil { - return m.ProjectId +func (x *UserGrant) GetProjectId() string { + if x != nil { + return x.ProjectId } return "" } -func (m *UserGrant) GetRoleKeys() []string { - if m != nil { - return m.RoleKeys +func (x *UserGrant) GetRoleKeys() []string { + if x != nil { + return x.RoleKeys } return nil } -func (m *UserGrant) GetState() UserGrantState { - if m != nil { - return m.State +func (x *UserGrant) GetState() UserGrantState { + if x != nil { + return x.State } return UserGrantState_USERGRANTSTATE_UNSPECIFIED } -func (m *UserGrant) GetCreationDate() *timestamp.Timestamp { - if m != nil { - return m.CreationDate +func (x *UserGrant) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate } return nil } -func (m *UserGrant) GetChangeDate() *timestamp.Timestamp { - if m != nil { - return m.ChangeDate +func (x *UserGrant) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate } return nil } -func (m *UserGrant) GetSequence() uint64 { - if m != nil { - return m.Sequence +func (x *UserGrant) GetSequence() uint64 { + if x != nil { + return x.Sequence } return 0 } -func (m *UserGrant) GetGrantId() string { - if m != nil { - return m.GrantId +func (x *UserGrant) GetGrantId() string { + if x != nil { + return x.GrantId } return "" } type UserGrantCreate struct { - UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` - ProjectId string `protobuf:"bytes,2,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - RoleKeys []string `protobuf:"bytes,3,rep,name=role_keys,json=roleKeys,proto3" json:"role_keys,omitempty"` - GrantId string `protobuf:"bytes,4,opt,name=grant_id,json=grantId,proto3" json:"grant_id,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + ProjectId string `protobuf:"bytes,2,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` + RoleKeys []string `protobuf:"bytes,3,rep,name=role_keys,json=roleKeys,proto3" json:"role_keys,omitempty"` + GrantId string `protobuf:"bytes,4,opt,name=grant_id,json=grantId,proto3" json:"grant_id,omitempty"` } -func (m *UserGrantCreate) Reset() { *m = UserGrantCreate{} } -func (m *UserGrantCreate) String() string { return proto.CompactTextString(m) } -func (*UserGrantCreate) ProtoMessage() {} +func (x *UserGrantCreate) Reset() { + *x = UserGrantCreate{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[139] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserGrantCreate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserGrantCreate) ProtoMessage() {} + +func (x *UserGrantCreate) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[139] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserGrantCreate.ProtoReflect.Descriptor instead. func (*UserGrantCreate) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{139} + return file_management_proto_rawDescGZIP(), []int{139} } -func (m *UserGrantCreate) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserGrantCreate.Unmarshal(m, b) -} -func (m *UserGrantCreate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserGrantCreate.Marshal(b, m, deterministic) -} -func (m *UserGrantCreate) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserGrantCreate.Merge(m, src) -} -func (m *UserGrantCreate) XXX_Size() int { - return xxx_messageInfo_UserGrantCreate.Size(m) -} -func (m *UserGrantCreate) XXX_DiscardUnknown() { - xxx_messageInfo_UserGrantCreate.DiscardUnknown(m) -} - -var xxx_messageInfo_UserGrantCreate proto.InternalMessageInfo - -func (m *UserGrantCreate) GetUserId() string { - if m != nil { - return m.UserId +func (x *UserGrantCreate) GetUserId() string { + if x != nil { + return x.UserId } return "" } -func (m *UserGrantCreate) GetProjectId() string { - if m != nil { - return m.ProjectId +func (x *UserGrantCreate) GetProjectId() string { + if x != nil { + return x.ProjectId } return "" } -func (m *UserGrantCreate) GetRoleKeys() []string { - if m != nil { - return m.RoleKeys +func (x *UserGrantCreate) GetRoleKeys() []string { + if x != nil { + return x.RoleKeys } return nil } -func (m *UserGrantCreate) GetGrantId() string { - if m != nil { - return m.GrantId +func (x *UserGrantCreate) GetGrantId() string { + if x != nil { + return x.GrantId } return "" } type UserGrantUpdate struct { - UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` - Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` - RoleKeys []string `protobuf:"bytes,3,rep,name=role_keys,json=roleKeys,proto3" json:"role_keys,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` + RoleKeys []string `protobuf:"bytes,3,rep,name=role_keys,json=roleKeys,proto3" json:"role_keys,omitempty"` } -func (m *UserGrantUpdate) Reset() { *m = UserGrantUpdate{} } -func (m *UserGrantUpdate) String() string { return proto.CompactTextString(m) } -func (*UserGrantUpdate) ProtoMessage() {} +func (x *UserGrantUpdate) Reset() { + *x = UserGrantUpdate{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[140] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserGrantUpdate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserGrantUpdate) ProtoMessage() {} + +func (x *UserGrantUpdate) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[140] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserGrantUpdate.ProtoReflect.Descriptor instead. func (*UserGrantUpdate) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{140} + return file_management_proto_rawDescGZIP(), []int{140} } -func (m *UserGrantUpdate) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserGrantUpdate.Unmarshal(m, b) -} -func (m *UserGrantUpdate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserGrantUpdate.Marshal(b, m, deterministic) -} -func (m *UserGrantUpdate) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserGrantUpdate.Merge(m, src) -} -func (m *UserGrantUpdate) XXX_Size() int { - return xxx_messageInfo_UserGrantUpdate.Size(m) -} -func (m *UserGrantUpdate) XXX_DiscardUnknown() { - xxx_messageInfo_UserGrantUpdate.DiscardUnknown(m) -} - -var xxx_messageInfo_UserGrantUpdate proto.InternalMessageInfo - -func (m *UserGrantUpdate) GetUserId() string { - if m != nil { - return m.UserId +func (x *UserGrantUpdate) GetUserId() string { + if x != nil { + return x.UserId } return "" } -func (m *UserGrantUpdate) GetId() string { - if m != nil { - return m.Id +func (x *UserGrantUpdate) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *UserGrantUpdate) GetRoleKeys() []string { - if m != nil { - return m.RoleKeys +func (x *UserGrantUpdate) GetRoleKeys() []string { + if x != nil { + return x.RoleKeys } return nil } type UserGrantRemoveBulk struct { - Ids []string `protobuf:"bytes,1,rep,name=ids,proto3" json:"ids,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Ids []string `protobuf:"bytes,1,rep,name=ids,proto3" json:"ids,omitempty"` } -func (m *UserGrantRemoveBulk) Reset() { *m = UserGrantRemoveBulk{} } -func (m *UserGrantRemoveBulk) String() string { return proto.CompactTextString(m) } -func (*UserGrantRemoveBulk) ProtoMessage() {} +func (x *UserGrantRemoveBulk) Reset() { + *x = UserGrantRemoveBulk{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[141] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserGrantRemoveBulk) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserGrantRemoveBulk) ProtoMessage() {} + +func (x *UserGrantRemoveBulk) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[141] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserGrantRemoveBulk.ProtoReflect.Descriptor instead. func (*UserGrantRemoveBulk) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{141} + return file_management_proto_rawDescGZIP(), []int{141} } -func (m *UserGrantRemoveBulk) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserGrantRemoveBulk.Unmarshal(m, b) -} -func (m *UserGrantRemoveBulk) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserGrantRemoveBulk.Marshal(b, m, deterministic) -} -func (m *UserGrantRemoveBulk) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserGrantRemoveBulk.Merge(m, src) -} -func (m *UserGrantRemoveBulk) XXX_Size() int { - return xxx_messageInfo_UserGrantRemoveBulk.Size(m) -} -func (m *UserGrantRemoveBulk) XXX_DiscardUnknown() { - xxx_messageInfo_UserGrantRemoveBulk.DiscardUnknown(m) -} - -var xxx_messageInfo_UserGrantRemoveBulk proto.InternalMessageInfo - -func (m *UserGrantRemoveBulk) GetIds() []string { - if m != nil { - return m.Ids +func (x *UserGrantRemoveBulk) GetIds() []string { + if x != nil { + return x.Ids } return nil } type UserGrantID struct { - UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` - Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` } -func (m *UserGrantID) Reset() { *m = UserGrantID{} } -func (m *UserGrantID) String() string { return proto.CompactTextString(m) } -func (*UserGrantID) ProtoMessage() {} +func (x *UserGrantID) Reset() { + *x = UserGrantID{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[142] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserGrantID) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserGrantID) ProtoMessage() {} + +func (x *UserGrantID) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[142] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserGrantID.ProtoReflect.Descriptor instead. func (*UserGrantID) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{142} + return file_management_proto_rawDescGZIP(), []int{142} } -func (m *UserGrantID) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserGrantID.Unmarshal(m, b) -} -func (m *UserGrantID) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserGrantID.Marshal(b, m, deterministic) -} -func (m *UserGrantID) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserGrantID.Merge(m, src) -} -func (m *UserGrantID) XXX_Size() int { - return xxx_messageInfo_UserGrantID.Size(m) -} -func (m *UserGrantID) XXX_DiscardUnknown() { - xxx_messageInfo_UserGrantID.DiscardUnknown(m) -} - -var xxx_messageInfo_UserGrantID proto.InternalMessageInfo - -func (m *UserGrantID) GetUserId() string { - if m != nil { - return m.UserId +func (x *UserGrantID) GetUserId() string { + if x != nil { + return x.UserId } return "" } -func (m *UserGrantID) GetId() string { - if m != nil { - return m.Id +func (x *UserGrantID) GetId() string { + if x != nil { + return x.Id } return "" } type UserGrantView struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - UserId string `protobuf:"bytes,2,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` - OrgId string `protobuf:"bytes,3,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"` - ProjectId string `protobuf:"bytes,4,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - RoleKeys []string `protobuf:"bytes,5,rep,name=role_keys,json=roleKeys,proto3" json:"role_keys,omitempty"` - State UserGrantState `protobuf:"varint,6,opt,name=state,proto3,enum=caos.zitadel.management.api.v1.UserGrantState" json:"state,omitempty"` - CreationDate *timestamp.Timestamp `protobuf:"bytes,7,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` - ChangeDate *timestamp.Timestamp `protobuf:"bytes,8,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` - UserName string `protobuf:"bytes,9,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` - FirstName string `protobuf:"bytes,10,opt,name=first_name,json=firstName,proto3" json:"first_name,omitempty"` - LastName string `protobuf:"bytes,11,opt,name=last_name,json=lastName,proto3" json:"last_name,omitempty"` - Email string `protobuf:"bytes,12,opt,name=email,proto3" json:"email,omitempty"` - OrgName string `protobuf:"bytes,13,opt,name=org_name,json=orgName,proto3" json:"org_name,omitempty"` - OrgDomain string `protobuf:"bytes,14,opt,name=org_domain,json=orgDomain,proto3" json:"org_domain,omitempty"` - ProjectName string `protobuf:"bytes,15,opt,name=project_name,json=projectName,proto3" json:"project_name,omitempty"` - Sequence uint64 `protobuf:"varint,16,opt,name=sequence,proto3" json:"sequence,omitempty"` - ResourceOwner string `protobuf:"bytes,17,opt,name=resource_owner,json=resourceOwner,proto3" json:"resource_owner,omitempty"` - DisplayName string `protobuf:"bytes,18,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` - GrantId string `protobuf:"bytes,19,opt,name=grant_id,json=grantId,proto3" json:"grant_id,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + UserId string `protobuf:"bytes,2,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + OrgId string `protobuf:"bytes,3,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"` + ProjectId string `protobuf:"bytes,4,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` + RoleKeys []string `protobuf:"bytes,5,rep,name=role_keys,json=roleKeys,proto3" json:"role_keys,omitempty"` + State UserGrantState `protobuf:"varint,6,opt,name=state,proto3,enum=caos.zitadel.management.api.v1.UserGrantState" json:"state,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,7,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + ChangeDate *timestamp.Timestamp `protobuf:"bytes,8,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` + UserName string `protobuf:"bytes,9,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` + FirstName string `protobuf:"bytes,10,opt,name=first_name,json=firstName,proto3" json:"first_name,omitempty"` + LastName string `protobuf:"bytes,11,opt,name=last_name,json=lastName,proto3" json:"last_name,omitempty"` + Email string `protobuf:"bytes,12,opt,name=email,proto3" json:"email,omitempty"` + OrgName string `protobuf:"bytes,13,opt,name=org_name,json=orgName,proto3" json:"org_name,omitempty"` + OrgDomain string `protobuf:"bytes,14,opt,name=org_domain,json=orgDomain,proto3" json:"org_domain,omitempty"` + ProjectName string `protobuf:"bytes,15,opt,name=project_name,json=projectName,proto3" json:"project_name,omitempty"` + Sequence uint64 `protobuf:"varint,16,opt,name=sequence,proto3" json:"sequence,omitempty"` + ResourceOwner string `protobuf:"bytes,17,opt,name=resource_owner,json=resourceOwner,proto3" json:"resource_owner,omitempty"` + DisplayName string `protobuf:"bytes,18,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + GrantId string `protobuf:"bytes,19,opt,name=grant_id,json=grantId,proto3" json:"grant_id,omitempty"` } -func (m *UserGrantView) Reset() { *m = UserGrantView{} } -func (m *UserGrantView) String() string { return proto.CompactTextString(m) } -func (*UserGrantView) ProtoMessage() {} +func (x *UserGrantView) Reset() { + *x = UserGrantView{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[143] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserGrantView) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserGrantView) ProtoMessage() {} + +func (x *UserGrantView) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[143] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserGrantView.ProtoReflect.Descriptor instead. func (*UserGrantView) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{143} + return file_management_proto_rawDescGZIP(), []int{143} } -func (m *UserGrantView) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserGrantView.Unmarshal(m, b) -} -func (m *UserGrantView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserGrantView.Marshal(b, m, deterministic) -} -func (m *UserGrantView) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserGrantView.Merge(m, src) -} -func (m *UserGrantView) XXX_Size() int { - return xxx_messageInfo_UserGrantView.Size(m) -} -func (m *UserGrantView) XXX_DiscardUnknown() { - xxx_messageInfo_UserGrantView.DiscardUnknown(m) -} - -var xxx_messageInfo_UserGrantView proto.InternalMessageInfo - -func (m *UserGrantView) GetId() string { - if m != nil { - return m.Id +func (x *UserGrantView) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *UserGrantView) GetUserId() string { - if m != nil { - return m.UserId +func (x *UserGrantView) GetUserId() string { + if x != nil { + return x.UserId } return "" } -func (m *UserGrantView) GetOrgId() string { - if m != nil { - return m.OrgId +func (x *UserGrantView) GetOrgId() string { + if x != nil { + return x.OrgId } return "" } -func (m *UserGrantView) GetProjectId() string { - if m != nil { - return m.ProjectId +func (x *UserGrantView) GetProjectId() string { + if x != nil { + return x.ProjectId } return "" } -func (m *UserGrantView) GetRoleKeys() []string { - if m != nil { - return m.RoleKeys +func (x *UserGrantView) GetRoleKeys() []string { + if x != nil { + return x.RoleKeys } return nil } -func (m *UserGrantView) GetState() UserGrantState { - if m != nil { - return m.State +func (x *UserGrantView) GetState() UserGrantState { + if x != nil { + return x.State } return UserGrantState_USERGRANTSTATE_UNSPECIFIED } -func (m *UserGrantView) GetCreationDate() *timestamp.Timestamp { - if m != nil { - return m.CreationDate +func (x *UserGrantView) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate } return nil } -func (m *UserGrantView) GetChangeDate() *timestamp.Timestamp { - if m != nil { - return m.ChangeDate +func (x *UserGrantView) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate } return nil } -func (m *UserGrantView) GetUserName() string { - if m != nil { - return m.UserName +func (x *UserGrantView) GetUserName() string { + if x != nil { + return x.UserName } return "" } -func (m *UserGrantView) GetFirstName() string { - if m != nil { - return m.FirstName +func (x *UserGrantView) GetFirstName() string { + if x != nil { + return x.FirstName } return "" } -func (m *UserGrantView) GetLastName() string { - if m != nil { - return m.LastName +func (x *UserGrantView) GetLastName() string { + if x != nil { + return x.LastName } return "" } -func (m *UserGrantView) GetEmail() string { - if m != nil { - return m.Email +func (x *UserGrantView) GetEmail() string { + if x != nil { + return x.Email } return "" } -func (m *UserGrantView) GetOrgName() string { - if m != nil { - return m.OrgName +func (x *UserGrantView) GetOrgName() string { + if x != nil { + return x.OrgName } return "" } -func (m *UserGrantView) GetOrgDomain() string { - if m != nil { - return m.OrgDomain +func (x *UserGrantView) GetOrgDomain() string { + if x != nil { + return x.OrgDomain } return "" } -func (m *UserGrantView) GetProjectName() string { - if m != nil { - return m.ProjectName +func (x *UserGrantView) GetProjectName() string { + if x != nil { + return x.ProjectName } return "" } -func (m *UserGrantView) GetSequence() uint64 { - if m != nil { - return m.Sequence +func (x *UserGrantView) GetSequence() uint64 { + if x != nil { + return x.Sequence } return 0 } -func (m *UserGrantView) GetResourceOwner() string { - if m != nil { - return m.ResourceOwner +func (x *UserGrantView) GetResourceOwner() string { + if x != nil { + return x.ResourceOwner } return "" } -func (m *UserGrantView) GetDisplayName() string { - if m != nil { - return m.DisplayName +func (x *UserGrantView) GetDisplayName() string { + if x != nil { + return x.DisplayName } return "" } -func (m *UserGrantView) GetGrantId() string { - if m != nil { - return m.GrantId +func (x *UserGrantView) GetGrantId() string { + if x != nil { + return x.GrantId } return "" } type UserGrantSearchResponse struct { - Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` - Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` - TotalResult uint64 `protobuf:"varint,3,opt,name=total_result,json=totalResult,proto3" json:"total_result,omitempty"` - Result []*UserGrantView `protobuf:"bytes,4,rep,name=result,proto3" json:"result,omitempty"` - ProcessedSequence uint64 `protobuf:"varint,5,opt,name=processed_sequence,json=processedSequence,proto3" json:"processed_sequence,omitempty"` - ViewTimestamp *timestamp.Timestamp `protobuf:"bytes,6,opt,name=view_timestamp,json=viewTimestamp,proto3" json:"view_timestamp,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` + Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` + TotalResult uint64 `protobuf:"varint,3,opt,name=total_result,json=totalResult,proto3" json:"total_result,omitempty"` + Result []*UserGrantView `protobuf:"bytes,4,rep,name=result,proto3" json:"result,omitempty"` + ProcessedSequence uint64 `protobuf:"varint,5,opt,name=processed_sequence,json=processedSequence,proto3" json:"processed_sequence,omitempty"` + ViewTimestamp *timestamp.Timestamp `protobuf:"bytes,6,opt,name=view_timestamp,json=viewTimestamp,proto3" json:"view_timestamp,omitempty"` } -func (m *UserGrantSearchResponse) Reset() { *m = UserGrantSearchResponse{} } -func (m *UserGrantSearchResponse) String() string { return proto.CompactTextString(m) } -func (*UserGrantSearchResponse) ProtoMessage() {} +func (x *UserGrantSearchResponse) Reset() { + *x = UserGrantSearchResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[144] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserGrantSearchResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserGrantSearchResponse) ProtoMessage() {} + +func (x *UserGrantSearchResponse) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[144] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserGrantSearchResponse.ProtoReflect.Descriptor instead. func (*UserGrantSearchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{144} + return file_management_proto_rawDescGZIP(), []int{144} } -func (m *UserGrantSearchResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserGrantSearchResponse.Unmarshal(m, b) -} -func (m *UserGrantSearchResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserGrantSearchResponse.Marshal(b, m, deterministic) -} -func (m *UserGrantSearchResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserGrantSearchResponse.Merge(m, src) -} -func (m *UserGrantSearchResponse) XXX_Size() int { - return xxx_messageInfo_UserGrantSearchResponse.Size(m) -} -func (m *UserGrantSearchResponse) XXX_DiscardUnknown() { - xxx_messageInfo_UserGrantSearchResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_UserGrantSearchResponse proto.InternalMessageInfo - -func (m *UserGrantSearchResponse) GetOffset() uint64 { - if m != nil { - return m.Offset +func (x *UserGrantSearchResponse) GetOffset() uint64 { + if x != nil { + return x.Offset } return 0 } -func (m *UserGrantSearchResponse) GetLimit() uint64 { - if m != nil { - return m.Limit +func (x *UserGrantSearchResponse) GetLimit() uint64 { + if x != nil { + return x.Limit } return 0 } -func (m *UserGrantSearchResponse) GetTotalResult() uint64 { - if m != nil { - return m.TotalResult +func (x *UserGrantSearchResponse) GetTotalResult() uint64 { + if x != nil { + return x.TotalResult } return 0 } -func (m *UserGrantSearchResponse) GetResult() []*UserGrantView { - if m != nil { - return m.Result +func (x *UserGrantSearchResponse) GetResult() []*UserGrantView { + if x != nil { + return x.Result } return nil } -func (m *UserGrantSearchResponse) GetProcessedSequence() uint64 { - if m != nil { - return m.ProcessedSequence +func (x *UserGrantSearchResponse) GetProcessedSequence() uint64 { + if x != nil { + return x.ProcessedSequence } return 0 } -func (m *UserGrantSearchResponse) GetViewTimestamp() *timestamp.Timestamp { - if m != nil { - return m.ViewTimestamp +func (x *UserGrantSearchResponse) GetViewTimestamp() *timestamp.Timestamp { + if x != nil { + return x.ViewTimestamp } return nil } type UserGrantSearchRequest struct { - Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` - Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` - Queries []*UserGrantSearchQuery `protobuf:"bytes,3,rep,name=queries,proto3" json:"queries,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` + Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` + Queries []*UserGrantSearchQuery `protobuf:"bytes,3,rep,name=queries,proto3" json:"queries,omitempty"` } -func (m *UserGrantSearchRequest) Reset() { *m = UserGrantSearchRequest{} } -func (m *UserGrantSearchRequest) String() string { return proto.CompactTextString(m) } -func (*UserGrantSearchRequest) ProtoMessage() {} +func (x *UserGrantSearchRequest) Reset() { + *x = UserGrantSearchRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[145] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserGrantSearchRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserGrantSearchRequest) ProtoMessage() {} + +func (x *UserGrantSearchRequest) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[145] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserGrantSearchRequest.ProtoReflect.Descriptor instead. func (*UserGrantSearchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{145} + return file_management_proto_rawDescGZIP(), []int{145} } -func (m *UserGrantSearchRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserGrantSearchRequest.Unmarshal(m, b) -} -func (m *UserGrantSearchRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserGrantSearchRequest.Marshal(b, m, deterministic) -} -func (m *UserGrantSearchRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserGrantSearchRequest.Merge(m, src) -} -func (m *UserGrantSearchRequest) XXX_Size() int { - return xxx_messageInfo_UserGrantSearchRequest.Size(m) -} -func (m *UserGrantSearchRequest) XXX_DiscardUnknown() { - xxx_messageInfo_UserGrantSearchRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_UserGrantSearchRequest proto.InternalMessageInfo - -func (m *UserGrantSearchRequest) GetOffset() uint64 { - if m != nil { - return m.Offset +func (x *UserGrantSearchRequest) GetOffset() uint64 { + if x != nil { + return x.Offset } return 0 } -func (m *UserGrantSearchRequest) GetLimit() uint64 { - if m != nil { - return m.Limit +func (x *UserGrantSearchRequest) GetLimit() uint64 { + if x != nil { + return x.Limit } return 0 } -func (m *UserGrantSearchRequest) GetQueries() []*UserGrantSearchQuery { - if m != nil { - return m.Queries +func (x *UserGrantSearchRequest) GetQueries() []*UserGrantSearchQuery { + if x != nil { + return x.Queries } return nil } type UserGrantSearchQuery struct { - Key UserGrantSearchKey `protobuf:"varint,1,opt,name=key,proto3,enum=caos.zitadel.management.api.v1.UserGrantSearchKey" json:"key,omitempty"` - Method SearchMethod `protobuf:"varint,2,opt,name=method,proto3,enum=caos.zitadel.management.api.v1.SearchMethod" json:"method,omitempty"` - Value string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Key UserGrantSearchKey `protobuf:"varint,1,opt,name=key,proto3,enum=caos.zitadel.management.api.v1.UserGrantSearchKey" json:"key,omitempty"` + Method SearchMethod `protobuf:"varint,2,opt,name=method,proto3,enum=caos.zitadel.management.api.v1.SearchMethod" json:"method,omitempty"` + Value string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` } -func (m *UserGrantSearchQuery) Reset() { *m = UserGrantSearchQuery{} } -func (m *UserGrantSearchQuery) String() string { return proto.CompactTextString(m) } -func (*UserGrantSearchQuery) ProtoMessage() {} +func (x *UserGrantSearchQuery) Reset() { + *x = UserGrantSearchQuery{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[146] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserGrantSearchQuery) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserGrantSearchQuery) ProtoMessage() {} + +func (x *UserGrantSearchQuery) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[146] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserGrantSearchQuery.ProtoReflect.Descriptor instead. func (*UserGrantSearchQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{146} + return file_management_proto_rawDescGZIP(), []int{146} } -func (m *UserGrantSearchQuery) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserGrantSearchQuery.Unmarshal(m, b) -} -func (m *UserGrantSearchQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserGrantSearchQuery.Marshal(b, m, deterministic) -} -func (m *UserGrantSearchQuery) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserGrantSearchQuery.Merge(m, src) -} -func (m *UserGrantSearchQuery) XXX_Size() int { - return xxx_messageInfo_UserGrantSearchQuery.Size(m) -} -func (m *UserGrantSearchQuery) XXX_DiscardUnknown() { - xxx_messageInfo_UserGrantSearchQuery.DiscardUnknown(m) -} - -var xxx_messageInfo_UserGrantSearchQuery proto.InternalMessageInfo - -func (m *UserGrantSearchQuery) GetKey() UserGrantSearchKey { - if m != nil { - return m.Key +func (x *UserGrantSearchQuery) GetKey() UserGrantSearchKey { + if x != nil { + return x.Key } return UserGrantSearchKey_USERGRANTSEARCHKEY_UNSPECIFIED } -func (m *UserGrantSearchQuery) GetMethod() SearchMethod { - if m != nil { - return m.Method +func (x *UserGrantSearchQuery) GetMethod() SearchMethod { + if x != nil { + return x.Method } return SearchMethod_SEARCHMETHOD_EQUALS } -func (m *UserGrantSearchQuery) GetValue() string { - if m != nil { - return m.Value +func (x *UserGrantSearchQuery) GetValue() string { + if x != nil { + return x.Value } return "" } type UserMembershipSearchResponse struct { - Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` - Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` - TotalResult uint64 `protobuf:"varint,3,opt,name=total_result,json=totalResult,proto3" json:"total_result,omitempty"` - Result []*UserMembershipView `protobuf:"bytes,4,rep,name=result,proto3" json:"result,omitempty"` - ProcessedSequence uint64 `protobuf:"varint,5,opt,name=processed_sequence,json=processedSequence,proto3" json:"processed_sequence,omitempty"` - ViewTimestamp *timestamp.Timestamp `protobuf:"bytes,6,opt,name=view_timestamp,json=viewTimestamp,proto3" json:"view_timestamp,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` + Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` + TotalResult uint64 `protobuf:"varint,3,opt,name=total_result,json=totalResult,proto3" json:"total_result,omitempty"` + Result []*UserMembershipView `protobuf:"bytes,4,rep,name=result,proto3" json:"result,omitempty"` + ProcessedSequence uint64 `protobuf:"varint,5,opt,name=processed_sequence,json=processedSequence,proto3" json:"processed_sequence,omitempty"` + ViewTimestamp *timestamp.Timestamp `protobuf:"bytes,6,opt,name=view_timestamp,json=viewTimestamp,proto3" json:"view_timestamp,omitempty"` } -func (m *UserMembershipSearchResponse) Reset() { *m = UserMembershipSearchResponse{} } -func (m *UserMembershipSearchResponse) String() string { return proto.CompactTextString(m) } -func (*UserMembershipSearchResponse) ProtoMessage() {} +func (x *UserMembershipSearchResponse) Reset() { + *x = UserMembershipSearchResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[147] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserMembershipSearchResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserMembershipSearchResponse) ProtoMessage() {} + +func (x *UserMembershipSearchResponse) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[147] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserMembershipSearchResponse.ProtoReflect.Descriptor instead. func (*UserMembershipSearchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{147} + return file_management_proto_rawDescGZIP(), []int{147} } -func (m *UserMembershipSearchResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserMembershipSearchResponse.Unmarshal(m, b) -} -func (m *UserMembershipSearchResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserMembershipSearchResponse.Marshal(b, m, deterministic) -} -func (m *UserMembershipSearchResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserMembershipSearchResponse.Merge(m, src) -} -func (m *UserMembershipSearchResponse) XXX_Size() int { - return xxx_messageInfo_UserMembershipSearchResponse.Size(m) -} -func (m *UserMembershipSearchResponse) XXX_DiscardUnknown() { - xxx_messageInfo_UserMembershipSearchResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_UserMembershipSearchResponse proto.InternalMessageInfo - -func (m *UserMembershipSearchResponse) GetOffset() uint64 { - if m != nil { - return m.Offset +func (x *UserMembershipSearchResponse) GetOffset() uint64 { + if x != nil { + return x.Offset } return 0 } -func (m *UserMembershipSearchResponse) GetLimit() uint64 { - if m != nil { - return m.Limit +func (x *UserMembershipSearchResponse) GetLimit() uint64 { + if x != nil { + return x.Limit } return 0 } -func (m *UserMembershipSearchResponse) GetTotalResult() uint64 { - if m != nil { - return m.TotalResult +func (x *UserMembershipSearchResponse) GetTotalResult() uint64 { + if x != nil { + return x.TotalResult } return 0 } -func (m *UserMembershipSearchResponse) GetResult() []*UserMembershipView { - if m != nil { - return m.Result +func (x *UserMembershipSearchResponse) GetResult() []*UserMembershipView { + if x != nil { + return x.Result } return nil } -func (m *UserMembershipSearchResponse) GetProcessedSequence() uint64 { - if m != nil { - return m.ProcessedSequence +func (x *UserMembershipSearchResponse) GetProcessedSequence() uint64 { + if x != nil { + return x.ProcessedSequence } return 0 } -func (m *UserMembershipSearchResponse) GetViewTimestamp() *timestamp.Timestamp { - if m != nil { - return m.ViewTimestamp +func (x *UserMembershipSearchResponse) GetViewTimestamp() *timestamp.Timestamp { + if x != nil { + return x.ViewTimestamp } return nil } type UserMembershipSearchRequest struct { - UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` - Offset uint64 `protobuf:"varint,2,opt,name=offset,proto3" json:"offset,omitempty"` - Limit uint64 `protobuf:"varint,3,opt,name=limit,proto3" json:"limit,omitempty"` - Queries []*UserMembershipSearchQuery `protobuf:"bytes,4,rep,name=queries,proto3" json:"queries,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + Offset uint64 `protobuf:"varint,2,opt,name=offset,proto3" json:"offset,omitempty"` + Limit uint64 `protobuf:"varint,3,opt,name=limit,proto3" json:"limit,omitempty"` + Queries []*UserMembershipSearchQuery `protobuf:"bytes,4,rep,name=queries,proto3" json:"queries,omitempty"` } -func (m *UserMembershipSearchRequest) Reset() { *m = UserMembershipSearchRequest{} } -func (m *UserMembershipSearchRequest) String() string { return proto.CompactTextString(m) } -func (*UserMembershipSearchRequest) ProtoMessage() {} +func (x *UserMembershipSearchRequest) Reset() { + *x = UserMembershipSearchRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[148] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserMembershipSearchRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserMembershipSearchRequest) ProtoMessage() {} + +func (x *UserMembershipSearchRequest) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[148] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserMembershipSearchRequest.ProtoReflect.Descriptor instead. func (*UserMembershipSearchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{148} + return file_management_proto_rawDescGZIP(), []int{148} } -func (m *UserMembershipSearchRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserMembershipSearchRequest.Unmarshal(m, b) -} -func (m *UserMembershipSearchRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserMembershipSearchRequest.Marshal(b, m, deterministic) -} -func (m *UserMembershipSearchRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserMembershipSearchRequest.Merge(m, src) -} -func (m *UserMembershipSearchRequest) XXX_Size() int { - return xxx_messageInfo_UserMembershipSearchRequest.Size(m) -} -func (m *UserMembershipSearchRequest) XXX_DiscardUnknown() { - xxx_messageInfo_UserMembershipSearchRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_UserMembershipSearchRequest proto.InternalMessageInfo - -func (m *UserMembershipSearchRequest) GetUserId() string { - if m != nil { - return m.UserId +func (x *UserMembershipSearchRequest) GetUserId() string { + if x != nil { + return x.UserId } return "" } -func (m *UserMembershipSearchRequest) GetOffset() uint64 { - if m != nil { - return m.Offset +func (x *UserMembershipSearchRequest) GetOffset() uint64 { + if x != nil { + return x.Offset } return 0 } -func (m *UserMembershipSearchRequest) GetLimit() uint64 { - if m != nil { - return m.Limit +func (x *UserMembershipSearchRequest) GetLimit() uint64 { + if x != nil { + return x.Limit } return 0 } -func (m *UserMembershipSearchRequest) GetQueries() []*UserMembershipSearchQuery { - if m != nil { - return m.Queries +func (x *UserMembershipSearchRequest) GetQueries() []*UserMembershipSearchQuery { + if x != nil { + return x.Queries } return nil } type UserMembershipSearchQuery struct { - Key UserMembershipSearchKey `protobuf:"varint,1,opt,name=key,proto3,enum=caos.zitadel.management.api.v1.UserMembershipSearchKey" json:"key,omitempty"` - Method SearchMethod `protobuf:"varint,2,opt,name=method,proto3,enum=caos.zitadel.management.api.v1.SearchMethod" json:"method,omitempty"` - Value string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Key UserMembershipSearchKey `protobuf:"varint,1,opt,name=key,proto3,enum=caos.zitadel.management.api.v1.UserMembershipSearchKey" json:"key,omitempty"` + Method SearchMethod `protobuf:"varint,2,opt,name=method,proto3,enum=caos.zitadel.management.api.v1.SearchMethod" json:"method,omitempty"` + Value string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` } -func (m *UserMembershipSearchQuery) Reset() { *m = UserMembershipSearchQuery{} } -func (m *UserMembershipSearchQuery) String() string { return proto.CompactTextString(m) } -func (*UserMembershipSearchQuery) ProtoMessage() {} +func (x *UserMembershipSearchQuery) Reset() { + *x = UserMembershipSearchQuery{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[149] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserMembershipSearchQuery) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserMembershipSearchQuery) ProtoMessage() {} + +func (x *UserMembershipSearchQuery) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[149] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserMembershipSearchQuery.ProtoReflect.Descriptor instead. func (*UserMembershipSearchQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{149} + return file_management_proto_rawDescGZIP(), []int{149} } -func (m *UserMembershipSearchQuery) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserMembershipSearchQuery.Unmarshal(m, b) -} -func (m *UserMembershipSearchQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserMembershipSearchQuery.Marshal(b, m, deterministic) -} -func (m *UserMembershipSearchQuery) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserMembershipSearchQuery.Merge(m, src) -} -func (m *UserMembershipSearchQuery) XXX_Size() int { - return xxx_messageInfo_UserMembershipSearchQuery.Size(m) -} -func (m *UserMembershipSearchQuery) XXX_DiscardUnknown() { - xxx_messageInfo_UserMembershipSearchQuery.DiscardUnknown(m) -} - -var xxx_messageInfo_UserMembershipSearchQuery proto.InternalMessageInfo - -func (m *UserMembershipSearchQuery) GetKey() UserMembershipSearchKey { - if m != nil { - return m.Key +func (x *UserMembershipSearchQuery) GetKey() UserMembershipSearchKey { + if x != nil { + return x.Key } return UserMembershipSearchKey_USERMEMBERSHIPSEARCHKEY_UNSPECIFIED } -func (m *UserMembershipSearchQuery) GetMethod() SearchMethod { - if m != nil { - return m.Method +func (x *UserMembershipSearchQuery) GetMethod() SearchMethod { + if x != nil { + return x.Method } return SearchMethod_SEARCHMETHOD_EQUALS } -func (m *UserMembershipSearchQuery) GetValue() string { - if m != nil { - return m.Value +func (x *UserMembershipSearchQuery) GetValue() string { + if x != nil { + return x.Value } return "" } type UserMembershipView struct { - UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` - MemberType MemberType `protobuf:"varint,2,opt,name=member_type,json=memberType,proto3,enum=caos.zitadel.management.api.v1.MemberType" json:"member_type,omitempty"` - AggregateId string `protobuf:"bytes,3,opt,name=aggregate_id,json=aggregateId,proto3" json:"aggregate_id,omitempty"` - ObjectId string `protobuf:"bytes,4,opt,name=object_id,json=objectId,proto3" json:"object_id,omitempty"` - Roles []string `protobuf:"bytes,5,rep,name=roles,proto3" json:"roles,omitempty"` - DisplayName string `protobuf:"bytes,6,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` - CreationDate *timestamp.Timestamp `protobuf:"bytes,7,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` - ChangeDate *timestamp.Timestamp `protobuf:"bytes,8,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` - Sequence uint64 `protobuf:"varint,9,opt,name=sequence,proto3" json:"sequence,omitempty"` - ResourceOwner string `protobuf:"bytes,10,opt,name=resource_owner,json=resourceOwner,proto3" json:"resource_owner,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + MemberType MemberType `protobuf:"varint,2,opt,name=member_type,json=memberType,proto3,enum=caos.zitadel.management.api.v1.MemberType" json:"member_type,omitempty"` + AggregateId string `protobuf:"bytes,3,opt,name=aggregate_id,json=aggregateId,proto3" json:"aggregate_id,omitempty"` + ObjectId string `protobuf:"bytes,4,opt,name=object_id,json=objectId,proto3" json:"object_id,omitempty"` + Roles []string `protobuf:"bytes,5,rep,name=roles,proto3" json:"roles,omitempty"` + DisplayName string `protobuf:"bytes,6,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,7,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + ChangeDate *timestamp.Timestamp `protobuf:"bytes,8,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` + Sequence uint64 `protobuf:"varint,9,opt,name=sequence,proto3" json:"sequence,omitempty"` + ResourceOwner string `protobuf:"bytes,10,opt,name=resource_owner,json=resourceOwner,proto3" json:"resource_owner,omitempty"` } -func (m *UserMembershipView) Reset() { *m = UserMembershipView{} } -func (m *UserMembershipView) String() string { return proto.CompactTextString(m) } -func (*UserMembershipView) ProtoMessage() {} +func (x *UserMembershipView) Reset() { + *x = UserMembershipView{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[150] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserMembershipView) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserMembershipView) ProtoMessage() {} + +func (x *UserMembershipView) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[150] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserMembershipView.ProtoReflect.Descriptor instead. func (*UserMembershipView) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{150} + return file_management_proto_rawDescGZIP(), []int{150} } -func (m *UserMembershipView) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserMembershipView.Unmarshal(m, b) -} -func (m *UserMembershipView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserMembershipView.Marshal(b, m, deterministic) -} -func (m *UserMembershipView) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserMembershipView.Merge(m, src) -} -func (m *UserMembershipView) XXX_Size() int { - return xxx_messageInfo_UserMembershipView.Size(m) -} -func (m *UserMembershipView) XXX_DiscardUnknown() { - xxx_messageInfo_UserMembershipView.DiscardUnknown(m) -} - -var xxx_messageInfo_UserMembershipView proto.InternalMessageInfo - -func (m *UserMembershipView) GetUserId() string { - if m != nil { - return m.UserId +func (x *UserMembershipView) GetUserId() string { + if x != nil { + return x.UserId } return "" } -func (m *UserMembershipView) GetMemberType() MemberType { - if m != nil { - return m.MemberType +func (x *UserMembershipView) GetMemberType() MemberType { + if x != nil { + return x.MemberType } return MemberType_MEMBERTYPE_UNSPECIFIED } -func (m *UserMembershipView) GetAggregateId() string { - if m != nil { - return m.AggregateId +func (x *UserMembershipView) GetAggregateId() string { + if x != nil { + return x.AggregateId } return "" } -func (m *UserMembershipView) GetObjectId() string { - if m != nil { - return m.ObjectId +func (x *UserMembershipView) GetObjectId() string { + if x != nil { + return x.ObjectId } return "" } -func (m *UserMembershipView) GetRoles() []string { - if m != nil { - return m.Roles +func (x *UserMembershipView) GetRoles() []string { + if x != nil { + return x.Roles } return nil } -func (m *UserMembershipView) GetDisplayName() string { - if m != nil { - return m.DisplayName +func (x *UserMembershipView) GetDisplayName() string { + if x != nil { + return x.DisplayName } return "" } -func (m *UserMembershipView) GetCreationDate() *timestamp.Timestamp { - if m != nil { - return m.CreationDate +func (x *UserMembershipView) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate } return nil } -func (m *UserMembershipView) GetChangeDate() *timestamp.Timestamp { - if m != nil { - return m.ChangeDate +func (x *UserMembershipView) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate } return nil } -func (m *UserMembershipView) GetSequence() uint64 { - if m != nil { - return m.Sequence +func (x *UserMembershipView) GetSequence() uint64 { + if x != nil { + return x.Sequence } return 0 } -func (m *UserMembershipView) GetResourceOwner() string { - if m != nil { - return m.ResourceOwner +func (x *UserMembershipView) GetResourceOwner() string { + if x != nil { + return x.ResourceOwner } return "" } type IdpID struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` } -func (m *IdpID) Reset() { *m = IdpID{} } -func (m *IdpID) String() string { return proto.CompactTextString(m) } -func (*IdpID) ProtoMessage() {} +func (x *IdpID) Reset() { + *x = IdpID{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[151] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IdpID) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IdpID) ProtoMessage() {} + +func (x *IdpID) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[151] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IdpID.ProtoReflect.Descriptor instead. func (*IdpID) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{151} + return file_management_proto_rawDescGZIP(), []int{151} } -func (m *IdpID) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_IdpID.Unmarshal(m, b) -} -func (m *IdpID) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_IdpID.Marshal(b, m, deterministic) -} -func (m *IdpID) XXX_Merge(src proto.Message) { - xxx_messageInfo_IdpID.Merge(m, src) -} -func (m *IdpID) XXX_Size() int { - return xxx_messageInfo_IdpID.Size(m) -} -func (m *IdpID) XXX_DiscardUnknown() { - xxx_messageInfo_IdpID.DiscardUnknown(m) -} - -var xxx_messageInfo_IdpID proto.InternalMessageInfo - -func (m *IdpID) GetId() string { - if m != nil { - return m.Id +func (x *IdpID) GetId() string { + if x != nil { + return x.Id } return "" } type Idp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` State IdpState `protobuf:"varint,2,opt,name=state,proto3,enum=caos.zitadel.management.api.v1.IdpState" json:"state,omitempty"` CreationDate *timestamp.Timestamp `protobuf:"bytes,3,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` ChangeDate *timestamp.Timestamp `protobuf:"bytes,4,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"` LogoSrc []byte `protobuf:"bytes,6,opt,name=logo_src,json=logoSrc,proto3" json:"logo_src,omitempty"` - // Types that are valid to be assigned to IdpConfig: + // Types that are assignable to IdpConfig: // *Idp_OidcConfig - IdpConfig isIdp_IdpConfig `protobuf_oneof:"idp_config"` - Sequence uint64 `protobuf:"varint,8,opt,name=sequence,proto3" json:"sequence,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + IdpConfig isIdp_IdpConfig `protobuf_oneof:"idp_config"` + Sequence uint64 `protobuf:"varint,8,opt,name=sequence,proto3" json:"sequence,omitempty"` } -func (m *Idp) Reset() { *m = Idp{} } -func (m *Idp) String() string { return proto.CompactTextString(m) } -func (*Idp) ProtoMessage() {} +func (x *Idp) Reset() { + *x = Idp{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[152] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Idp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Idp) ProtoMessage() {} + +func (x *Idp) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[152] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Idp.ProtoReflect.Descriptor instead. func (*Idp) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{152} + return file_management_proto_rawDescGZIP(), []int{152} } -func (m *Idp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Idp.Unmarshal(m, b) -} -func (m *Idp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Idp.Marshal(b, m, deterministic) -} -func (m *Idp) XXX_Merge(src proto.Message) { - xxx_messageInfo_Idp.Merge(m, src) -} -func (m *Idp) XXX_Size() int { - return xxx_messageInfo_Idp.Size(m) -} -func (m *Idp) XXX_DiscardUnknown() { - xxx_messageInfo_Idp.DiscardUnknown(m) -} - -var xxx_messageInfo_Idp proto.InternalMessageInfo - -func (m *Idp) GetId() string { - if m != nil { - return m.Id +func (x *Idp) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *Idp) GetState() IdpState { - if m != nil { - return m.State +func (x *Idp) GetState() IdpState { + if x != nil { + return x.State } return IdpState_IDPCONFIGSTATE_UNSPECIFIED } -func (m *Idp) GetCreationDate() *timestamp.Timestamp { - if m != nil { - return m.CreationDate +func (x *Idp) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate } return nil } -func (m *Idp) GetChangeDate() *timestamp.Timestamp { - if m != nil { - return m.ChangeDate +func (x *Idp) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate } return nil } -func (m *Idp) GetName() string { - if m != nil { - return m.Name +func (x *Idp) GetName() string { + if x != nil { + return x.Name } return "" } -func (m *Idp) GetLogoSrc() []byte { - if m != nil { - return m.LogoSrc +func (x *Idp) GetLogoSrc() []byte { + if x != nil { + return x.LogoSrc } return nil } +func (m *Idp) GetIdpConfig() isIdp_IdpConfig { + if m != nil { + return m.IdpConfig + } + return nil +} + +func (x *Idp) GetOidcConfig() *OidcIdpConfig { + if x, ok := x.GetIdpConfig().(*Idp_OidcConfig); ok { + return x.OidcConfig + } + return nil +} + +func (x *Idp) GetSequence() uint64 { + if x != nil { + return x.Sequence + } + return 0 +} + type isIdp_IdpConfig interface { isIdp_IdpConfig() } @@ -11750,382 +13767,446 @@ type Idp_OidcConfig struct { func (*Idp_OidcConfig) isIdp_IdpConfig() {} -func (m *Idp) GetIdpConfig() isIdp_IdpConfig { - if m != nil { - return m.IdpConfig - } - return nil -} - -func (m *Idp) GetOidcConfig() *OidcIdpConfig { - if x, ok := m.GetIdpConfig().(*Idp_OidcConfig); ok { - return x.OidcConfig - } - return nil -} - -func (m *Idp) GetSequence() uint64 { - if m != nil { - return m.Sequence - } - return 0 -} - -// XXX_OneofWrappers is for the internal use of the proto package. -func (*Idp) XXX_OneofWrappers() []interface{} { - return []interface{}{ - (*Idp_OidcConfig)(nil), - } -} - type IdpUpdate struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - LogoSrc []byte `protobuf:"bytes,3,opt,name=logo_src,json=logoSrc,proto3" json:"logo_src,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + LogoSrc []byte `protobuf:"bytes,3,opt,name=logo_src,json=logoSrc,proto3" json:"logo_src,omitempty"` } -func (m *IdpUpdate) Reset() { *m = IdpUpdate{} } -func (m *IdpUpdate) String() string { return proto.CompactTextString(m) } -func (*IdpUpdate) ProtoMessage() {} +func (x *IdpUpdate) Reset() { + *x = IdpUpdate{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[153] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IdpUpdate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IdpUpdate) ProtoMessage() {} + +func (x *IdpUpdate) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[153] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IdpUpdate.ProtoReflect.Descriptor instead. func (*IdpUpdate) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{153} + return file_management_proto_rawDescGZIP(), []int{153} } -func (m *IdpUpdate) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_IdpUpdate.Unmarshal(m, b) -} -func (m *IdpUpdate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_IdpUpdate.Marshal(b, m, deterministic) -} -func (m *IdpUpdate) XXX_Merge(src proto.Message) { - xxx_messageInfo_IdpUpdate.Merge(m, src) -} -func (m *IdpUpdate) XXX_Size() int { - return xxx_messageInfo_IdpUpdate.Size(m) -} -func (m *IdpUpdate) XXX_DiscardUnknown() { - xxx_messageInfo_IdpUpdate.DiscardUnknown(m) -} - -var xxx_messageInfo_IdpUpdate proto.InternalMessageInfo - -func (m *IdpUpdate) GetId() string { - if m != nil { - return m.Id +func (x *IdpUpdate) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *IdpUpdate) GetName() string { - if m != nil { - return m.Name +func (x *IdpUpdate) GetName() string { + if x != nil { + return x.Name } return "" } -func (m *IdpUpdate) GetLogoSrc() []byte { - if m != nil { - return m.LogoSrc +func (x *IdpUpdate) GetLogoSrc() []byte { + if x != nil { + return x.LogoSrc } return nil } type OidcIdpConfig struct { - ClientId string `protobuf:"bytes,1,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` - ClientSecret string `protobuf:"bytes,2,opt,name=client_secret,json=clientSecret,proto3" json:"client_secret,omitempty"` - Issuer string `protobuf:"bytes,3,opt,name=issuer,proto3" json:"issuer,omitempty"` - Scopes []string `protobuf:"bytes,4,rep,name=scopes,proto3" json:"scopes,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ClientId string `protobuf:"bytes,1,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` + ClientSecret string `protobuf:"bytes,2,opt,name=client_secret,json=clientSecret,proto3" json:"client_secret,omitempty"` + Issuer string `protobuf:"bytes,3,opt,name=issuer,proto3" json:"issuer,omitempty"` + Scopes []string `protobuf:"bytes,4,rep,name=scopes,proto3" json:"scopes,omitempty"` + IdpDisplayNameMapping OIDCMappingField `protobuf:"varint,5,opt,name=idp_display_name_mapping,json=idpDisplayNameMapping,proto3,enum=caos.zitadel.management.api.v1.OIDCMappingField" json:"idp_display_name_mapping,omitempty"` + UsernameMapping OIDCMappingField `protobuf:"varint,6,opt,name=username_mapping,json=usernameMapping,proto3,enum=caos.zitadel.management.api.v1.OIDCMappingField" json:"username_mapping,omitempty"` } -func (m *OidcIdpConfig) Reset() { *m = OidcIdpConfig{} } -func (m *OidcIdpConfig) String() string { return proto.CompactTextString(m) } -func (*OidcIdpConfig) ProtoMessage() {} +func (x *OidcIdpConfig) Reset() { + *x = OidcIdpConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[154] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OidcIdpConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OidcIdpConfig) ProtoMessage() {} + +func (x *OidcIdpConfig) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[154] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OidcIdpConfig.ProtoReflect.Descriptor instead. func (*OidcIdpConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{154} + return file_management_proto_rawDescGZIP(), []int{154} } -func (m *OidcIdpConfig) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_OidcIdpConfig.Unmarshal(m, b) -} -func (m *OidcIdpConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_OidcIdpConfig.Marshal(b, m, deterministic) -} -func (m *OidcIdpConfig) XXX_Merge(src proto.Message) { - xxx_messageInfo_OidcIdpConfig.Merge(m, src) -} -func (m *OidcIdpConfig) XXX_Size() int { - return xxx_messageInfo_OidcIdpConfig.Size(m) -} -func (m *OidcIdpConfig) XXX_DiscardUnknown() { - xxx_messageInfo_OidcIdpConfig.DiscardUnknown(m) -} - -var xxx_messageInfo_OidcIdpConfig proto.InternalMessageInfo - -func (m *OidcIdpConfig) GetClientId() string { - if m != nil { - return m.ClientId +func (x *OidcIdpConfig) GetClientId() string { + if x != nil { + return x.ClientId } return "" } -func (m *OidcIdpConfig) GetClientSecret() string { - if m != nil { - return m.ClientSecret +func (x *OidcIdpConfig) GetClientSecret() string { + if x != nil { + return x.ClientSecret } return "" } -func (m *OidcIdpConfig) GetIssuer() string { - if m != nil { - return m.Issuer +func (x *OidcIdpConfig) GetIssuer() string { + if x != nil { + return x.Issuer } return "" } -func (m *OidcIdpConfig) GetScopes() []string { - if m != nil { - return m.Scopes +func (x *OidcIdpConfig) GetScopes() []string { + if x != nil { + return x.Scopes } return nil } +func (x *OidcIdpConfig) GetIdpDisplayNameMapping() OIDCMappingField { + if x != nil { + return x.IdpDisplayNameMapping + } + return OIDCMappingField_OIDCMAPPINGFIELD_UNSPECIFIED +} + +func (x *OidcIdpConfig) GetUsernameMapping() OIDCMappingField { + if x != nil { + return x.UsernameMapping + } + return OIDCMappingField_OIDCMAPPINGFIELD_UNSPECIFIED +} + type OidcIdpConfigCreate struct { - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - LogoSrc []byte `protobuf:"bytes,2,opt,name=logo_src,json=logoSrc,proto3" json:"logo_src,omitempty"` - ClientId string `protobuf:"bytes,3,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` - ClientSecret string `protobuf:"bytes,4,opt,name=client_secret,json=clientSecret,proto3" json:"client_secret,omitempty"` - Issuer string `protobuf:"bytes,5,opt,name=issuer,proto3" json:"issuer,omitempty"` - Scopes []string `protobuf:"bytes,6,rep,name=scopes,proto3" json:"scopes,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + LogoSrc []byte `protobuf:"bytes,2,opt,name=logo_src,json=logoSrc,proto3" json:"logo_src,omitempty"` + ClientId string `protobuf:"bytes,3,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` + ClientSecret string `protobuf:"bytes,4,opt,name=client_secret,json=clientSecret,proto3" json:"client_secret,omitempty"` + Issuer string `protobuf:"bytes,5,opt,name=issuer,proto3" json:"issuer,omitempty"` + Scopes []string `protobuf:"bytes,6,rep,name=scopes,proto3" json:"scopes,omitempty"` + IdpDisplayNameMapping OIDCMappingField `protobuf:"varint,7,opt,name=idp_display_name_mapping,json=idpDisplayNameMapping,proto3,enum=caos.zitadel.management.api.v1.OIDCMappingField" json:"idp_display_name_mapping,omitempty"` + UsernameMapping OIDCMappingField `protobuf:"varint,8,opt,name=username_mapping,json=usernameMapping,proto3,enum=caos.zitadel.management.api.v1.OIDCMappingField" json:"username_mapping,omitempty"` } -func (m *OidcIdpConfigCreate) Reset() { *m = OidcIdpConfigCreate{} } -func (m *OidcIdpConfigCreate) String() string { return proto.CompactTextString(m) } -func (*OidcIdpConfigCreate) ProtoMessage() {} +func (x *OidcIdpConfigCreate) Reset() { + *x = OidcIdpConfigCreate{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[155] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OidcIdpConfigCreate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OidcIdpConfigCreate) ProtoMessage() {} + +func (x *OidcIdpConfigCreate) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[155] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OidcIdpConfigCreate.ProtoReflect.Descriptor instead. func (*OidcIdpConfigCreate) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{155} + return file_management_proto_rawDescGZIP(), []int{155} } -func (m *OidcIdpConfigCreate) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_OidcIdpConfigCreate.Unmarshal(m, b) -} -func (m *OidcIdpConfigCreate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_OidcIdpConfigCreate.Marshal(b, m, deterministic) -} -func (m *OidcIdpConfigCreate) XXX_Merge(src proto.Message) { - xxx_messageInfo_OidcIdpConfigCreate.Merge(m, src) -} -func (m *OidcIdpConfigCreate) XXX_Size() int { - return xxx_messageInfo_OidcIdpConfigCreate.Size(m) -} -func (m *OidcIdpConfigCreate) XXX_DiscardUnknown() { - xxx_messageInfo_OidcIdpConfigCreate.DiscardUnknown(m) -} - -var xxx_messageInfo_OidcIdpConfigCreate proto.InternalMessageInfo - -func (m *OidcIdpConfigCreate) GetName() string { - if m != nil { - return m.Name +func (x *OidcIdpConfigCreate) GetName() string { + if x != nil { + return x.Name } return "" } -func (m *OidcIdpConfigCreate) GetLogoSrc() []byte { - if m != nil { - return m.LogoSrc +func (x *OidcIdpConfigCreate) GetLogoSrc() []byte { + if x != nil { + return x.LogoSrc } return nil } -func (m *OidcIdpConfigCreate) GetClientId() string { - if m != nil { - return m.ClientId +func (x *OidcIdpConfigCreate) GetClientId() string { + if x != nil { + return x.ClientId } return "" } -func (m *OidcIdpConfigCreate) GetClientSecret() string { - if m != nil { - return m.ClientSecret +func (x *OidcIdpConfigCreate) GetClientSecret() string { + if x != nil { + return x.ClientSecret } return "" } -func (m *OidcIdpConfigCreate) GetIssuer() string { - if m != nil { - return m.Issuer +func (x *OidcIdpConfigCreate) GetIssuer() string { + if x != nil { + return x.Issuer } return "" } -func (m *OidcIdpConfigCreate) GetScopes() []string { - if m != nil { - return m.Scopes +func (x *OidcIdpConfigCreate) GetScopes() []string { + if x != nil { + return x.Scopes } return nil } +func (x *OidcIdpConfigCreate) GetIdpDisplayNameMapping() OIDCMappingField { + if x != nil { + return x.IdpDisplayNameMapping + } + return OIDCMappingField_OIDCMAPPINGFIELD_UNSPECIFIED +} + +func (x *OidcIdpConfigCreate) GetUsernameMapping() OIDCMappingField { + if x != nil { + return x.UsernameMapping + } + return OIDCMappingField_OIDCMAPPINGFIELD_UNSPECIFIED +} + type OidcIdpConfigUpdate struct { - IdpId string `protobuf:"bytes,1,opt,name=idp_id,json=idpId,proto3" json:"idp_id,omitempty"` - ClientId string `protobuf:"bytes,2,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` - ClientSecret string `protobuf:"bytes,3,opt,name=client_secret,json=clientSecret,proto3" json:"client_secret,omitempty"` - Issuer string `protobuf:"bytes,4,opt,name=issuer,proto3" json:"issuer,omitempty"` - Scopes []string `protobuf:"bytes,5,rep,name=scopes,proto3" json:"scopes,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + IdpId string `protobuf:"bytes,1,opt,name=idp_id,json=idpId,proto3" json:"idp_id,omitempty"` + ClientId string `protobuf:"bytes,2,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` + ClientSecret string `protobuf:"bytes,3,opt,name=client_secret,json=clientSecret,proto3" json:"client_secret,omitempty"` + Issuer string `protobuf:"bytes,4,opt,name=issuer,proto3" json:"issuer,omitempty"` + Scopes []string `protobuf:"bytes,5,rep,name=scopes,proto3" json:"scopes,omitempty"` + IdpDisplayNameMapping OIDCMappingField `protobuf:"varint,6,opt,name=idp_display_name_mapping,json=idpDisplayNameMapping,proto3,enum=caos.zitadel.management.api.v1.OIDCMappingField" json:"idp_display_name_mapping,omitempty"` + UsernameMapping OIDCMappingField `protobuf:"varint,7,opt,name=username_mapping,json=usernameMapping,proto3,enum=caos.zitadel.management.api.v1.OIDCMappingField" json:"username_mapping,omitempty"` } -func (m *OidcIdpConfigUpdate) Reset() { *m = OidcIdpConfigUpdate{} } -func (m *OidcIdpConfigUpdate) String() string { return proto.CompactTextString(m) } -func (*OidcIdpConfigUpdate) ProtoMessage() {} +func (x *OidcIdpConfigUpdate) Reset() { + *x = OidcIdpConfigUpdate{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[156] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OidcIdpConfigUpdate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OidcIdpConfigUpdate) ProtoMessage() {} + +func (x *OidcIdpConfigUpdate) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[156] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OidcIdpConfigUpdate.ProtoReflect.Descriptor instead. func (*OidcIdpConfigUpdate) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{156} + return file_management_proto_rawDescGZIP(), []int{156} } -func (m *OidcIdpConfigUpdate) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_OidcIdpConfigUpdate.Unmarshal(m, b) -} -func (m *OidcIdpConfigUpdate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_OidcIdpConfigUpdate.Marshal(b, m, deterministic) -} -func (m *OidcIdpConfigUpdate) XXX_Merge(src proto.Message) { - xxx_messageInfo_OidcIdpConfigUpdate.Merge(m, src) -} -func (m *OidcIdpConfigUpdate) XXX_Size() int { - return xxx_messageInfo_OidcIdpConfigUpdate.Size(m) -} -func (m *OidcIdpConfigUpdate) XXX_DiscardUnknown() { - xxx_messageInfo_OidcIdpConfigUpdate.DiscardUnknown(m) -} - -var xxx_messageInfo_OidcIdpConfigUpdate proto.InternalMessageInfo - -func (m *OidcIdpConfigUpdate) GetIdpId() string { - if m != nil { - return m.IdpId +func (x *OidcIdpConfigUpdate) GetIdpId() string { + if x != nil { + return x.IdpId } return "" } -func (m *OidcIdpConfigUpdate) GetClientId() string { - if m != nil { - return m.ClientId +func (x *OidcIdpConfigUpdate) GetClientId() string { + if x != nil { + return x.ClientId } return "" } -func (m *OidcIdpConfigUpdate) GetClientSecret() string { - if m != nil { - return m.ClientSecret +func (x *OidcIdpConfigUpdate) GetClientSecret() string { + if x != nil { + return x.ClientSecret } return "" } -func (m *OidcIdpConfigUpdate) GetIssuer() string { - if m != nil { - return m.Issuer +func (x *OidcIdpConfigUpdate) GetIssuer() string { + if x != nil { + return x.Issuer } return "" } -func (m *OidcIdpConfigUpdate) GetScopes() []string { - if m != nil { - return m.Scopes +func (x *OidcIdpConfigUpdate) GetScopes() []string { + if x != nil { + return x.Scopes } return nil } +func (x *OidcIdpConfigUpdate) GetIdpDisplayNameMapping() OIDCMappingField { + if x != nil { + return x.IdpDisplayNameMapping + } + return OIDCMappingField_OIDCMAPPINGFIELD_UNSPECIFIED +} + +func (x *OidcIdpConfigUpdate) GetUsernameMapping() OIDCMappingField { + if x != nil { + return x.UsernameMapping + } + return OIDCMappingField_OIDCMAPPINGFIELD_UNSPECIFIED +} + type IdpSearchResponse struct { - Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` - Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` - TotalResult uint64 `protobuf:"varint,3,opt,name=total_result,json=totalResult,proto3" json:"total_result,omitempty"` - Result []*IdpView `protobuf:"bytes,4,rep,name=result,proto3" json:"result,omitempty"` - ProcessedSequence uint64 `protobuf:"varint,5,opt,name=processed_sequence,json=processedSequence,proto3" json:"processed_sequence,omitempty"` - ViewTimestamp *timestamp.Timestamp `protobuf:"bytes,6,opt,name=view_timestamp,json=viewTimestamp,proto3" json:"view_timestamp,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` + Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` + TotalResult uint64 `protobuf:"varint,3,opt,name=total_result,json=totalResult,proto3" json:"total_result,omitempty"` + Result []*IdpView `protobuf:"bytes,4,rep,name=result,proto3" json:"result,omitempty"` + ProcessedSequence uint64 `protobuf:"varint,5,opt,name=processed_sequence,json=processedSequence,proto3" json:"processed_sequence,omitempty"` + ViewTimestamp *timestamp.Timestamp `protobuf:"bytes,6,opt,name=view_timestamp,json=viewTimestamp,proto3" json:"view_timestamp,omitempty"` } -func (m *IdpSearchResponse) Reset() { *m = IdpSearchResponse{} } -func (m *IdpSearchResponse) String() string { return proto.CompactTextString(m) } -func (*IdpSearchResponse) ProtoMessage() {} +func (x *IdpSearchResponse) Reset() { + *x = IdpSearchResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[157] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IdpSearchResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IdpSearchResponse) ProtoMessage() {} + +func (x *IdpSearchResponse) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[157] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IdpSearchResponse.ProtoReflect.Descriptor instead. func (*IdpSearchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{157} + return file_management_proto_rawDescGZIP(), []int{157} } -func (m *IdpSearchResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_IdpSearchResponse.Unmarshal(m, b) -} -func (m *IdpSearchResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_IdpSearchResponse.Marshal(b, m, deterministic) -} -func (m *IdpSearchResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_IdpSearchResponse.Merge(m, src) -} -func (m *IdpSearchResponse) XXX_Size() int { - return xxx_messageInfo_IdpSearchResponse.Size(m) -} -func (m *IdpSearchResponse) XXX_DiscardUnknown() { - xxx_messageInfo_IdpSearchResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_IdpSearchResponse proto.InternalMessageInfo - -func (m *IdpSearchResponse) GetOffset() uint64 { - if m != nil { - return m.Offset +func (x *IdpSearchResponse) GetOffset() uint64 { + if x != nil { + return x.Offset } return 0 } -func (m *IdpSearchResponse) GetLimit() uint64 { - if m != nil { - return m.Limit +func (x *IdpSearchResponse) GetLimit() uint64 { + if x != nil { + return x.Limit } return 0 } -func (m *IdpSearchResponse) GetTotalResult() uint64 { - if m != nil { - return m.TotalResult +func (x *IdpSearchResponse) GetTotalResult() uint64 { + if x != nil { + return x.TotalResult } return 0 } -func (m *IdpSearchResponse) GetResult() []*IdpView { - if m != nil { - return m.Result +func (x *IdpSearchResponse) GetResult() []*IdpView { + if x != nil { + return x.Result } return nil } -func (m *IdpSearchResponse) GetProcessedSequence() uint64 { - if m != nil { - return m.ProcessedSequence +func (x *IdpSearchResponse) GetProcessedSequence() uint64 { + if x != nil { + return x.ProcessedSequence } return 0 } -func (m *IdpSearchResponse) GetViewTimestamp() *timestamp.Timestamp { - if m != nil { - return m.ViewTimestamp +func (x *IdpSearchResponse) GetViewTimestamp() *timestamp.Timestamp { + if x != nil { + return x.ViewTimestamp } return nil } type IdpView struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` State IdpState `protobuf:"varint,2,opt,name=state,proto3,enum=caos.zitadel.management.api.v1.IdpState" json:"state,omitempty"` CreationDate *timestamp.Timestamp `protobuf:"bytes,3,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` @@ -12133,89 +14214,114 @@ type IdpView struct { Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"` LogoSrc []byte `protobuf:"bytes,6,opt,name=logo_src,json=logoSrc,proto3" json:"logo_src,omitempty"` ProviderType IdpProviderType `protobuf:"varint,7,opt,name=provider_type,json=providerType,proto3,enum=caos.zitadel.management.api.v1.IdpProviderType" json:"provider_type,omitempty"` - // Types that are valid to be assigned to IdpConfigView: + // Types that are assignable to IdpConfigView: // *IdpView_OidcConfig - IdpConfigView isIdpView_IdpConfigView `protobuf_oneof:"idp_config_view"` - Sequence uint64 `protobuf:"varint,9,opt,name=sequence,proto3" json:"sequence,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + IdpConfigView isIdpView_IdpConfigView `protobuf_oneof:"idp_config_view"` + Sequence uint64 `protobuf:"varint,9,opt,name=sequence,proto3" json:"sequence,omitempty"` } -func (m *IdpView) Reset() { *m = IdpView{} } -func (m *IdpView) String() string { return proto.CompactTextString(m) } -func (*IdpView) ProtoMessage() {} +func (x *IdpView) Reset() { + *x = IdpView{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[158] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IdpView) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IdpView) ProtoMessage() {} + +func (x *IdpView) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[158] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IdpView.ProtoReflect.Descriptor instead. func (*IdpView) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{158} + return file_management_proto_rawDescGZIP(), []int{158} } -func (m *IdpView) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_IdpView.Unmarshal(m, b) -} -func (m *IdpView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_IdpView.Marshal(b, m, deterministic) -} -func (m *IdpView) XXX_Merge(src proto.Message) { - xxx_messageInfo_IdpView.Merge(m, src) -} -func (m *IdpView) XXX_Size() int { - return xxx_messageInfo_IdpView.Size(m) -} -func (m *IdpView) XXX_DiscardUnknown() { - xxx_messageInfo_IdpView.DiscardUnknown(m) -} - -var xxx_messageInfo_IdpView proto.InternalMessageInfo - -func (m *IdpView) GetId() string { - if m != nil { - return m.Id +func (x *IdpView) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *IdpView) GetState() IdpState { - if m != nil { - return m.State +func (x *IdpView) GetState() IdpState { + if x != nil { + return x.State } return IdpState_IDPCONFIGSTATE_UNSPECIFIED } -func (m *IdpView) GetCreationDate() *timestamp.Timestamp { - if m != nil { - return m.CreationDate +func (x *IdpView) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate } return nil } -func (m *IdpView) GetChangeDate() *timestamp.Timestamp { - if m != nil { - return m.ChangeDate +func (x *IdpView) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate } return nil } -func (m *IdpView) GetName() string { - if m != nil { - return m.Name +func (x *IdpView) GetName() string { + if x != nil { + return x.Name } return "" } -func (m *IdpView) GetLogoSrc() []byte { - if m != nil { - return m.LogoSrc +func (x *IdpView) GetLogoSrc() []byte { + if x != nil { + return x.LogoSrc } return nil } -func (m *IdpView) GetProviderType() IdpProviderType { - if m != nil { - return m.ProviderType +func (x *IdpView) GetProviderType() IdpProviderType { + if x != nil { + return x.ProviderType } return IdpProviderType_IDPPROVIDERTYPE_UNSPECIFIED } +func (m *IdpView) GetIdpConfigView() isIdpView_IdpConfigView { + if m != nil { + return m.IdpConfigView + } + return nil +} + +func (x *IdpView) GetOidcConfig() *OidcIdpConfigView { + if x, ok := x.GetIdpConfigView().(*IdpView_OidcConfig); ok { + return x.OidcConfig + } + return nil +} + +func (x *IdpView) GetSequence() uint64 { + if x != nil { + return x.Sequence + } + return 0 +} + type isIdpView_IdpConfigView interface { isIdpView_IdpConfigView() } @@ -12226,1624 +14332,8142 @@ type IdpView_OidcConfig struct { func (*IdpView_OidcConfig) isIdpView_IdpConfigView() {} -func (m *IdpView) GetIdpConfigView() isIdpView_IdpConfigView { - if m != nil { - return m.IdpConfigView - } - return nil -} - -func (m *IdpView) GetOidcConfig() *OidcIdpConfigView { - if x, ok := m.GetIdpConfigView().(*IdpView_OidcConfig); ok { - return x.OidcConfig - } - return nil -} - -func (m *IdpView) GetSequence() uint64 { - if m != nil { - return m.Sequence - } - return 0 -} - -// XXX_OneofWrappers is for the internal use of the proto package. -func (*IdpView) XXX_OneofWrappers() []interface{} { - return []interface{}{ - (*IdpView_OidcConfig)(nil), - } -} - type OidcIdpConfigView struct { - ClientId string `protobuf:"bytes,1,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` - Issuer string `protobuf:"bytes,2,opt,name=issuer,proto3" json:"issuer,omitempty"` - Scopes []string `protobuf:"bytes,3,rep,name=scopes,proto3" json:"scopes,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ClientId string `protobuf:"bytes,1,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` + Issuer string `protobuf:"bytes,2,opt,name=issuer,proto3" json:"issuer,omitempty"` + Scopes []string `protobuf:"bytes,3,rep,name=scopes,proto3" json:"scopes,omitempty"` + IdpDisplayNameMapping OIDCMappingField `protobuf:"varint,4,opt,name=idp_display_name_mapping,json=idpDisplayNameMapping,proto3,enum=caos.zitadel.management.api.v1.OIDCMappingField" json:"idp_display_name_mapping,omitempty"` + UsernameMapping OIDCMappingField `protobuf:"varint,5,opt,name=username_mapping,json=usernameMapping,proto3,enum=caos.zitadel.management.api.v1.OIDCMappingField" json:"username_mapping,omitempty"` } -func (m *OidcIdpConfigView) Reset() { *m = OidcIdpConfigView{} } -func (m *OidcIdpConfigView) String() string { return proto.CompactTextString(m) } -func (*OidcIdpConfigView) ProtoMessage() {} +func (x *OidcIdpConfigView) Reset() { + *x = OidcIdpConfigView{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[159] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OidcIdpConfigView) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OidcIdpConfigView) ProtoMessage() {} + +func (x *OidcIdpConfigView) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[159] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OidcIdpConfigView.ProtoReflect.Descriptor instead. func (*OidcIdpConfigView) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{159} + return file_management_proto_rawDescGZIP(), []int{159} } -func (m *OidcIdpConfigView) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_OidcIdpConfigView.Unmarshal(m, b) -} -func (m *OidcIdpConfigView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_OidcIdpConfigView.Marshal(b, m, deterministic) -} -func (m *OidcIdpConfigView) XXX_Merge(src proto.Message) { - xxx_messageInfo_OidcIdpConfigView.Merge(m, src) -} -func (m *OidcIdpConfigView) XXX_Size() int { - return xxx_messageInfo_OidcIdpConfigView.Size(m) -} -func (m *OidcIdpConfigView) XXX_DiscardUnknown() { - xxx_messageInfo_OidcIdpConfigView.DiscardUnknown(m) -} - -var xxx_messageInfo_OidcIdpConfigView proto.InternalMessageInfo - -func (m *OidcIdpConfigView) GetClientId() string { - if m != nil { - return m.ClientId +func (x *OidcIdpConfigView) GetClientId() string { + if x != nil { + return x.ClientId } return "" } -func (m *OidcIdpConfigView) GetIssuer() string { - if m != nil { - return m.Issuer +func (x *OidcIdpConfigView) GetIssuer() string { + if x != nil { + return x.Issuer } return "" } -func (m *OidcIdpConfigView) GetScopes() []string { - if m != nil { - return m.Scopes +func (x *OidcIdpConfigView) GetScopes() []string { + if x != nil { + return x.Scopes } return nil } +func (x *OidcIdpConfigView) GetIdpDisplayNameMapping() OIDCMappingField { + if x != nil { + return x.IdpDisplayNameMapping + } + return OIDCMappingField_OIDCMAPPINGFIELD_UNSPECIFIED +} + +func (x *OidcIdpConfigView) GetUsernameMapping() OIDCMappingField { + if x != nil { + return x.UsernameMapping + } + return OIDCMappingField_OIDCMAPPINGFIELD_UNSPECIFIED +} + type IdpSearchRequest struct { - Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` - Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` - Queries []*IdpSearchQuery `protobuf:"bytes,3,rep,name=queries,proto3" json:"queries,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` + Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` + Queries []*IdpSearchQuery `protobuf:"bytes,3,rep,name=queries,proto3" json:"queries,omitempty"` } -func (m *IdpSearchRequest) Reset() { *m = IdpSearchRequest{} } -func (m *IdpSearchRequest) String() string { return proto.CompactTextString(m) } -func (*IdpSearchRequest) ProtoMessage() {} +func (x *IdpSearchRequest) Reset() { + *x = IdpSearchRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[160] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IdpSearchRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IdpSearchRequest) ProtoMessage() {} + +func (x *IdpSearchRequest) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[160] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IdpSearchRequest.ProtoReflect.Descriptor instead. func (*IdpSearchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{160} + return file_management_proto_rawDescGZIP(), []int{160} } -func (m *IdpSearchRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_IdpSearchRequest.Unmarshal(m, b) -} -func (m *IdpSearchRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_IdpSearchRequest.Marshal(b, m, deterministic) -} -func (m *IdpSearchRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_IdpSearchRequest.Merge(m, src) -} -func (m *IdpSearchRequest) XXX_Size() int { - return xxx_messageInfo_IdpSearchRequest.Size(m) -} -func (m *IdpSearchRequest) XXX_DiscardUnknown() { - xxx_messageInfo_IdpSearchRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_IdpSearchRequest proto.InternalMessageInfo - -func (m *IdpSearchRequest) GetOffset() uint64 { - if m != nil { - return m.Offset +func (x *IdpSearchRequest) GetOffset() uint64 { + if x != nil { + return x.Offset } return 0 } -func (m *IdpSearchRequest) GetLimit() uint64 { - if m != nil { - return m.Limit +func (x *IdpSearchRequest) GetLimit() uint64 { + if x != nil { + return x.Limit } return 0 } -func (m *IdpSearchRequest) GetQueries() []*IdpSearchQuery { - if m != nil { - return m.Queries +func (x *IdpSearchRequest) GetQueries() []*IdpSearchQuery { + if x != nil { + return x.Queries } return nil } type IdpSearchQuery struct { - Key IdpSearchKey `protobuf:"varint,1,opt,name=key,proto3,enum=caos.zitadel.management.api.v1.IdpSearchKey" json:"key,omitempty"` - Method SearchMethod `protobuf:"varint,2,opt,name=method,proto3,enum=caos.zitadel.management.api.v1.SearchMethod" json:"method,omitempty"` - Value string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Key IdpSearchKey `protobuf:"varint,1,opt,name=key,proto3,enum=caos.zitadel.management.api.v1.IdpSearchKey" json:"key,omitempty"` + Method SearchMethod `protobuf:"varint,2,opt,name=method,proto3,enum=caos.zitadel.management.api.v1.SearchMethod" json:"method,omitempty"` + Value string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` } -func (m *IdpSearchQuery) Reset() { *m = IdpSearchQuery{} } -func (m *IdpSearchQuery) String() string { return proto.CompactTextString(m) } -func (*IdpSearchQuery) ProtoMessage() {} +func (x *IdpSearchQuery) Reset() { + *x = IdpSearchQuery{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[161] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IdpSearchQuery) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IdpSearchQuery) ProtoMessage() {} + +func (x *IdpSearchQuery) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[161] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IdpSearchQuery.ProtoReflect.Descriptor instead. func (*IdpSearchQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{161} + return file_management_proto_rawDescGZIP(), []int{161} } -func (m *IdpSearchQuery) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_IdpSearchQuery.Unmarshal(m, b) -} -func (m *IdpSearchQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_IdpSearchQuery.Marshal(b, m, deterministic) -} -func (m *IdpSearchQuery) XXX_Merge(src proto.Message) { - xxx_messageInfo_IdpSearchQuery.Merge(m, src) -} -func (m *IdpSearchQuery) XXX_Size() int { - return xxx_messageInfo_IdpSearchQuery.Size(m) -} -func (m *IdpSearchQuery) XXX_DiscardUnknown() { - xxx_messageInfo_IdpSearchQuery.DiscardUnknown(m) -} - -var xxx_messageInfo_IdpSearchQuery proto.InternalMessageInfo - -func (m *IdpSearchQuery) GetKey() IdpSearchKey { - if m != nil { - return m.Key +func (x *IdpSearchQuery) GetKey() IdpSearchKey { + if x != nil { + return x.Key } return IdpSearchKey_IDPSEARCHKEY_UNSPECIFIED } -func (m *IdpSearchQuery) GetMethod() SearchMethod { - if m != nil { - return m.Method +func (x *IdpSearchQuery) GetMethod() SearchMethod { + if x != nil { + return x.Method } return SearchMethod_SEARCHMETHOD_EQUALS } -func (m *IdpSearchQuery) GetValue() string { - if m != nil { - return m.Value +func (x *IdpSearchQuery) GetValue() string { + if x != nil { + return x.Value } return "" } type LoginPolicy struct { - AllowUsernamePassword bool `protobuf:"varint,1,opt,name=allow_username_password,json=allowUsernamePassword,proto3" json:"allow_username_password,omitempty"` - AllowRegister bool `protobuf:"varint,2,opt,name=allow_register,json=allowRegister,proto3" json:"allow_register,omitempty"` - AllowExternalIdp bool `protobuf:"varint,3,opt,name=allow_external_idp,json=allowExternalIdp,proto3" json:"allow_external_idp,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AllowUsernamePassword bool `protobuf:"varint,1,opt,name=allow_username_password,json=allowUsernamePassword,proto3" json:"allow_username_password,omitempty"` + AllowRegister bool `protobuf:"varint,2,opt,name=allow_register,json=allowRegister,proto3" json:"allow_register,omitempty"` + AllowExternalIdp bool `protobuf:"varint,3,opt,name=allow_external_idp,json=allowExternalIdp,proto3" json:"allow_external_idp,omitempty"` } -func (m *LoginPolicy) Reset() { *m = LoginPolicy{} } -func (m *LoginPolicy) String() string { return proto.CompactTextString(m) } -func (*LoginPolicy) ProtoMessage() {} +func (x *LoginPolicy) Reset() { + *x = LoginPolicy{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[162] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LoginPolicy) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LoginPolicy) ProtoMessage() {} + +func (x *LoginPolicy) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[162] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LoginPolicy.ProtoReflect.Descriptor instead. func (*LoginPolicy) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{162} + return file_management_proto_rawDescGZIP(), []int{162} } -func (m *LoginPolicy) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_LoginPolicy.Unmarshal(m, b) -} -func (m *LoginPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_LoginPolicy.Marshal(b, m, deterministic) -} -func (m *LoginPolicy) XXX_Merge(src proto.Message) { - xxx_messageInfo_LoginPolicy.Merge(m, src) -} -func (m *LoginPolicy) XXX_Size() int { - return xxx_messageInfo_LoginPolicy.Size(m) -} -func (m *LoginPolicy) XXX_DiscardUnknown() { - xxx_messageInfo_LoginPolicy.DiscardUnknown(m) -} - -var xxx_messageInfo_LoginPolicy proto.InternalMessageInfo - -func (m *LoginPolicy) GetAllowUsernamePassword() bool { - if m != nil { - return m.AllowUsernamePassword +func (x *LoginPolicy) GetAllowUsernamePassword() bool { + if x != nil { + return x.AllowUsernamePassword } return false } -func (m *LoginPolicy) GetAllowRegister() bool { - if m != nil { - return m.AllowRegister +func (x *LoginPolicy) GetAllowRegister() bool { + if x != nil { + return x.AllowRegister } return false } -func (m *LoginPolicy) GetAllowExternalIdp() bool { - if m != nil { - return m.AllowExternalIdp +func (x *LoginPolicy) GetAllowExternalIdp() bool { + if x != nil { + return x.AllowExternalIdp } return false } type LoginPolicyAdd struct { - AllowUsernamePassword bool `protobuf:"varint,1,opt,name=allow_username_password,json=allowUsernamePassword,proto3" json:"allow_username_password,omitempty"` - AllowRegister bool `protobuf:"varint,2,opt,name=allow_register,json=allowRegister,proto3" json:"allow_register,omitempty"` - AllowExternalIdp bool `protobuf:"varint,3,opt,name=allow_external_idp,json=allowExternalIdp,proto3" json:"allow_external_idp,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AllowUsernamePassword bool `protobuf:"varint,1,opt,name=allow_username_password,json=allowUsernamePassword,proto3" json:"allow_username_password,omitempty"` + AllowRegister bool `protobuf:"varint,2,opt,name=allow_register,json=allowRegister,proto3" json:"allow_register,omitempty"` + AllowExternalIdp bool `protobuf:"varint,3,opt,name=allow_external_idp,json=allowExternalIdp,proto3" json:"allow_external_idp,omitempty"` } -func (m *LoginPolicyAdd) Reset() { *m = LoginPolicyAdd{} } -func (m *LoginPolicyAdd) String() string { return proto.CompactTextString(m) } -func (*LoginPolicyAdd) ProtoMessage() {} +func (x *LoginPolicyAdd) Reset() { + *x = LoginPolicyAdd{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[163] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LoginPolicyAdd) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LoginPolicyAdd) ProtoMessage() {} + +func (x *LoginPolicyAdd) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[163] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LoginPolicyAdd.ProtoReflect.Descriptor instead. func (*LoginPolicyAdd) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{163} + return file_management_proto_rawDescGZIP(), []int{163} } -func (m *LoginPolicyAdd) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_LoginPolicyAdd.Unmarshal(m, b) -} -func (m *LoginPolicyAdd) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_LoginPolicyAdd.Marshal(b, m, deterministic) -} -func (m *LoginPolicyAdd) XXX_Merge(src proto.Message) { - xxx_messageInfo_LoginPolicyAdd.Merge(m, src) -} -func (m *LoginPolicyAdd) XXX_Size() int { - return xxx_messageInfo_LoginPolicyAdd.Size(m) -} -func (m *LoginPolicyAdd) XXX_DiscardUnknown() { - xxx_messageInfo_LoginPolicyAdd.DiscardUnknown(m) -} - -var xxx_messageInfo_LoginPolicyAdd proto.InternalMessageInfo - -func (m *LoginPolicyAdd) GetAllowUsernamePassword() bool { - if m != nil { - return m.AllowUsernamePassword +func (x *LoginPolicyAdd) GetAllowUsernamePassword() bool { + if x != nil { + return x.AllowUsernamePassword } return false } -func (m *LoginPolicyAdd) GetAllowRegister() bool { - if m != nil { - return m.AllowRegister +func (x *LoginPolicyAdd) GetAllowRegister() bool { + if x != nil { + return x.AllowRegister } return false } -func (m *LoginPolicyAdd) GetAllowExternalIdp() bool { - if m != nil { - return m.AllowExternalIdp +func (x *LoginPolicyAdd) GetAllowExternalIdp() bool { + if x != nil { + return x.AllowExternalIdp } return false } type IdpProviderID struct { - IdpConfigId string `protobuf:"bytes,1,opt,name=idp_config_id,json=idpConfigId,proto3" json:"idp_config_id,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + IdpConfigId string `protobuf:"bytes,1,opt,name=idp_config_id,json=idpConfigId,proto3" json:"idp_config_id,omitempty"` } -func (m *IdpProviderID) Reset() { *m = IdpProviderID{} } -func (m *IdpProviderID) String() string { return proto.CompactTextString(m) } -func (*IdpProviderID) ProtoMessage() {} +func (x *IdpProviderID) Reset() { + *x = IdpProviderID{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[164] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IdpProviderID) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IdpProviderID) ProtoMessage() {} + +func (x *IdpProviderID) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[164] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IdpProviderID.ProtoReflect.Descriptor instead. func (*IdpProviderID) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{164} + return file_management_proto_rawDescGZIP(), []int{164} } -func (m *IdpProviderID) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_IdpProviderID.Unmarshal(m, b) -} -func (m *IdpProviderID) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_IdpProviderID.Marshal(b, m, deterministic) -} -func (m *IdpProviderID) XXX_Merge(src proto.Message) { - xxx_messageInfo_IdpProviderID.Merge(m, src) -} -func (m *IdpProviderID) XXX_Size() int { - return xxx_messageInfo_IdpProviderID.Size(m) -} -func (m *IdpProviderID) XXX_DiscardUnknown() { - xxx_messageInfo_IdpProviderID.DiscardUnknown(m) -} - -var xxx_messageInfo_IdpProviderID proto.InternalMessageInfo - -func (m *IdpProviderID) GetIdpConfigId() string { - if m != nil { - return m.IdpConfigId +func (x *IdpProviderID) GetIdpConfigId() string { + if x != nil { + return x.IdpConfigId } return "" } type IdpProviderAdd struct { - IdpConfigId string `protobuf:"bytes,1,opt,name=idp_config_id,json=idpConfigId,proto3" json:"idp_config_id,omitempty"` - IdpProviderType IdpProviderType `protobuf:"varint,2,opt,name=idp_provider_type,json=idpProviderType,proto3,enum=caos.zitadel.management.api.v1.IdpProviderType" json:"idp_provider_type,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + IdpConfigId string `protobuf:"bytes,1,opt,name=idp_config_id,json=idpConfigId,proto3" json:"idp_config_id,omitempty"` + IdpProviderType IdpProviderType `protobuf:"varint,2,opt,name=idp_provider_type,json=idpProviderType,proto3,enum=caos.zitadel.management.api.v1.IdpProviderType" json:"idp_provider_type,omitempty"` } -func (m *IdpProviderAdd) Reset() { *m = IdpProviderAdd{} } -func (m *IdpProviderAdd) String() string { return proto.CompactTextString(m) } -func (*IdpProviderAdd) ProtoMessage() {} +func (x *IdpProviderAdd) Reset() { + *x = IdpProviderAdd{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[165] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IdpProviderAdd) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IdpProviderAdd) ProtoMessage() {} + +func (x *IdpProviderAdd) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[165] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IdpProviderAdd.ProtoReflect.Descriptor instead. func (*IdpProviderAdd) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{165} + return file_management_proto_rawDescGZIP(), []int{165} } -func (m *IdpProviderAdd) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_IdpProviderAdd.Unmarshal(m, b) -} -func (m *IdpProviderAdd) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_IdpProviderAdd.Marshal(b, m, deterministic) -} -func (m *IdpProviderAdd) XXX_Merge(src proto.Message) { - xxx_messageInfo_IdpProviderAdd.Merge(m, src) -} -func (m *IdpProviderAdd) XXX_Size() int { - return xxx_messageInfo_IdpProviderAdd.Size(m) -} -func (m *IdpProviderAdd) XXX_DiscardUnknown() { - xxx_messageInfo_IdpProviderAdd.DiscardUnknown(m) -} - -var xxx_messageInfo_IdpProviderAdd proto.InternalMessageInfo - -func (m *IdpProviderAdd) GetIdpConfigId() string { - if m != nil { - return m.IdpConfigId +func (x *IdpProviderAdd) GetIdpConfigId() string { + if x != nil { + return x.IdpConfigId } return "" } -func (m *IdpProviderAdd) GetIdpProviderType() IdpProviderType { - if m != nil { - return m.IdpProviderType +func (x *IdpProviderAdd) GetIdpProviderType() IdpProviderType { + if x != nil { + return x.IdpProviderType } return IdpProviderType_IDPPROVIDERTYPE_UNSPECIFIED } type IdpProvider struct { - IdpConfigId string `protobuf:"bytes,1,opt,name=idp_config_id,json=idpConfigId,proto3" json:"idp_config_id,omitempty"` - IdpProvider_Type IdpProviderType `protobuf:"varint,2,opt,name=idp_provider_Type,json=idpProviderType,proto3,enum=caos.zitadel.management.api.v1.IdpProviderType" json:"idp_provider_Type,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + IdpConfigId string `protobuf:"bytes,1,opt,name=idp_config_id,json=idpConfigId,proto3" json:"idp_config_id,omitempty"` + IdpProvider_Type IdpProviderType `protobuf:"varint,2,opt,name=idp_provider_Type,json=idpProviderType,proto3,enum=caos.zitadel.management.api.v1.IdpProviderType" json:"idp_provider_Type,omitempty"` } -func (m *IdpProvider) Reset() { *m = IdpProvider{} } -func (m *IdpProvider) String() string { return proto.CompactTextString(m) } -func (*IdpProvider) ProtoMessage() {} +func (x *IdpProvider) Reset() { + *x = IdpProvider{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[166] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IdpProvider) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IdpProvider) ProtoMessage() {} + +func (x *IdpProvider) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[166] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IdpProvider.ProtoReflect.Descriptor instead. func (*IdpProvider) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{166} + return file_management_proto_rawDescGZIP(), []int{166} } -func (m *IdpProvider) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_IdpProvider.Unmarshal(m, b) -} -func (m *IdpProvider) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_IdpProvider.Marshal(b, m, deterministic) -} -func (m *IdpProvider) XXX_Merge(src proto.Message) { - xxx_messageInfo_IdpProvider.Merge(m, src) -} -func (m *IdpProvider) XXX_Size() int { - return xxx_messageInfo_IdpProvider.Size(m) -} -func (m *IdpProvider) XXX_DiscardUnknown() { - xxx_messageInfo_IdpProvider.DiscardUnknown(m) -} - -var xxx_messageInfo_IdpProvider proto.InternalMessageInfo - -func (m *IdpProvider) GetIdpConfigId() string { - if m != nil { - return m.IdpConfigId +func (x *IdpProvider) GetIdpConfigId() string { + if x != nil { + return x.IdpConfigId } return "" } -func (m *IdpProvider) GetIdpProvider_Type() IdpProviderType { - if m != nil { - return m.IdpProvider_Type +func (x *IdpProvider) GetIdpProvider_Type() IdpProviderType { + if x != nil { + return x.IdpProvider_Type } return IdpProviderType_IDPPROVIDERTYPE_UNSPECIFIED } type LoginPolicyView struct { - Default bool `protobuf:"varint,1,opt,name=default,proto3" json:"default,omitempty"` - AllowUsernamePassword bool `protobuf:"varint,2,opt,name=allow_username_password,json=allowUsernamePassword,proto3" json:"allow_username_password,omitempty"` - AllowRegister bool `protobuf:"varint,3,opt,name=allow_register,json=allowRegister,proto3" json:"allow_register,omitempty"` - AllowExternalIdp bool `protobuf:"varint,4,opt,name=allow_external_idp,json=allowExternalIdp,proto3" json:"allow_external_idp,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Default bool `protobuf:"varint,1,opt,name=default,proto3" json:"default,omitempty"` + AllowUsernamePassword bool `protobuf:"varint,2,opt,name=allow_username_password,json=allowUsernamePassword,proto3" json:"allow_username_password,omitempty"` + AllowRegister bool `protobuf:"varint,3,opt,name=allow_register,json=allowRegister,proto3" json:"allow_register,omitempty"` + AllowExternalIdp bool `protobuf:"varint,4,opt,name=allow_external_idp,json=allowExternalIdp,proto3" json:"allow_external_idp,omitempty"` } -func (m *LoginPolicyView) Reset() { *m = LoginPolicyView{} } -func (m *LoginPolicyView) String() string { return proto.CompactTextString(m) } -func (*LoginPolicyView) ProtoMessage() {} +func (x *LoginPolicyView) Reset() { + *x = LoginPolicyView{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[167] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LoginPolicyView) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LoginPolicyView) ProtoMessage() {} + +func (x *LoginPolicyView) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[167] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LoginPolicyView.ProtoReflect.Descriptor instead. func (*LoginPolicyView) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{167} + return file_management_proto_rawDescGZIP(), []int{167} } -func (m *LoginPolicyView) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_LoginPolicyView.Unmarshal(m, b) -} -func (m *LoginPolicyView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_LoginPolicyView.Marshal(b, m, deterministic) -} -func (m *LoginPolicyView) XXX_Merge(src proto.Message) { - xxx_messageInfo_LoginPolicyView.Merge(m, src) -} -func (m *LoginPolicyView) XXX_Size() int { - return xxx_messageInfo_LoginPolicyView.Size(m) -} -func (m *LoginPolicyView) XXX_DiscardUnknown() { - xxx_messageInfo_LoginPolicyView.DiscardUnknown(m) -} - -var xxx_messageInfo_LoginPolicyView proto.InternalMessageInfo - -func (m *LoginPolicyView) GetDefault() bool { - if m != nil { - return m.Default +func (x *LoginPolicyView) GetDefault() bool { + if x != nil { + return x.Default } return false } -func (m *LoginPolicyView) GetAllowUsernamePassword() bool { - if m != nil { - return m.AllowUsernamePassword +func (x *LoginPolicyView) GetAllowUsernamePassword() bool { + if x != nil { + return x.AllowUsernamePassword } return false } -func (m *LoginPolicyView) GetAllowRegister() bool { - if m != nil { - return m.AllowRegister +func (x *LoginPolicyView) GetAllowRegister() bool { + if x != nil { + return x.AllowRegister } return false } -func (m *LoginPolicyView) GetAllowExternalIdp() bool { - if m != nil { - return m.AllowExternalIdp +func (x *LoginPolicyView) GetAllowExternalIdp() bool { + if x != nil { + return x.AllowExternalIdp } return false } type IdpProviderView struct { - IdpConfigId string `protobuf:"bytes,1,opt,name=idp_config_id,json=idpConfigId,proto3" json:"idp_config_id,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - Type IdpType `protobuf:"varint,3,opt,name=type,proto3,enum=caos.zitadel.management.api.v1.IdpType" json:"type,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + IdpConfigId string `protobuf:"bytes,1,opt,name=idp_config_id,json=idpConfigId,proto3" json:"idp_config_id,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Type IdpType `protobuf:"varint,3,opt,name=type,proto3,enum=caos.zitadel.management.api.v1.IdpType" json:"type,omitempty"` } -func (m *IdpProviderView) Reset() { *m = IdpProviderView{} } -func (m *IdpProviderView) String() string { return proto.CompactTextString(m) } -func (*IdpProviderView) ProtoMessage() {} +func (x *IdpProviderView) Reset() { + *x = IdpProviderView{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[168] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IdpProviderView) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IdpProviderView) ProtoMessage() {} + +func (x *IdpProviderView) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[168] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IdpProviderView.ProtoReflect.Descriptor instead. func (*IdpProviderView) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{168} + return file_management_proto_rawDescGZIP(), []int{168} } -func (m *IdpProviderView) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_IdpProviderView.Unmarshal(m, b) -} -func (m *IdpProviderView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_IdpProviderView.Marshal(b, m, deterministic) -} -func (m *IdpProviderView) XXX_Merge(src proto.Message) { - xxx_messageInfo_IdpProviderView.Merge(m, src) -} -func (m *IdpProviderView) XXX_Size() int { - return xxx_messageInfo_IdpProviderView.Size(m) -} -func (m *IdpProviderView) XXX_DiscardUnknown() { - xxx_messageInfo_IdpProviderView.DiscardUnknown(m) -} - -var xxx_messageInfo_IdpProviderView proto.InternalMessageInfo - -func (m *IdpProviderView) GetIdpConfigId() string { - if m != nil { - return m.IdpConfigId +func (x *IdpProviderView) GetIdpConfigId() string { + if x != nil { + return x.IdpConfigId } return "" } -func (m *IdpProviderView) GetName() string { - if m != nil { - return m.Name +func (x *IdpProviderView) GetName() string { + if x != nil { + return x.Name } return "" } -func (m *IdpProviderView) GetType() IdpType { - if m != nil { - return m.Type +func (x *IdpProviderView) GetType() IdpType { + if x != nil { + return x.Type } return IdpType_IDPTYPE_UNSPECIFIED } type IdpProviderSearchResponse struct { - Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` - Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` - TotalResult uint64 `protobuf:"varint,3,opt,name=total_result,json=totalResult,proto3" json:"total_result,omitempty"` - Result []*IdpProviderView `protobuf:"bytes,4,rep,name=result,proto3" json:"result,omitempty"` - ProcessedSequence uint64 `protobuf:"varint,5,opt,name=processed_sequence,json=processedSequence,proto3" json:"processed_sequence,omitempty"` - ViewTimestamp *timestamp.Timestamp `protobuf:"bytes,6,opt,name=view_timestamp,json=viewTimestamp,proto3" json:"view_timestamp,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` + Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` + TotalResult uint64 `protobuf:"varint,3,opt,name=total_result,json=totalResult,proto3" json:"total_result,omitempty"` + Result []*IdpProviderView `protobuf:"bytes,4,rep,name=result,proto3" json:"result,omitempty"` + ProcessedSequence uint64 `protobuf:"varint,5,opt,name=processed_sequence,json=processedSequence,proto3" json:"processed_sequence,omitempty"` + ViewTimestamp *timestamp.Timestamp `protobuf:"bytes,6,opt,name=view_timestamp,json=viewTimestamp,proto3" json:"view_timestamp,omitempty"` } -func (m *IdpProviderSearchResponse) Reset() { *m = IdpProviderSearchResponse{} } -func (m *IdpProviderSearchResponse) String() string { return proto.CompactTextString(m) } -func (*IdpProviderSearchResponse) ProtoMessage() {} +func (x *IdpProviderSearchResponse) Reset() { + *x = IdpProviderSearchResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[169] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IdpProviderSearchResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IdpProviderSearchResponse) ProtoMessage() {} + +func (x *IdpProviderSearchResponse) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[169] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IdpProviderSearchResponse.ProtoReflect.Descriptor instead. func (*IdpProviderSearchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{169} + return file_management_proto_rawDescGZIP(), []int{169} } -func (m *IdpProviderSearchResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_IdpProviderSearchResponse.Unmarshal(m, b) -} -func (m *IdpProviderSearchResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_IdpProviderSearchResponse.Marshal(b, m, deterministic) -} -func (m *IdpProviderSearchResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_IdpProviderSearchResponse.Merge(m, src) -} -func (m *IdpProviderSearchResponse) XXX_Size() int { - return xxx_messageInfo_IdpProviderSearchResponse.Size(m) -} -func (m *IdpProviderSearchResponse) XXX_DiscardUnknown() { - xxx_messageInfo_IdpProviderSearchResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_IdpProviderSearchResponse proto.InternalMessageInfo - -func (m *IdpProviderSearchResponse) GetOffset() uint64 { - if m != nil { - return m.Offset +func (x *IdpProviderSearchResponse) GetOffset() uint64 { + if x != nil { + return x.Offset } return 0 } -func (m *IdpProviderSearchResponse) GetLimit() uint64 { - if m != nil { - return m.Limit +func (x *IdpProviderSearchResponse) GetLimit() uint64 { + if x != nil { + return x.Limit } return 0 } -func (m *IdpProviderSearchResponse) GetTotalResult() uint64 { - if m != nil { - return m.TotalResult +func (x *IdpProviderSearchResponse) GetTotalResult() uint64 { + if x != nil { + return x.TotalResult } return 0 } -func (m *IdpProviderSearchResponse) GetResult() []*IdpProviderView { - if m != nil { - return m.Result +func (x *IdpProviderSearchResponse) GetResult() []*IdpProviderView { + if x != nil { + return x.Result } return nil } -func (m *IdpProviderSearchResponse) GetProcessedSequence() uint64 { - if m != nil { - return m.ProcessedSequence +func (x *IdpProviderSearchResponse) GetProcessedSequence() uint64 { + if x != nil { + return x.ProcessedSequence } return 0 } -func (m *IdpProviderSearchResponse) GetViewTimestamp() *timestamp.Timestamp { - if m != nil { - return m.ViewTimestamp +func (x *IdpProviderSearchResponse) GetViewTimestamp() *timestamp.Timestamp { + if x != nil { + return x.ViewTimestamp } return nil } type IdpProviderSearchRequest struct { - Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` - Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` + Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` } -func (m *IdpProviderSearchRequest) Reset() { *m = IdpProviderSearchRequest{} } -func (m *IdpProviderSearchRequest) String() string { return proto.CompactTextString(m) } -func (*IdpProviderSearchRequest) ProtoMessage() {} +func (x *IdpProviderSearchRequest) Reset() { + *x = IdpProviderSearchRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[170] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IdpProviderSearchRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IdpProviderSearchRequest) ProtoMessage() {} + +func (x *IdpProviderSearchRequest) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[170] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IdpProviderSearchRequest.ProtoReflect.Descriptor instead. func (*IdpProviderSearchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{170} + return file_management_proto_rawDescGZIP(), []int{170} } -func (m *IdpProviderSearchRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_IdpProviderSearchRequest.Unmarshal(m, b) -} -func (m *IdpProviderSearchRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_IdpProviderSearchRequest.Marshal(b, m, deterministic) -} -func (m *IdpProviderSearchRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_IdpProviderSearchRequest.Merge(m, src) -} -func (m *IdpProviderSearchRequest) XXX_Size() int { - return xxx_messageInfo_IdpProviderSearchRequest.Size(m) -} -func (m *IdpProviderSearchRequest) XXX_DiscardUnknown() { - xxx_messageInfo_IdpProviderSearchRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_IdpProviderSearchRequest proto.InternalMessageInfo - -func (m *IdpProviderSearchRequest) GetOffset() uint64 { - if m != nil { - return m.Offset +func (x *IdpProviderSearchRequest) GetOffset() uint64 { + if x != nil { + return x.Offset } return 0 } -func (m *IdpProviderSearchRequest) GetLimit() uint64 { - if m != nil { - return m.Limit +func (x *IdpProviderSearchRequest) GetLimit() uint64 { + if x != nil { + return x.Limit } return 0 } -func init() { - proto.RegisterEnum("caos.zitadel.management.api.v1.UserState", UserState_name, UserState_value) - proto.RegisterEnum("caos.zitadel.management.api.v1.Gender", Gender_name, Gender_value) - proto.RegisterEnum("caos.zitadel.management.api.v1.MachineKeyType", MachineKeyType_name, MachineKeyType_value) - proto.RegisterEnum("caos.zitadel.management.api.v1.UserSearchKey", UserSearchKey_name, UserSearchKey_value) - proto.RegisterEnum("caos.zitadel.management.api.v1.SearchMethod", SearchMethod_name, SearchMethod_value) - proto.RegisterEnum("caos.zitadel.management.api.v1.MfaType", MfaType_name, MfaType_value) - proto.RegisterEnum("caos.zitadel.management.api.v1.MFAState", MFAState_name, MFAState_value) - proto.RegisterEnum("caos.zitadel.management.api.v1.NotificationType", NotificationType_name, NotificationType_value) - proto.RegisterEnum("caos.zitadel.management.api.v1.PolicyState", PolicyState_name, PolicyState_value) - proto.RegisterEnum("caos.zitadel.management.api.v1.OrgState", OrgState_name, OrgState_value) - proto.RegisterEnum("caos.zitadel.management.api.v1.OrgDomainValidationType", OrgDomainValidationType_name, OrgDomainValidationType_value) - proto.RegisterEnum("caos.zitadel.management.api.v1.OrgDomainSearchKey", OrgDomainSearchKey_name, OrgDomainSearchKey_value) - proto.RegisterEnum("caos.zitadel.management.api.v1.OrgMemberSearchKey", OrgMemberSearchKey_name, OrgMemberSearchKey_value) - proto.RegisterEnum("caos.zitadel.management.api.v1.ProjectSearchKey", ProjectSearchKey_name, ProjectSearchKey_value) - proto.RegisterEnum("caos.zitadel.management.api.v1.ProjectState", ProjectState_name, ProjectState_value) - proto.RegisterEnum("caos.zitadel.management.api.v1.ProjectRoleSearchKey", ProjectRoleSearchKey_name, ProjectRoleSearchKey_value) - proto.RegisterEnum("caos.zitadel.management.api.v1.ProjectMemberSearchKey", ProjectMemberSearchKey_name, ProjectMemberSearchKey_value) - proto.RegisterEnum("caos.zitadel.management.api.v1.AppState", AppState_name, AppState_value) - proto.RegisterEnum("caos.zitadel.management.api.v1.OIDCVersion", OIDCVersion_name, OIDCVersion_value) - proto.RegisterEnum("caos.zitadel.management.api.v1.OIDCResponseType", OIDCResponseType_name, OIDCResponseType_value) - proto.RegisterEnum("caos.zitadel.management.api.v1.OIDCGrantType", OIDCGrantType_name, OIDCGrantType_value) - proto.RegisterEnum("caos.zitadel.management.api.v1.OIDCApplicationType", OIDCApplicationType_name, OIDCApplicationType_value) - proto.RegisterEnum("caos.zitadel.management.api.v1.OIDCAuthMethodType", OIDCAuthMethodType_name, OIDCAuthMethodType_value) - proto.RegisterEnum("caos.zitadel.management.api.v1.ApplicationSearchKey", ApplicationSearchKey_name, ApplicationSearchKey_value) - proto.RegisterEnum("caos.zitadel.management.api.v1.ProjectGrantState", ProjectGrantState_name, ProjectGrantState_value) - proto.RegisterEnum("caos.zitadel.management.api.v1.ProjectGrantSearchKey", ProjectGrantSearchKey_name, ProjectGrantSearchKey_value) - proto.RegisterEnum("caos.zitadel.management.api.v1.ProjectGrantMemberSearchKey", ProjectGrantMemberSearchKey_name, ProjectGrantMemberSearchKey_value) - proto.RegisterEnum("caos.zitadel.management.api.v1.UserGrantState", UserGrantState_name, UserGrantState_value) - proto.RegisterEnum("caos.zitadel.management.api.v1.UserGrantSearchKey", UserGrantSearchKey_name, UserGrantSearchKey_value) - proto.RegisterEnum("caos.zitadel.management.api.v1.UserMembershipSearchKey", UserMembershipSearchKey_name, UserMembershipSearchKey_value) - proto.RegisterEnum("caos.zitadel.management.api.v1.MemberType", MemberType_name, MemberType_value) - proto.RegisterEnum("caos.zitadel.management.api.v1.IdpState", IdpState_name, IdpState_value) - proto.RegisterEnum("caos.zitadel.management.api.v1.IdpSearchKey", IdpSearchKey_name, IdpSearchKey_value) - proto.RegisterEnum("caos.zitadel.management.api.v1.IdpType", IdpType_name, IdpType_value) - proto.RegisterEnum("caos.zitadel.management.api.v1.IdpProviderType", IdpProviderType_name, IdpProviderType_value) - proto.RegisterEnum("caos.zitadel.management.api.v1.ProjectType", ProjectType_name, ProjectType_value) - proto.RegisterType((*ZitadelDocs)(nil), "caos.zitadel.management.api.v1.ZitadelDocs") - proto.RegisterType((*Iam)(nil), "caos.zitadel.management.api.v1.Iam") - proto.RegisterType((*ChangeRequest)(nil), "caos.zitadel.management.api.v1.ChangeRequest") - proto.RegisterType((*Changes)(nil), "caos.zitadel.management.api.v1.Changes") - proto.RegisterType((*Change)(nil), "caos.zitadel.management.api.v1.Change") - proto.RegisterType((*ApplicationID)(nil), "caos.zitadel.management.api.v1.ApplicationID") - proto.RegisterType((*ProjectID)(nil), "caos.zitadel.management.api.v1.ProjectID") - proto.RegisterType((*UserID)(nil), "caos.zitadel.management.api.v1.UserID") - proto.RegisterType((*LoginName)(nil), "caos.zitadel.management.api.v1.LoginName") - proto.RegisterType((*UniqueUserRequest)(nil), "caos.zitadel.management.api.v1.UniqueUserRequest") - proto.RegisterType((*UniqueUserResponse)(nil), "caos.zitadel.management.api.v1.UniqueUserResponse") - proto.RegisterType((*CreateUserRequest)(nil), "caos.zitadel.management.api.v1.CreateUserRequest") - proto.RegisterType((*CreateHumanRequest)(nil), "caos.zitadel.management.api.v1.CreateHumanRequest") - proto.RegisterType((*CreateMachineRequest)(nil), "caos.zitadel.management.api.v1.CreateMachineRequest") - proto.RegisterType((*UserResponse)(nil), "caos.zitadel.management.api.v1.UserResponse") - proto.RegisterType((*UserView)(nil), "caos.zitadel.management.api.v1.UserView") - proto.RegisterType((*HumanResponse)(nil), "caos.zitadel.management.api.v1.HumanResponse") - proto.RegisterType((*HumanView)(nil), "caos.zitadel.management.api.v1.HumanView") - proto.RegisterType((*MachineResponse)(nil), "caos.zitadel.management.api.v1.MachineResponse") - proto.RegisterType((*MachineView)(nil), "caos.zitadel.management.api.v1.MachineView") - proto.RegisterType((*UpdateMachineRequest)(nil), "caos.zitadel.management.api.v1.UpdateMachineRequest") - proto.RegisterType((*AddMachineKeyRequest)(nil), "caos.zitadel.management.api.v1.AddMachineKeyRequest") - proto.RegisterType((*AddMachineKeyResponse)(nil), "caos.zitadel.management.api.v1.AddMachineKeyResponse") - proto.RegisterType((*MachineKeyIDRequest)(nil), "caos.zitadel.management.api.v1.MachineKeyIDRequest") - proto.RegisterType((*MachineKeyView)(nil), "caos.zitadel.management.api.v1.MachineKeyView") - proto.RegisterType((*MachineKeySearchRequest)(nil), "caos.zitadel.management.api.v1.MachineKeySearchRequest") - proto.RegisterType((*MachineKeySearchResponse)(nil), "caos.zitadel.management.api.v1.MachineKeySearchResponse") - proto.RegisterType((*UserSearchRequest)(nil), "caos.zitadel.management.api.v1.UserSearchRequest") - proto.RegisterType((*UserSearchQuery)(nil), "caos.zitadel.management.api.v1.UserSearchQuery") - proto.RegisterType((*UserSearchResponse)(nil), "caos.zitadel.management.api.v1.UserSearchResponse") - proto.RegisterType((*UserProfile)(nil), "caos.zitadel.management.api.v1.UserProfile") - proto.RegisterType((*UserProfileView)(nil), "caos.zitadel.management.api.v1.UserProfileView") - proto.RegisterType((*UpdateUserProfileRequest)(nil), "caos.zitadel.management.api.v1.UpdateUserProfileRequest") - proto.RegisterType((*UpdateUserUserNameRequest)(nil), "caos.zitadel.management.api.v1.UpdateUserUserNameRequest") - proto.RegisterType((*UserEmail)(nil), "caos.zitadel.management.api.v1.UserEmail") - proto.RegisterType((*UserEmailView)(nil), "caos.zitadel.management.api.v1.UserEmailView") - proto.RegisterType((*UpdateUserEmailRequest)(nil), "caos.zitadel.management.api.v1.UpdateUserEmailRequest") - proto.RegisterType((*UserPhone)(nil), "caos.zitadel.management.api.v1.UserPhone") - proto.RegisterType((*UserPhoneView)(nil), "caos.zitadel.management.api.v1.UserPhoneView") - proto.RegisterType((*UpdateUserPhoneRequest)(nil), "caos.zitadel.management.api.v1.UpdateUserPhoneRequest") - proto.RegisterType((*UserAddress)(nil), "caos.zitadel.management.api.v1.UserAddress") - proto.RegisterType((*UserAddressView)(nil), "caos.zitadel.management.api.v1.UserAddressView") - proto.RegisterType((*UpdateUserAddressRequest)(nil), "caos.zitadel.management.api.v1.UpdateUserAddressRequest") - proto.RegisterType((*MultiFactors)(nil), "caos.zitadel.management.api.v1.MultiFactors") - proto.RegisterType((*MultiFactor)(nil), "caos.zitadel.management.api.v1.MultiFactor") - proto.RegisterType((*PasswordRequest)(nil), "caos.zitadel.management.api.v1.PasswordRequest") - proto.RegisterType((*SetPasswordNotificationRequest)(nil), "caos.zitadel.management.api.v1.SetPasswordNotificationRequest") - proto.RegisterType((*PasswordComplexityPolicyID)(nil), "caos.zitadel.management.api.v1.PasswordComplexityPolicyID") - proto.RegisterType((*PasswordComplexityPolicy)(nil), "caos.zitadel.management.api.v1.PasswordComplexityPolicy") - proto.RegisterType((*PasswordComplexityPolicyCreate)(nil), "caos.zitadel.management.api.v1.PasswordComplexityPolicyCreate") - proto.RegisterType((*PasswordComplexityPolicyUpdate)(nil), "caos.zitadel.management.api.v1.PasswordComplexityPolicyUpdate") - proto.RegisterType((*PasswordAgePolicyID)(nil), "caos.zitadel.management.api.v1.PasswordAgePolicyID") - proto.RegisterType((*PasswordAgePolicy)(nil), "caos.zitadel.management.api.v1.PasswordAgePolicy") - proto.RegisterType((*PasswordAgePolicyCreate)(nil), "caos.zitadel.management.api.v1.PasswordAgePolicyCreate") - proto.RegisterType((*PasswordAgePolicyUpdate)(nil), "caos.zitadel.management.api.v1.PasswordAgePolicyUpdate") - proto.RegisterType((*PasswordLockoutPolicyID)(nil), "caos.zitadel.management.api.v1.PasswordLockoutPolicyID") - proto.RegisterType((*PasswordLockoutPolicy)(nil), "caos.zitadel.management.api.v1.PasswordLockoutPolicy") - proto.RegisterType((*PasswordLockoutPolicyCreate)(nil), "caos.zitadel.management.api.v1.PasswordLockoutPolicyCreate") - proto.RegisterType((*PasswordLockoutPolicyUpdate)(nil), "caos.zitadel.management.api.v1.PasswordLockoutPolicyUpdate") - proto.RegisterType((*OrgIamPolicy)(nil), "caos.zitadel.management.api.v1.OrgIamPolicy") - proto.RegisterType((*OrgCreateRequest)(nil), "caos.zitadel.management.api.v1.OrgCreateRequest") - proto.RegisterType((*Org)(nil), "caos.zitadel.management.api.v1.Org") - proto.RegisterType((*OrgView)(nil), "caos.zitadel.management.api.v1.OrgView") - proto.RegisterType((*Domain)(nil), "caos.zitadel.management.api.v1.Domain") - proto.RegisterType((*OrgDomain)(nil), "caos.zitadel.management.api.v1.OrgDomain") - proto.RegisterType((*OrgDomainView)(nil), "caos.zitadel.management.api.v1.OrgDomainView") - proto.RegisterType((*AddOrgDomainRequest)(nil), "caos.zitadel.management.api.v1.AddOrgDomainRequest") - proto.RegisterType((*OrgDomainValidationRequest)(nil), "caos.zitadel.management.api.v1.OrgDomainValidationRequest") - proto.RegisterType((*OrgDomainValidationResponse)(nil), "caos.zitadel.management.api.v1.OrgDomainValidationResponse") - proto.RegisterType((*ValidateOrgDomainRequest)(nil), "caos.zitadel.management.api.v1.ValidateOrgDomainRequest") - proto.RegisterType((*PrimaryOrgDomainRequest)(nil), "caos.zitadel.management.api.v1.PrimaryOrgDomainRequest") - proto.RegisterType((*RemoveOrgDomainRequest)(nil), "caos.zitadel.management.api.v1.RemoveOrgDomainRequest") - proto.RegisterType((*OrgDomainSearchResponse)(nil), "caos.zitadel.management.api.v1.OrgDomainSearchResponse") - proto.RegisterType((*OrgDomainSearchRequest)(nil), "caos.zitadel.management.api.v1.OrgDomainSearchRequest") - proto.RegisterType((*OrgDomainSearchQuery)(nil), "caos.zitadel.management.api.v1.OrgDomainSearchQuery") - proto.RegisterType((*OrgMemberRoles)(nil), "caos.zitadel.management.api.v1.OrgMemberRoles") - proto.RegisterType((*OrgMember)(nil), "caos.zitadel.management.api.v1.OrgMember") - proto.RegisterType((*AddOrgMemberRequest)(nil), "caos.zitadel.management.api.v1.AddOrgMemberRequest") - proto.RegisterType((*ChangeOrgMemberRequest)(nil), "caos.zitadel.management.api.v1.ChangeOrgMemberRequest") - proto.RegisterType((*RemoveOrgMemberRequest)(nil), "caos.zitadel.management.api.v1.RemoveOrgMemberRequest") - proto.RegisterType((*OrgMemberSearchResponse)(nil), "caos.zitadel.management.api.v1.OrgMemberSearchResponse") - proto.RegisterType((*OrgMemberView)(nil), "caos.zitadel.management.api.v1.OrgMemberView") - proto.RegisterType((*OrgMemberSearchRequest)(nil), "caos.zitadel.management.api.v1.OrgMemberSearchRequest") - proto.RegisterType((*OrgMemberSearchQuery)(nil), "caos.zitadel.management.api.v1.OrgMemberSearchQuery") - proto.RegisterType((*ProjectCreateRequest)(nil), "caos.zitadel.management.api.v1.ProjectCreateRequest") - proto.RegisterType((*ProjectUpdateRequest)(nil), "caos.zitadel.management.api.v1.ProjectUpdateRequest") - proto.RegisterType((*ProjectSearchResponse)(nil), "caos.zitadel.management.api.v1.ProjectSearchResponse") - proto.RegisterType((*ProjectView)(nil), "caos.zitadel.management.api.v1.ProjectView") - proto.RegisterType((*ProjectSearchRequest)(nil), "caos.zitadel.management.api.v1.ProjectSearchRequest") - proto.RegisterType((*ProjectSearchQuery)(nil), "caos.zitadel.management.api.v1.ProjectSearchQuery") - proto.RegisterType((*Projects)(nil), "caos.zitadel.management.api.v1.Projects") - proto.RegisterType((*Project)(nil), "caos.zitadel.management.api.v1.Project") - proto.RegisterType((*ProjectMemberRoles)(nil), "caos.zitadel.management.api.v1.ProjectMemberRoles") - proto.RegisterType((*ProjectMember)(nil), "caos.zitadel.management.api.v1.ProjectMember") - proto.RegisterType((*ProjectMemberAdd)(nil), "caos.zitadel.management.api.v1.ProjectMemberAdd") - proto.RegisterType((*ProjectMemberChange)(nil), "caos.zitadel.management.api.v1.ProjectMemberChange") - proto.RegisterType((*ProjectMemberRemove)(nil), "caos.zitadel.management.api.v1.ProjectMemberRemove") - proto.RegisterType((*ProjectRoleAdd)(nil), "caos.zitadel.management.api.v1.ProjectRoleAdd") - proto.RegisterType((*ProjectRoleAddBulk)(nil), "caos.zitadel.management.api.v1.ProjectRoleAddBulk") - proto.RegisterType((*ProjectRoleChange)(nil), "caos.zitadel.management.api.v1.ProjectRoleChange") - proto.RegisterType((*ProjectRole)(nil), "caos.zitadel.management.api.v1.ProjectRole") - proto.RegisterType((*ProjectRoleView)(nil), "caos.zitadel.management.api.v1.ProjectRoleView") - proto.RegisterType((*ProjectRoleRemove)(nil), "caos.zitadel.management.api.v1.ProjectRoleRemove") - proto.RegisterType((*ProjectRoleSearchResponse)(nil), "caos.zitadel.management.api.v1.ProjectRoleSearchResponse") - proto.RegisterType((*ProjectRoleSearchRequest)(nil), "caos.zitadel.management.api.v1.ProjectRoleSearchRequest") - proto.RegisterType((*ProjectRoleSearchQuery)(nil), "caos.zitadel.management.api.v1.ProjectRoleSearchQuery") - proto.RegisterType((*ProjectMemberView)(nil), "caos.zitadel.management.api.v1.ProjectMemberView") - proto.RegisterType((*ProjectMemberSearchResponse)(nil), "caos.zitadel.management.api.v1.ProjectMemberSearchResponse") - proto.RegisterType((*ProjectMemberSearchRequest)(nil), "caos.zitadel.management.api.v1.ProjectMemberSearchRequest") - proto.RegisterType((*ProjectMemberSearchQuery)(nil), "caos.zitadel.management.api.v1.ProjectMemberSearchQuery") - proto.RegisterType((*Application)(nil), "caos.zitadel.management.api.v1.Application") - proto.RegisterType((*ApplicationUpdate)(nil), "caos.zitadel.management.api.v1.ApplicationUpdate") - proto.RegisterType((*OIDCConfig)(nil), "caos.zitadel.management.api.v1.OIDCConfig") - proto.RegisterType((*OIDCApplicationCreate)(nil), "caos.zitadel.management.api.v1.OIDCApplicationCreate") - proto.RegisterType((*OIDCConfigUpdate)(nil), "caos.zitadel.management.api.v1.OIDCConfigUpdate") - proto.RegisterType((*ClientSecret)(nil), "caos.zitadel.management.api.v1.ClientSecret") - proto.RegisterType((*ApplicationView)(nil), "caos.zitadel.management.api.v1.ApplicationView") - proto.RegisterType((*ApplicationSearchResponse)(nil), "caos.zitadel.management.api.v1.ApplicationSearchResponse") - proto.RegisterType((*ApplicationSearchRequest)(nil), "caos.zitadel.management.api.v1.ApplicationSearchRequest") - proto.RegisterType((*ApplicationSearchQuery)(nil), "caos.zitadel.management.api.v1.ApplicationSearchQuery") - proto.RegisterType((*ProjectGrant)(nil), "caos.zitadel.management.api.v1.ProjectGrant") - proto.RegisterType((*ProjectGrantCreate)(nil), "caos.zitadel.management.api.v1.ProjectGrantCreate") - proto.RegisterType((*ProjectGrantUpdate)(nil), "caos.zitadel.management.api.v1.ProjectGrantUpdate") - proto.RegisterType((*ProjectGrantID)(nil), "caos.zitadel.management.api.v1.ProjectGrantID") - proto.RegisterType((*ProjectGrantView)(nil), "caos.zitadel.management.api.v1.ProjectGrantView") - proto.RegisterType((*ProjectGrantSearchResponse)(nil), "caos.zitadel.management.api.v1.ProjectGrantSearchResponse") - proto.RegisterType((*GrantedProjectSearchRequest)(nil), "caos.zitadel.management.api.v1.GrantedProjectSearchRequest") - proto.RegisterType((*ProjectGrantSearchRequest)(nil), "caos.zitadel.management.api.v1.ProjectGrantSearchRequest") - proto.RegisterType((*ProjectGrantSearchQuery)(nil), "caos.zitadel.management.api.v1.ProjectGrantSearchQuery") - proto.RegisterType((*ProjectGrantMemberRoles)(nil), "caos.zitadel.management.api.v1.ProjectGrantMemberRoles") - proto.RegisterType((*ProjectGrantMember)(nil), "caos.zitadel.management.api.v1.ProjectGrantMember") - proto.RegisterType((*ProjectGrantMemberAdd)(nil), "caos.zitadel.management.api.v1.ProjectGrantMemberAdd") - proto.RegisterType((*ProjectGrantMemberChange)(nil), "caos.zitadel.management.api.v1.ProjectGrantMemberChange") - proto.RegisterType((*ProjectGrantMemberRemove)(nil), "caos.zitadel.management.api.v1.ProjectGrantMemberRemove") - proto.RegisterType((*ProjectGrantMemberView)(nil), "caos.zitadel.management.api.v1.ProjectGrantMemberView") - proto.RegisterType((*ProjectGrantMemberSearchResponse)(nil), "caos.zitadel.management.api.v1.ProjectGrantMemberSearchResponse") - proto.RegisterType((*ProjectGrantMemberSearchRequest)(nil), "caos.zitadel.management.api.v1.ProjectGrantMemberSearchRequest") - proto.RegisterType((*ProjectGrantMemberSearchQuery)(nil), "caos.zitadel.management.api.v1.ProjectGrantMemberSearchQuery") - proto.RegisterType((*UserGrant)(nil), "caos.zitadel.management.api.v1.UserGrant") - proto.RegisterType((*UserGrantCreate)(nil), "caos.zitadel.management.api.v1.UserGrantCreate") - proto.RegisterType((*UserGrantUpdate)(nil), "caos.zitadel.management.api.v1.UserGrantUpdate") - proto.RegisterType((*UserGrantRemoveBulk)(nil), "caos.zitadel.management.api.v1.UserGrantRemoveBulk") - proto.RegisterType((*UserGrantID)(nil), "caos.zitadel.management.api.v1.UserGrantID") - proto.RegisterType((*UserGrantView)(nil), "caos.zitadel.management.api.v1.UserGrantView") - proto.RegisterType((*UserGrantSearchResponse)(nil), "caos.zitadel.management.api.v1.UserGrantSearchResponse") - proto.RegisterType((*UserGrantSearchRequest)(nil), "caos.zitadel.management.api.v1.UserGrantSearchRequest") - proto.RegisterType((*UserGrantSearchQuery)(nil), "caos.zitadel.management.api.v1.UserGrantSearchQuery") - proto.RegisterType((*UserMembershipSearchResponse)(nil), "caos.zitadel.management.api.v1.UserMembershipSearchResponse") - proto.RegisterType((*UserMembershipSearchRequest)(nil), "caos.zitadel.management.api.v1.UserMembershipSearchRequest") - proto.RegisterType((*UserMembershipSearchQuery)(nil), "caos.zitadel.management.api.v1.UserMembershipSearchQuery") - proto.RegisterType((*UserMembershipView)(nil), "caos.zitadel.management.api.v1.UserMembershipView") - proto.RegisterType((*IdpID)(nil), "caos.zitadel.management.api.v1.IdpID") - proto.RegisterType((*Idp)(nil), "caos.zitadel.management.api.v1.Idp") - proto.RegisterType((*IdpUpdate)(nil), "caos.zitadel.management.api.v1.IdpUpdate") - proto.RegisterType((*OidcIdpConfig)(nil), "caos.zitadel.management.api.v1.OidcIdpConfig") - proto.RegisterType((*OidcIdpConfigCreate)(nil), "caos.zitadel.management.api.v1.OidcIdpConfigCreate") - proto.RegisterType((*OidcIdpConfigUpdate)(nil), "caos.zitadel.management.api.v1.OidcIdpConfigUpdate") - proto.RegisterType((*IdpSearchResponse)(nil), "caos.zitadel.management.api.v1.IdpSearchResponse") - proto.RegisterType((*IdpView)(nil), "caos.zitadel.management.api.v1.IdpView") - proto.RegisterType((*OidcIdpConfigView)(nil), "caos.zitadel.management.api.v1.OidcIdpConfigView") - proto.RegisterType((*IdpSearchRequest)(nil), "caos.zitadel.management.api.v1.IdpSearchRequest") - proto.RegisterType((*IdpSearchQuery)(nil), "caos.zitadel.management.api.v1.IdpSearchQuery") - proto.RegisterType((*LoginPolicy)(nil), "caos.zitadel.management.api.v1.LoginPolicy") - proto.RegisterType((*LoginPolicyAdd)(nil), "caos.zitadel.management.api.v1.LoginPolicyAdd") - proto.RegisterType((*IdpProviderID)(nil), "caos.zitadel.management.api.v1.IdpProviderID") - proto.RegisterType((*IdpProviderAdd)(nil), "caos.zitadel.management.api.v1.IdpProviderAdd") - proto.RegisterType((*IdpProvider)(nil), "caos.zitadel.management.api.v1.IdpProvider") - proto.RegisterType((*LoginPolicyView)(nil), "caos.zitadel.management.api.v1.LoginPolicyView") - proto.RegisterType((*IdpProviderView)(nil), "caos.zitadel.management.api.v1.IdpProviderView") - proto.RegisterType((*IdpProviderSearchResponse)(nil), "caos.zitadel.management.api.v1.IdpProviderSearchResponse") - proto.RegisterType((*IdpProviderSearchRequest)(nil), "caos.zitadel.management.api.v1.IdpProviderSearchRequest") +type ExternalIDPSearchRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` + Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` + UserId string `protobuf:"bytes,3,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` } -func init() { proto.RegisterFile("management.proto", fileDescriptor_edc174f991dc0a25) } +func (x *ExternalIDPSearchRequest) Reset() { + *x = ExternalIDPSearchRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[171] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} -var fileDescriptor_edc174f991dc0a25 = []byte{ - // 11440 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x7b, 0x90, 0x1b, 0xc9, - 0x79, 0xdf, 0x0d, 0x1e, 0xbb, 0xd8, 0x0f, 0xfb, 0xc0, 0xf6, 0xbe, 0xb0, 0x58, 0x3e, 0xf6, 0xe6, - 0xc8, 0x23, 0x09, 0x92, 0x0b, 0x92, 0xf7, 0x24, 0x4f, 0xd6, 0x09, 0xbb, 0x00, 0x97, 0x10, 0x77, - 0x17, 0x7b, 0xc0, 0xf2, 0x2e, 0x27, 0xc5, 0x86, 0x40, 0xcc, 0x10, 0x1c, 0x13, 0x2f, 0xcd, 0x0c, - 0xc8, 0x5b, 0x5d, 0xce, 0x8e, 0xa9, 0xd8, 0x52, 0xa4, 0xc8, 0xb1, 0x74, 0x56, 0x64, 0xbd, 0x63, - 0xa9, 0x64, 0xc5, 0x56, 0x64, 0x55, 0x12, 0xd1, 0xbe, 0xd8, 0x89, 0x55, 0xe5, 0x92, 0x1d, 0x97, - 0xed, 0xfc, 0xe1, 0xc4, 0x65, 0xbb, 0x2a, 0x76, 0x39, 0x4e, 0x52, 0xae, 0xc4, 0x95, 0x8a, 0x53, - 0x65, 0x55, 0x12, 0x5d, 0xaa, 0x52, 0xa9, 0x7e, 0xcc, 0x4c, 0xcf, 0x60, 0x06, 0x33, 0xb3, 0xcb, - 0x97, 0xee, 0xee, 0xaf, 0x5d, 0xf4, 0xf3, 0xf7, 0x7d, 0xfd, 0xf5, 0xf7, 0x7d, 0xfd, 0x75, 0x4f, - 0x37, 0xa4, 0xda, 0xf5, 0x4e, 0xbd, 0x29, 0xb7, 0xe5, 0x8e, 0xbe, 0xd2, 0x53, 0xbb, 0x7a, 0x17, - 0x1d, 0x6a, 0xd4, 0xbb, 0xda, 0xca, 0x87, 0x14, 0xbd, 0x2e, 0xc9, 0xad, 0x15, 0x2e, 0xbb, 0xde, - 0x53, 0x56, 0x6e, 0x9e, 0xcd, 0x1c, 0x68, 0x76, 0xbb, 0xcd, 0x96, 0x9c, 0xab, 0xf7, 0x94, 0x5c, - 0xbd, 0xd3, 0xe9, 0xea, 0x75, 0x5d, 0xe9, 0x76, 0x34, 0x5a, 0x3b, 0xb3, 0xc4, 0x72, 0xc9, 0xaf, - 0xab, 0xfd, 0x6b, 0x39, 0xb9, 0xdd, 0xd3, 0x77, 0x59, 0xe6, 0x01, 0x67, 0xa6, 0xa6, 0xab, 0xfd, - 0x06, 0xeb, 0x38, 0x73, 0xd8, 0x99, 0xab, 0x2b, 0x6d, 0x59, 0xd3, 0xeb, 0xed, 0x1e, 0x2b, 0x70, - 0x8a, 0xfc, 0x69, 0x9c, 0x6e, 0xca, 0x9d, 0xd3, 0xda, 0xad, 0x7a, 0xb3, 0x29, 0xab, 0xb9, 0x6e, - 0x8f, 0xf4, 0xee, 0x82, 0x64, 0xe1, 0x66, 0xbd, 0xa5, 0x48, 0x75, 0x5d, 0xce, 0x19, 0xff, 0xb0, - 0x8c, 0x74, 0xbd, 0xaf, 0x5f, 0xa7, 0xf5, 0x8c, 0xea, 0x2c, 0x67, 0x86, 0xfc, 0xc9, 0xb5, 0x65, - 0x4d, 0xab, 0x37, 0x59, 0x71, 0x71, 0x07, 0x92, 0xef, 0xa3, 0xcc, 0x28, 0x74, 0x1b, 0x1a, 0x9a, - 0x87, 0x11, 0x45, 0xd3, 0xfa, 0xb2, 0x9a, 0x16, 0x96, 0x85, 0xe3, 0x63, 0x15, 0xf6, 0x0b, 0x9d, - 0x06, 0x24, 0x29, 0x5a, 0xa3, 0x7b, 0x53, 0x56, 0x77, 0x6b, 0x72, 0x47, 0xea, 0x75, 0x95, 0x8e, - 0x9e, 0x8e, 0x90, 0x32, 0xd3, 0x66, 0x4e, 0x91, 0x65, 0x88, 0x9f, 0x16, 0x20, 0x5a, 0xaa, 0xb7, - 0x91, 0x08, 0x13, 0xcd, 0x56, 0xf7, 0x6a, 0xbd, 0x55, 0xeb, 0xaa, 0xcd, 0x9a, 0x22, 0xb1, 0x56, - 0x93, 0x34, 0xb1, 0xac, 0x36, 0x4b, 0x12, 0x3a, 0x02, 0x93, 0x4a, 0xbd, 0x5d, 0xeb, 0xa9, 0xdd, - 0x1f, 0x95, 0x1b, 0x3a, 0x2e, 0x44, 0x9b, 0x1d, 0x57, 0xea, 0xed, 0x6d, 0x9a, 0x58, 0x92, 0xd0, - 0x21, 0x48, 0x6a, 0xb2, 0x5e, 0xeb, 0xf7, 0x6a, 0x52, 0xb7, 0x23, 0xa7, 0xa3, 0xcb, 0xc2, 0xf1, - 0x44, 0x65, 0x4c, 0x93, 0xf5, 0x2b, 0xbd, 0x42, 0xb7, 0x23, 0xe3, 0x56, 0x58, 0xbe, 0xa6, 0xd7, - 0x55, 0x5d, 0x96, 0xd2, 0x31, 0x52, 0x64, 0x9c, 0x14, 0xa9, 0xd2, 0x34, 0xf1, 0x23, 0x02, 0x4c, - 0xac, 0x5d, 0xaf, 0x77, 0x9a, 0x72, 0x45, 0xfe, 0x60, 0x5f, 0xd6, 0x74, 0x34, 0x09, 0x11, 0x13, - 0x56, 0x44, 0x91, 0xd0, 0x1c, 0x8c, 0x68, 0x72, 0xc3, 0x42, 0x11, 0xd7, 0xe4, 0x46, 0x49, 0x42, - 0xb3, 0x10, 0x6f, 0x29, 0x6d, 0x45, 0x27, 0x1d, 0xc7, 0x2a, 0xf4, 0x07, 0x3a, 0x06, 0x53, 0x1a, - 0x6e, 0xa7, 0xd3, 0x90, 0x6b, 0xdd, 0x6b, 0xd7, 0x34, 0x59, 0x27, 0xbd, 0xc6, 0x2a, 0x93, 0x46, - 0x72, 0x99, 0xa4, 0xa2, 0x14, 0x44, 0xeb, 0x5a, 0x23, 0x1d, 0x27, 0x90, 0xf0, 0xbf, 0xe2, 0x2e, - 0x8c, 0x52, 0x20, 0x1a, 0x7a, 0x0f, 0x8c, 0x36, 0xe8, 0xbf, 0x69, 0x61, 0x39, 0x7a, 0x3c, 0x79, - 0xee, 0xf1, 0x95, 0xe1, 0x42, 0xba, 0xc2, 0x48, 0x30, 0xaa, 0xe1, 0x51, 0x63, 0xdd, 0x47, 0x48, - 0xf7, 0xec, 0x97, 0x3b, 0x6a, 0xf1, 0xef, 0x47, 0x60, 0x84, 0xb6, 0x80, 0x9e, 0x83, 0x24, 0x6d, - 0xa3, 0x86, 0x25, 0x88, 0xb0, 0x21, 0x79, 0x2e, 0xb3, 0x42, 0x45, 0x75, 0xc5, 0x10, 0xd5, 0x95, - 0x1d, 0x43, 0x54, 0x2b, 0x40, 0x8b, 0x17, 0xea, 0xba, 0x8c, 0x0a, 0x00, 0xf2, 0x4d, 0xb9, 0xa3, - 0xd7, 0xf4, 0xdd, 0x9e, 0x4c, 0x7a, 0x4e, 0x9e, 0x3b, 0x6a, 0x87, 0xce, 0xf0, 0x6e, 0x74, 0x1b, - 0xf5, 0x96, 0xf2, 0x21, 0x59, 0xda, 0xa4, 0xb2, 0x57, 0x19, 0x23, 0x15, 0x77, 0x76, 0x7b, 0x32, - 0xca, 0x40, 0xc2, 0x60, 0x16, 0x83, 0x69, 0xfe, 0x46, 0x4b, 0x30, 0x26, 0x4b, 0x8a, 0xde, 0x55, - 0xf1, 0x78, 0xc4, 0xc8, 0x78, 0x24, 0x68, 0x42, 0x49, 0xc2, 0x44, 0xd3, 0xff, 0x09, 0x5b, 0xc7, - 0x2a, 0xec, 0x17, 0x3a, 0x09, 0x31, 0xa9, 0xae, 0xd7, 0xd3, 0x23, 0x04, 0xd0, 0xc2, 0x00, 0x31, - 0x55, 0x32, 0x2b, 0x2b, 0xa4, 0x90, 0xb8, 0x0d, 0x13, 0xf9, 0x5e, 0xaf, 0xa5, 0x34, 0xc8, 0xe4, - 0x2a, 0x15, 0xd0, 0x82, 0x25, 0x0f, 0xab, 0xa3, 0x6f, 0xae, 0xc6, 0xd4, 0x48, 0x4a, 0x20, 0x82, - 0xf1, 0x38, 0x80, 0x53, 0x44, 0xad, 0x02, 0x63, 0x3d, 0x43, 0x50, 0xc5, 0x23, 0x30, 0x66, 0x48, - 0xad, 0x77, 0x6b, 0xe2, 0xa3, 0x30, 0x72, 0x45, 0x93, 0xd5, 0x61, 0x45, 0x9e, 0x80, 0xb1, 0x8d, - 0x6e, 0x53, 0xe9, 0x6c, 0xd5, 0xdb, 0x32, 0xee, 0xbd, 0x85, 0x7f, 0xd4, 0x3a, 0xf5, 0xb6, 0xec, - 0x2c, 0x3d, 0xd6, 0x32, 0xca, 0x89, 0x3d, 0x98, 0xbe, 0xd2, 0x51, 0x3e, 0xd8, 0x97, 0x71, 0xeb, - 0x86, 0x8c, 0x9f, 0x87, 0xb1, 0xbe, 0x26, 0xab, 0x7c, 0xdd, 0x03, 0x6f, 0xae, 0x2e, 0xaa, 0x0b, - 0xe7, 0xe6, 0x7e, 0xe4, 0xfd, 0x3f, 0xf2, 0xfe, 0x0b, 0x5a, 0xaf, 0xde, 0x90, 0x2f, 0xfc, 0xf0, - 0x0f, 0xbf, 0x7a, 0xf6, 0xd4, 0xb9, 0x33, 0x67, 0x5e, 0x3b, 0x52, 0x49, 0xe0, 0xe2, 0xa4, 0xdf, - 0x65, 0x88, 0xcb, 0xed, 0xba, 0xd2, 0x62, 0x04, 0xc3, 0x9b, 0xab, 0xa3, 0x6a, 0x3c, 0x25, 0xa4, - 0x7f, 0x47, 0xa8, 0xd0, 0x0c, 0xf1, 0x2c, 0x20, 0xbe, 0x47, 0xad, 0xd7, 0xed, 0x68, 0x64, 0xe4, - 0x14, 0xad, 0xd6, 0x27, 0x19, 0xa4, 0xcb, 0x44, 0x25, 0xa1, 0x68, 0xb4, 0xa0, 0xf8, 0x7d, 0x01, - 0xa6, 0xd7, 0x54, 0xb9, 0xae, 0xdf, 0x2d, 0x94, 0xef, 0x85, 0xf8, 0xf5, 0x7e, 0xbb, 0xde, 0x61, - 0x42, 0x78, 0xce, 0x77, 0xfe, 0x90, 0xce, 0x2f, 0xe1, 0x2a, 0xac, 0xf7, 0x4b, 0x8f, 0x54, 0x68, - 0x13, 0x68, 0x1b, 0x46, 0xdb, 0xf5, 0xc6, 0x75, 0x85, 0x29, 0x99, 0xe4, 0xb9, 0x27, 0x83, 0xb5, - 0xb6, 0x49, 0x2b, 0x59, 0xed, 0x19, 0xcd, 0xac, 0x26, 0x21, 0x86, 0x91, 0xa2, 0xe8, 0xff, 0x59, - 0x15, 0xc4, 0x9f, 0x89, 0x03, 0x1a, 0xec, 0x1e, 0x9d, 0x00, 0xb8, 0xa6, 0xa8, 0x9a, 0xce, 0x53, - 0xcf, 0x33, 0x7b, 0x8c, 0xe4, 0x12, 0x62, 0x8f, 0xc1, 0x58, 0xab, 0x6e, 0x94, 0x1c, 0x1c, 0x96, - 0x04, 0xce, 0x24, 0x05, 0x8f, 0xc2, 0x58, 0x47, 0x69, 0xdc, 0xa0, 0x05, 0xa3, 0xa4, 0x60, 0xe2, - 0xcd, 0xd5, 0xb8, 0x1a, 0x25, 0xc5, 0x70, 0x16, 0x29, 0xf6, 0x0c, 0xa0, 0x9e, 0x2a, 0x5f, 0x93, - 0x55, 0x55, 0x96, 0x6a, 0xad, 0x7a, 0xa7, 0xd9, 0xaf, 0x37, 0x65, 0x3a, 0xdb, 0xb8, 0xf2, 0xd3, - 0x66, 0x99, 0x0d, 0x56, 0x04, 0xbd, 0x1b, 0x46, 0x9a, 0x72, 0x47, 0x92, 0xe9, 0x04, 0x9c, 0xf4, - 0x57, 0x5b, 0xeb, 0xa4, 0x74, 0x85, 0xd5, 0x42, 0xa2, 0x21, 0x5b, 0x23, 0xa4, 0xaf, 0xf1, 0x37, - 0x57, 0xc7, 0xd4, 0x51, 0x42, 0xc4, 0x07, 0x0c, 0xe9, 0x42, 0x59, 0x98, 0x56, 0xb4, 0x1a, 0xf9, - 0xbf, 0x76, 0x53, 0x56, 0x95, 0x6b, 0x8a, 0x2c, 0xa5, 0x47, 0x89, 0x3c, 0x4d, 0x29, 0x5a, 0x11, - 0xa7, 0xbf, 0xc8, 0x92, 0xd1, 0x41, 0x88, 0xf7, 0xae, 0x63, 0xe3, 0x90, 0xe0, 0xa6, 0x47, 0x7a, - 0xb6, 0x42, 0x53, 0x59, 0x53, 0xe4, 0x7f, 0xab, 0xa9, 0x31, 0xa3, 0xa9, 0x6d, 0x9c, 0x6e, 0x36, - 0x25, 0xc2, 0x68, 0xa3, 0xdb, 0xef, 0xe8, 0xea, 0x6e, 0x1a, 0x1c, 0x8c, 0x30, 0x32, 0xd0, 0x11, - 0x48, 0xb4, 0x88, 0x5e, 0xd3, 0x77, 0xd3, 0x49, 0x27, 0x77, 0x8d, 0x1c, 0x74, 0x02, 0x92, 0xbd, - 0xae, 0xa6, 0xd7, 0x5b, 0xb5, 0x46, 0x57, 0x92, 0xd3, 0xe3, 0x8e, 0x82, 0x40, 0x33, 0xd7, 0xba, - 0x12, 0x9e, 0x6b, 0x23, 0xaa, 0xdc, 0x54, 0xba, 0x9d, 0xf4, 0x84, 0xa3, 0x14, 0x4b, 0x47, 0x39, - 0x98, 0xd4, 0x74, 0x55, 0x96, 0xf5, 0x5a, 0x5d, 0x92, 0x54, 0x59, 0xd3, 0xd2, 0x93, 0x8e, 0x92, - 0x13, 0x34, 0x3f, 0x4f, 0xb3, 0xd1, 0x63, 0x90, 0xe8, 0xd5, 0x35, 0xed, 0x56, 0x57, 0x95, 0xd2, - 0x53, 0x3c, 0x57, 0x2e, 0x55, 0xcc, 0x0c, 0xf1, 0x2a, 0xcc, 0xba, 0x89, 0x30, 0x3a, 0x04, 0x31, - 0x0f, 0x69, 0x24, 0xe9, 0x28, 0x0b, 0x49, 0x49, 0xd6, 0x1a, 0xaa, 0x42, 0xbc, 0x0c, 0x26, 0x8a, - 0x0c, 0xca, 0xf7, 0xa2, 0x15, 0x3e, 0x53, 0xfc, 0xd5, 0x28, 0x8c, 0xdb, 0x14, 0x84, 0xd3, 0xee, - 0x3e, 0x0f, 0x71, 0x4d, 0xc7, 0x36, 0x28, 0x42, 0x64, 0xe9, 0x84, 0x9f, 0x2c, 0xe1, 0xc6, 0xaa, - 0xb8, 0x42, 0x85, 0xd6, 0x43, 0xcf, 0xc3, 0x44, 0x03, 0x53, 0xa1, 0x74, 0x3b, 0xd4, 0x98, 0x45, - 0x7d, 0x8d, 0xd9, 0xb8, 0x51, 0x81, 0x98, 0x33, 0x87, 0x2d, 0x8c, 0x85, 0xb2, 0x85, 0xbc, 0x15, - 0x8b, 0x0f, 0x5a, 0x31, 0x4b, 0xb1, 0x8d, 0x50, 0x2b, 0x66, 0xaa, 0xae, 0xa2, 0xa1, 0xba, 0x46, - 0x49, 0x7f, 0xa7, 0xfd, 0xe8, 0x66, 0x5a, 0x83, 0x72, 0xd1, 0xd2, 0x5a, 0x97, 0x2d, 0xad, 0x95, - 0x20, 0x0d, 0xe5, 0xfc, 0x1a, 0x32, 0x07, 0xdb, 0x6c, 0xca, 0x5d, 0x61, 0xfd, 0xc7, 0x18, 0x24, - 0x30, 0xb3, 0x5f, 0x54, 0xe4, 0x5b, 0x6f, 0xa7, 0x51, 0x3b, 0x0c, 0x49, 0xcb, 0xe2, 0x6a, 0xe9, - 0x91, 0xe5, 0xe8, 0xf1, 0xb1, 0x0a, 0x98, 0x96, 0x56, 0x43, 0x67, 0x60, 0x96, 0xd3, 0x9b, 0x96, - 0x71, 0x1e, 0x25, 0xdc, 0xb1, 0x74, 0xaa, 0x65, 0xc4, 0xcf, 0x03, 0x10, 0xcd, 0x4d, 0x0a, 0xb3, - 0x71, 0x1a, 0x06, 0x95, 0xe8, 0x79, 0x52, 0x1d, 0x1d, 0x85, 0x49, 0x55, 0xd6, 0xba, 0x7d, 0x15, - 0x7b, 0x9a, 0xb7, 0x3a, 0xb2, 0x4a, 0x34, 0xd7, 0x58, 0x65, 0xc2, 0x48, 0x2d, 0xe3, 0x44, 0xbb, - 0xa8, 0x81, 0x43, 0xd4, 0xf2, 0x86, 0xa8, 0x25, 0x49, 0xcf, 0x27, 0x02, 0x89, 0x1a, 0x1e, 0x76, - 0x4b, 0xcc, 0xd6, 0x2d, 0x31, 0x1b, 0x27, 0x8d, 0x9c, 0x0c, 0x28, 0x66, 0xac, 0x19, 0x77, 0x11, - 0xfb, 0xd9, 0x18, 0x4c, 0xd8, 0xe4, 0x1a, 0x1d, 0x1c, 0x34, 0x87, 0xbc, 0x09, 0x5c, 0x1a, 0x30, - 0x81, 0x9c, 0xd9, 0x7b, 0x14, 0xc6, 0x25, 0x45, 0xeb, 0xb5, 0xea, 0xbb, 0x9c, 0xe5, 0xab, 0x24, - 0x59, 0x9a, 0x51, 0xdf, 0xb2, 0x8c, 0xcc, 0xaf, 0x34, 0xed, 0xe1, 0x69, 0x57, 0x7b, 0x48, 0x7d, - 0xcc, 0xa1, 0x56, 0x70, 0x64, 0x4f, 0x56, 0x70, 0xd6, 0xb0, 0x82, 0x54, 0x6e, 0x86, 0xd9, 0xbd, - 0x84, 0xbb, 0xdd, 0x9b, 0x35, 0xec, 0x1e, 0x15, 0x89, 0x61, 0xe6, 0x0e, 0xdc, 0xcd, 0x5d, 0xda, - 0x32, 0x77, 0xc4, 0x92, 0x59, 0x46, 0x2e, 0xc3, 0x19, 0xb9, 0x71, 0xc6, 0x68, 0xc3, 0xb4, 0x1d, - 0xb6, 0x9b, 0x36, 0x62, 0xb4, 0x6c, 0x06, 0x6d, 0xde, 0x34, 0x68, 0x93, 0xd4, 0x43, 0x67, 0x66, - 0xec, 0xe8, 0x80, 0x19, 0x9b, 0xa2, 0xc2, 0x6c, 0x33, 0x5e, 0xe2, 0x1f, 0xc7, 0x60, 0xcc, 0x94, - 0x41, 0x54, 0x84, 0x94, 0x61, 0xb1, 0x6a, 0x74, 0x0a, 0x4b, 0x01, 0xd6, 0x2b, 0x53, 0x46, 0x1d, - 0xba, 0xe0, 0x91, 0x1c, 0x92, 0x15, 0x19, 0x2a, 0x59, 0x51, 0x1f, 0xc9, 0x8a, 0xf9, 0x48, 0x56, - 0x3c, 0x90, 0x64, 0x8d, 0xf8, 0x4b, 0xd6, 0xe8, 0xfe, 0x24, 0x2b, 0xe1, 0x2b, 0x59, 0x63, 0x3e, - 0x92, 0x05, 0xbe, 0x92, 0x95, 0xf4, 0x95, 0xac, 0x71, 0x6f, 0xc9, 0x9a, 0x18, 0x2e, 0x59, 0x93, - 0x43, 0x24, 0x6b, 0xca, 0x47, 0xb2, 0x52, 0x6e, 0x92, 0xb5, 0x0e, 0x53, 0x0e, 0xf3, 0x87, 0x10, - 0xef, 0xec, 0x30, 0x07, 0x67, 0xd9, 0xc5, 0xc1, 0xb1, 0xbb, 0x35, 0x3f, 0x29, 0x40, 0x92, 0xd3, - 0x70, 0xe8, 0x3d, 0x30, 0x49, 0xc4, 0xe7, 0x86, 0xbc, 0x8b, 0x11, 0x04, 0x12, 0xd1, 0x71, 0x5c, - 0xe3, 0xb2, 0xbc, 0x9b, 0xc7, 0xe5, 0x4d, 0x1c, 0x11, 0x6f, 0x1c, 0xd1, 0x41, 0x1c, 0xef, 0x87, - 0xd9, 0x2b, 0x3d, 0x69, 0xd0, 0x85, 0xf3, 0x5c, 0xcd, 0x86, 0xf1, 0xdd, 0x7e, 0x4f, 0x80, 0xd9, - 0xbc, 0x24, 0xb1, 0xa6, 0x2f, 0xcb, 0xbb, 0x46, 0xeb, 0xcb, 0x30, 0x4a, 0xac, 0xcd, 0x60, 0x17, - 0x23, 0x38, 0xbd, 0x24, 0xa1, 0x0d, 0x88, 0x99, 0xc1, 0x81, 0xc9, 0x73, 0x2b, 0x01, 0x8d, 0xc5, - 0x65, 0x79, 0x77, 0x67, 0xb7, 0x27, 0x13, 0x3c, 0xb7, 0x85, 0xc8, 0xf2, 0x23, 0x15, 0xd2, 0x0a, - 0x5a, 0x83, 0x29, 0xf9, 0x95, 0x9e, 0xa2, 0x86, 0x72, 0x17, 0x26, 0xad, 0x2a, 0xd8, 0xe6, 0x8b, - 0xbf, 0x1c, 0x81, 0x39, 0x07, 0x35, 0x9e, 0x2e, 0xa9, 0xc3, 0x37, 0x89, 0x84, 0xf4, 0x4d, 0x86, - 0x85, 0x36, 0x56, 0x19, 0x67, 0x62, 0x7b, 0xe1, 0x8c, 0x37, 0x3f, 0xe2, 0x61, 0xf9, 0x81, 0xe7, - 0x1a, 0x96, 0x56, 0x49, 0xd6, 0xeb, 0x4a, 0x4b, 0x23, 0xda, 0x68, 0xbc, 0x02, 0x37, 0xe4, 0xdd, - 0x02, 0x4d, 0x11, 0x5f, 0x82, 0x19, 0xab, 0xf7, 0x52, 0x21, 0xf8, 0xe0, 0x1f, 0x82, 0x11, 0xdc, - 0xf2, 0x60, 0xb4, 0x24, 0x7e, 0x43, 0xde, 0x2d, 0x49, 0xe2, 0x4f, 0x45, 0x60, 0xd2, 0x6a, 0xd9, - 0xd5, 0xbf, 0x5c, 0xdd, 0x8f, 0xfc, 0x30, 0x2e, 0x0d, 0x1b, 0x85, 0x81, 0x21, 0x8e, 0x85, 0x1c, - 0xe2, 0xbb, 0x31, 0x04, 0xe2, 0xab, 0xb0, 0x60, 0x21, 0xaf, 0xca, 0x75, 0xb5, 0x71, 0xdd, 0xe0, - 0xb2, 0x15, 0xd9, 0x13, 0xdc, 0x23, 0x7b, 0x11, 0x3e, 0x1e, 0xc9, 0xc2, 0x8c, 0x51, 0x33, 0xcc, - 0xc8, 0x8f, 0x52, 0xcc, 0x75, 0x94, 0xc4, 0xaf, 0x45, 0x20, 0x3d, 0xd8, 0x3b, 0x9b, 0x12, 0xe1, - 0xba, 0x7f, 0x14, 0xc6, 0xf5, 0x2e, 0xd6, 0xda, 0xaa, 0xac, 0xf5, 0x5b, 0x46, 0xd4, 0x31, 0x49, - 0xd2, 0x2a, 0x24, 0x09, 0x5d, 0xc4, 0x8a, 0x9b, 0x64, 0xc6, 0x48, 0xa8, 0x33, 0xc4, 0x90, 0x62, - 0x01, 0xa9, 0xb0, 0xda, 0xd4, 0x94, 0x76, 0x1b, 0xb2, 0xa6, 0xc9, 0x52, 0xcd, 0xe1, 0xc3, 0x4f, - 0x9b, 0x39, 0x55, 0x63, 0x9c, 0xf3, 0x30, 0x79, 0x53, 0x91, 0x6f, 0xd5, 0xcc, 0x98, 0x3b, 0x8b, - 0x0e, 0x0e, 0x1b, 0xa5, 0x09, 0x5c, 0xc3, 0xfc, 0x29, 0x7e, 0x4f, 0x80, 0x69, 0xb2, 0x7c, 0xd9, - 0xc7, 0xf8, 0xec, 0xc0, 0xa4, 0xd6, 0x55, 0x75, 0xa5, 0xd3, 0xac, 0x35, 0xba, 0xad, 0x7e, 0x9b, - 0xea, 0xf2, 0x49, 0xff, 0x55, 0x9f, 0xd5, 0x31, 0x56, 0x58, 0x13, 0xac, 0x91, 0x35, 0xd2, 0x86, - 0x31, 0xea, 0x31, 0x6b, 0xd4, 0x4b, 0x30, 0xfa, 0xc1, 0xbe, 0xac, 0x2a, 0xb2, 0x96, 0x8e, 0x13, - 0x36, 0xe7, 0x82, 0x77, 0xf0, 0x42, 0x5f, 0x56, 0x77, 0x2b, 0x46, 0x7d, 0xf1, 0x0d, 0x01, 0xa6, - 0x1c, 0x99, 0xa8, 0x04, 0xd1, 0x1b, 0xf2, 0x2e, 0xa1, 0x38, 0x2c, 0x76, 0x4e, 0xa7, 0xe3, 0x36, - 0x50, 0x01, 0x46, 0xda, 0xb2, 0x7e, 0xbd, 0x2b, 0xb1, 0x29, 0x7e, 0xca, 0xaf, 0x35, 0xda, 0xd2, - 0x26, 0xa9, 0x53, 0x61, 0x75, 0x31, 0xb7, 0x6f, 0xd6, 0x5b, 0x7d, 0xc3, 0x63, 0xa3, 0x3f, 0xc4, - 0xcf, 0x46, 0x00, 0xf1, 0x23, 0x76, 0xaf, 0x64, 0xfa, 0x3d, 0x0e, 0x99, 0x3e, 0x1e, 0x84, 0x23, - 0x0f, 0x58, 0x9a, 0xbf, 0x12, 0x85, 0x24, 0x86, 0xb1, 0xad, 0x76, 0xaf, 0x29, 0xad, 0x41, 0xdb, - 0xb7, 0x1f, 0x37, 0x79, 0xe8, 0xea, 0xca, 0xe9, 0x43, 0xc7, 0x07, 0x7d, 0xe8, 0xfb, 0xec, 0x26, - 0xf3, 0xf6, 0x21, 0xe1, 0x67, 0x1f, 0xc6, 0xf6, 0x17, 0x9e, 0x80, 0x30, 0xe1, 0x09, 0xf1, 0xfb, - 0x51, 0x3a, 0xf7, 0xd8, 0x20, 0xb9, 0x5a, 0xc8, 0x77, 0x06, 0xea, 0xc1, 0x0f, 0x94, 0x33, 0x56, - 0x94, 0x0c, 0x1c, 0x2b, 0x1a, 0xf7, 0x8a, 0x15, 0x89, 0x5f, 0x8a, 0x40, 0x9a, 0xba, 0xf4, 0x9c, - 0x04, 0x78, 0x6d, 0x5a, 0x9e, 0x18, 0x14, 0x82, 0x40, 0xbb, 0x07, 0xd1, 0xa0, 0xbb, 0x07, 0xb1, - 0x90, 0xbb, 0x07, 0xf1, 0x30, 0xbb, 0x07, 0x7b, 0x8a, 0x9b, 0x88, 0xd7, 0x60, 0xd1, 0xe2, 0xcf, - 0x15, 0x16, 0xe3, 0xf2, 0x62, 0x90, 0x6d, 0x6f, 0x29, 0x12, 0x66, 0x6f, 0x49, 0xfc, 0xdf, 0x02, - 0x8c, 0xe1, 0xe6, 0xc9, 0xca, 0x78, 0xa0, 0xe1, 0x59, 0xdb, 0xfe, 0xd8, 0xd0, 0x35, 0x76, 0xd4, - 0x7d, 0x8d, 0xcd, 0x4b, 0x75, 0xcc, 0x4f, 0xaa, 0xe3, 0xfb, 0x93, 0xea, 0x91, 0x50, 0xea, 0xe7, - 0xff, 0x0a, 0x30, 0x61, 0x52, 0xee, 0xaa, 0x7c, 0xde, 0xca, 0xd4, 0xdf, 0x84, 0x79, 0x4b, 0xbe, - 0x08, 0x68, 0x2f, 0xe1, 0xf2, 0xdd, 0x23, 0x0d, 0xc3, 0x11, 0x53, 0xde, 0x48, 0x1c, 0xc5, 0x8d, - 0xe3, 0x34, 0x22, 0x13, 0xf1, 0x8d, 0xc8, 0x44, 0xdd, 0x23, 0x32, 0xc3, 0x62, 0xde, 0x03, 0x1c, - 0x1f, 0xd9, 0x1f, 0xc7, 0x47, 0xf7, 0x24, 0x6f, 0x14, 0xaf, 0x87, 0xbc, 0xbd, 0x65, 0xa9, 0xff, - 0x31, 0x5e, 0xde, 0x08, 0x68, 0xdf, 0x20, 0xce, 0x61, 0x1b, 0x3b, 0x56, 0xc7, 0xde, 0x5c, 0x1d, - 0x51, 0x63, 0x29, 0xc1, 0x67, 0xcb, 0xd3, 0x9d, 0x33, 0xe2, 0xbf, 0x8d, 0x50, 0x8f, 0xd0, 0xd8, - 0x3a, 0x74, 0xf2, 0x9e, 0x8b, 0xe4, 0x45, 0xbc, 0x23, 0x79, 0xd1, 0xe1, 0x91, 0xbc, 0xd8, 0x90, - 0x48, 0x5e, 0xdc, 0x27, 0x92, 0x37, 0xe2, 0x12, 0xc9, 0xb3, 0x8d, 0xe7, 0xa8, 0xdf, 0x78, 0x26, - 0xf6, 0x37, 0x9e, 0x63, 0xa1, 0xc6, 0xf3, 0x0f, 0x22, 0xd4, 0x79, 0x63, 0x48, 0x5d, 0xe5, 0xf9, - 0x1d, 0x9e, 0x8e, 0x85, 0xd5, 0x10, 0x9c, 0x53, 0xc4, 0xf0, 0xfa, 0x4e, 0x13, 0xd1, 0xc1, 0x65, - 0xbf, 0xcd, 0xfc, 0x68, 0xd0, 0xcd, 0xfc, 0x58, 0xa0, 0xcd, 0xfc, 0x78, 0xe0, 0xcd, 0xfc, 0x91, - 0xa1, 0x9b, 0xf9, 0x62, 0x19, 0xc6, 0x37, 0xfb, 0x2d, 0x5d, 0xb9, 0x58, 0x6f, 0xe8, 0x5d, 0x55, - 0x43, 0xcf, 0x43, 0xac, 0x7d, 0xad, 0x6e, 0x1c, 0x1a, 0xf3, 0xdf, 0x89, 0xb3, 0xea, 0x56, 0x48, - 0x45, 0xf1, 0x63, 0x02, 0x24, 0xb9, 0x54, 0xf4, 0x1c, 0x8b, 0xb6, 0xd1, 0x85, 0xfd, 0x31, 0xdf, - 0x06, 0xaf, 0xd5, 0xb9, 0x30, 0xdb, 0xbb, 0xed, 0x5b, 0xc1, 0xbe, 0x8b, 0xe0, 0xcd, 0x8b, 0x79, - 0x7e, 0x27, 0x58, 0x7c, 0x01, 0xa6, 0xb6, 0xd9, 0x5e, 0x8d, 0xef, 0x88, 0x1e, 0xe5, 0x8e, 0x35, - 0x38, 0x74, 0x1f, 0x7f, 0xb0, 0xe1, 0xc7, 0xe1, 0x50, 0x55, 0xd6, 0x8d, 0x56, 0xb7, 0xba, 0xba, - 0x72, 0x8d, 0x1d, 0xf4, 0xf2, 0xed, 0xa1, 0x60, 0x0b, 0x3c, 0x9e, 0xf1, 0x23, 0x86, 0x6f, 0xdb, - 0xe2, 0x89, 0x78, 0x0a, 0x32, 0x46, 0xef, 0x6b, 0xdd, 0x76, 0xaf, 0x25, 0xbf, 0xa2, 0xe8, 0xbb, - 0xdb, 0xdd, 0x96, 0xd2, 0xd8, 0x2d, 0x15, 0x9c, 0xda, 0x40, 0xfc, 0xeb, 0x28, 0xa4, 0xbd, 0x8a, - 0xbb, 0x38, 0x1d, 0x3e, 0x7b, 0x13, 0x28, 0x6f, 0x0c, 0x08, 0x8d, 0x31, 0xf9, 0xca, 0x07, 0xed, - 0x68, 0xf8, 0xee, 0x7c, 0x6c, 0x7f, 0xb3, 0x3d, 0x1e, 0x6a, 0x55, 0x75, 0x10, 0xa0, 0xad, 0x74, - 0x6a, 0x2d, 0xb9, 0xd3, 0xd4, 0xaf, 0x93, 0xc9, 0x11, 0xab, 0x8c, 0xb5, 0x95, 0xce, 0x06, 0x49, - 0x40, 0x8f, 0xc1, 0xc4, 0xf5, 0xba, 0x56, 0x6b, 0x75, 0x6f, 0xc9, 0x6a, 0xa3, 0xae, 0xc9, 0xec, - 0x58, 0xd0, 0xf8, 0xf5, 0xba, 0xb6, 0x61, 0xa4, 0x19, 0x85, 0xfa, 0xbd, 0x1e, 0x2b, 0x94, 0x30, - 0x0b, 0x5d, 0x31, 0xd2, 0x70, 0x47, 0xb8, 0x50, 0xa7, 0xdf, 0xbe, 0xca, 0x36, 0xd6, 0x13, 0x95, - 0xb1, 0xeb, 0x75, 0x6d, 0x8b, 0x24, 0x18, 0xd9, 0xda, 0x6e, 0xfb, 0x6a, 0xb7, 0xc5, 0xb6, 0x50, - 0x71, 0x76, 0x95, 0x24, 0xd8, 0xd4, 0x65, 0xd2, 0xa1, 0x2e, 0x0f, 0x02, 0x28, 0x5a, 0x4d, 0x92, - 0xaf, 0xd5, 0xfb, 0x2d, 0x9d, 0xac, 0xf6, 0x12, 0x95, 0x31, 0x45, 0x2b, 0xd0, 0x04, 0xf1, 0x6f, - 0x04, 0x38, 0xe4, 0x35, 0xe2, 0xf4, 0x48, 0x8e, 0x73, 0xa3, 0x46, 0x18, 0xb2, 0x51, 0xe3, 0x60, - 0x58, 0xc4, 0x97, 0x61, 0xd1, 0x20, 0x0c, 0x8b, 0xf9, 0x32, 0x2c, 0x3e, 0x9c, 0x61, 0x23, 0x0e, - 0x86, 0x89, 0x1f, 0x8e, 0x78, 0x53, 0x4d, 0xb5, 0xfb, 0x80, 0xb4, 0x87, 0xd8, 0xae, 0x72, 0x70, - 0x21, 0xea, 0xcb, 0x85, 0x58, 0x10, 0x2e, 0xc4, 0x7d, 0xb9, 0x30, 0x32, 0x9c, 0x0b, 0xa3, 0x4e, - 0x2e, 0x1c, 0x85, 0x19, 0x83, 0x09, 0xf9, 0xa6, 0xec, 0xa9, 0x14, 0x3e, 0x11, 0x85, 0xe9, 0x81, - 0x72, 0x6f, 0x47, 0x6d, 0xb0, 0x0c, 0xe3, 0xed, 0xfa, 0x2b, 0xb5, 0x3a, 0xa9, 0xbd, 0xab, 0x31, - 0x7d, 0x00, 0xed, 0xfa, 0x2b, 0x79, 0x5c, 0x62, 0x57, 0x43, 0xc7, 0x21, 0x45, 0x36, 0x56, 0xe4, - 0xda, 0xad, 0xba, 0xda, 0xa1, 0xa5, 0xa8, 0xff, 0x42, 0x37, 0x5c, 0xe4, 0x97, 0xea, 0x6a, 0x87, - 0x94, 0x1c, 0x16, 0x49, 0xb2, 0x4f, 0xd9, 0x31, 0xe7, 0x94, 0xfd, 0xa4, 0x00, 0x0b, 0x03, 0xe3, - 0xb1, 0x87, 0xb9, 0xea, 0x24, 0x27, 0x12, 0x88, 0x9c, 0xa8, 0x1b, 0x39, 0xe2, 0xcf, 0xbb, 0x61, - 0xba, 0x0b, 0x33, 0xc9, 0x89, 0x31, 0x1a, 0x08, 0x63, 0xcc, 0x15, 0xe3, 0x09, 0x0b, 0xe2, 0x46, - 0xb7, 0x71, 0xa3, 0xdb, 0xd7, 0x3d, 0x45, 0xfe, 0x8b, 0x51, 0x98, 0x73, 0x2d, 0xfb, 0x76, 0x14, - 0xfb, 0x47, 0xd9, 0x18, 0xe8, 0xba, 0xdc, 0xee, 0xe9, 0x86, 0xd8, 0x27, 0xf1, 0x18, 0xb0, 0x24, - 0xf4, 0x04, 0xcc, 0x6b, 0xd7, 0xbb, 0xb7, 0x6a, 0xad, 0x6e, 0xe3, 0x46, 0xad, 0xdb, 0xd7, 0x6b, - 0xd7, 0xea, 0x4a, 0xab, 0xaf, 0xca, 0x1a, 0x53, 0x3a, 0x33, 0x38, 0x17, 0x33, 0xb2, 0xdc, 0xd7, - 0x2f, 0xb2, 0xac, 0xfd, 0x4c, 0x81, 0x9f, 0x17, 0x60, 0xc9, 0x75, 0x7c, 0xf6, 0x30, 0x0d, 0x9c, - 0xe4, 0x45, 0xc2, 0x90, 0x17, 0xf5, 0x24, 0x4f, 0xfc, 0x67, 0x5e, 0x18, 0xef, 0xc2, 0xb4, 0x70, - 0x62, 0x8e, 0x86, 0xc1, 0x1c, 0xf3, 0xc6, 0xfc, 0x79, 0x01, 0xc6, 0xcb, 0x6a, 0xb3, 0x54, 0x6f, - 0x33, 0x71, 0x9f, 0x83, 0x11, 0xdb, 0x67, 0x33, 0xf1, 0x2e, 0xf9, 0x60, 0xc6, 0x5f, 0xea, 0x9f, - 0x85, 0x45, 0x12, 0xee, 0xa4, 0x91, 0xe6, 0x76, 0x5f, 0xd3, 0x6b, 0x57, 0xe5, 0x9a, 0xd4, 0x6d, - 0xd7, 0x95, 0x0e, 0xe3, 0xda, 0x1c, 0x2e, 0x40, 0xc2, 0xcd, 0x9b, 0x7d, 0x4d, 0x5f, 0x95, 0x0b, - 0x24, 0x13, 0xaf, 0x48, 0x8d, 0x71, 0xa7, 0x48, 0x8d, 0x9f, 0xe2, 0x39, 0x48, 0x95, 0xd5, 0x26, - 0x1d, 0xe2, 0x80, 0x27, 0x84, 0xb1, 0xa5, 0x8f, 0x96, 0xd5, 0xe6, 0x00, 0xb7, 0xc3, 0xae, 0x15, - 0xca, 0x6a, 0xf3, 0x21, 0x3a, 0x35, 0x6a, 0x1c, 0xd1, 0x89, 0x73, 0x47, 0x74, 0xf8, 0xe9, 0x34, - 0x62, 0x9f, 0x4e, 0xe2, 0x47, 0x22, 0x30, 0x5a, 0x56, 0x9b, 0xae, 0x11, 0x80, 0xb7, 0x17, 0x27, - 0x4e, 0xc0, 0x08, 0x93, 0xb3, 0xc3, 0x30, 0xc2, 0xc4, 0xd1, 0x79, 0x78, 0x84, 0x26, 0x8b, 0x1f, - 0x8b, 0xc0, 0x58, 0x59, 0x6d, 0xb2, 0xe2, 0x1e, 0x33, 0x61, 0xdf, 0x27, 0x74, 0x1c, 0xd4, 0x47, - 0x43, 0x51, 0x3f, 0x6f, 0xd2, 0x40, 0x43, 0x30, 0xec, 0x17, 0xe6, 0x80, 0x19, 0x6c, 0xa3, 0x7e, - 0xa3, 0xf9, 0x1b, 0xcf, 0xaf, 0x9e, 0xaa, 0xb4, 0xeb, 0xea, 0x2e, 0x73, 0x18, 0x8d, 0x9f, 0xc3, - 0xa2, 0x2e, 0xe2, 0xff, 0x8c, 0xc0, 0x84, 0xc9, 0x0c, 0x22, 0x47, 0x6f, 0x6f, 0x86, 0xa0, 0x0f, - 0xc0, 0x14, 0xfb, 0xec, 0x11, 0x53, 0x4a, 0x56, 0xea, 0x09, 0x32, 0x81, 0x9e, 0x09, 0x30, 0x81, - 0x18, 0x1b, 0xcd, 0xfa, 0x64, 0xc1, 0x3e, 0x79, 0xd3, 0xf6, 0x5b, 0x3c, 0x0f, 0x33, 0x79, 0x49, - 0x32, 0x4b, 0x1b, 0x1a, 0x4f, 0x74, 0xc8, 0x2d, 0xaf, 0xf3, 0x0c, 0xd1, 0xfd, 0x8c, 0x00, 0x19, - 0x97, 0x6e, 0x42, 0x34, 0x81, 0xae, 0xd8, 0xc2, 0x0f, 0x7b, 0x25, 0xca, 0x79, 0x80, 0x4e, 0x2c, - 0xc2, 0x92, 0x2b, 0x30, 0x76, 0x32, 0x62, 0x16, 0xe2, 0x7a, 0xf7, 0x86, 0xdc, 0x31, 0x64, 0x8a, - 0xfc, 0x40, 0x29, 0x88, 0xf6, 0x55, 0x63, 0x8b, 0x07, 0xff, 0x2b, 0xbe, 0x1b, 0xd2, 0xac, 0xb6, - 0xbc, 0x27, 0x06, 0x5d, 0x80, 0x85, 0x6d, 0x3a, 0xc8, 0x03, 0xd5, 0x7d, 0xf5, 0xc2, 0x79, 0x98, - 0xaf, 0xc8, 0xed, 0xee, 0x4d, 0x39, 0x7c, 0xd5, 0xaf, 0x46, 0x60, 0xc1, 0xac, 0x75, 0xaf, 0x0f, - 0x85, 0x14, 0x1d, 0x87, 0x42, 0x4e, 0x07, 0x1f, 0xc3, 0x07, 0x7b, 0x32, 0xe4, 0x1f, 0x09, 0x30, - 0x3f, 0xc0, 0xa5, 0xbd, 0x1c, 0x76, 0xda, 0xb2, 0x0e, 0x21, 0x45, 0x09, 0x0b, 0x9e, 0x0c, 0xcc, - 0x02, 0xd7, 0x93, 0x48, 0xbf, 0x29, 0xc0, 0xac, 0x5b, 0x09, 0xb4, 0xc5, 0x1f, 0x47, 0x3a, 0x17, - 0xb2, 0x93, 0xfb, 0x7c, 0x26, 0xe9, 0x71, 0x98, 0x2c, 0xab, 0xcd, 0x4d, 0xb9, 0x7d, 0x55, 0x56, - 0x2b, 0xdd, 0x96, 0xac, 0xe1, 0x72, 0x2a, 0xfe, 0x87, 0x84, 0x71, 0xc7, 0x2a, 0xf4, 0x87, 0xf8, - 0x87, 0x02, 0x31, 0x7f, 0xb4, 0x20, 0x5a, 0x70, 0x9c, 0xb5, 0x34, 0x8f, 0x58, 0x9a, 0x95, 0x23, - 0x5c, 0xe5, 0xfd, 0x29, 0xf1, 0x7d, 0x2f, 0x77, 0x86, 0x6c, 0xb1, 0x89, 0x9b, 0x86, 0x56, 0x65, - 0x1c, 0x08, 0x7c, 0x96, 0xd4, 0x95, 0x50, 0x71, 0x1b, 0xe6, 0xe9, 0xb9, 0xfe, 0xbb, 0xd6, 0xe2, - 0x05, 0x4e, 0xbd, 0x84, 0x6c, 0xd1, 0xd0, 0x2f, 0xb4, 0xda, 0xc3, 0xa8, 0x5f, 0x28, 0xb2, 0x07, - 0xac, 0x5f, 0xfe, 0x8a, 0xfa, 0x32, 0x16, 0x96, 0xb7, 0x8c, 0x74, 0x0f, 0xff, 0xd0, 0xcf, 0xfd, - 0x3b, 0x1f, 0xfb, 0xf1, 0xad, 0xc4, 0xd0, 0xe3, 0x5b, 0x63, 0x3e, 0x9f, 0xa3, 0xc0, 0xc0, 0x09, - 0x2d, 0x43, 0x99, 0xdb, 0x45, 0xf2, 0xbe, 0x29, 0x73, 0xbe, 0x5b, 0x77, 0x65, 0x3e, 0x50, 0x22, - 0xbc, 0x32, 0xe7, 0x9b, 0xb8, 0xcf, 0xca, 0xfc, 0x69, 0x98, 0x65, 0x9f, 0xfa, 0x87, 0x5b, 0x16, - 0x97, 0xcd, 0x7a, 0x34, 0x1a, 0xe1, 0xbb, 0x1b, 0x75, 0x88, 0xff, 0x28, 0xc4, 0xa5, 0xc1, 0x2f, - 0x47, 0x60, 0x8e, 0xb5, 0x78, 0xaf, 0xf5, 0xce, 0x9a, 0x43, 0xef, 0xf8, 0x47, 0xd4, 0x28, 0xae, - 0x07, 0xac, 0x75, 0x7e, 0x2b, 0x02, 0x49, 0x0e, 0x09, 0x9e, 0x77, 0xdc, 0x6d, 0x0e, 0xec, 0x03, - 0x43, 0xf3, 0x12, 0x07, 0xd7, 0xaf, 0x70, 0x56, 0xed, 0xa1, 0xc4, 0x53, 0x01, 0x09, 0xb7, 0x2d, - 0xd7, 0xf7, 0xb5, 0xda, 0xde, 0xf7, 0x79, 0xa8, 0xc1, 0x8f, 0x48, 0x47, 0xdc, 0x3e, 0x22, 0x1d, - 0xb6, 0x12, 0xfd, 0x94, 0x60, 0xca, 0xee, 0x7e, 0xd4, 0xc9, 0x86, 0x53, 0x9d, 0x9c, 0x0b, 0xca, - 0x4d, 0x37, 0x65, 0xf2, 0x1b, 0x02, 0xa0, 0xc1, 0x7c, 0xb4, 0xc1, 0xab, 0x92, 0x33, 0xa1, 0x3a, - 0xb8, 0xcf, 0x8a, 0xa4, 0x0c, 0x09, 0xd6, 0xbd, 0x86, 0xd6, 0x20, 0xc1, 0xe4, 0xd0, 0xd8, 0xd9, - 0x3f, 0x16, 0x10, 0x7a, 0xc5, 0xac, 0x28, 0x7e, 0x3c, 0x02, 0xa3, 0x2c, 0x75, 0x20, 0xe4, 0xf4, - 0xd6, 0x94, 0xed, 0x61, 0x61, 0xa7, 0xac, 0x29, 0x1e, 0xfe, 0x8e, 0xf7, 0x9f, 0x08, 0x30, 0x61, - 0x2b, 0xfc, 0xd6, 0x71, 0xbe, 0x1b, 0x90, 0xb2, 0x51, 0x96, 0x97, 0x24, 0x6f, 0x93, 0xc3, 0xb9, - 0xbb, 0x11, 0x1f, 0x07, 0x3a, 0xca, 0xf3, 0xef, 0x1a, 0xcc, 0xd8, 0x3a, 0x61, 0x17, 0x0d, 0xdd, - 0xf5, 0x7e, 0xb6, 0x1d, 0xfd, 0x50, 0xaf, 0x7d, 0x1f, 0xfd, 0x88, 0x3a, 0x4c, 0x1a, 0x13, 0xa9, - 0xdb, 0x92, 0x87, 0x32, 0x27, 0x45, 0x35, 0x0b, 0x0b, 0x89, 0x60, 0xed, 0x10, 0xe0, 0xa3, 0xf3, - 0x59, 0x88, 0x37, 0xd5, 0x6e, 0xbf, 0xc7, 0x82, 0x63, 0xf4, 0x87, 0x78, 0xdb, 0xd2, 0x5d, 0xac, - 0xdb, 0xd5, 0x7e, 0xeb, 0x86, 0x77, 0xd7, 0x55, 0x98, 0x30, 0x0c, 0x97, 0x25, 0x7c, 0x01, 0xbe, - 0xa3, 0xb2, 0xf7, 0x51, 0x19, 0xef, 0x59, 0xbf, 0x35, 0xf1, 0xef, 0x0a, 0x30, 0xcd, 0x15, 0xf0, - 0x1b, 0xb3, 0x45, 0x8e, 0x7c, 0x2b, 0x67, 0x7f, 0x7c, 0xf8, 0xa4, 0x65, 0xa0, 0x31, 0x04, 0x3f, - 0x03, 0xbd, 0xa7, 0x11, 0x78, 0xb0, 0x3b, 0x79, 0x26, 0xdd, 0x23, 0x1c, 0xdd, 0x43, 0x8d, 0xed, - 0x9f, 0x08, 0x30, 0xc5, 0xf1, 0x24, 0x88, 0xe3, 0xf2, 0x60, 0xf8, 0x12, 0x9e, 0xb4, 0x75, 0x9b, - 0xc0, 0xf9, 0x4d, 0x5e, 0x6f, 0x81, 0x13, 0xbf, 0x1e, 0x81, 0x45, 0xae, 0xa5, 0x7b, 0xed, 0xfe, - 0xae, 0x3b, 0xdc, 0xdf, 0x5c, 0x88, 0x79, 0xf7, 0x80, 0x5d, 0xe0, 0xdf, 0x14, 0x20, 0xed, 0xc2, - 0x29, 0xea, 0xbe, 0x3d, 0x3e, 0x28, 0x56, 0x6e, 0xb7, 0x9b, 0x85, 0xbb, 0x69, 0x0e, 0x6d, 0x5b, - 0x6e, 0x1e, 0x65, 0xd7, 0xd3, 0x21, 0xd8, 0xe5, 0xea, 0xea, 0xfd, 0xb6, 0x00, 0xf3, 0xee, 0x65, - 0xd0, 0x36, 0xef, 0xee, 0x3d, 0x19, 0xba, 0xa3, 0xfb, 0xec, 0xf2, 0xfd, 0x8f, 0x88, 0x39, 0x03, - 0x82, 0x84, 0x42, 0x96, 0x06, 0x3e, 0x60, 0x71, 0x0b, 0x2d, 0x44, 0xbd, 0x43, 0x0b, 0xb1, 0xa1, - 0xa1, 0x85, 0xb8, 0x23, 0xb4, 0x60, 0xda, 0xdc, 0x91, 0x21, 0xae, 0xcd, 0xe8, 0xfe, 0x5c, 0x9b, - 0xc4, 0x3e, 0x5c, 0x1b, 0x70, 0x44, 0x5e, 0x9c, 0x4a, 0x2e, 0x39, 0x18, 0x0a, 0xf9, 0x46, 0x04, - 0x96, 0x6c, 0x0c, 0xbf, 0xd7, 0xaa, 0xa2, 0xe4, 0x50, 0x15, 0x67, 0x03, 0x8a, 0xe4, 0x43, 0x11, - 0xa5, 0xfb, 0x6d, 0x01, 0x32, 0xae, 0xdc, 0xba, 0x97, 0xea, 0xa2, 0xe2, 0x54, 0x17, 0xcf, 0x86, - 0x62, 0x99, 0xab, 0xc2, 0xf8, 0x5d, 0x4b, 0xeb, 0x0d, 0x06, 0x9b, 0x2a, 0xbc, 0xca, 0x78, 0x7a, - 0x0f, 0x9d, 0xdd, 0x67, 0xa5, 0xf1, 0x5f, 0x23, 0x90, 0xe4, 0xae, 0xab, 0xdc, 0xf7, 0x69, 0x82, - 0x7c, 0xaf, 0xf7, 0x90, 0x9f, 0x26, 0xd8, 0x84, 0x64, 0x57, 0x91, 0x1a, 0xb5, 0x46, 0xb7, 0x73, - 0x4d, 0x69, 0x32, 0x9d, 0x91, 0xf5, 0x0d, 0x0b, 0x96, 0x0a, 0x6b, 0x6b, 0xa4, 0xc6, 0xa5, 0x47, - 0x2a, 0x80, 0x1b, 0xa0, 0xbf, 0x6c, 0x3a, 0x64, 0xcc, 0xae, 0x43, 0x56, 0xc7, 0x01, 0xea, 0xbd, - 0x1e, 0xeb, 0x49, 0xd4, 0x61, 0x9a, 0xe3, 0x34, 0x3b, 0x35, 0x14, 0x54, 0xec, 0xa9, 0x23, 0x13, - 0xf1, 0x0e, 0xe4, 0xc5, 0x3d, 0x02, 0x79, 0xff, 0x2b, 0x0e, 0x60, 0x81, 0x47, 0x8f, 0xc1, 0x84, - 0x2a, 0x4b, 0x8a, 0x8a, 0x3b, 0xec, 0xab, 0x8a, 0xb1, 0x54, 0x1d, 0x37, 0x12, 0xaf, 0xa8, 0x8a, - 0x86, 0x5e, 0x22, 0x51, 0x1d, 0xa2, 0xc4, 0xc8, 0x4e, 0x38, 0x5d, 0x12, 0x04, 0x88, 0x78, 0xe0, - 0x8e, 0x0c, 0xf5, 0x47, 0xf6, 0xc0, 0x27, 0x54, 0xee, 0x97, 0x86, 0xb6, 0x20, 0xd9, 0x54, 0xeb, - 0xec, 0x7e, 0x57, 0xba, 0xfc, 0x0a, 0xf0, 0xb9, 0x3f, 0x6e, 0x75, 0x1d, 0x57, 0x23, 0x4d, 0x42, - 0xd3, 0xf8, 0x57, 0x43, 0x3f, 0x02, 0xa9, 0xba, 0xc5, 0xd2, 0x1a, 0x77, 0xfd, 0xc9, 0x13, 0x41, - 0x1a, 0xe5, 0x86, 0x83, 0x34, 0x3d, 0x55, 0xb7, 0x27, 0x60, 0x8b, 0xd6, 0x68, 0x29, 0x72, 0x87, - 0x0c, 0x0e, 0xb3, 0x68, 0x34, 0xa1, 0x24, 0x61, 0x56, 0xb2, 0x4c, 0x4d, 0x6e, 0xa8, 0xb2, 0xce, - 0x5c, 0xd5, 0x71, 0x9a, 0x58, 0x25, 0x69, 0xe8, 0x6f, 0x43, 0xaa, 0xde, 0xd7, 0xaf, 0xd7, 0xe8, - 0x24, 0xa4, 0x08, 0x47, 0x03, 0x46, 0xa2, 0x31, 0xc2, 0xbe, 0xce, 0xe6, 0x31, 0x3d, 0x52, 0x50, - 0xb7, 0xfd, 0x46, 0xe7, 0x61, 0xb1, 0xd7, 0xa5, 0xd7, 0xbf, 0x75, 0xfb, 0x7a, 0xcd, 0x3e, 0xb2, - 0x09, 0x32, 0xb2, 0xf3, 0xb8, 0xc0, 0x06, 0xc9, 0xaf, 0xf0, 0x63, 0x5c, 0x84, 0xd1, 0x9b, 0xb2, - 0xaa, 0x29, 0xdd, 0x0e, 0x11, 0xdb, 0x00, 0x07, 0x19, 0x31, 0x9e, 0x17, 0x69, 0x95, 0x8a, 0x51, - 0x17, 0x1d, 0x85, 0xc9, 0x4e, 0xb7, 0x23, 0xd7, 0x1a, 0xdd, 0x76, 0xaf, 0xa5, 0xd4, 0x3b, 0x3a, - 0x3b, 0xcd, 0x3e, 0x81, 0x53, 0xd7, 0x8c, 0x44, 0xf4, 0x22, 0xcc, 0x18, 0x25, 0x1a, 0x72, 0xad, - 0xa7, 0x76, 0xaf, 0xb6, 0xe4, 0x36, 0xfd, 0xac, 0x39, 0xf0, 0x0d, 0xbf, 0xc8, 0x6a, 0x61, 0x9b, - 0x35, 0x80, 0x16, 0x21, 0x21, 0xc9, 0x37, 0x6b, 0x6d, 0xe3, 0x22, 0x4c, 0x72, 0xba, 0xec, 0xe6, - 0x66, 0x57, 0x92, 0xc5, 0x8f, 0xc6, 0x61, 0xce, 0x31, 0xc8, 0xec, 0x34, 0x61, 0xd0, 0x39, 0xe7, - 0x13, 0x23, 0x1f, 0x9c, 0x4b, 0xd1, 0x40, 0x73, 0x29, 0x76, 0x4f, 0xe6, 0x52, 0xfc, 0x5e, 0xcc, - 0xa5, 0x91, 0xbb, 0x38, 0x97, 0xde, 0xea, 0x33, 0x81, 0x17, 0x45, 0xb0, 0x8b, 0xe2, 0xef, 0xc7, - 0x20, 0x65, 0xe9, 0xe0, 0x90, 0x9a, 0x7f, 0x05, 0x26, 0xf9, 0x71, 0x19, 0xb4, 0x02, 0x13, 0x5c, - 0x36, 0x55, 0x4b, 0xef, 0x48, 0xe5, 0x0f, 0xbe, 0x54, 0xf2, 0xe2, 0x34, 0x66, 0x17, 0xa7, 0x27, - 0x60, 0x7c, 0x8d, 0xb7, 0x31, 0x03, 0x86, 0x48, 0x18, 0x34, 0x44, 0xe2, 0x7f, 0x8f, 0xc0, 0x14, - 0xc7, 0x8d, 0xbb, 0x72, 0x74, 0xf4, 0x1d, 0x67, 0xcf, 0xd3, 0xd9, 0xfb, 0x7a, 0x04, 0x16, 0x39, - 0x76, 0x3f, 0x74, 0x41, 0x24, 0x87, 0x28, 0x3c, 0xe0, 0x20, 0x92, 0x0b, 0xa7, 0x1e, 0xae, 0x20, - 0xd2, 0x00, 0x40, 0x97, 0x20, 0x92, 0x7b, 0x99, 0x90, 0x41, 0xa4, 0x81, 0x46, 0xee, 0xf3, 0x7a, - 0xf0, 0x3f, 0x47, 0x60, 0x9c, 0xad, 0x4a, 0x89, 0x42, 0x76, 0xbb, 0x1d, 0x68, 0xe0, 0x5d, 0x0d, - 0x6e, 0x20, 0x8e, 0xc0, 0x24, 0xd1, 0xde, 0xb2, 0x64, 0xbc, 0xcf, 0x41, 0x9b, 0x1f, 0x67, 0xa9, - 0xf4, 0x81, 0x8e, 0x25, 0x18, 0x53, 0xbb, 0x2d, 0xb9, 0x76, 0x43, 0xde, 0xa5, 0x43, 0x30, 0x56, - 0x49, 0xe0, 0x84, 0xcb, 0xf2, 0xae, 0x86, 0xd6, 0x0d, 0x2d, 0x44, 0xef, 0x80, 0x0f, 0x1a, 0xe4, - 0x20, 0x70, 0x87, 0xab, 0xa3, 0xfb, 0x79, 0xfb, 0xc2, 0x30, 0x5d, 0x21, 0x7e, 0xd4, 0xda, 0xa2, - 0x21, 0xb0, 0x43, 0x3a, 0xa6, 0xa7, 0x07, 0x98, 0xec, 0x70, 0x09, 0x86, 0x70, 0x3b, 0x6a, 0xe7, - 0xb6, 0xa8, 0xda, 0x91, 0xdc, 0xad, 0x65, 0xe9, 0xd0, 0x3e, 0x5f, 0x30, 0xf7, 0xc5, 0x48, 0x9f, - 0xa5, 0xc2, 0xbe, 0xfb, 0x13, 0x3f, 0x1e, 0x33, 0xb7, 0x22, 0x49, 0x9b, 0x5e, 0x37, 0x5b, 0xed, - 0x5f, 0x76, 0x8f, 0x43, 0x8a, 0x2f, 0xc5, 0x85, 0x42, 0x27, 0xad, 0x72, 0x46, 0x3c, 0xd4, 0xe2, - 0x41, 0xdc, 0x4b, 0xca, 0x47, 0xee, 0xb6, 0x94, 0x8f, 0xee, 0x4f, 0xca, 0x13, 0x61, 0x3f, 0x26, - 0x33, 0x58, 0xca, 0x9d, 0x28, 0x4b, 0xb2, 0xb4, 0x2d, 0xe7, 0xe7, 0x1b, 0xce, 0x28, 0xeb, 0xe0, - 0xf9, 0x91, 0xa4, 0xdb, 0xf9, 0x91, 0x15, 0x98, 0xb1, 0x17, 0xe3, 0xef, 0xba, 0x9a, 0xb6, 0x95, - 0x25, 0x91, 0xd9, 0x5f, 0x8c, 0x98, 0xb1, 0x46, 0xca, 0xb0, 0x7b, 0x6c, 0x7e, 0x2f, 0x39, 0xcc, - 0xef, 0x99, 0x30, 0xa3, 0xf9, 0x80, 0xed, 0xef, 0x67, 0x05, 0x58, 0x5a, 0xa7, 0x82, 0xfb, 0xd0, - 0x1d, 0xc3, 0xf9, 0xae, 0x60, 0x6e, 0xc5, 0xd9, 0xc6, 0xf1, 0x5e, 0x3a, 0x07, 0x2f, 0x38, 0x9d, - 0x83, 0x67, 0x42, 0x4d, 0x4d, 0x37, 0x32, 0x7e, 0x47, 0x80, 0x05, 0x8f, 0x42, 0xe8, 0x05, 0xde, - 0x3d, 0x78, 0x2a, 0x7c, 0x57, 0xf7, 0xd9, 0x3f, 0xc8, 0xd9, 0x29, 0xf1, 0x3f, 0xfd, 0xf2, 0x67, - 0x0e, 0x53, 0xf7, 0x56, 0x3b, 0x02, 0xf3, 0x79, 0xc1, 0x3c, 0x28, 0xc9, 0xd1, 0x97, 0x97, 0xa4, - 0xc0, 0xe2, 0x29, 0x42, 0x82, 0x2e, 0x99, 0x07, 0x2d, 0xdb, 0x28, 0xc9, 0x28, 0xd9, 0xce, 0x9a, - 0x44, 0x7d, 0xce, 0xb4, 0xc4, 0x78, 0xee, 0x7f, 0xc9, 0xda, 0xab, 0xe0, 0xd0, 0xb1, 0xd3, 0x18, - 0x0f, 0x03, 0xc0, 0x8f, 0xba, 0x02, 0x64, 0xbb, 0xf7, 0xf7, 0x15, 0xa0, 0xf8, 0x37, 0x11, 0x73, - 0x23, 0x98, 0x83, 0xf2, 0xce, 0x26, 0x6a, 0x88, 0xc9, 0x31, 0xe6, 0xb3, 0x89, 0xea, 0x72, 0x9e, - 0xfc, 0x4e, 0x04, 0x96, 0x07, 0xb9, 0x7e, 0xaf, 0x0d, 0xf6, 0x96, 0xc3, 0x60, 0x3f, 0x1d, 0x46, - 0xf1, 0x3e, 0x14, 0xdb, 0xa9, 0xdf, 0x13, 0xe0, 0xb0, 0x37, 0xdf, 0xc2, 0x19, 0xc8, 0x20, 0xf3, - 0xc7, 0x1a, 0x82, 0xa8, 0xfb, 0x10, 0xc4, 0xf8, 0x21, 0x78, 0xc9, 0x79, 0x5d, 0xf4, 0x0f, 0x85, - 0x67, 0xb0, 0xab, 0x29, 0xfd, 0x43, 0x01, 0x0e, 0x0e, 0x2d, 0x8a, 0x5e, 0xe2, 0x0d, 0xea, 0x73, - 0x7b, 0xed, 0xf6, 0x3e, 0x9b, 0xd5, 0xdb, 0x51, 0x7a, 0x45, 0xa3, 0xfb, 0x9a, 0x7b, 0xc1, 0x71, - 0xd2, 0xd0, 0x54, 0x3f, 0xd6, 0x37, 0xbb, 0x51, 0xfe, 0x9b, 0x5d, 0xfb, 0x3a, 0x27, 0xe6, 0x5c, - 0xe7, 0x0c, 0x5d, 0x97, 0x14, 0xec, 0xeb, 0x92, 0x95, 0x20, 0x37, 0x4f, 0x3f, 0x6c, 0x8b, 0x92, - 0x61, 0x2a, 0x69, 0x91, 0x93, 0x75, 0xaa, 0x8e, 0x0c, 0x11, 0x17, 0x5f, 0x67, 0x17, 0x93, 0xf3, - 0x4b, 0x72, 0xff, 0xaf, 0xbe, 0x02, 0xbe, 0xe2, 0x38, 0x74, 0x45, 0x6c, 0x43, 0x15, 0xb3, 0xa3, - 0x52, 0x38, 0x50, 0x6c, 0x75, 0xee, 0x0f, 0x6a, 0x6f, 0xeb, 0xf2, 0xb3, 0x30, 0x63, 0x76, 0x45, - 0x4d, 0x30, 0x39, 0x39, 0x9a, 0x81, 0xa8, 0x22, 0x31, 0xb7, 0x8e, 0x4c, 0x8a, 0x4f, 0x09, 0x91, - 0x84, 0x50, 0xc1, 0x89, 0xe2, 0x25, 0x7a, 0xc5, 0xa3, 0xb1, 0x8e, 0xdf, 0x3b, 0x32, 0xf1, 0x0b, - 0x71, 0x7a, 0x57, 0xa7, 0xf7, 0xf2, 0xfd, 0x9d, 0x69, 0x10, 0x6e, 0x1a, 0xd8, 0x9c, 0x93, 0x31, - 0x87, 0x73, 0x62, 0x77, 0x43, 0x60, 0xa8, 0x1b, 0x92, 0x1c, 0x74, 0x43, 0xa8, 0x63, 0x33, 0xce, - 0x3b, 0x36, 0x8b, 0x90, 0x30, 0x03, 0x22, 0xf4, 0xf9, 0x9d, 0xd1, 0x2e, 0x8b, 0x84, 0x1c, 0x04, - 0xc0, 0x59, 0xec, 0x63, 0x6a, 0xfa, 0xf8, 0xce, 0x58, 0xd7, 0xbc, 0x8b, 0xc1, 0x19, 0x44, 0x98, - 0x1a, 0x1e, 0x44, 0x48, 0xf9, 0x06, 0x11, 0xa6, 0xdd, 0x82, 0x08, 0x4e, 0x67, 0x04, 0x0d, 0x1e, - 0x5b, 0xe5, 0xa7, 0xe1, 0x8c, 0x7d, 0x1a, 0x7e, 0x35, 0x02, 0x0b, 0xd6, 0x20, 0x3f, 0x6c, 0x9f, - 0x62, 0xda, 0x26, 0xce, 0x03, 0xfe, 0xd4, 0x7b, 0x80, 0x4b, 0xf7, 0xe7, 0xeb, 0x40, 0x47, 0xb7, - 0x0e, 0xbf, 0xe1, 0xf7, 0x05, 0x98, 0x75, 0x2b, 0x11, 0xf2, 0xeb, 0x40, 0x47, 0x13, 0x2e, 0x5e, - 0xc2, 0xd6, 0x7e, 0xbc, 0x04, 0xa3, 0xb1, 0xf4, 0x23, 0x3e, 0xfe, 0xc2, 0x37, 0x23, 0x70, 0x00, - 0x63, 0xa1, 0x2e, 0x8b, 0x76, 0x5d, 0xe9, 0xdd, 0x6b, 0x91, 0x7c, 0xaf, 0x43, 0x24, 0x03, 0xb1, - 0xca, 0x82, 0xf7, 0xe0, 0x37, 0x99, 0x96, 0xdc, 0xf9, 0x15, 0xf4, 0xe3, 0xee, 0x70, 0x41, 0xa4, - 0xaa, 0x33, 0x88, 0x74, 0x3e, 0x1c, 0xbb, 0x5c, 0x65, 0xf8, 0x8f, 0x04, 0x58, 0xf4, 0x2c, 0x86, - 0xaa, 0xbc, 0x20, 0x3f, 0xb3, 0x97, 0xee, 0x1e, 0x98, 0x34, 0x7f, 0x3b, 0x4a, 0x9f, 0x55, 0xb1, - 0x8b, 0x8b, 0xf7, 0xaa, 0xfb, 0x32, 0x24, 0xdb, 0xa4, 0x68, 0x8d, 0xbb, 0xd2, 0xc4, 0x77, 0x57, - 0x97, 0xb6, 0x4e, 0x4f, 0x18, 0xb4, 0xcd, 0xff, 0xb1, 0xec, 0xd7, 0x9b, 0x4d, 0x55, 0x6e, 0xd6, - 0x75, 0xd9, 0x72, 0x21, 0x92, 0x66, 0x1a, 0xf5, 0x14, 0xba, 0x57, 0xed, 0x7e, 0x44, 0x82, 0x26, - 0xf0, 0x71, 0x8d, 0x38, 0xbf, 0x26, 0x77, 0x1a, 0x9b, 0x91, 0x00, 0xdf, 0x48, 0x3c, 0x34, 0x3e, - 0xf2, 0xa0, 0x41, 0x05, 0x17, 0x83, 0x2a, 0x2e, 0x43, 0xbc, 0x24, 0xf5, 0x86, 0x3d, 0x38, 0xfe, - 0xff, 0x22, 0x10, 0x2d, 0x49, 0xbd, 0x7d, 0x1f, 0x34, 0x28, 0x49, 0x0f, 0xfb, 0x41, 0x83, 0x45, - 0x48, 0xb4, 0xba, 0xcd, 0x6e, 0x4d, 0x53, 0x1b, 0xec, 0xc1, 0xb3, 0x51, 0xfc, 0xbb, 0xaa, 0x36, - 0xd0, 0xb6, 0xfd, 0x0c, 0x42, 0xc0, 0x57, 0x79, 0xcb, 0x8a, 0xd4, 0x28, 0x49, 0x3d, 0xdf, 0x63, - 0x08, 0x89, 0xc1, 0x63, 0x08, 0x8a, 0x64, 0x1e, 0x43, 0xa8, 0xc1, 0x58, 0x49, 0xea, 0xb1, 0x65, - 0xc3, 0x5e, 0x3f, 0x06, 0xb7, 0x11, 0x17, 0xb5, 0x11, 0x27, 0xfe, 0x84, 0x00, 0x13, 0x36, 0xa8, - 0xf6, 0x33, 0x93, 0x82, 0xdf, 0x99, 0xc9, 0x88, 0xcb, 0x99, 0xc9, 0x79, 0x18, 0x51, 0x34, 0xad, - 0x2f, 0xab, 0x6c, 0x2e, 0xb2, 0x5f, 0x38, 0x5d, 0x6b, 0x74, 0x7b, 0x66, 0x08, 0x91, 0xfd, 0x12, - 0xff, 0x52, 0x80, 0x19, 0x1b, 0x06, 0xb6, 0x76, 0xf3, 0x7b, 0x6d, 0x9a, 0x27, 0x2b, 0x62, 0x1f, - 0xb3, 0x63, 0x3c, 0x11, 0x2e, 0x6f, 0x9a, 0x98, 0x04, 0xe5, 0x9c, 0x04, 0xc5, 0x06, 0x0a, 0xdb, - 0x89, 0x13, 0x4d, 0xe2, 0x06, 0x4f, 0xec, 0x0e, 0x12, 0x3a, 0x62, 0x23, 0xf4, 0x3b, 0x4e, 0x42, - 0xd9, 0xc0, 0x1e, 0x82, 0x11, 0x3c, 0xe6, 0x83, 0x83, 0x1b, 0x57, 0xa4, 0x5e, 0x49, 0xb2, 0x53, - 0x13, 0x19, 0x42, 0xcd, 0xc0, 0xf0, 0x44, 0x5d, 0x86, 0xc7, 0xa2, 0x20, 0x16, 0x80, 0x82, 0xb8, - 0x8d, 0x82, 0xcf, 0x44, 0x60, 0x1a, 0x4f, 0xe6, 0x7b, 0xec, 0xac, 0x3c, 0xef, 0x70, 0x56, 0x8e, - 0x05, 0x50, 0x30, 0x0f, 0xd8, 0x43, 0xf9, 0x8b, 0x28, 0x8c, 0x32, 0x14, 0x6f, 0x6f, 0x75, 0xb9, - 0x43, 0x3e, 0x47, 0xbd, 0xa9, 0x48, 0x86, 0x79, 0xa7, 0xc7, 0xf1, 0x72, 0x01, 0x88, 0xde, 0x66, - 0xf5, 0x88, 0x8d, 0x1f, 0xef, 0x71, 0xbf, 0xd0, 0x8e, 0xdb, 0x41, 0xb0, 0xb3, 0xa1, 0x94, 0x30, - 0x7b, 0x70, 0x3a, 0xe8, 0x79, 0xb0, 0x69, 0x98, 0xb2, 0x14, 0x71, 0x0d, 0x0f, 0xb6, 0xf8, 0x01, - 0x98, 0x1e, 0x68, 0x71, 0xb8, 0xbe, 0xb4, 0x54, 0x61, 0xc4, 0x43, 0x15, 0x46, 0x6d, 0xf3, 0xeb, - 0x63, 0x02, 0xa4, 0xb8, 0xf9, 0xb5, 0x97, 0x95, 0xd7, 0x25, 0xe7, 0xca, 0x6b, 0x25, 0x88, 0xb8, - 0xb9, 0xf9, 0xab, 0xbf, 0x22, 0xc0, 0xa4, 0x3d, 0x0f, 0x5d, 0xe2, 0x9d, 0xd4, 0x53, 0x81, 0x1b, - 0xbe, 0xcf, 0xd1, 0xd8, 0xcf, 0x09, 0x90, 0x24, 0x17, 0x99, 0xb2, 0x5b, 0x53, 0x9f, 0x86, 0x85, - 0x7a, 0xab, 0xd5, 0xbd, 0x55, 0xc3, 0xfe, 0x27, 0x96, 0xdf, 0x9a, 0xf9, 0x56, 0x80, 0x40, 0xaf, - 0x3e, 0x25, 0xd9, 0x57, 0x58, 0xae, 0x71, 0x4b, 0x2c, 0xf6, 0xa3, 0x68, 0x3d, 0x55, 0x6e, 0x2a, - 0x9a, 0xce, 0x46, 0x31, 0x51, 0x99, 0x20, 0xa9, 0x15, 0x96, 0x88, 0x4e, 0x01, 0xa2, 0xc5, 0xe4, - 0x57, 0x74, 0xdc, 0x42, 0xab, 0xa6, 0x48, 0x3d, 0x76, 0xa9, 0x6a, 0x8a, 0xe4, 0x14, 0x59, 0x46, - 0x49, 0xea, 0x89, 0x5f, 0x14, 0x60, 0x92, 0x03, 0x97, 0x97, 0xa4, 0x87, 0x0b, 0xdf, 0xbb, 0x60, - 0x82, 0x9b, 0x8a, 0xa5, 0x02, 0x3a, 0x09, 0x13, 0xdc, 0x44, 0x18, 0x34, 0x52, 0x49, 0xc5, 0x98, - 0x0f, 0x25, 0x49, 0xfc, 0x3a, 0x95, 0x19, 0xa3, 0x3a, 0xa6, 0x6e, 0xc5, 0xbd, 0x3e, 0x6f, 0x76, - 0xf8, 0x26, 0x90, 0x0c, 0xd3, 0xb8, 0xbc, 0x5d, 0x89, 0x44, 0xf6, 0xa4, 0x44, 0x38, 0xa1, 0xc3, - 0x93, 0x99, 0xcf, 0x12, 0x7f, 0x5a, 0x80, 0x24, 0x57, 0x1c, 0x89, 0xae, 0x30, 0xed, 0xd0, 0xde, - 0xef, 0x80, 0xb6, 0xb3, 0x77, 0x68, 0x83, 0x80, 0xde, 0x10, 0x60, 0x8a, 0x13, 0x0c, 0xa2, 0x5c, - 0xb8, 0xcb, 0x77, 0x05, 0xdb, 0xe5, 0xbb, 0xc3, 0x64, 0x26, 0x12, 0x4e, 0x66, 0xa2, 0xc1, 0x65, - 0x26, 0xe6, 0x21, 0x33, 0x3f, 0x25, 0xc0, 0x14, 0x47, 0x1f, 0x81, 0x1e, 0x84, 0x9f, 0x6e, 0x17, - 0x8f, 0x18, 0x4f, 0x8e, 0x44, 0x83, 0x3d, 0x39, 0x52, 0x92, 0x7a, 0xdc, 0xf3, 0x1a, 0x5f, 0x8f, - 0xc0, 0x22, 0x07, 0xe4, 0xa1, 0x3b, 0xb6, 0xeb, 0x60, 0xd2, 0x03, 0xf4, 0x57, 0x2e, 0x41, 0xda, - 0x85, 0x51, 0x7b, 0x30, 0x38, 0xd9, 0x6f, 0xb1, 0xe7, 0xc9, 0x88, 0xcb, 0x82, 0x16, 0x61, 0xee, - 0x4a, 0xb5, 0x58, 0xa9, 0xee, 0xe4, 0x77, 0x8a, 0xb5, 0x2b, 0x5b, 0xd5, 0xed, 0xe2, 0x5a, 0xe9, - 0x62, 0xa9, 0x58, 0x48, 0x3d, 0x82, 0x66, 0x21, 0x65, 0x65, 0xe5, 0xd7, 0x76, 0x4a, 0x2f, 0x16, - 0x53, 0x02, 0x9a, 0x07, 0x64, 0xa5, 0x96, 0xb6, 0x58, 0x7a, 0x04, 0xcd, 0xc1, 0xb4, 0x95, 0x5e, - 0x28, 0x6e, 0x14, 0x77, 0x8a, 0x85, 0x54, 0xd4, 0xde, 0xc8, 0x46, 0x79, 0xed, 0x72, 0xb1, 0x90, - 0x8a, 0xd9, 0x0b, 0x57, 0xaf, 0x54, 0xb7, 0x8b, 0x5b, 0x85, 0x54, 0xdc, 0x9e, 0x5c, 0xda, 0x2a, - 0xed, 0x94, 0xf2, 0x1b, 0xa9, 0x91, 0xec, 0xdf, 0x82, 0x11, 0xfa, 0x74, 0x20, 0xee, 0x7c, 0xbd, - 0xb8, 0x55, 0x28, 0x56, 0x1c, 0x50, 0xa7, 0x61, 0x82, 0xa5, 0x5f, 0x2c, 0x6e, 0xe6, 0x37, 0x30, - 0xce, 0x29, 0x48, 0xb2, 0x24, 0x92, 0x10, 0x41, 0x08, 0x26, 0x59, 0x42, 0xa1, 0xf4, 0x62, 0xb1, - 0x52, 0x2d, 0xa6, 0xa2, 0xd9, 0x3c, 0xff, 0x7e, 0xf5, 0x0e, 0x7d, 0x6b, 0x7a, 0x7e, 0x33, 0xbf, - 0x76, 0xa9, 0xb4, 0x55, 0xbc, 0x5c, 0x7c, 0xd9, 0xd1, 0xcb, 0x0c, 0x4c, 0x71, 0x79, 0xef, 0xad, - 0x96, 0xb7, 0x52, 0x42, 0xf6, 0x13, 0x11, 0xba, 0x8f, 0x62, 0x5a, 0x4e, 0x74, 0x10, 0x16, 0x09, - 0x15, 0xc5, 0x7c, 0x65, 0xed, 0xd2, 0x60, 0x2b, 0x4b, 0xb0, 0xe0, 0xc8, 0xae, 0x16, 0x2b, 0xb5, - 0xad, 0xfc, 0x26, 0x46, 0x7d, 0x00, 0xd2, 0xf6, 0xcc, 0x8b, 0xa5, 0x4a, 0x75, 0x87, 0xe6, 0x46, - 0x06, 0xab, 0x6e, 0xe4, 0x8d, 0xcc, 0xe8, 0x60, 0xe6, 0x56, 0x69, 0xed, 0x32, 0xcd, 0x8c, 0xa1, - 0x43, 0x90, 0xb1, 0x67, 0x16, 0x4a, 0xd5, 0xed, 0x8d, 0xfc, 0xcb, 0x34, 0x3f, 0x8e, 0x16, 0x60, - 0xc6, 0x9e, 0x5f, 0xdc, 0xcc, 0x97, 0x36, 0x52, 0x23, 0x83, 0x19, 0x64, 0x70, 0x52, 0xa3, 0xa6, - 0x1c, 0x98, 0x19, 0x3b, 0x2f, 0x6f, 0x17, 0x53, 0x89, 0xec, 0x5f, 0x45, 0x60, 0x9c, 0xb7, 0xfd, - 0xb8, 0x05, 0x5a, 0x68, 0xb3, 0xb8, 0x73, 0xa9, 0x5c, 0xa8, 0x15, 0x5f, 0xb8, 0x92, 0xdf, 0xa8, - 0xa6, 0x1e, 0xc1, 0xb4, 0xda, 0x32, 0xaa, 0x3b, 0xf9, 0xca, 0x4e, 0xb5, 0xf6, 0x52, 0x69, 0xe7, - 0x52, 0x4a, 0xc0, 0x82, 0x69, 0xcb, 0x5d, 0x2b, 0x6f, 0xed, 0xe4, 0x4b, 0x5b, 0xd5, 0x54, 0x04, - 0x3d, 0x06, 0x87, 0x5d, 0x5a, 0xac, 0x95, 0xd6, 0xb7, 0xca, 0x95, 0x62, 0x6d, 0x2d, 0x8f, 0x87, - 0x16, 0x1d, 0x87, 0x23, 0x5e, 0xad, 0xdb, 0x4a, 0xc6, 0xd0, 0x51, 0x78, 0xd4, 0xb5, 0x27, 0x5b, - 0xb1, 0x38, 0xe6, 0xaf, 0xad, 0xd8, 0x56, 0x79, 0xc7, 0xa0, 0x65, 0x04, 0x8f, 0xb9, 0x2d, 0x73, - 0xbd, 0x52, 0xcc, 0xef, 0x14, 0x2b, 0xb5, 0x9d, 0x4b, 0xf9, 0xad, 0xd4, 0x28, 0x96, 0x2a, 0x5b, - 0xf6, 0x46, 0xb1, 0x5a, 0xa5, 0x79, 0x89, 0x81, 0xbc, 0x52, 0xb5, 0x56, 0xde, 0x2a, 0xd6, 0xca, - 0x17, 0x53, 0x63, 0x78, 0xd8, 0xec, 0xf5, 0x4a, 0xd5, 0x1d, 0x8b, 0x13, 0x90, 0x2d, 0xc0, 0x28, - 0x7b, 0xc3, 0x09, 0xb3, 0x79, 0xf3, 0x62, 0x1e, 0x0f, 0x82, 0x43, 0xde, 0xa6, 0x20, 0x69, 0x64, - 0x54, 0x37, 0xab, 0x74, 0x66, 0x18, 0x09, 0xe5, 0x9d, 0xed, 0x54, 0x24, 0x7b, 0x0d, 0x12, 0xc6, - 0x5b, 0x4e, 0x28, 0x0d, 0xb3, 0xf8, 0x7f, 0x17, 0x75, 0x30, 0x0f, 0xc8, 0xcc, 0xc1, 0xb4, 0x57, - 0x8a, 0xf9, 0xc2, 0xcb, 0x29, 0x01, 0xcf, 0x2b, 0x33, 0x9d, 0xa6, 0x45, 0xf0, 0xac, 0xe7, 0xd2, - 0x36, 0xcb, 0x2f, 0x62, 0x5d, 0x90, 0xbd, 0x04, 0x29, 0xe7, 0x33, 0x4b, 0x98, 0xfa, 0xad, 0xf2, - 0x4e, 0xe9, 0x62, 0x69, 0x2d, 0xbf, 0x53, 0x2a, 0x6f, 0x11, 0x54, 0x54, 0xf6, 0x1e, 0xc1, 0x58, - 0x06, 0xf2, 0x08, 0x09, 0xd9, 0x3e, 0x24, 0xb9, 0x77, 0x1e, 0xf0, 0xd0, 0x6c, 0x97, 0x37, 0x4a, - 0x6b, 0x2f, 0x7b, 0xe0, 0xe6, 0x33, 0x4d, 0x45, 0x96, 0x86, 0x59, 0x3e, 0x9d, 0x53, 0x65, 0x0b, - 0x30, 0xc3, 0xe7, 0x98, 0xca, 0x2c, 0xbb, 0x0d, 0x09, 0xe3, 0xfa, 0x76, 0x5c, 0xbd, 0x5c, 0x59, - 0x77, 0xeb, 0x70, 0x06, 0xa6, 0xcc, 0x1c, 0xb3, 0xb7, 0x39, 0x98, 0x36, 0x13, 0xad, 0xae, 0xb2, - 0x3f, 0x29, 0x70, 0x37, 0x1a, 0xdb, 0xef, 0x7e, 0x46, 0xc7, 0xe0, 0xb1, 0x72, 0x65, 0xbd, 0x50, - 0xde, 0xcc, 0x97, 0xb6, 0x5e, 0xcc, 0x6f, 0x94, 0x0a, 0x16, 0x17, 0xec, 0x1d, 0x2e, 0xc3, 0x01, - 0xaf, 0x82, 0x97, 0x76, 0x76, 0xb6, 0x53, 0x02, 0x3a, 0x0c, 0x4b, 0x5e, 0x25, 0x0a, 0x78, 0x4a, - 0x65, 0x5f, 0x02, 0x34, 0x78, 0xad, 0x2e, 0x12, 0xe1, 0x90, 0x59, 0xcd, 0x4b, 0x9d, 0x1d, 0x84, - 0x45, 0x97, 0x32, 0xf4, 0x77, 0x4a, 0xc8, 0xfe, 0xba, 0x40, 0x5a, 0x76, 0x9c, 0xf5, 0x60, 0x2d, - 0x6f, 0x16, 0x37, 0x57, 0xbd, 0x15, 0xe5, 0xa3, 0x70, 0xd0, 0xa5, 0x0c, 0xa7, 0x10, 0x05, 0x46, - 0xb9, 0xb3, 0x88, 0xa5, 0x15, 0x23, 0x58, 0xc9, 0xb8, 0x94, 0xa0, 0x12, 0x16, 0xc5, 0xf3, 0xcb, - 0x0d, 0x06, 0x56, 0xc8, 0xa5, 0x42, 0x2a, 0x96, 0x7d, 0xc9, 0x3c, 0xe5, 0x6e, 0x41, 0x5f, 0x86, - 0x03, 0xdb, 0x95, 0xf2, 0x7b, 0x8b, 0x6b, 0x3b, 0x43, 0x80, 0x0f, 0x94, 0x60, 0x09, 0x0c, 0x78, - 0xf6, 0x03, 0xe6, 0x67, 0x1f, 0x54, 0x9a, 0x0e, 0x40, 0xda, 0xa8, 0xe2, 0x22, 0x51, 0x58, 0x20, - 0xf9, 0x5c, 0x53, 0xaa, 0x16, 0x61, 0xce, 0x96, 0xc1, 0x49, 0xd6, 0x4f, 0x58, 0xf7, 0xfc, 0xd9, - 0xae, 0x48, 0x41, 0x47, 0x60, 0x99, 0xd5, 0xa9, 0x94, 0x37, 0x8a, 0x5e, 0x34, 0x58, 0x80, 0xec, - 0xa5, 0x2e, 0x17, 0xf1, 0x9c, 0x3f, 0x0a, 0x8f, 0xba, 0xe6, 0xda, 0xac, 0x4a, 0x24, 0xfb, 0x7d, - 0xeb, 0xae, 0x17, 0xa7, 0x00, 0x3c, 0x0e, 0x22, 0x6b, 0x61, 0xb8, 0x10, 0x58, 0x3d, 0x0d, 0x15, - 0x04, 0x8b, 0xa8, 0x61, 0xc2, 0x60, 0x0d, 0x9d, 0x97, 0x40, 0x88, 0x70, 0xc8, 0x0b, 0x96, 0x21, - 0x14, 0x43, 0xfa, 0xb2, 0x2c, 0x79, 0x1c, 0xeb, 0x0a, 0xe3, 0x7b, 0x3d, 0xac, 0x2b, 0xf2, 0xdb, - 0xdb, 0x1e, 0xba, 0xc2, 0xcc, 0xe1, 0x75, 0x85, 0x99, 0xc8, 0x8d, 0xe8, 0x12, 0x24, 0xb9, 0x2f, - 0x61, 0xd1, 0x38, 0x24, 0xc8, 0xcf, 0xb3, 0xb5, 0x33, 0xa9, 0x47, 0xb2, 0x1f, 0xa4, 0x9f, 0xbc, - 0xf2, 0xdf, 0x8a, 0x62, 0xe9, 0x20, 0x69, 0xc5, 0xea, 0x76, 0x79, 0xab, 0x5a, 0x24, 0xd3, 0x7d, - 0xad, 0x5c, 0x28, 0xb2, 0x59, 0xeb, 0xcc, 0x2a, 0x15, 0x6a, 0x3b, 0xe5, 0xcb, 0xc5, 0xad, 0x94, - 0x80, 0x2d, 0xac, 0x67, 0x36, 0x2b, 0x14, 0xc9, 0xaa, 0x30, 0x61, 0xfb, 0x90, 0x14, 0x33, 0x86, - 0x24, 0x54, 0xf2, 0x5b, 0x3b, 0xa4, 0x4a, 0xfe, 0xca, 0xce, 0xa5, 0x72, 0xa5, 0xf4, 0x3e, 0xa2, - 0x6d, 0x8c, 0xae, 0x33, 0x30, 0x6f, 0x2f, 0x55, 0xda, 0xdc, 0xde, 0x28, 0xad, 0x95, 0x76, 0x98, - 0x9e, 0xb2, 0xe5, 0x55, 0x8a, 0x17, 0x2b, 0xc5, 0xea, 0x25, 0xb3, 0xcf, 0x9b, 0x30, 0xe3, 0xf2, - 0x9d, 0x29, 0x36, 0x00, 0x24, 0x79, 0x1b, 0xb7, 0x64, 0xe9, 0xb6, 0x97, 0x8a, 0xab, 0xa9, 0x47, - 0x88, 0xae, 0x71, 0xc9, 0x24, 0x83, 0x95, 0x5f, 0x2f, 0x6e, 0xe1, 0x8e, 0xb1, 0x22, 0x70, 0x29, - 0xb3, 0x95, 0x67, 0xbc, 0x6f, 0x01, 0x1a, 0xfc, 0xfe, 0x94, 0x28, 0x17, 0x9c, 0x7a, 0x65, 0x87, - 0x19, 0x68, 0x52, 0x69, 0x35, 0x5f, 0x2d, 0xad, 0x51, 0x47, 0xcf, 0x25, 0x77, 0xbb, 0x5c, 0xc5, - 0x1d, 0xba, 0x67, 0x6e, 0x95, 0xb7, 0x70, 0x6f, 0x35, 0x98, 0x75, 0xfb, 0x30, 0x0d, 0x33, 0x98, - 0x43, 0x58, 0x2d, 0x56, 0xf2, 0x1e, 0xea, 0xc7, 0x56, 0xca, 0x90, 0xce, 0xfc, 0xf6, 0xb6, 0xa1, - 0x7e, 0x74, 0xf3, 0xea, 0x22, 0xeb, 0x10, 0x0d, 0xa7, 0xb6, 0x08, 0xff, 0xdd, 0xc4, 0xd5, 0xd2, - 0x0a, 0x5c, 0x11, 0x53, 0x6e, 0x0f, 0x41, 0x66, 0x30, 0x97, 0x13, 0xe0, 0x8f, 0x39, 0xce, 0x6e, - 0x5b, 0x84, 0x59, 0xb3, 0x9c, 0xd6, 0xf4, 0x50, 0x06, 0x96, 0xd2, 0x70, 0x14, 0xb3, 0x6b, 0x57, - 0x6e, 0x16, 0x3b, 0xca, 0x61, 0x6d, 0x45, 0x54, 0x58, 0x24, 0xfb, 0x05, 0xeb, 0x36, 0x21, 0xb7, - 0xd3, 0x88, 0xe8, 0x24, 0x1c, 0xe3, 0xdb, 0x18, 0xae, 0xa5, 0xb2, 0xf0, 0xf8, 0xb0, 0xc2, 0x36, - 0x55, 0x75, 0x02, 0x8e, 0x0e, 0x2b, 0xcb, 0xeb, 0x2b, 0x07, 0x5b, 0xbc, 0x94, 0xd6, 0x31, 0x78, - 0x6c, 0x28, 0x54, 0x53, 0x73, 0xf9, 0x74, 0xcd, 0xab, 0xaf, 0xeb, 0x30, 0x69, 0x3f, 0x63, 0x65, - 0x2c, 0x21, 0x3c, 0x65, 0x83, 0xad, 0x24, 0xdd, 0x04, 0x83, 0x2d, 0x4d, 0xdc, 0xa5, 0xe2, 0x4f, - 0x05, 0xba, 0x1b, 0xed, 0x10, 0x09, 0x11, 0x0e, 0x59, 0x75, 0xbc, 0x0d, 0xad, 0x4b, 0x19, 0x43, - 0x18, 0x4a, 0x05, 0x2a, 0x93, 0x6e, 0xcd, 0x30, 0x96, 0x44, 0x8c, 0xc5, 0x9a, 0x23, 0xbf, 0x5c, - 0x59, 0xc7, 0xd9, 0x51, 0xac, 0x90, 0x5c, 0xb2, 0x4d, 0x31, 0x8a, 0x79, 0x14, 0x20, 0x3f, 0x71, - 0x0b, 0xf1, 0xec, 0xc7, 0x05, 0x7a, 0x90, 0xc9, 0x65, 0xf7, 0x1f, 0x0f, 0x1c, 0xae, 0xcc, 0xc6, - 0xe1, 0x52, 0x69, 0xdb, 0x8b, 0xd0, 0x65, 0x38, 0xe0, 0x55, 0x90, 0x2c, 0xbb, 0x88, 0x45, 0xf6, - 0x2a, 0x51, 0x5e, 0x35, 0xd8, 0x11, 0xc9, 0xbe, 0x0a, 0x60, 0xed, 0xcb, 0x93, 0xc5, 0x2e, 0xa9, - 0xe0, 0xe2, 0x54, 0x2e, 0xc1, 0x02, 0x97, 0x57, 0xae, 0xac, 0xe7, 0xb7, 0x4a, 0x55, 0xa2, 0x51, - 0x68, 0x10, 0x80, 0xcb, 0x64, 0x0c, 0xa7, 0xde, 0xd6, 0x60, 0x3a, 0xe5, 0x46, 0x2a, 0x9a, 0xbd, - 0x0a, 0x09, 0x63, 0xab, 0x04, 0x8f, 0x4b, 0xa9, 0xb0, 0xbd, 0x56, 0xde, 0xba, 0x58, 0x5a, 0xf7, - 0x90, 0x26, 0x47, 0x3e, 0x2f, 0x4d, 0x8e, 0x2c, 0x4e, 0x9a, 0x3e, 0x2c, 0xc0, 0x38, 0x1f, 0xc7, - 0xc6, 0x90, 0x4a, 0x05, 0x4f, 0xc6, 0x52, 0x18, 0x56, 0x6e, 0xa9, 0xb0, 0x5d, 0xa3, 0x2d, 0x53, - 0xf1, 0x99, 0x83, 0x69, 0x5b, 0x3e, 0x9b, 0x98, 0xce, 0x6a, 0xdb, 0x95, 0xf2, 0x8b, 0xa5, 0x02, - 0x5e, 0xef, 0xe1, 0xd1, 0x88, 0x66, 0x2f, 0x92, 0xcd, 0x25, 0x63, 0x5d, 0x56, 0x2a, 0x6c, 0xbb, - 0x30, 0x38, 0x05, 0xe3, 0x46, 0x06, 0xb6, 0x04, 0x29, 0x81, 0x4f, 0xa9, 0xe6, 0x37, 0x37, 0x52, - 0x91, 0x6c, 0xd3, 0x16, 0xa7, 0x23, 0xed, 0x1d, 0x86, 0xa5, 0x52, 0x61, 0xdb, 0xe8, 0xd0, 0xa5, - 0xdd, 0x0c, 0xcc, 0x3b, 0x0b, 0x54, 0x5f, 0xae, 0xee, 0x14, 0x37, 0x53, 0x02, 0x03, 0x63, 0xcb, - 0x2b, 0x57, 0xd6, 0x53, 0x91, 0xec, 0xfb, 0xcc, 0xbb, 0x3b, 0x0d, 0x7b, 0xca, 0x06, 0xcf, 0xa5, - 0x83, 0x39, 0x98, 0xe6, 0x33, 0xcb, 0x2f, 0x6d, 0x15, 0x0b, 0xb4, 0x6d, 0x3e, 0x99, 0x0c, 0x7a, - 0xb1, 0x90, 0x8a, 0x9c, 0xfb, 0xec, 0x3f, 0x17, 0x60, 0x7a, 0xd3, 0x8c, 0xad, 0x55, 0x65, 0xf5, - 0xa6, 0xd2, 0x90, 0xd1, 0x65, 0x18, 0xbd, 0x24, 0xd7, 0x5b, 0xfa, 0xf5, 0x0f, 0xa1, 0xf9, 0x81, - 0x38, 0x58, 0xb1, 0xdd, 0xd3, 0x77, 0x33, 0x1e, 0xe9, 0x62, 0xea, 0xf6, 0xbf, 0xff, 0x2f, 0xaf, - 0x47, 0x00, 0x25, 0x72, 0xd7, 0x59, 0x0b, 0xeb, 0x10, 0xaf, 0xc8, 0x75, 0x69, 0x37, 0x74, 0x53, - 0x93, 0xa4, 0xa9, 0x04, 0x1a, 0xc9, 0xa9, 0xa4, 0xfe, 0x16, 0x24, 0x8c, 0x97, 0x71, 0x3c, 0xdb, - 0x5a, 0x18, 0x48, 0xaf, 0xea, 0x6a, 0xbf, 0xa1, 0x8b, 0xd3, 0xa4, 0xb1, 0x24, 0x1a, 0xcb, 0xdd, - 0x34, 0xda, 0x68, 0xc1, 0xe4, 0xba, 0xac, 0xbf, 0x8f, 0x46, 0x18, 0x0b, 0xdd, 0x86, 0xe6, 0xd9, - 0xaa, 0xef, 0x35, 0x28, 0x5c, 0x23, 0xe2, 0x1c, 0xe9, 0x69, 0x0a, 0x4d, 0xe4, 0x58, 0xf9, 0x9c, - 0x84, 0xdb, 0xbe, 0x06, 0x23, 0xeb, 0xb2, 0x5e, 0xaa, 0xb7, 0x3d, 0x7b, 0x79, 0xcc, 0x37, 0xe4, - 0x59, 0x6f, 0x8b, 0x87, 0x6f, 0xdf, 0x49, 0x4f, 0xc1, 0x44, 0xbd, 0xaf, 0x5f, 0x97, 0x3b, 0x3a, - 0x76, 0x43, 0x64, 0x89, 0x74, 0x38, 0x82, 0x62, 0x39, 0xa5, 0xde, 0x46, 0x5f, 0xc2, 0xb3, 0x4c, - 0xc3, 0x6a, 0xed, 0x4a, 0x47, 0xf9, 0x60, 0x5f, 0x46, 0xbe, 0x5b, 0x7b, 0xb4, 0x1c, 0xae, 0xc1, - 0xa2, 0x96, 0x99, 0x73, 0x61, 0xaa, 0x50, 0xaf, 0x56, 0x3c, 0x76, 0xfb, 0x4e, 0x3a, 0x49, 0x8f, - 0xd9, 0xae, 0xe0, 0xf1, 0x22, 0xa0, 0x10, 0x4a, 0xe5, 0x70, 0x8a, 0x96, 0xab, 0x29, 0x5a, 0x9f, - 0xe2, 0xf9, 0xb0, 0x00, 0xc9, 0x75, 0x59, 0xc7, 0x95, 0x57, 0x77, 0x4b, 0x05, 0xf4, 0x78, 0x90, - 0x03, 0x5a, 0xa5, 0x42, 0xe6, 0x78, 0x90, 0x72, 0x2f, 0x2a, 0xf2, 0x2d, 0x51, 0x74, 0x83, 0x32, - 0x81, 0x92, 0x0c, 0xca, 0xab, 0x8a, 0xf4, 0x1a, 0xfa, 0x45, 0x01, 0xd2, 0x26, 0x0a, 0xb2, 0x57, - 0xb0, 0x55, 0x6f, 0xcb, 0xeb, 0xad, 0xee, 0xd5, 0x7a, 0x0b, 0x9d, 0xf0, 0xeb, 0xca, 0xac, 0x10, - 0x02, 0xd5, 0xb3, 0xb7, 0xef, 0xa4, 0x11, 0xa4, 0x08, 0xaa, 0x26, 0xe9, 0xc7, 0x02, 0x77, 0x00, - 0x65, 0x72, 0x34, 0xcd, 0x60, 0xd7, 0xd5, 0x5d, 0xf2, 0xbe, 0x20, 0x89, 0xe3, 0x7f, 0x49, 0x80, - 0x24, 0xd5, 0x9a, 0xb8, 0x31, 0x2d, 0xc0, 0x88, 0x6a, 0x8e, 0x38, 0x74, 0xe6, 0x5c, 0x98, 0x2a, - 0x6c, 0x44, 0x8f, 0xbb, 0xb1, 0x71, 0x46, 0x9c, 0x34, 0x20, 0x6a, 0xa4, 0xf8, 0x05, 0x21, 0x8b, - 0x7e, 0x46, 0x00, 0xa0, 0x27, 0x4d, 0x70, 0x33, 0xfe, 0xf8, 0xac, 0xb2, 0x06, 0xbe, 0x53, 0x41, - 0xf0, 0x99, 0xc8, 0x1e, 0xbd, 0x7d, 0x27, 0x3d, 0x0e, 0x40, 0x90, 0xdd, 0x52, 0x15, 0x5d, 0xa6, - 0x93, 0x5b, 0x1c, 0xa1, 0xd0, 0x30, 0xa4, 0xcf, 0x09, 0x30, 0x59, 0x90, 0xeb, 0x0d, 0x5d, 0xb9, - 0x69, 0xc0, 0x0a, 0x2a, 0x68, 0xe1, 0xb0, 0x9c, 0x73, 0xc5, 0x72, 0x20, 0xb3, 0xc0, 0x49, 0x5b, - 0xae, 0x26, 0x99, 0x50, 0x0c, 0x70, 0x95, 0x87, 0x07, 0x9c, 0x6a, 0x03, 0xf7, 0xd3, 0x02, 0x24, - 0x36, 0xba, 0x8d, 0x1b, 0xf7, 0x10, 0xd6, 0x29, 0x57, 0x58, 0xf3, 0x99, 0x69, 0x1b, 0xac, 0x56, - 0xb7, 0x71, 0x03, 0x03, 0xfa, 0x94, 0x00, 0x70, 0xa5, 0xd3, 0xba, 0xb7, 0x90, 0x56, 0x5c, 0x21, - 0xa5, 0x33, 0x33, 0x36, 0x48, 0xfd, 0x8e, 0x01, 0x4a, 0x05, 0x28, 0xc8, 0x2d, 0x39, 0xe4, 0xe8, - 0x79, 0x99, 0xba, 0x23, 0xb7, 0xef, 0xa4, 0x27, 0x20, 0x49, 0x7a, 0x97, 0x48, 0xb3, 0x54, 0x67, - 0x65, 0x6d, 0x3a, 0xeb, 0x93, 0x02, 0xfd, 0xc4, 0x84, 0x7e, 0xb4, 0xaa, 0x21, 0xdf, 0x93, 0x73, - 0xb4, 0xa0, 0x31, 0xc7, 0x8e, 0x05, 0x2b, 0xae, 0x89, 0x59, 0xb7, 0x89, 0x3f, 0x87, 0x6c, 0xac, - 0x68, 0x30, 0x0c, 0xbf, 0x2c, 0xc0, 0x44, 0x5e, 0x92, 0xac, 0xad, 0x1a, 0xe4, 0x7f, 0xb1, 0x0b, - 0x5f, 0xdc, 0x00, 0xf7, 0x54, 0xc8, 0x5a, 0x6c, 0xd8, 0xce, 0xb8, 0x0e, 0x5b, 0x46, 0x9c, 0x33, - 0xb0, 0xb2, 0x63, 0xb3, 0xaf, 0xe5, 0x6e, 0xc8, 0xbb, 0x44, 0x31, 0x7c, 0x46, 0x80, 0x14, 0x1d, - 0x39, 0x0e, 0xb3, 0xef, 0x0d, 0x5a, 0x56, 0xd9, 0x52, 0xc1, 0x80, 0xec, 0x35, 0x98, 0x4f, 0xbb, - 0x62, 0x5a, 0xce, 0x1e, 0x72, 0xc5, 0x94, 0x7b, 0xf5, 0x86, 0xbc, 0x8b, 0x7f, 0xa1, 0xef, 0x08, - 0x30, 0xcd, 0xb6, 0x67, 0xcc, 0xde, 0x34, 0xf4, 0x4c, 0x70, 0x68, 0x76, 0x95, 0xff, 0x6c, 0xf8, - 0x8a, 0x8c, 0xa9, 0xcf, 0xb8, 0x8d, 0xbf, 0x28, 0x1e, 0x74, 0xc7, 0xcf, 0xd9, 0x81, 0x6f, 0x08, - 0x30, 0xb1, 0x2e, 0xeb, 0xfb, 0x65, 0xec, 0x4a, 0xf0, 0x4a, 0xc4, 0xb2, 0x3e, 0xe5, 0x86, 0x77, - 0x19, 0xf9, 0xf1, 0xfb, 0xd3, 0x02, 0x71, 0x00, 0xf1, 0x8c, 0xda, 0x56, 0xbb, 0xd7, 0x94, 0x96, - 0x1c, 0x78, 0x1e, 0xe7, 0x82, 0x94, 0x63, 0x8d, 0x12, 0x88, 0x41, 0xa6, 0x54, 0x8f, 0x81, 0xf8, - 0x25, 0x01, 0xa6, 0xe9, 0x71, 0x46, 0x1e, 0x9a, 0xef, 0x70, 0x0e, 0x54, 0x31, 0xd8, 0x79, 0x32, - 0x04, 0xd8, 0x60, 0x7a, 0x90, 0x21, 0xc5, 0x43, 0xfe, 0x0f, 0x05, 0x18, 0x67, 0x4c, 0x2c, 0x92, - 0x6f, 0x9f, 0x82, 0xb2, 0x30, 0xd0, 0x87, 0x3c, 0xa4, 0x49, 0xc2, 0x40, 0x77, 0x67, 0x04, 0xd9, - 0x2c, 0x06, 0xfd, 0xf8, 0xea, 0xd3, 0x02, 0x20, 0xaa, 0xc9, 0x88, 0x13, 0x6c, 0x7c, 0xe5, 0x75, - 0x3e, 0x38, 0xff, 0x8c, 0x3a, 0x7e, 0x13, 0xdd, 0xc3, 0x8c, 0xa1, 0x59, 0x1e, 0x94, 0x71, 0xa8, - 0x04, 0x7d, 0x45, 0x80, 0x29, 0x0b, 0x17, 0x65, 0xd6, 0xd3, 0xc1, 0x41, 0x91, 0x0a, 0x06, 0xa2, - 0x13, 0x81, 0x99, 0x17, 0xcc, 0xd6, 0x12, 0xce, 0xe1, 0xe1, 0xfc, 0xb2, 0x00, 0x4b, 0x15, 0x59, - 0x93, 0x3b, 0x12, 0x65, 0x3d, 0x79, 0x49, 0x96, 0xc6, 0x3a, 0x37, 0xc3, 0x8c, 0xae, 0x17, 0xcb, - 0xde, 0xe3, 0x8a, 0x26, 0x2b, 0x1e, 0x1d, 0x40, 0x83, 0xdd, 0x12, 0x8c, 0xe3, 0x26, 0x07, 0xc1, - 0x21, 0x70, 0xdb, 0xd7, 0xbb, 0x1d, 0xf9, 0xee, 0x0a, 0x1c, 0x69, 0x32, 0xb0, 0xc0, 0xf5, 0x08, - 0x00, 0xfb, 0xc0, 0x52, 0x50, 0x21, 0x06, 0x96, 0x54, 0x08, 0x35, 0xb0, 0xa4, 0x46, 0xb0, 0x81, - 0x25, 0x08, 0x31, 0xdb, 0xfe, 0x0e, 0x4c, 0xd1, 0xef, 0x58, 0xc3, 0x33, 0xce, 0x6b, 0x2c, 0x4f, - 0xb8, 0x02, 0x98, 0xc9, 0xba, 0xb0, 0xc8, 0x12, 0x2b, 0xca, 0x60, 0x6e, 0x4c, 0xd7, 0xba, 0x92, - 0x7c, 0x7f, 0xc4, 0x8a, 0x40, 0xf1, 0x12, 0x2b, 0xce, 0x18, 0xe4, 0x25, 0x49, 0x95, 0x35, 0xed, - 0xee, 0x1a, 0x03, 0xd6, 0x68, 0x60, 0x63, 0x50, 0x67, 0x20, 0xec, 0xc6, 0xc0, 0x80, 0x16, 0xc2, - 0x18, 0xb0, 0x2a, 0xa1, 0x8c, 0x01, 0xab, 0x13, 0xcc, 0x18, 0x30, 0xa4, 0x98, 0x89, 0x76, 0xb0, - 0xcc, 0x4a, 0xfb, 0x3b, 0x84, 0xb4, 0x0a, 0x2b, 0x6e, 0x00, 0xcd, 0x05, 0x74, 0x02, 0xc2, 0x79, - 0xf0, 0x6d, 0x5a, 0x09, 0x83, 0xfd, 0x07, 0x56, 0x1c, 0x62, 0xf3, 0x5a, 0x5d, 0xbb, 0x7b, 0xeb, - 0x8a, 0xcd, 0x7e, 0x4b, 0x57, 0x2e, 0xd6, 0x1b, 0x7a, 0x57, 0xd5, 0xfc, 0xc2, 0x22, 0x14, 0x14, - 0xee, 0xfe, 0xd7, 0x05, 0x58, 0xaa, 0xca, 0x1d, 0xa9, 0x2a, 0xeb, 0xc6, 0x09, 0x43, 0xfe, 0x44, - 0x06, 0x7a, 0xb7, 0xff, 0xa9, 0x5e, 0xd7, 0x8a, 0x7e, 0x46, 0xac, 0xe0, 0xca, 0xb6, 0x15, 0xf1, - 0x84, 0x6d, 0xea, 0xb0, 0x86, 0xb1, 0xb3, 0xd7, 0x91, 0x34, 0x59, 0xef, 0x70, 0x3d, 0xb0, 0x15, - 0x2d, 0xaa, 0xca, 0x7a, 0xa9, 0xa3, 0xe8, 0x4a, 0xbd, 0x65, 0x1e, 0x91, 0xf4, 0x7f, 0xc1, 0x85, - 0x95, 0xf4, 0x43, 0xf9, 0x9c, 0x2b, 0xca, 0xa3, 0xe2, 0xb2, 0x3b, 0x4a, 0x85, 0xe2, 0x50, 0x3e, - 0x44, 0x46, 0xfa, 0xcf, 0x04, 0x98, 0xb3, 0xe2, 0x27, 0x56, 0xb4, 0x5f, 0x43, 0xcf, 0xed, 0xe5, - 0xe3, 0x40, 0x03, 0xeb, 0xbb, 0xf6, 0x56, 0x99, 0x89, 0x6b, 0xe9, 0xf6, 0x9d, 0xf4, 0x3c, 0xcc, - 0x12, 0x8a, 0xda, 0x66, 0x21, 0x4b, 0x46, 0x4e, 0x88, 0x47, 0x06, 0xfc, 0x57, 0xab, 0x9c, 0xcd, - 0xed, 0xfe, 0x27, 0x02, 0x2c, 0xad, 0x5b, 0xa3, 0x4f, 0xee, 0x1a, 0x97, 0x5f, 0x51, 0xf4, 0x5d, - 0x76, 0x68, 0xdb, 0x2b, 0xe0, 0xf8, 0x6c, 0xd0, 0xd1, 0x71, 0xb6, 0x48, 0x56, 0x08, 0x13, 0x90, - 0xec, 0x91, 0x5f, 0x76, 0x9f, 0x9b, 0xa4, 0x29, 0xb2, 0x66, 0x8e, 0x86, 0x96, 0x6b, 0x98, 0xd5, - 0xd1, 0xaf, 0x0a, 0x20, 0xae, 0xcb, 0x7a, 0x81, 0x1e, 0xbd, 0xbd, 0x8f, 0x88, 0x9f, 0x77, 0x47, - 0x7c, 0x1c, 0x3d, 0x3e, 0x1c, 0x71, 0xce, 0x38, 0x25, 0xfc, 0xc7, 0x02, 0x1c, 0xa2, 0x71, 0x2b, - 0x4f, 0xd4, 0xef, 0xde, 0x2b, 0x3a, 0xda, 0xee, 0x3e, 0xa8, 0xc3, 0xd3, 0x63, 0x12, 0xc6, 0x19, - 0x75, 0xd6, 0x04, 0x79, 0x4c, 0xf4, 0x19, 0x10, 0x2c, 0x3e, 0x98, 0x32, 0xaa, 0x82, 0xef, 0x3e, - 0x65, 0xb4, 0xdd, 0x7b, 0x41, 0x59, 0x26, 0x00, 0x65, 0xdf, 0x12, 0xe0, 0x10, 0x5d, 0xeb, 0x7b, - 0x52, 0x76, 0x61, 0xaf, 0xc8, 0x86, 0x78, 0x23, 0xe7, 0x69, 0x8c, 0x9e, 0x61, 0xe6, 0xe2, 0x39, - 0xcb, 0x59, 0xbf, 0xf9, 0xf1, 0xba, 0x00, 0xb3, 0xdc, 0x54, 0xce, 0x37, 0x65, 0x9f, 0x19, 0x71, - 0x36, 0x28, 0x7e, 0xb3, 0x29, 0x12, 0x33, 0x71, 0x99, 0x0a, 0x8b, 0x68, 0xc1, 0x0d, 0x5c, 0xbd, - 0x29, 0x63, 0xdb, 0xb4, 0x60, 0x97, 0x7d, 0x0b, 0xd8, 0x33, 0xa1, 0x01, 0x30, 0x69, 0xdf, 0x03, - 0xf2, 0x27, 0x3d, 0x84, 0xe1, 0x80, 0xe8, 0x05, 0x1d, 0x4b, 0x01, 0x46, 0x6f, 0x97, 0xef, 0xfd, - 0xa0, 0x67, 0x12, 0x7d, 0x37, 0xd1, 0x67, 0x86, 0xa1, 0xff, 0x9c, 0x00, 0x0b, 0x76, 0x19, 0xb6, - 0xd0, 0x3f, 0x11, 0x1a, 0xc4, 0x10, 0xa9, 0x3d, 0xe7, 0x25, 0xb5, 0x8b, 0x59, 0x4f, 0xc1, 0xf8, - 0x32, 0xdd, 0x45, 0x31, 0xba, 0xd9, 0xe8, 0x36, 0x6e, 0x74, 0xfb, 0xba, 0x8f, 0xc8, 0x3e, 0x15, - 0x14, 0xb5, 0xad, 0x39, 0xc2, 0x3e, 0x17, 0xb1, 0x3d, 0x88, 0x96, 0xdc, 0xd0, 0xb5, 0x68, 0x5d, - 0xf4, 0x7b, 0x02, 0x2c, 0xd9, 0x45, 0xd7, 0x0e, 0xf2, 0xb9, 0x3d, 0x81, 0x61, 0x22, 0xbc, 0x47, - 0x4a, 0x9e, 0xf5, 0x10, 0x84, 0x65, 0x71, 0x18, 0x29, 0x58, 0x18, 0x30, 0x35, 0x76, 0x51, 0xbe, - 0x1b, 0xd4, 0x30, 0x91, 0xbe, 0xdb, 0xd4, 0x64, 0xfc, 0xa8, 0xf9, 0x05, 0x01, 0x96, 0xec, 0xa2, - 0x6d, 0xa7, 0xe6, 0x99, 0x3d, 0x01, 0x1a, 0x22, 0xe2, 0x4f, 0x7b, 0x89, 0xf8, 0xc1, 0xec, 0x50, - 0x21, 0xfa, 0x7b, 0x02, 0x8c, 0xd1, 0x21, 0x2f, 0xab, 0x4d, 0x74, 0x26, 0xc0, 0xc3, 0xe9, 0xb6, - 0x37, 0xcb, 0xfd, 0x77, 0x76, 0xcb, 0x6a, 0x53, 0x5c, 0xa6, 0x2e, 0x6e, 0x57, 0x6d, 0xae, 0x90, - 0x2f, 0x4e, 0x29, 0x32, 0x10, 0xe3, 0xb9, 0xae, 0xda, 0xd4, 0xd8, 0xce, 0x0c, 0xe0, 0xb6, 0xef, - 0x71, 0xf8, 0xff, 0xf8, 0xed, 0x3b, 0x69, 0x20, 0x37, 0x18, 0x59, 0xb3, 0x6c, 0x16, 0x21, 0x02, - 0xc3, 0x1e, 0xfc, 0xbf, 0x01, 0x89, 0x75, 0x59, 0xdf, 0xdc, 0xc5, 0x5c, 0xf1, 0x9a, 0xed, 0xc7, - 0x02, 0xd0, 0x4e, 0x56, 0xc5, 0x87, 0x5c, 0xba, 0x05, 0x94, 0xa0, 0xdd, 0xb6, 0x65, 0xf4, 0x05, - 0x6a, 0x1a, 0xcb, 0x6a, 0x73, 0x75, 0x97, 0x9e, 0x86, 0x66, 0xbb, 0xb5, 0xbe, 0x0b, 0x37, 0x5a, - 0x3a, 0x38, 0x92, 0x27, 0x6e, 0xdf, 0x49, 0x4f, 0xc3, 0x14, 0x46, 0xe2, 0xdc, 0xa8, 0x4d, 0xa3, - 0x79, 0x63, 0xa3, 0x96, 0xe0, 0xaa, 0x5d, 0xdd, 0xa5, 0x57, 0x39, 0xa1, 0x1f, 0x83, 0x29, 0x6b, - 0xbf, 0x71, 0x38, 0x4b, 0x02, 0x89, 0xc3, 0x0a, 0x5d, 0x38, 0x62, 0x10, 0xd6, 0x9c, 0x5a, 0xcc, - 0xcc, 0x1a, 0xfc, 0x70, 0xee, 0x29, 0xfe, 0x18, 0x4c, 0x55, 0xee, 0x6f, 0xff, 0xf6, 0x6d, 0xc3, - 0x37, 0xc8, 0x0a, 0x90, 0xec, 0x5e, 0xec, 0x9a, 0xe7, 0xd5, 0x35, 0xff, 0x40, 0x98, 0xe3, 0x6c, - 0xbb, 0x21, 0xad, 0xcf, 0x84, 0xae, 0xc7, 0xd6, 0x55, 0x67, 0x5d, 0xc4, 0xe8, 0xa0, 0x98, 0x36, - 0x61, 0xd3, 0xe1, 0xb2, 0xad, 0x9f, 0xbe, 0x20, 0xc0, 0x64, 0x5e, 0x92, 0x38, 0xdc, 0xfe, 0x96, - 0x35, 0x2f, 0x49, 0x66, 0xe9, 0xc0, 0xc1, 0x3b, 0xb3, 0x86, 0x11, 0x02, 0xb2, 0x73, 0x77, 0x4e, - 0x4c, 0x39, 0x61, 0x62, 0x78, 0x7f, 0x2e, 0xc0, 0xc1, 0x75, 0xb9, 0x23, 0xab, 0xc6, 0xc0, 0x3a, - 0x3f, 0x49, 0xf0, 0x77, 0x62, 0x5d, 0x2a, 0x19, 0xa0, 0x9f, 0xdb, 0x53, 0x5d, 0xc6, 0xec, 0xa2, - 0x1b, 0x19, 0x67, 0xc4, 0x93, 0x03, 0xdc, 0x7e, 0x95, 0xfe, 0xf3, 0x9a, 0x71, 0xfa, 0x46, 0xe9, - 0x76, 0x72, 0x54, 0xcb, 0x61, 0x0a, 0xbf, 0x29, 0xc0, 0x8c, 0x71, 0xb4, 0x87, 0x1f, 0x05, 0xdf, - 0x65, 0x83, 0x51, 0x69, 0x60, 0x28, 0x86, 0x45, 0x3b, 0x06, 0x00, 0xe7, 0xc4, 0x6c, 0x30, 0xc0, - 0xd7, 0x65, 0xba, 0xf9, 0xfb, 0x55, 0x12, 0x50, 0xd0, 0x37, 0x77, 0xb7, 0x55, 0xa5, 0x5d, 0x57, - 0x39, 0xc4, 0x01, 0x6e, 0xc8, 0xb6, 0xd7, 0xf0, 0x03, 0x7c, 0xde, 0x0d, 0xf0, 0x11, 0x51, 0xf4, - 0x06, 0x5c, 0xeb, 0xd1, 0x2e, 0xd0, 0xa7, 0x05, 0x98, 0xa6, 0x31, 0x5f, 0x9e, 0xa7, 0xbe, 0x13, - 0x92, 0x56, 0x09, 0x0c, 0xf0, 0x8c, 0x1b, 0xc0, 0xa5, 0xec, 0xa2, 0x27, 0x40, 0xf4, 0x51, 0x01, - 0xa6, 0x0d, 0xb3, 0x51, 0xaa, 0xb7, 0x7d, 0xbc, 0xc5, 0x53, 0x01, 0xe4, 0xd3, 0x6c, 0x45, 0x3c, - 0xed, 0x75, 0x3c, 0xca, 0x34, 0x60, 0x6d, 0x39, 0xa7, 0xd4, 0xdb, 0xd4, 0x05, 0x40, 0x9f, 0xa0, - 0x50, 0xcc, 0xaf, 0x60, 0xe8, 0xf5, 0xdd, 0x5e, 0x50, 0x56, 0x02, 0x40, 0xe1, 0xda, 0x21, 0xac, - 0x61, 0x76, 0x84, 0x46, 0x6e, 0xec, 0xd1, 0x5e, 0x06, 0x87, 0x84, 0x74, 0x72, 0xf4, 0xae, 0xa4, - 0xaf, 0x72, 0x9a, 0x88, 0x5d, 0x0f, 0x1e, 0x50, 0x13, 0x19, 0xb7, 0x45, 0x07, 0xd7, 0x44, 0xb4, - 0x06, 0xd1, 0x97, 0x08, 0x52, 0x1c, 0x48, 0x77, 0x85, 0xc4, 0x80, 0x62, 0xf1, 0xff, 0x17, 0x02, - 0x4c, 0x53, 0x67, 0x81, 0x07, 0xfa, 0x74, 0x30, 0xff, 0x62, 0x3f, 0x58, 0x9f, 0x1b, 0x82, 0xf5, - 0x70, 0x26, 0xe3, 0xc4, 0x6a, 0x45, 0xce, 0x30, 0xea, 0x2f, 0xd9, 0xa7, 0x43, 0x50, 0xd4, 0xe6, - 0x74, 0xb0, 0xa3, 0x1e, 0x36, 0x5f, 0x67, 0x60, 0x9a, 0x83, 0xc8, 0xb9, 0x99, 0x07, 0xb2, 0x43, - 0x30, 0xa2, 0xef, 0xd8, 0x2d, 0x28, 0x8b, 0x1c, 0x06, 0xb2, 0xa0, 0x2e, 0x57, 0x1e, 0x07, 0xb2, - 0xa0, 0x6e, 0x57, 0x4c, 0x13, 0x87, 0xde, 0x43, 0x6c, 0x79, 0x43, 0x6a, 0x10, 0xc0, 0x19, 0xd2, - 0xcf, 0x09, 0xe6, 0x73, 0x26, 0xf7, 0xda, 0x49, 0x3d, 0xc3, 0x56, 0x1d, 0xb4, 0x37, 0xbb, 0x83, - 0xc6, 0x12, 0x1d, 0xce, 0xea, 0x37, 0x05, 0x98, 0xa4, 0x94, 0x32, 0x88, 0x1a, 0x7a, 0x32, 0xd4, - 0x8b, 0x0c, 0x81, 0x8f, 0xaa, 0x38, 0x6a, 0x71, 0xfb, 0x13, 0x6e, 0x88, 0xe7, 0xc5, 0x69, 0x0b, - 0x31, 0xc7, 0xcc, 0xd7, 0x05, 0xf3, 0xe0, 0x2f, 0x39, 0x27, 0x79, 0x22, 0x60, 0xb7, 0xa5, 0x82, - 0xff, 0x26, 0x0f, 0x2b, 0x4a, 0xbc, 0xdd, 0x53, 0x64, 0x52, 0xd9, 0x70, 0xa1, 0x48, 0x89, 0x62, - 0x4b, 0xa1, 0x49, 0x3b, 0x37, 0xd1, 0xcf, 0x09, 0x30, 0xc1, 0xd6, 0xd3, 0x34, 0x3d, 0x30, 0x13, - 0xed, 0x4b, 0xa2, 0x63, 0x01, 0x6b, 0x91, 0xd5, 0x48, 0x0a, 0x26, 0x0d, 0x78, 0xdc, 0xd2, 0x68, - 0x52, 0x1c, 0x33, 0xc1, 0x61, 0x86, 0xfd, 0x63, 0x01, 0x26, 0xd8, 0xe2, 0x38, 0x24, 0x34, 0x5a, - 0x2b, 0x34, 0xb4, 0x33, 0x64, 0xae, 0x4f, 0x18, 0xd0, 0x88, 0x2e, 0x32, 0x59, 0x37, 0x93, 0x71, - 0xb0, 0x0e, 0x43, 0xfc, 0x9a, 0x00, 0xd3, 0xd6, 0x2a, 0xc1, 0x80, 0x19, 0x62, 0x64, 0x03, 0x63, - 0x7b, 0xd7, 0x30, 0x6c, 0x58, 0x57, 0xda, 0x27, 0x89, 0x63, 0x31, 0xf1, 0x35, 0xa2, 0x2b, 0x1f, - 0x46, 0x9c, 0xf6, 0x45, 0xc7, 0x6d, 0x01, 0x26, 0xa8, 0x82, 0xde, 0x03, 0x46, 0x2f, 0x15, 0x8e, - 0x27, 0xea, 0xac, 0x25, 0x71, 0x54, 0x7f, 0x5b, 0x53, 0x22, 0xeb, 0x9c, 0x12, 0xff, 0xc6, 0xdc, - 0x5e, 0xb2, 0x3f, 0x1e, 0x13, 0x60, 0x7b, 0x69, 0xc8, 0x6b, 0x33, 0x99, 0x0b, 0xe1, 0x5f, 0x40, - 0x31, 0x75, 0xcd, 0x53, 0x1e, 0xba, 0x06, 0xeb, 0x6f, 0xf6, 0x34, 0x93, 0x9b, 0xca, 0xf9, 0x0d, - 0x01, 0xe6, 0xd6, 0x65, 0xdd, 0x8e, 0x8a, 0x28, 0x9f, 0x95, 0x30, 0x60, 0x4a, 0x85, 0x4c, 0xe8, - 0x67, 0x7f, 0xc4, 0x35, 0x0f, 0xc8, 0x27, 0xd1, 0x89, 0x01, 0xc8, 0xaf, 0x5a, 0x97, 0x59, 0xbf, - 0x46, 0x33, 0xd9, 0x50, 0x7c, 0x91, 0x12, 0x60, 0xfb, 0xb0, 0x75, 0xb8, 0x4f, 0x77, 0x2e, 0xd4, - 0xc3, 0xe4, 0xd4, 0xaf, 0xc3, 0x06, 0x72, 0x0e, 0x66, 0x0c, 0xa8, 0x4e, 0x23, 0x49, 0x02, 0xe9, - 0x06, 0x54, 0xbb, 0x7f, 0xf7, 0x97, 0x02, 0xcc, 0xda, 0x6c, 0x90, 0x61, 0xe4, 0x2f, 0xec, 0xe1, - 0x7d, 0xf4, 0xc0, 0x2b, 0xb8, 0x21, 0x2f, 0xf3, 0x8b, 0x57, 0x6e, 0xdf, 0x49, 0x2f, 0xbb, 0xd2, - 0x82, 0xc6, 0x8c, 0xa9, 0xc2, 0x06, 0x42, 0x7c, 0x3c, 0xe7, 0x3e, 0x02, 0x2e, 0x9e, 0xc0, 0xb7, - 0x05, 0x48, 0xe5, 0x25, 0xc9, 0xd6, 0x33, 0x3a, 0x13, 0x0a, 0x68, 0x5e, 0x92, 0xfc, 0xcf, 0xec, - 0xd8, 0x6a, 0x90, 0x4d, 0xbe, 0x0c, 0xcc, 0x3a, 0x88, 0xb1, 0xeb, 0x94, 0x25, 0xd1, 0xe9, 0x20, - 0x70, 0x9e, 0xed, 0x77, 0x05, 0x98, 0xa1, 0x1e, 0x86, 0x1d, 0xf9, 0x13, 0xa1, 0x70, 0xd0, 0x16, - 0xc2, 0x82, 0x2f, 0x05, 0x00, 0x7f, 0x34, 0xb3, 0xec, 0x0e, 0xde, 0xee, 0xea, 0x7e, 0x43, 0x80, - 0x19, 0x9b, 0x5a, 0xdc, 0x13, 0x19, 0xb4, 0x05, 0x4f, 0x35, 0xb9, 0x7e, 0xfb, 0x4e, 0x7a, 0x09, - 0xe6, 0x1c, 0x78, 0x1d, 0xda, 0x52, 0xcc, 0xfa, 0x02, 0x46, 0x7f, 0x6a, 0xfa, 0xbd, 0xdc, 0x47, - 0xf1, 0x01, 0xce, 0xb8, 0x0c, 0x7c, 0x42, 0x6f, 0x4c, 0x88, 0xf3, 0x7b, 0xa8, 0xc9, 0xa6, 0xc3, - 0x0b, 0xb7, 0xef, 0xa4, 0x0f, 0xc1, 0xb4, 0xa9, 0x85, 0xba, 0x2d, 0xd9, 0x75, 0x32, 0x9c, 0x10, - 0x8f, 0x78, 0x4c, 0x06, 0x32, 0xd1, 0xf9, 0xa9, 0xf0, 0x4b, 0x74, 0x4d, 0xc7, 0xf5, 0x19, 0x58, - 0x9b, 0xe2, 0xc2, 0x78, 0x1a, 0x9c, 0x0c, 0x51, 0x9e, 0x2c, 0x92, 0xd2, 0xe4, 0x12, 0x24, 0x8b, - 0x04, 0xbb, 0x14, 0x2d, 0x8a, 0xb3, 0x8e, 0x41, 0x21, 0xa0, 0x59, 0x64, 0x03, 0xad, 0xf6, 0x5b, - 0x37, 0x1c, 0x80, 0xcf, 0x85, 0x03, 0x8c, 0x5b, 0xf0, 0x94, 0x9b, 0xbc, 0x2f, 0xbe, 0xc3, 0x62, - 0xc6, 0x0d, 0x5f, 0xae, 0x76, 0xb5, 0xdf, 0x22, 0xf1, 0x97, 0x5f, 0x31, 0x17, 0xa0, 0x3c, 0xc8, - 0xb3, 0x21, 0x40, 0xb2, 0x29, 0x1a, 0x8a, 0xb1, 0x01, 0x80, 0x67, 0xdc, 0x81, 0xbf, 0x7a, 0x43, - 0xde, 0x7d, 0x8d, 0x1d, 0xaf, 0x9c, 0xb6, 0x4d, 0xcc, 0xd0, 0xc0, 0x7d, 0x26, 0x25, 0xd6, 0x80, - 0x8b, 0x96, 0x3a, 0x27, 0x18, 0x1d, 0x53, 0x12, 0x2f, 0x42, 0x3d, 0x41, 0xa2, 0xff, 0x64, 0x4e, - 0x46, 0xee, 0x33, 0xf7, 0x00, 0x93, 0xd1, 0xeb, 0xdd, 0x5a, 0xff, 0xc9, 0xe8, 0xf9, 0x36, 0xb0, - 0xf8, 0xd2, 0xed, 0x3b, 0xe9, 0x83, 0x90, 0x32, 0x88, 0xa9, 0xf7, 0x7a, 0xae, 0x73, 0xf1, 0x8c, - 0x78, 0xd2, 0x63, 0x2e, 0x72, 0x4f, 0x5c, 0xdb, 0xa6, 0xe4, 0x77, 0x05, 0xdb, 0x0b, 0xd0, 0xc4, - 0xc3, 0x39, 0x1d, 0x02, 0x67, 0x90, 0x43, 0x7f, 0x8e, 0x67, 0x85, 0x89, 0x66, 0x09, 0x40, 0x4c, - 0x16, 0x1d, 0x0f, 0x42, 0x0c, 0xf1, 0x76, 0xde, 0x10, 0x00, 0xf1, 0x6f, 0xfa, 0xdf, 0xe3, 0x25, - 0xf7, 0x7b, 0x69, 0xf4, 0xc5, 0x49, 0x01, 0x3d, 0x2f, 0x86, 0x4e, 0x39, 0x84, 0xca, 0x0e, 0x57, - 0x93, 0x1b, 0x35, 0x7e, 0x31, 0xfe, 0xef, 0x04, 0x98, 0x63, 0x3b, 0x6a, 0xf6, 0x3b, 0x23, 0xd0, - 0x53, 0x21, 0x1f, 0x33, 0x67, 0x5b, 0xb1, 0x27, 0x43, 0x8c, 0x07, 0x71, 0x7a, 0x38, 0x2d, 0x8f, - 0x29, 0xa1, 0x13, 0xd9, 0x31, 0x18, 0xa7, 0xc5, 0x40, 0x83, 0xd1, 0x55, 0xa4, 0x06, 0x16, 0xab, - 0xdf, 0x35, 0x8f, 0x3f, 0xf2, 0x04, 0x9d, 0x0d, 0x81, 0x8c, 0xed, 0xc4, 0xde, 0x1b, 0x62, 0x32, - 0x81, 0x25, 0x0b, 0x13, 0xf3, 0x47, 0x02, 0xcc, 0x59, 0x4b, 0x55, 0x9e, 0xa0, 0x90, 0x33, 0x25, - 0x14, 0x31, 0xf5, 0x80, 0xc4, 0x9c, 0xcf, 0x3c, 0x19, 0x94, 0x18, 0xe7, 0xda, 0x16, 0x13, 0x56, - 0x79, 0x6b, 0x10, 0x66, 0x5f, 0x0c, 0x7f, 0xcb, 0x34, 0x2e, 0xfb, 0x20, 0xca, 0xcb, 0xb0, 0x54, - 0x6f, 0xdf, 0x49, 0x1f, 0xb6, 0x8c, 0x1f, 0xc6, 0xcf, 0xec, 0x8a, 0x53, 0x81, 0x65, 0x83, 0x2b, - 0xb0, 0xff, 0x66, 0x1e, 0x67, 0xe0, 0x40, 0x58, 0x4f, 0xce, 0x07, 0xd8, 0x69, 0x37, 0xcb, 0xb2, - 0x99, 0x13, 0xe2, 0x41, 0x7b, 0xb1, 0x15, 0x70, 0x48, 0x0a, 0x99, 0xe7, 0x03, 0x51, 0xc4, 0xfd, - 0x22, 0xb9, 0x58, 0x2d, 0xd0, 0x3b, 0x3b, 0xf1, 0xe8, 0xfc, 0xb5, 0x00, 0x99, 0x8a, 0xdc, 0x64, - 0xfb, 0x78, 0x04, 0x06, 0x7f, 0x95, 0x78, 0xc8, 0x61, 0xf2, 0xdd, 0x15, 0xe1, 0x1b, 0x17, 0xf5, - 0x80, 0x94, 0x6e, 0x64, 0xd6, 0x03, 0x0b, 0x9f, 0x45, 0x5d, 0xae, 0x46, 0xb5, 0x3a, 0xbd, 0xaa, - 0x99, 0x5e, 0x97, 0x8e, 0x29, 0xfe, 0x0b, 0x01, 0x66, 0x6c, 0x7e, 0x3d, 0x59, 0xec, 0x6b, 0xe8, - 0xfc, 0x5e, 0x02, 0x1b, 0xfb, 0x8f, 0x89, 0x38, 0x24, 0x98, 0x84, 0x0d, 0xdc, 0x4d, 0xb0, 0x78, - 0x34, 0x37, 0x34, 0xd4, 0xc0, 0x79, 0x12, 0x6f, 0x08, 0xf6, 0xc7, 0xb6, 0xef, 0x53, 0xb0, 0x64, - 0x95, 0x84, 0xa8, 0x5c, 0x68, 0xa1, 0xdb, 0x83, 0x48, 0xcc, 0xf9, 0xc7, 0x4a, 0xfe, 0xa5, 0x00, - 0xc8, 0x16, 0xc9, 0xa5, 0x2f, 0xee, 0x9d, 0x0b, 0x03, 0x86, 0x19, 0xdf, 0x53, 0x61, 0xea, 0x10, - 0x3f, 0x9a, 0x0b, 0x9f, 0x50, 0xf0, 0xd6, 0x46, 0x8e, 0x28, 0x1e, 0x1c, 0x8a, 0x9e, 0x05, 0xaa, - 0x90, 0x2d, 0xd4, 0xbb, 0x07, 0xec, 0x4c, 0x63, 0x84, 0xc3, 0x7e, 0x71, 0x38, 0xf6, 0x63, 0x99, - 0x00, 0x9c, 0x67, 0xae, 0xc2, 0xfc, 0x40, 0x20, 0x98, 0x12, 0x11, 0x56, 0x7a, 0xc2, 0x11, 0x50, - 0x19, 0x4e, 0xc0, 0x13, 0x99, 0x15, 0x7f, 0x02, 0x9c, 0x16, 0x15, 0x13, 0x53, 0xf9, 0xc1, 0x25, - 0xc6, 0x6e, 0x45, 0xbf, 0x22, 0x00, 0xb2, 0x2d, 0xd1, 0xf6, 0x46, 0xc8, 0xb0, 0x03, 0x08, 0xf3, - 0x56, 0x94, 0x87, 0x42, 0xe6, 0xb6, 0x08, 0x8f, 0x64, 0x83, 0xcc, 0xdd, 0x6f, 0x0b, 0x90, 0xb1, - 0xe2, 0x9c, 0x03, 0xef, 0x4f, 0x7b, 0x05, 0x3b, 0x9f, 0x09, 0xff, 0x06, 0x28, 0x8d, 0x78, 0x16, - 0x49, 0xac, 0x67, 0xd1, 0x8e, 0xda, 0x19, 0xf7, 0x24, 0xa7, 0xff, 0x0d, 0xe8, 0x0c, 0xad, 0x3d, - 0xfc, 0x79, 0x3b, 0x02, 0x8b, 0x83, 0x16, 0xc1, 0x88, 0x81, 0x3e, 0xbf, 0xd7, 0x17, 0x4a, 0x0d, - 0xeb, 0xf0, 0x9e, 0xbd, 0x37, 0xc0, 0x6c, 0xc4, 0xd5, 0x20, 0x74, 0xfe, 0x90, 0xf8, 0xac, 0xcf, - 0x10, 0x19, 0x2f, 0xe7, 0xb9, 0x86, 0x46, 0xff, 0x5c, 0x80, 0x39, 0x2b, 0xbc, 0xc2, 0xbf, 0x04, - 0xfe, 0x54, 0x78, 0xfc, 0x79, 0x49, 0xca, 0x9c, 0x0b, 0x5f, 0x4d, 0x7c, 0xff, 0xed, 0x3b, 0xe9, - 0x03, 0x90, 0x71, 0x25, 0xd4, 0x9a, 0x40, 0x4f, 0x89, 0x67, 0xc2, 0x52, 0xca, 0x5c, 0x9d, 0xb4, - 0x2d, 0x3c, 0xc3, 0x13, 0xf9, 0x6c, 0x78, 0xb4, 0x2c, 0x58, 0xb3, 0x17, 0x3a, 0xe5, 0x40, 0x74, - 0x3e, 0x9f, 0xb9, 0x10, 0x7a, 0x44, 0x6d, 0x01, 0xd7, 0x3f, 0x10, 0x20, 0x3d, 0xa8, 0x34, 0xf6, - 0x4e, 0xb1, 0x4f, 0x94, 0xa7, 0x41, 0x62, 0x09, 0x4b, 0xae, 0x54, 0x71, 0xba, 0xe4, 0x5d, 0xd9, - 0x7d, 0x90, 0x85, 0x7e, 0x4d, 0x80, 0x94, 0xf5, 0xd5, 0x14, 0xf3, 0xdd, 0x9e, 0x0e, 0xf9, 0x2c, - 0x60, 0xe0, 0xc3, 0x08, 0x1e, 0x0f, 0x4a, 0x92, 0x9d, 0xac, 0x69, 0x98, 0xa2, 0xb7, 0xe6, 0xd8, - 0xdd, 0x1c, 0xeb, 0x96, 0x87, 0x41, 0xbf, 0xec, 0x17, 0x04, 0xee, 0x09, 0x55, 0xe2, 0x94, 0x9d, - 0x0c, 0x8c, 0x20, 0xe8, 0xb7, 0xc2, 0x96, 0x3b, 0x76, 0xde, 0x1b, 0xe4, 0x21, 0x74, 0x60, 0xe0, - 0x33, 0x2e, 0x5e, 0x93, 0x7f, 0x5d, 0x80, 0x29, 0xeb, 0x3a, 0x1c, 0x6a, 0x6b, 0x72, 0x81, 0x7b, - 0x67, 0xfe, 0xd7, 0x89, 0xc0, 0x15, 0xec, 0xb7, 0x10, 0x39, 0xec, 0xe5, 0x01, 0x71, 0xc1, 0x03, - 0x2b, 0x66, 0xe9, 0x3f, 0x15, 0x60, 0xca, 0xfa, 0xb8, 0x33, 0x2c, 0x52, 0xe6, 0x6d, 0x85, 0x40, - 0xfa, 0x43, 0x43, 0x90, 0x3e, 0x9a, 0x19, 0xca, 0x55, 0xe6, 0x99, 0xcf, 0xd8, 0x2f, 0x00, 0xa2, - 0x90, 0x43, 0xc9, 0x41, 0x08, 0xb8, 0xa5, 0x21, 0x70, 0x4f, 0x67, 0x8e, 0x0f, 0x83, 0xeb, 0xf4, - 0xa7, 0xde, 0x20, 0xdb, 0x37, 0x3f, 0x20, 0xd0, 0xed, 0xde, 0xd3, 0xeb, 0x02, 0xff, 0x9d, 0xf9, - 0x1e, 0x60, 0x0f, 0xfb, 0x00, 0x74, 0x06, 0xa6, 0x39, 0x8c, 0x9c, 0xa2, 0x3b, 0x94, 0x1d, 0x3e, - 0xc9, 0x7e, 0x4e, 0x80, 0x99, 0xd5, 0x7e, 0xeb, 0x86, 0x13, 0xd9, 0x13, 0x81, 0x91, 0x59, 0x6f, - 0x40, 0x7b, 0x22, 0x7c, 0x72, 0x18, 0xc2, 0x85, 0x2c, 0xa2, 0x08, 0x0d, 0x55, 0x65, 0x6c, 0x65, - 0x7c, 0x44, 0x20, 0xf7, 0x11, 0x12, 0x15, 0x75, 0x34, 0xc0, 0x9b, 0x17, 0x41, 0xce, 0x56, 0xb0, - 0xc7, 0xb3, 0xc8, 0xc9, 0x9e, 0x49, 0x18, 0xef, 0xaa, 0xcd, 0x15, 0x45, 0xea, 0xb9, 0x1c, 0xe6, - 0x6f, 0xcb, 0x39, 0x45, 0xea, 0x31, 0x26, 0x7d, 0xde, 0x3c, 0xd9, 0xc3, 0x5e, 0x66, 0xf2, 0x67, - 0x8f, 0xcb, 0x53, 0x73, 0x01, 0x6e, 0xb1, 0x93, 0x7a, 0xe4, 0xe4, 0xcc, 0x14, 0x4c, 0x18, 0xc8, - 0x2c, 0x71, 0x5b, 0x10, 0x1d, 0xd0, 0x8c, 0xd8, 0xea, 0xeb, 0xa6, 0xf6, 0xb1, 0xde, 0xd7, 0x3b, - 0x11, 0xa0, 0x2b, 0xa6, 0x77, 0xf6, 0x89, 0x2a, 0xe3, 0xc2, 0x30, 0xb6, 0x9f, 0xc3, 0x29, 0x19, - 0x0b, 0x59, 0xc0, 0x91, 0x0c, 0x84, 0xea, 0x5d, 0x5e, 0xa8, 0x1e, 0xcb, 0x1c, 0x1a, 0x44, 0xe5, - 0xd4, 0x25, 0x5f, 0xb6, 0xe9, 0x92, 0x87, 0x03, 0xa1, 0x5d, 0x65, 0xfc, 0xb8, 0xa1, 0x31, 0x42, - 0x83, 0xf3, 0x9a, 0x89, 0xa7, 0xbd, 0xf0, 0xcc, 0x66, 0xdd, 0x04, 0xff, 0xd7, 0x04, 0x98, 0xa1, - 0x62, 0x62, 0x7f, 0xbe, 0x31, 0x9c, 0xf8, 0x33, 0x41, 0x0b, 0xf7, 0x9a, 0x25, 0xd9, 0xaf, 0x73, - 0x85, 0xfa, 0x78, 0xe6, 0xd1, 0x01, 0xa8, 0x3d, 0x97, 0xb0, 0xe2, 0xd7, 0x04, 0x00, 0xea, 0x32, - 0x95, 0xa4, 0x9e, 0xe6, 0x1f, 0x31, 0x75, 0x3e, 0x89, 0xe6, 0xff, 0x21, 0xe3, 0xc0, 0x23, 0x85, - 0xe4, 0x4b, 0x41, 0x37, 0xbd, 0x82, 0x1d, 0x32, 0x1b, 0x66, 0xce, 0x21, 0xfb, 0x38, 0xbd, 0x5f, - 0x83, 0x7f, 0x4b, 0xcc, 0x6b, 0x95, 0x9a, 0x0b, 0x74, 0xfb, 0xa2, 0xf5, 0xb4, 0xd3, 0xb0, 0x0f, - 0x5a, 0x0d, 0x38, 0xe6, 0xc7, 0x5d, 0xe4, 0x56, 0x45, 0xec, 0x1e, 0x4e, 0x53, 0x7d, 0xc5, 0x03, - 0x5a, 0x09, 0xd1, 0x71, 0xa0, 0x6d, 0x79, 0xae, 0xfc, 0xd0, 0x6f, 0x57, 0xdd, 0x51, 0xb2, 0xfd, - 0x78, 0xb6, 0xa5, 0xc4, 0x03, 0x0d, 0xd3, 0xf1, 0x5d, 0x42, 0x99, 0x19, 0x86, 0xf2, 0x96, 0xb1, - 0xf1, 0x10, 0x64, 0x78, 0xf7, 0xf4, 0xfd, 0xa9, 0xc7, 0x38, 0xfe, 0x07, 0x1a, 0x07, 0xe1, 0xba, - 0xe5, 0xee, 0xe4, 0x0d, 0xb0, 0x6b, 0xed, 0xf5, 0x6e, 0x93, 0xff, 0xae, 0xb5, 0xe7, 0xd3, 0x58, - 0xe2, 0x25, 0x77, 0x69, 0x3c, 0x2b, 0x9e, 0xf2, 0xa0, 0x02, 0xcf, 0x15, 0xe3, 0x1d, 0x34, 0xdb, - 0x9c, 0xf9, 0xd7, 0x02, 0x2c, 0xe5, 0x25, 0x89, 0xbf, 0x66, 0xb8, 0x1b, 0x4a, 0x5e, 0xed, 0xcf, - 0xc7, 0xf9, 0x4b, 0x02, 0x57, 0x9e, 0x44, 0x69, 0xdd, 0x24, 0xe1, 0x84, 0x78, 0x24, 0x08, 0x1d, - 0x18, 0xff, 0xbf, 0x12, 0x60, 0xd9, 0x54, 0xed, 0x46, 0xc3, 0x17, 0xd5, 0x6e, 0x9b, 0x27, 0xe2, - 0x74, 0x08, 0x50, 0x43, 0x74, 0xfe, 0x0b, 0x1e, 0x70, 0xcf, 0x8b, 0x4f, 0x06, 0x62, 0xfb, 0xab, - 0xb6, 0x17, 0xd6, 0xb0, 0x71, 0x5f, 0xfd, 0x2d, 0xe1, 0x53, 0xf9, 0x9f, 0x15, 0xd0, 0x3a, 0x4c, - 0x5a, 0x37, 0x24, 0x2f, 0xe7, 0xb7, 0x4b, 0xe2, 0x19, 0xb4, 0x72, 0x5d, 0xd7, 0x7b, 0xda, 0x85, - 0x5c, 0xae, 0xa9, 0xe8, 0xd7, 0xfb, 0x57, 0x57, 0x1a, 0xdd, 0x76, 0x0e, 0x93, 0x61, 0x5e, 0xf9, - 0xdb, 0xbb, 0xd1, 0xcc, 0x59, 0xa4, 0x9c, 0x8b, 0x9e, 0x59, 0x39, 0x9b, 0x15, 0x22, 0xe7, 0x52, - 0xdc, 0x3e, 0x4a, 0xee, 0x47, 0xb5, 0x6e, 0xc7, 0x9e, 0xd2, 0x54, 0x7b, 0x8d, 0x0b, 0x03, 0x65, - 0x2e, 0x0c, 0x94, 0x79, 0xdf, 0xc9, 0x61, 0xfd, 0xe2, 0x12, 0x5c, 0xe7, 0x57, 0x47, 0x08, 0xab, - 0x9e, 0xf8, 0xff, 0x01, 0x00, 0x00, 0xff, 0xff, 0x98, 0xbb, 0xb3, 0x81, 0xb0, 0xfb, 0x00, 0x00, +func (x *ExternalIDPSearchRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExternalIDPSearchRequest) ProtoMessage() {} + +func (x *ExternalIDPSearchRequest) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[171] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ExternalIDPSearchRequest.ProtoReflect.Descriptor instead. +func (*ExternalIDPSearchRequest) Descriptor() ([]byte, []int) { + return file_management_proto_rawDescGZIP(), []int{171} +} + +func (x *ExternalIDPSearchRequest) GetOffset() uint64 { + if x != nil { + return x.Offset + } + return 0 +} + +func (x *ExternalIDPSearchRequest) GetLimit() uint64 { + if x != nil { + return x.Limit + } + return 0 +} + +func (x *ExternalIDPSearchRequest) GetUserId() string { + if x != nil { + return x.UserId + } + return "" +} + +type ExternalIDPSearchResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` + Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` + TotalResult uint64 `protobuf:"varint,3,opt,name=total_result,json=totalResult,proto3" json:"total_result,omitempty"` + Result []*ExternalIDPView `protobuf:"bytes,4,rep,name=result,proto3" json:"result,omitempty"` + ProcessedSequence uint64 `protobuf:"varint,5,opt,name=processed_sequence,json=processedSequence,proto3" json:"processed_sequence,omitempty"` + ViewTimestamp *timestamp.Timestamp `protobuf:"bytes,6,opt,name=view_timestamp,json=viewTimestamp,proto3" json:"view_timestamp,omitempty"` +} + +func (x *ExternalIDPSearchResponse) Reset() { + *x = ExternalIDPSearchResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[172] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExternalIDPSearchResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExternalIDPSearchResponse) ProtoMessage() {} + +func (x *ExternalIDPSearchResponse) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[172] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ExternalIDPSearchResponse.ProtoReflect.Descriptor instead. +func (*ExternalIDPSearchResponse) Descriptor() ([]byte, []int) { + return file_management_proto_rawDescGZIP(), []int{172} +} + +func (x *ExternalIDPSearchResponse) GetOffset() uint64 { + if x != nil { + return x.Offset + } + return 0 +} + +func (x *ExternalIDPSearchResponse) GetLimit() uint64 { + if x != nil { + return x.Limit + } + return 0 +} + +func (x *ExternalIDPSearchResponse) GetTotalResult() uint64 { + if x != nil { + return x.TotalResult + } + return 0 +} + +func (x *ExternalIDPSearchResponse) GetResult() []*ExternalIDPView { + if x != nil { + return x.Result + } + return nil +} + +func (x *ExternalIDPSearchResponse) GetProcessedSequence() uint64 { + if x != nil { + return x.ProcessedSequence + } + return 0 +} + +func (x *ExternalIDPSearchResponse) GetViewTimestamp() *timestamp.Timestamp { + if x != nil { + return x.ViewTimestamp + } + return nil +} + +type ExternalIDPView struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + IdpConfigId string `protobuf:"bytes,2,opt,name=idp_config_id,json=idpConfigId,proto3" json:"idp_config_id,omitempty"` + ExternalUserId string `protobuf:"bytes,3,opt,name=external_user_id,json=externalUserId,proto3" json:"external_user_id,omitempty"` + IdpName string `protobuf:"bytes,4,opt,name=idp_name,json=idpName,proto3" json:"idp_name,omitempty"` + ExternalUserDisplayName string `protobuf:"bytes,5,opt,name=external_user_display_name,json=externalUserDisplayName,proto3" json:"external_user_display_name,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,6,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + ChangeDate *timestamp.Timestamp `protobuf:"bytes,7,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` +} + +func (x *ExternalIDPView) Reset() { + *x = ExternalIDPView{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[173] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExternalIDPView) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExternalIDPView) ProtoMessage() {} + +func (x *ExternalIDPView) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[173] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ExternalIDPView.ProtoReflect.Descriptor instead. +func (*ExternalIDPView) Descriptor() ([]byte, []int) { + return file_management_proto_rawDescGZIP(), []int{173} +} + +func (x *ExternalIDPView) GetUserId() string { + if x != nil { + return x.UserId + } + return "" +} + +func (x *ExternalIDPView) GetIdpConfigId() string { + if x != nil { + return x.IdpConfigId + } + return "" +} + +func (x *ExternalIDPView) GetExternalUserId() string { + if x != nil { + return x.ExternalUserId + } + return "" +} + +func (x *ExternalIDPView) GetIdpName() string { + if x != nil { + return x.IdpName + } + return "" +} + +func (x *ExternalIDPView) GetExternalUserDisplayName() string { + if x != nil { + return x.ExternalUserDisplayName + } + return "" +} + +func (x *ExternalIDPView) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate + } + return nil +} + +func (x *ExternalIDPView) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate + } + return nil +} + +type ExternalIDPRemoveRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + IdpConfigId string `protobuf:"bytes,2,opt,name=idp_config_id,json=idpConfigId,proto3" json:"idp_config_id,omitempty"` + ExternalUserId string `protobuf:"bytes,3,opt,name=external_user_id,json=externalUserId,proto3" json:"external_user_id,omitempty"` +} + +func (x *ExternalIDPRemoveRequest) Reset() { + *x = ExternalIDPRemoveRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[174] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExternalIDPRemoveRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExternalIDPRemoveRequest) ProtoMessage() {} + +func (x *ExternalIDPRemoveRequest) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[174] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ExternalIDPRemoveRequest.ProtoReflect.Descriptor instead. +func (*ExternalIDPRemoveRequest) Descriptor() ([]byte, []int) { + return file_management_proto_rawDescGZIP(), []int{174} +} + +func (x *ExternalIDPRemoveRequest) GetUserId() string { + if x != nil { + return x.UserId + } + return "" +} + +func (x *ExternalIDPRemoveRequest) GetIdpConfigId() string { + if x != nil { + return x.IdpConfigId + } + return "" +} + +func (x *ExternalIDPRemoveRequest) GetExternalUserId() string { + if x != nil { + return x.ExternalUserId + } + return "" +} + +var File_management_proto protoreflect.FileDescriptor + +var file_management_proto_rawDesc = []byte{ + 0x0a, 0x10, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x12, 0x1e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, + 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 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, 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, 0x2c, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x73, 0x77, 0x61, 0x67, 0x67, 0x65, 0x72, + 0x2f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x65, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x1a, 0x18, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x13, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x22, 0x54, 0x0a, 0x0b, 0x5a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x44, 0x6f, 0x63, + 0x73, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x12, 0x2d, 0x0a, 0x12, 0x64, 0x69, 0x73, + 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, + 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x22, 0x95, 0x01, 0x0a, 0x03, 0x49, 0x61, 0x6d, + 0x12, 0x22, 0x0a, 0x0d, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x6f, 0x72, 0x67, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x4f, + 0x72, 0x67, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x69, 0x61, 0x6d, 0x5f, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x61, + 0x6d, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0b, 0x73, 0x65, + 0x74, 0x5f, 0x75, 0x70, 0x5f, 0x64, 0x6f, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x09, 0x73, 0x65, 0x74, 0x55, 0x70, 0x44, 0x6f, 0x6e, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x73, 0x65, + 0x74, 0x5f, 0x75, 0x70, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0c, 0x73, 0x65, 0x74, 0x55, 0x70, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, + 0x22, 0x87, 0x01, 0x0a, 0x0d, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, + 0x69, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x73, 0x65, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x73, 0x65, 0x63, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, + 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x73, 0x63, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x61, 0x73, 0x63, 0x22, 0x79, 0x0a, 0x07, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x40, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, + 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x07, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, + 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x89, 0x02, 0x0a, 0x06, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 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, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x44, 0x0a, + 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x7a, 0x65, + 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, + 0x1b, 0x0a, 0x09, 0x65, 0x64, 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x65, 0x64, 0x69, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, + 0x65, 0x64, 0x69, 0x74, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x64, + 0x69, 0x74, 0x6f, 0x72, 0x12, 0x2b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 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, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x22, 0x50, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x44, 0x12, 0x17, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, + 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x49, 0x64, 0x22, 0x24, 0x0a, 0x09, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, + 0x12, 0x17, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, + 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x02, 0x69, 0x64, 0x22, 0x21, 0x0a, 0x06, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x44, 0x12, 0x17, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x02, 0x69, 0x64, 0x22, 0x33, 0x0a, 0x09, + 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0a, 0x6c, 0x6f, 0x67, + 0x69, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, + 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x4e, 0x61, 0x6d, + 0x65, 0x22, 0x70, 0x0a, 0x11, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1c, 0xfa, 0x42, 0x19, 0x72, 0x17, + 0x32, 0x15, 0x5e, 0x5b, 0x5e, 0x5b, 0x3a, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3a, 0x5d, 0x5d, 0x7b, + 0x31, 0x2c, 0x32, 0x30, 0x30, 0x7d, 0x24, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x20, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0xc8, 0x01, 0x52, 0x05, 0x65, 0x6d, + 0x61, 0x69, 0x6c, 0x22, 0x31, 0x0a, 0x12, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x55, 0x73, 0x65, + 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, + 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, + 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x22, 0xf9, 0x01, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x09, + 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x1c, 0xfa, 0x42, 0x19, 0x72, 0x17, 0x32, 0x15, 0x5e, 0x5b, 0x5e, 0x5b, 0x3a, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x3a, 0x5d, 0x5d, 0x7b, 0x31, 0x2c, 0x32, 0x30, 0x30, 0x7d, 0x24, 0x52, 0x08, 0x75, + 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x4a, 0x0a, 0x05, 0x68, 0x75, 0x6d, 0x61, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, + 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x75, + 0x6d, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x05, 0x68, 0x75, + 0x6d, 0x61, 0x6e, 0x12, 0x50, 0x0a, 0x07, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, + 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x68, + 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x07, 0x6d, 0x61, + 0x63, 0x68, 0x69, 0x6e, 0x65, 0x42, 0x0b, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x03, 0xf8, + 0x42, 0x01, 0x22, 0x90, 0x05, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x75, 0x6d, + 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x0a, 0x66, 0x69, 0x72, + 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, + 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0xc8, 0x01, 0x52, 0x09, 0x66, 0x69, 0x72, 0x73, 0x74, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, + 0x18, 0xc8, 0x01, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, + 0x09, 0x6e, 0x69, 0x63, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0xc8, 0x01, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x12, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, + 0x64, 0x5f, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0xc8, 0x01, 0x52, 0x11, 0x70, 0x72, 0x65, 0x66, + 0x65, 0x72, 0x72, 0x65, 0x64, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x3e, 0x0a, + 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, + 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x22, 0x0a, + 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0c, 0xfa, 0x42, + 0x09, 0x72, 0x07, 0x10, 0x01, 0x18, 0xc8, 0x01, 0x60, 0x01, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, + 0x6c, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x73, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x76, 0x65, + 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 0x73, + 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x1d, 0x0a, + 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, + 0x04, 0x72, 0x02, 0x18, 0x14, 0x52, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x2a, 0x0a, 0x11, + 0x69, 0x73, 0x5f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 0x73, 0x50, 0x68, 0x6f, 0x6e, 0x65, + 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x72, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, + 0x18, 0xc8, 0x01, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x24, 0x0a, 0x08, + 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, + 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0xc8, 0x01, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, + 0x74, 0x79, 0x12, 0x29, 0x0a, 0x0b, 0x70, 0x6f, 0x73, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x64, + 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0xc8, + 0x01, 0x52, 0x0a, 0x70, 0x6f, 0x73, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, + 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, + 0x42, 0x05, 0x72, 0x03, 0x18, 0xc8, 0x01, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, + 0x2f, 0x0a, 0x0e, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0xc8, + 0x01, 0x52, 0x0d, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x12, 0x23, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0f, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x18, 0x48, 0x52, 0x08, 0x70, 0x61, 0x73, + 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x62, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, + 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, + 0x72, 0x05, 0x10, 0x01, 0x18, 0xc8, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, + 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0xf4, 0x03, 0x52, 0x0b, 0x64, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xb7, 0x03, 0x0a, 0x0c, 0x55, 0x73, + 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3f, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x63, 0x61, 0x6f, 0x73, + 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 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, 0x0c, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x0b, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 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, 0x70, 0x52, 0x0a, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x45, 0x0a, 0x05, 0x68, 0x75, 0x6d, 0x61, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, + 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x48, 0x75, 0x6d, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x48, 0x00, 0x52, 0x05, 0x68, 0x75, 0x6d, 0x61, 0x6e, 0x12, 0x4b, 0x0a, 0x07, 0x6d, 0x61, 0x63, + 0x68, 0x69, 0x6e, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x63, 0x61, 0x6f, + 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x63, 0x68, + 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x07, 0x6d, + 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x42, 0x0b, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x03, + 0xf8, 0x42, 0x01, 0x22, 0xe0, 0x04, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, + 0x12, 0x3f, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x29, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, + 0x74, 0x65, 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, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, + 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, + 0x65, 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, 0x70, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, + 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x0a, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x14, + 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x70, 0x72, 0x65, 0x66, + 0x65, 0x72, 0x72, 0x65, 0x64, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x39, + 0x0a, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x18, 0x08, 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, + 0x6c, 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4f, 0x77, 0x6e, 0x65, 0x72, + 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x41, 0x0a, + 0x05, 0x68, 0x75, 0x6d, 0x61, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x63, + 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x75, + 0x6d, 0x61, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x48, 0x00, 0x52, 0x05, 0x68, 0x75, 0x6d, 0x61, 0x6e, + 0x12, 0x47, 0x0a, 0x07, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2b, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, + 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x56, 0x69, 0x65, 0x77, 0x48, 0x00, + 0x52, 0x07, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x42, 0x0b, 0x0a, 0x04, 0x75, 0x73, 0x65, + 0x72, 0x12, 0x03, 0xf8, 0x42, 0x01, 0x22, 0x94, 0x04, 0x0a, 0x0d, 0x48, 0x75, 0x6d, 0x61, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x69, 0x72, 0x73, + 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, + 0x72, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, + 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x69, 0x63, 0x6b, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, + 0x64, 0x5f, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x11, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x4c, 0x61, 0x6e, 0x67, 0x75, + 0x61, 0x67, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, + 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x52, 0x06, 0x67, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x73, 0x5f, + 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 0x73, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x56, 0x65, 0x72, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x69, + 0x73, 0x5f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 0x73, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x56, + 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x72, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x1f, 0x0a, + 0x0b, 0x70, 0x6f, 0x73, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6f, 0x73, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xd7, 0x04, + 0x0a, 0x09, 0x48, 0x75, 0x6d, 0x61, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x12, 0x45, 0x0a, 0x10, 0x70, + 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 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, 0x0f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x72, 0x73, 0x74, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, + 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x69, 0x63, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2d, + 0x0a, 0x12, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x6e, 0x67, + 0x75, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x70, 0x72, 0x65, 0x66, + 0x65, 0x72, 0x72, 0x65, 0x64, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x3e, 0x0a, + 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, + 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x14, 0x0a, + 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, + 0x61, 0x69, 0x6c, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x73, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x5f, + 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, + 0x69, 0x73, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, + 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x73, 0x5f, 0x70, 0x68, 0x6f, 0x6e, + 0x65, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0f, 0x69, 0x73, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x6c, + 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, + 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6f, 0x73, 0x74, 0x61, + 0x6c, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6f, + 0x73, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, + 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, + 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x47, 0x0a, 0x0f, 0x4d, 0x61, 0x63, 0x68, 0x69, + 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, + 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x22, 0x85, 0x01, 0x0a, 0x0b, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x56, 0x69, 0x65, 0x77, + 0x12, 0x40, 0x0a, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x61, 0x64, 0x64, + 0x65, 0x64, 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, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x4b, 0x65, 0x79, 0x41, 0x64, 0x64, + 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x5b, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x17, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, + 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2a, 0x0a, 0x0b, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, + 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0xf4, 0x03, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xcb, 0x01, 0x0a, 0x14, 0x41, 0x64, 0x64, 0x4d, 0x61, 0x63, + 0x68, 0x69, 0x6e, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, + 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x12, 0x4c, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, + 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x42, 0x08, + 0xfa, 0x42, 0x05, 0x82, 0x01, 0x02, 0x20, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x43, + 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, + 0x65, 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, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, + 0x61, 0x74, 0x65, 0x22, 0xae, 0x02, 0x0a, 0x15, 0x41, 0x64, 0x64, 0x4d, 0x61, 0x63, 0x68, 0x69, + 0x6e, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3f, 0x0a, + 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 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, + 0x52, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1a, + 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x42, 0x0a, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, + 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, + 0x65, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x43, + 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, + 0x65, 0x18, 0x05, 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, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, + 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6b, 0x65, 0x79, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x6b, 0x65, 0x79, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x73, 0x22, 0x57, 0x0a, 0x13, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x4b, + 0x65, 0x79, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x07, 0x75, + 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, + 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, + 0x06, 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, + 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x05, 0x6b, 0x65, 0x79, 0x49, 0x64, 0x22, 0x86, 0x02, + 0x0a, 0x0e, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x4b, 0x65, 0x79, 0x56, 0x69, 0x65, 0x77, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, + 0x12, 0x42, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, + 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, + 0x65, 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, 0x70, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, + 0x65, 0x12, 0x43, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x64, 0x61, 0x74, 0x65, 0x18, 0x05, 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, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x22, 0x7b, 0x0a, 0x17, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, + 0x65, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, + 0x10, 0x0a, 0x03, 0x61, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x61, 0x73, + 0x63, 0x12, 0x20, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x75, 0x73, 0x65, + 0x72, 0x49, 0x64, 0x22, 0xa5, 0x02, 0x0a, 0x18, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x4b, + 0x65, 0x79, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x21, + 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x12, 0x46, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x2e, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, + 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x4b, 0x65, 0x79, 0x56, 0x69, 0x65, + 0x77, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x2d, 0x0a, 0x12, 0x70, 0x72, 0x6f, + 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, + 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x41, 0x0a, 0x0e, 0x76, 0x69, 0x65, 0x77, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 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, 0x0d, 0x76, 0x69, + 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xf4, 0x01, 0x0a, 0x11, + 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, + 0x54, 0x0a, 0x0e, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, + 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x52, 0x0d, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x43, + 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x73, 0x63, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x03, 0x61, 0x73, 0x63, 0x12, 0x49, 0x0a, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, + 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, + 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, + 0x65, 0x73, 0x22, 0xb8, 0x01, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x49, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, + 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, + 0x65, 0x79, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x82, 0x01, 0x02, 0x20, 0x00, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x44, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x2c, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, + 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, + 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x99, 0x02, + 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x40, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, + 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, + 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x52, + 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x2d, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x63, 0x65, + 0x73, 0x73, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x11, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x53, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x41, 0x0a, 0x0e, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 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, 0x0d, 0x76, 0x69, 0x65, 0x77, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xa2, 0x03, 0x0a, 0x0b, 0x55, 0x73, + 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x69, 0x72, + 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, + 0x69, 0x72, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x73, + 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x69, 0x63, 0x6b, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, + 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, + 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x11, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x4c, 0x61, 0x6e, 0x67, + 0x75, 0x61, 0x67, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, + 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x52, 0x06, 0x67, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, + 0x65, 0x18, 0x09, 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, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, + 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, + 0x18, 0x0a, 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, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x22, 0xf9, + 0x03, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x56, 0x69, + 0x65, 0x77, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, + 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x72, 0x73, 0x74, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, + 0x0a, 0x09, 0x6e, 0x69, 0x63, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, + 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2d, + 0x0a, 0x12, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x6e, 0x67, + 0x75, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x70, 0x72, 0x65, 0x66, + 0x65, 0x72, 0x72, 0x65, 0x64, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x3e, 0x0a, + 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, + 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, + 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x09, 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, 0x0c, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0a, 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, 0x0a, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x67, 0x69, 0x6e, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, + 0x67, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x70, 0x72, 0x65, 0x66, + 0x65, 0x72, 0x72, 0x65, 0x64, 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, + 0x64, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x9e, 0x02, 0x0a, 0x18, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x29, 0x0a, 0x0a, 0x66, 0x69, 0x72, 0x73, 0x74, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, + 0x72, 0x05, 0x10, 0x01, 0x18, 0xc8, 0x01, 0x52, 0x09, 0x66, 0x69, 0x72, 0x73, 0x74, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0xc8, + 0x01, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x09, 0x6e, + 0x69, 0x63, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, + 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0xc8, 0x01, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x12, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x5f, + 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, + 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0xc8, 0x01, 0x52, 0x11, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, + 0x72, 0x65, 0x64, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x67, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x63, 0x61, + 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x66, 0x0a, 0x19, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x39, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1c, 0xfa, 0x42, 0x19, + 0x72, 0x17, 0x32, 0x15, 0x5e, 0x5b, 0x5e, 0x5b, 0x3a, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3a, 0x5d, + 0x5d, 0x7b, 0x31, 0x2c, 0x32, 0x30, 0x30, 0x7d, 0x24, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x22, 0xf7, 0x01, 0x0a, 0x09, 0x55, 0x73, 0x65, 0x72, 0x45, 0x6d, 0x61, 0x69, + 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, + 0x64, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x73, 0x5f, 0x65, 0x6d, + 0x61, 0x69, 0x6c, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0f, 0x69, 0x73, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x56, 0x65, 0x72, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, + 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, + 0x18, 0x05, 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, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, + 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, + 0x06, 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, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x22, 0xfb, 0x01, + 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, + 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x73, 0x5f, 0x65, 0x6d, 0x61, 0x69, + 0x6c, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0f, 0x69, 0x73, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3f, 0x0a, + 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x05, + 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, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x3b, + 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x06, 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, + 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x22, 0x76, 0x0a, 0x16, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0xc8, 0x01, + 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x73, 0x5f, 0x65, 0x6d, + 0x61, 0x69, 0x6c, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0f, 0x69, 0x73, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x56, 0x65, 0x72, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x22, 0xf7, 0x01, 0x0a, 0x09, 0x55, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, + 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, + 0x64, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x73, 0x5f, 0x70, 0x68, + 0x6f, 0x6e, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0f, 0x69, 0x73, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, + 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, + 0x18, 0x06, 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, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, + 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, + 0x07, 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, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x22, 0xfb, 0x01, + 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x56, 0x69, 0x65, 0x77, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, + 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x73, 0x5f, 0x70, 0x68, 0x6f, 0x6e, + 0x65, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0f, 0x69, 0x73, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3f, 0x0a, + 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x06, + 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, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x3b, + 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x07, 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, + 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x22, 0x7e, 0x0a, 0x16, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1f, + 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x09, 0xfa, + 0x42, 0x06, 0x72, 0x04, 0x10, 0x01, 0x18, 0x14, 0x52, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, + 0x2a, 0x0a, 0x11, 0x69, 0x73, 0x5f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 0x73, 0x50, 0x68, + 0x6f, 0x6e, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x22, 0xcd, 0x02, 0x0a, 0x0b, + 0x55, 0x73, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x74, + 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x74, + 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6f, 0x73, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x64, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6f, 0x73, 0x74, 0x61, 0x6c, 0x43, 0x6f, + 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x74, + 0x72, 0x65, 0x65, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3f, 0x0a, + 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x08, + 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, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x3b, + 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x09, 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, + 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x22, 0xd1, 0x02, 0x0a, 0x0f, + 0x55, 0x73, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x56, 0x69, 0x65, 0x77, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, + 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6f, 0x73, 0x74, 0x61, 0x6c, 0x5f, + 0x63, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6f, 0x73, 0x74, + 0x61, 0x6c, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x25, + 0x0a, 0x0e, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, + 0x74, 0x65, 0x18, 0x08, 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, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, + 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, + 0x65, 0x18, 0x09, 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, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x22, + 0xfb, 0x01, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x02, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, + 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x22, 0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0xc8, 0x01, + 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x24, 0x0a, 0x08, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, + 0x72, 0x03, 0x18, 0xc8, 0x01, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x12, + 0x29, 0x0a, 0x0b, 0x70, 0x6f, 0x73, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0xc8, 0x01, 0x52, 0x0a, + 0x70, 0x6f, 0x73, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, 0x06, 0x72, 0x65, + 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, + 0x03, 0x18, 0xc8, 0x01, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x0e, + 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0xc8, 0x01, 0x52, 0x0d, + 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x4f, 0x0a, + 0x0c, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x3f, 0x0a, + 0x04, 0x6d, 0x66, 0x61, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x63, 0x61, + 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x75, 0x6c, + 0x74, 0x69, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x04, 0x6d, 0x66, 0x61, 0x73, 0x22, 0x8a, + 0x01, 0x0a, 0x0b, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x3b, + 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x63, + 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x66, + 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x3e, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x63, 0x61, 0x6f, + 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x46, 0x41, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x51, 0x0a, 0x0f, 0x50, + 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, + 0x02, 0x10, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x25, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, + 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x09, 0xfa, 0x42, 0x06, 0x72, 0x04, + 0x10, 0x01, 0x18, 0x48, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x7f, + 0x0a, 0x1e, 0x53, 0x65, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x4e, 0x6f, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x17, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, + 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x44, 0x0a, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, + 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, + 0x2c, 0x0a, 0x1a, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6c, + 0x65, 0x78, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x44, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0xef, 0x03, + 0x0a, 0x18, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, + 0x78, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x63, 0x61, + 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, + 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, + 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, 0x70, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, + 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, + 0x05, 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, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, + 0x0a, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x09, 0x6d, 0x69, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x23, 0x0a, 0x0d, + 0x68, 0x61, 0x73, 0x5f, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x63, 0x61, 0x73, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0c, 0x68, 0x61, 0x73, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x63, 0x61, 0x73, + 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x68, 0x61, 0x73, 0x5f, 0x75, 0x70, 0x70, 0x65, 0x72, 0x63, 0x61, + 0x73, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x68, 0x61, 0x73, 0x55, 0x70, 0x70, + 0x65, 0x72, 0x63, 0x61, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x68, 0x61, 0x73, 0x5f, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x68, 0x61, 0x73, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x68, 0x61, 0x73, 0x5f, 0x73, 0x79, 0x6d, + 0x62, 0x6f, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x68, 0x61, 0x73, 0x53, 0x79, + 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x22, + 0xf3, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6d, 0x70, + 0x6c, 0x65, 0x78, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0xf4, + 0x03, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, + 0x0a, 0x0a, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x09, 0x6d, 0x69, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x23, 0x0a, + 0x0d, 0x68, 0x61, 0x73, 0x5f, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x63, 0x61, 0x73, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x68, 0x61, 0x73, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x63, 0x61, + 0x73, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x68, 0x61, 0x73, 0x5f, 0x75, 0x70, 0x70, 0x65, 0x72, 0x63, + 0x61, 0x73, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x68, 0x61, 0x73, 0x55, 0x70, + 0x70, 0x65, 0x72, 0x63, 0x61, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x68, 0x61, 0x73, 0x5f, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x68, 0x61, 0x73, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x68, 0x61, 0x73, 0x5f, 0x73, 0x79, + 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x68, 0x61, 0x73, 0x53, + 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x22, 0x83, 0x02, 0x0a, 0x1e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, + 0x72, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2a, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, + 0x42, 0x05, 0x72, 0x03, 0x18, 0xf4, 0x03, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6d, 0x69, 0x6e, 0x4c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x12, 0x23, 0x0a, 0x0d, 0x68, 0x61, 0x73, 0x5f, 0x6c, 0x6f, 0x77, 0x65, 0x72, + 0x63, 0x61, 0x73, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x68, 0x61, 0x73, 0x4c, + 0x6f, 0x77, 0x65, 0x72, 0x63, 0x61, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x68, 0x61, 0x73, 0x5f, + 0x75, 0x70, 0x70, 0x65, 0x72, 0x63, 0x61, 0x73, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0c, 0x68, 0x61, 0x73, 0x55, 0x70, 0x70, 0x65, 0x72, 0x63, 0x61, 0x73, 0x65, 0x12, 0x1d, 0x0a, + 0x0a, 0x68, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x09, 0x68, 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, + 0x68, 0x61, 0x73, 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x09, 0x68, 0x61, 0x73, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x22, 0x25, 0x0a, 0x13, 0x50, + 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x41, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x49, 0x44, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, + 0x69, 0x64, 0x22, 0x8d, 0x03, 0x0a, 0x11, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x41, + 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x63, 0x61, 0x6f, 0x73, + 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3f, 0x0a, + 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 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, 0x70, + 0x52, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x3b, + 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x05, 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, + 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x6d, + 0x61, 0x78, 0x5f, 0x61, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x79, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x41, 0x67, 0x65, 0x44, 0x61, 0x79, 0x73, 0x12, 0x28, 0x0a, + 0x10, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x5f, 0x77, 0x61, 0x72, 0x6e, 0x5f, 0x64, 0x61, 0x79, + 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x57, + 0x61, 0x72, 0x6e, 0x44, 0x61, 0x79, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x44, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x17, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x41, + 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x2a, + 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0xf4, 0x03, 0x52, 0x0b, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0c, 0x6d, 0x61, + 0x78, 0x5f, 0x61, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x79, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x41, 0x67, 0x65, 0x44, 0x61, 0x79, 0x73, 0x12, 0x28, 0x0a, 0x10, + 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x5f, 0x77, 0x61, 0x72, 0x6e, 0x5f, 0x64, 0x61, 0x79, 0x73, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x57, 0x61, + 0x72, 0x6e, 0x44, 0x61, 0x79, 0x73, 0x22, 0xa1, 0x01, 0x0a, 0x17, 0x50, 0x61, 0x73, 0x73, 0x77, + 0x6f, 0x72, 0x64, 0x41, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, + 0x69, 0x64, 0x12, 0x2a, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0xf4, + 0x03, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, + 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x79, 0x73, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x41, 0x67, 0x65, 0x44, 0x61, 0x79, 0x73, + 0x12, 0x28, 0x0a, 0x10, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x5f, 0x77, 0x61, 0x72, 0x6e, 0x5f, + 0x64, 0x61, 0x79, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, + 0x72, 0x65, 0x57, 0x61, 0x72, 0x6e, 0x44, 0x61, 0x79, 0x73, 0x22, 0x29, 0x0a, 0x17, 0x50, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x4c, 0x6f, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x50, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x49, 0x44, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x9d, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, + 0x72, 0x64, 0x4c, 0x6f, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, + 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x41, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2b, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, + 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x64, 0x61, 0x74, 0x65, 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, 0x70, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, + 0x64, 0x61, 0x74, 0x65, 0x18, 0x05, 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, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, + 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, + 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x41, 0x74, 0x74, + 0x65, 0x6d, 0x70, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x16, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x6c, 0x6f, + 0x63, 0x6b, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x73, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x73, 0x68, 0x6f, 0x77, 0x4c, 0x6f, 0x63, 0x6b, 0x4f, + 0x75, 0x74, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x44, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x22, 0xa1, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, + 0x72, 0x64, 0x4c, 0x6f, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, + 0x03, 0x18, 0xf4, 0x03, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x41, 0x74, 0x74, 0x65, + 0x6d, 0x70, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x16, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x6c, 0x6f, 0x63, + 0x6b, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x73, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x73, 0x68, 0x6f, 0x77, 0x4c, 0x6f, 0x63, 0x6b, 0x4f, 0x75, + 0x74, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x73, 0x22, 0xb1, 0x01, 0x0a, 0x1b, 0x50, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x4c, 0x6f, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x50, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2a, 0x0a, 0x0b, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, + 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0xf4, 0x03, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x74, 0x74, + 0x65, 0x6d, 0x70, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6d, 0x61, 0x78, + 0x41, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x16, 0x73, 0x68, 0x6f, 0x77, + 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, + 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x73, 0x68, 0x6f, 0x77, 0x4c, 0x6f, + 0x63, 0x6b, 0x4f, 0x75, 0x74, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x73, 0x22, 0x9b, 0x01, + 0x0a, 0x0c, 0x4f, 0x72, 0x67, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x15, + 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x38, 0x0a, 0x19, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x6d, 0x75, 0x73, 0x74, 0x5f, 0x62, 0x65, 0x5f, 0x64, 0x6f, + 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x75, 0x73, 0x65, 0x72, + 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x4d, 0x75, 0x73, 0x74, 0x42, 0x65, 0x44, 0x6f, 0x6d, 0x61, 0x69, + 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x22, 0x32, 0x0a, 0x10, 0x4f, + 0x72, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x1e, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, + 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0xc8, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, + 0x83, 0x02, 0x0a, 0x03, 0x4f, 0x72, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3e, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, + 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 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, 0x0c, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 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, 0x70, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x22, 0x87, 0x02, 0x0a, 0x07, 0x4f, 0x72, 0x67, 0x56, 0x69, 0x65, + 0x77, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, + 0x64, 0x12, 0x3e, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x28, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, + 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, + 0x74, 0x65, 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, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, + 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, + 0x65, 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, 0x70, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x22, + 0x29, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x1f, 0x0a, 0x06, 0x64, 0x6f, 0x6d, + 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, + 0x10, 0x01, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x8a, 0x02, 0x0a, 0x09, 0x4f, + 0x72, 0x67, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, + 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, + 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, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, + 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 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, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, + 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x07, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x73, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x22, 0xf0, 0x02, 0x0a, 0x0d, 0x4f, 0x72, 0x67, 0x44, + 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, + 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, + 0x65, 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, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, + 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, + 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, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x07, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x1a, 0x0a, 0x08, + 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, + 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x60, 0x0a, 0x0f, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x37, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, + 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0e, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x39, 0x0a, 0x13, 0x41, 0x64, + 0x64, 0x4f, 0x72, 0x67, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x22, 0x0a, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0xc8, 0x01, 0x52, 0x06, 0x64, + 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x97, 0x01, 0x0a, 0x1a, 0x4f, 0x72, 0x67, 0x44, 0x6f, 0x6d, + 0x61, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0xc8, 0x01, + 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x55, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, + 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x44, 0x6f, 0x6d, 0x61, 0x69, + 0x6e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x42, + 0x08, 0xfa, 0x42, 0x05, 0x82, 0x01, 0x02, 0x20, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, + 0x45, 0x0a, 0x1b, 0x4f, 0x72, 0x67, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x3e, 0x0a, 0x18, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x65, 0x4f, 0x72, 0x67, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x22, 0x0a, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0xc8, 0x01, 0x52, 0x06, + 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x3a, 0x0a, 0x17, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, + 0x79, 0x4f, 0x72, 0x67, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x1f, 0x0a, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, + 0x69, 0x6e, 0x22, 0x39, 0x0a, 0x16, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4f, 0x72, 0x67, 0x44, + 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x06, + 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, + 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0xa3, 0x02, + 0x0a, 0x17, 0x4f, 0x72, 0x67, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x45, 0x0a, 0x06, 0x72, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x61, 0x6f, + 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x44, + 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x12, 0x2d, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x5f, 0x73, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x70, + 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x12, 0x41, 0x0a, 0x0e, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x18, 0x06, 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, 0x0d, 0x76, 0x69, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x22, 0x96, 0x01, 0x0a, 0x16, 0x4f, 0x72, 0x67, 0x44, 0x6f, 0x6d, 0x61, 0x69, + 0x6e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, + 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x4e, 0x0a, 0x07, + 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, + 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, + 0x72, 0x67, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x52, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x22, 0xc2, 0x01, 0x0a, + 0x14, 0x4f, 0x72, 0x67, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x4e, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, + 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x82, 0x01, 0x02, 0x20, 0x00, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x44, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, + 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4d, 0x65, 0x74, + 0x68, 0x6f, 0x64, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x22, 0x26, 0x0a, 0x0e, 0x4f, 0x72, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x6f, + 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x22, 0xd4, 0x01, 0x0a, 0x09, 0x4f, 0x72, + 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x5f, 0x64, 0x61, 0x74, 0x65, 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, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, + 0x61, 0x74, 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x64, 0x61, 0x74, 0x65, 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, 0x70, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x44, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x22, 0x4d, 0x0a, 0x13, 0x41, 0x64, 0x64, 0x4f, 0x72, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, + 0x01, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x6c, + 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x22, + 0x50, 0x0a, 0x16, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x72, 0x67, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x07, 0x75, 0x73, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, + 0x02, 0x10, 0x01, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x72, + 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, + 0x73, 0x22, 0x3a, 0x0a, 0x16, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4f, 0x72, 0x67, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x07, 0x75, + 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, + 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0xa3, 0x02, + 0x0a, 0x17, 0x4f, 0x72, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x45, 0x0a, 0x06, 0x72, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x61, 0x6f, + 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x12, 0x2d, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x5f, 0x73, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x70, + 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x12, 0x41, 0x0a, 0x0e, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x18, 0x06, 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, 0x0d, 0x76, 0x69, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x22, 0xea, 0x02, 0x0a, 0x0d, 0x4f, 0x72, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x56, 0x69, 0x65, 0x77, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x14, + 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x72, + 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, + 0x61, 0x74, 0x65, 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, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, + 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, + 0x74, 0x65, 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, 0x70, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, + 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1b, + 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, + 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, + 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x72, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, + 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, + 0x22, 0x96, 0x01, 0x0a, 0x16, 0x4f, 0x72, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x4e, 0x0a, 0x07, 0x71, 0x75, 0x65, + 0x72, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x63, 0x61, 0x6f, + 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x52, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x22, 0xc2, 0x01, 0x0a, 0x14, 0x4f, 0x72, + 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x12, 0x4e, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x32, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x4f, 0x72, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x4b, 0x65, 0x79, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x82, 0x01, 0x02, 0x20, 0x00, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x12, 0x44, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, + 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, + 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x36, + 0x0a, 0x14, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0xc8, 0x01, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x4f, 0x0a, 0x14, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, + 0x02, 0x10, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0xc8, + 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x9f, 0x02, 0x0a, 0x15, 0x50, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, + 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x12, 0x43, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, + 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x56, 0x69, 0x65, 0x77, 0x52, + 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x2d, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x63, 0x65, + 0x73, 0x73, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x11, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x53, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x41, 0x0a, 0x0e, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 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, 0x0d, 0x76, 0x69, 0x65, 0x77, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xc5, 0x02, 0x0a, 0x0b, 0x50, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x56, 0x69, 0x65, 0x77, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x42, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x63, 0x61, + 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 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, + 0x70, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x3f, 0x0a, + 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x05, + 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, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x25, + 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6f, 0x77, 0x6e, 0x65, 0x72, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x22, 0x92, 0x01, 0x0a, 0x14, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x4c, 0x0a, 0x07, 0x71, 0x75, 0x65, 0x72, + 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x63, 0x61, 0x6f, 0x73, + 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x07, 0x71, + 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x22, 0xbe, 0x01, 0x0a, 0x12, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x4c, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x63, 0x61, 0x6f, + 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x42, 0x08, 0xfa, 0x42, + 0x05, 0x82, 0x01, 0x02, 0x20, 0x00, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x44, 0x0a, 0x06, 0x6d, + 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x63, 0x61, + 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, + 0x64, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x4f, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x12, 0x43, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, + 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x08, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x22, 0x8b, 0x02, 0x0a, 0x07, 0x50, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x42, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, + 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x0b, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 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, 0x70, 0x52, 0x0a, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x05, 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, 0x0c, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x22, 0x2a, 0x0a, 0x12, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, + 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x72, 0x6f, 0x6c, + 0x65, 0x73, 0x22, 0xd8, 0x01, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x14, 0x0a, + 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x72, 0x6f, + 0x6c, 0x65, 0x73, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, + 0x74, 0x65, 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, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, + 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, + 0x65, 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, 0x70, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x22, 0x63, 0x0a, + 0x10, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x64, + 0x64, 0x12, 0x17, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, + 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x75, 0x73, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, + 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, + 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x72, 0x6f, 0x6c, + 0x65, 0x73, 0x22, 0x66, 0x0a, 0x13, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x17, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x02, + 0x69, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x75, 0x73, + 0x65, 0x72, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x22, 0x50, 0x0a, 0x13, 0x50, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x12, 0x17, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, + 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x75, 0x73, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, + 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x74, 0x0a, 0x0e, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x41, 0x64, 0x64, 0x12, 0x17, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, + 0x02, 0x10, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, + 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x22, 0x82, 0x01, 0x0a, 0x12, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x6f, + 0x6c, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6c, 0x6b, 0x12, 0x17, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x02, + 0x69, 0x64, 0x12, 0x53, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x6f, + 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x63, 0x61, 0x6f, 0x73, + 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x41, 0x64, 0x64, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x22, 0x80, 0x01, 0x0a, 0x11, 0x50, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x17, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, + 0x10, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x19, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x91, 0x02, 0x0a, 0x0b, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x64, + 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3f, + 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 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, + 0x70, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, + 0x3b, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x05, + 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, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x22, 0xd8, + 0x01, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x56, 0x69, + 0x65, 0x77, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, + 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, + 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 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, 0x70, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1a, 0x0a, + 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x22, 0x47, 0x0a, 0x11, 0x50, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x17, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, + 0x02, 0x10, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x19, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x22, 0xa7, 0x02, 0x0a, 0x19, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x6f, + 0x6c, 0x65, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x21, + 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x12, 0x47, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x2f, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, + 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x56, 0x69, + 0x65, 0x77, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x2d, 0x0a, 0x12, 0x70, 0x72, + 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, + 0x64, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x41, 0x0a, 0x0e, 0x76, 0x69, 0x65, + 0x77, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 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, 0x0d, 0x76, + 0x69, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xc2, 0x01, 0x0a, + 0x18, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x53, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0a, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, + 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, + 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, + 0x50, 0x0a, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x36, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, + 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, + 0x73, 0x22, 0xc6, 0x01, 0x0a, 0x16, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x6f, 0x6c, + 0x65, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x50, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x63, 0x61, 0x6f, 0x73, + 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x42, + 0x08, 0xfa, 0x42, 0x05, 0x82, 0x01, 0x02, 0x20, 0x00, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x44, + 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, + 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x06, 0x6d, 0x65, + 0x74, 0x68, 0x6f, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xee, 0x02, 0x0a, 0x11, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, + 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, + 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, + 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, + 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x66, 0x69, 0x72, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6c, + 0x61, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x6c, 0x61, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, + 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x3b, + 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x07, 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, + 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x08, 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, 0x0c, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, + 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, + 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, + 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xab, 0x02, 0x0a, 0x1b, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x49, 0x0a, 0x06, + 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x63, + 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x52, + 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x2d, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x63, 0x65, + 0x73, 0x73, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x11, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x53, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x41, 0x0a, 0x0e, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 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, 0x0d, 0x76, 0x69, 0x65, 0x77, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xc6, 0x01, 0x0a, 0x1a, 0x50, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, + 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, + 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x52, + 0x0a, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x38, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, + 0x65, 0x73, 0x22, 0xca, 0x01, 0x0a, 0x18, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, + 0x52, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x36, 0x2e, 0x63, + 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x4b, 0x65, 0x79, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x82, 0x01, 0x02, 0x20, 0x00, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x44, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, + 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4d, 0x65, 0x74, 0x68, 0x6f, + 0x64, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, + 0xe8, 0x02, 0x0a, 0x0b, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, + 0x3e, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, + 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, + 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, + 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, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, + 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 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, + 0x70, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x4d, 0x0a, 0x0b, 0x6f, 0x69, 0x64, 0x63, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, + 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x49, 0x44, 0x43, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x48, 0x00, 0x52, 0x0a, 0x6f, 0x69, 0x64, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, + 0x61, 0x70, 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x74, 0x0a, 0x11, 0x41, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, + 0x26, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x02, 0x69, 0x64, + 0x12, 0x1e, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, + 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0xc8, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x22, 0xf6, 0x05, 0x0a, 0x0a, 0x4f, 0x49, 0x44, 0x43, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, + 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x75, 0x72, 0x69, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, + 0x55, 0x72, 0x69, 0x73, 0x12, 0x57, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x63, + 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x49, + 0x44, 0x43, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0d, + 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x4e, 0x0a, + 0x0b, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, + 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x49, 0x44, 0x43, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x79, 0x70, + 0x65, 0x52, 0x0a, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x5e, 0x0a, + 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x33, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, + 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x49, 0x44, 0x43, 0x41, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0f, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, + 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, + 0x5c, 0x0a, 0x10, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x63, 0x61, 0x6f, 0x73, + 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x49, 0x44, 0x43, 0x41, + 0x75, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0e, 0x61, + 0x75, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x39, 0x0a, + 0x19, 0x70, 0x6f, 0x73, 0x74, 0x5f, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x5f, 0x72, 0x65, 0x64, + 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x75, 0x72, 0x69, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x16, 0x70, 0x6f, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x64, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x55, 0x72, 0x69, 0x73, 0x12, 0x45, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x63, 0x61, 0x6f, 0x73, + 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x49, 0x44, 0x43, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, + 0x25, 0x0a, 0x0e, 0x6e, 0x6f, 0x6e, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x69, 0x61, 0x6e, + 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x6e, 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x6d, + 0x70, 0x6c, 0x69, 0x61, 0x6e, 0x74, 0x12, 0x56, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x69, + 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x6c, 0x65, 0x6d, 0x73, 0x18, 0x0b, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, + 0x65, 0x6c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x69, + 0x7a, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x12, 0x63, 0x6f, 0x6d, 0x70, + 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x62, 0x6c, 0x65, 0x6d, 0x73, 0x12, 0x19, + 0x0a, 0x08, 0x64, 0x65, 0x76, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x07, 0x64, 0x65, 0x76, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x88, 0x05, 0x0a, 0x15, 0x4f, 0x49, + 0x44, 0x43, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, + 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, + 0x10, 0x01, 0x18, 0xc8, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x72, + 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x75, 0x72, 0x69, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x55, 0x72, 0x69, 0x73, + 0x12, 0x57, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, + 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x49, 0x44, 0x43, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x4e, 0x0a, 0x0b, 0x67, 0x72, 0x61, + 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2d, + 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x4f, 0x49, 0x44, 0x43, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x67, + 0x72, 0x61, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x5e, 0x0a, 0x10, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x33, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, + 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x49, 0x44, 0x43, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x5c, 0x0a, 0x10, 0x61, 0x75, 0x74, + 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, + 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x49, 0x44, 0x43, 0x41, 0x75, 0x74, 0x68, 0x4d, 0x65, 0x74, + 0x68, 0x6f, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0e, 0x61, 0x75, 0x74, 0x68, 0x4d, 0x65, 0x74, + 0x68, 0x6f, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x39, 0x0a, 0x19, 0x70, 0x6f, 0x73, 0x74, 0x5f, + 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, + 0x75, 0x72, 0x69, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x16, 0x70, 0x6f, 0x73, 0x74, + 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x55, 0x72, + 0x69, 0x73, 0x12, 0x45, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, + 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x49, 0x44, 0x43, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x64, 0x65, 0x76, + 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x64, 0x65, 0x76, + 0x4d, 0x6f, 0x64, 0x65, 0x22, 0xcc, 0x04, 0x0a, 0x10, 0x4f, 0x49, 0x44, 0x43, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0a, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, + 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, + 0x64, 0x12, 0x2e, 0x0a, 0x0e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, + 0x10, 0x01, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x75, 0x72, + 0x69, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, + 0x63, 0x74, 0x55, 0x72, 0x69, 0x73, 0x12, 0x57, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x30, + 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x4f, 0x49, 0x44, 0x43, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x52, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, + 0x4e, 0x0a, 0x0b, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x05, + 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, + 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x49, 0x44, 0x43, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x0a, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, + 0x5e, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x33, 0x2e, 0x63, 0x61, 0x6f, 0x73, + 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x49, 0x44, 0x43, 0x41, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0f, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x5c, 0x0a, 0x10, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x63, 0x61, 0x6f, 0x73, + 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x49, 0x44, 0x43, 0x41, + 0x75, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0e, 0x61, + 0x75, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x39, 0x0a, + 0x19, 0x70, 0x6f, 0x73, 0x74, 0x5f, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x5f, 0x72, 0x65, 0x64, + 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x75, 0x72, 0x69, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x16, 0x70, 0x6f, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x64, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x55, 0x72, 0x69, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x64, 0x65, 0x76, 0x5f, + 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x64, 0x65, 0x76, 0x4d, + 0x6f, 0x64, 0x65, 0x22, 0x33, 0x0a, 0x0c, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, + 0x72, 0x65, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, + 0x63, 0x72, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x22, 0xec, 0x02, 0x0a, 0x0f, 0x41, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3e, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x63, 0x61, + 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3f, 0x0a, 0x0d, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 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, + 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, + 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 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, 0x70, 0x52, 0x0a, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x4d, + 0x0a, 0x0b, 0x6f, 0x69, 0x64, 0x63, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, + 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x49, 0x44, 0x43, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, + 0x00, 0x52, 0x0a, 0x6f, 0x69, 0x64, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, + 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x61, 0x70, 0x70, + 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0xa7, 0x02, 0x0a, 0x19, 0x41, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, + 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x47, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, + 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, + 0x2d, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x70, 0x72, 0x6f, + 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x41, + 0x0a, 0x0e, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x18, 0x06, 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, 0x0d, 0x76, 0x69, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x22, 0xc2, 0x01, 0x0a, 0x18, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, + 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, + 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x12, 0x50, 0x0a, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, + 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, + 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x07, 0x71, + 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x22, 0xc6, 0x01, 0x0a, 0x16, 0x41, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x12, 0x50, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, + 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x4b, 0x65, 0x79, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x82, 0x01, 0x02, 0x20, 0x00, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x44, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, + 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4d, 0x65, 0x74, 0x68, 0x6f, + 0x64, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, + 0xe3, 0x02, 0x0a, 0x0c, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, + 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, + 0x24, 0x0a, 0x0e, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x72, 0x67, 0x5f, 0x69, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x64, + 0x4f, 0x72, 0x67, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x6b, 0x65, + 0x79, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6c, 0x65, 0x4b, 0x65, + 0x79, 0x73, 0x12, 0x47, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x31, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, + 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x06, 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, 0x0c, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x0b, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x07, 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, 0x0a, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x22, 0x88, 0x01, 0x0a, 0x12, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0a, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x49, 0x64, 0x12, 0x2d, 0x0a, 0x0e, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x5f, + 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, + 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x4f, 0x72, + 0x67, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x73, + 0x22, 0x72, 0x0a, 0x12, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, + 0x02, 0x10, 0x01, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x17, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, + 0x02, 0x10, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x5f, + 0x6b, 0x65, 0x79, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6c, 0x65, + 0x4b, 0x65, 0x79, 0x73, 0x22, 0x51, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x47, + 0x72, 0x61, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, + 0x02, 0x10, 0x01, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x17, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, + 0x02, 0x10, 0x01, 0x52, 0x02, 0x69, 0x64, 0x22, 0x8b, 0x04, 0x0a, 0x10, 0x50, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x56, 0x69, 0x65, 0x77, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x67, + 0x72, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x4f, 0x72, 0x67, 0x49, + 0x64, 0x12, 0x28, 0x0a, 0x10, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x72, 0x67, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x67, 0x72, 0x61, + 0x6e, 0x74, 0x65, 0x64, 0x4f, 0x72, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x72, + 0x6f, 0x6c, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, + 0x72, 0x6f, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x47, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, + 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x47, 0x72, 0x61, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, + 0x74, 0x65, 0x18, 0x07, 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, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, + 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, + 0x65, 0x18, 0x08, 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, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, + 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x25, + 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6f, 0x77, 0x6e, 0x65, 0x72, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x13, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x5f, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x11, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4f, 0x77, 0x6e, 0x65, + 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xa9, 0x02, 0x0a, 0x1a, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x48, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, + 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, + 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x47, 0x72, + 0x61, 0x6e, 0x74, 0x56, 0x69, 0x65, 0x77, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, + 0x2d, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x70, 0x72, 0x6f, + 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x41, + 0x0a, 0x0e, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x18, 0x06, 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, 0x0d, 0x76, 0x69, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x22, 0x99, 0x01, 0x0a, 0x1b, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x50, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, + 0x4c, 0x0a, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x32, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, + 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x52, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x22, 0xc4, 0x01, + 0x0a, 0x19, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0a, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x12, 0x51, 0x0a, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, + 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x07, 0x71, 0x75, 0x65, + 0x72, 0x69, 0x65, 0x73, 0x22, 0xc8, 0x01, 0x0a, 0x17, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x47, 0x72, 0x61, 0x6e, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x12, 0x51, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x35, 0x2e, + 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x4b, 0x65, 0x79, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x82, 0x01, 0x02, 0x20, 0x00, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x44, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, + 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4d, 0x65, 0x74, 0x68, 0x6f, + 0x64, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, + 0x2f, 0x0a, 0x17, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, + 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, + 0x22, 0xdd, 0x01, 0x0a, 0x12, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x47, 0x72, 0x61, 0x6e, + 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x5f, 0x64, 0x61, 0x74, 0x65, 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, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, + 0x61, 0x74, 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x64, 0x61, 0x74, 0x65, 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, 0x70, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x44, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x22, 0x9b, 0x01, 0x0a, 0x15, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x47, 0x72, 0x61, 0x6e, + 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x64, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, + 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x49, 0x64, 0x12, 0x22, 0x0a, 0x08, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x67, + 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, + 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, + 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x22, 0x9e, + 0x01, 0x0a, 0x18, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x0a, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x08, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, + 0x67, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, + 0x01, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x6c, + 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x22, + 0x88, 0x01, 0x0a, 0x18, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x26, 0x0a, 0x0a, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x08, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, + 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, + 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, + 0x10, 0x01, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0xf3, 0x02, 0x0a, 0x16, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x56, 0x69, 0x65, 0x77, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1b, + 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, + 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, + 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x72, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x72, 0x6f, + 0x6c, 0x65, 0x73, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, + 0x74, 0x65, 0x18, 0x07, 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, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, + 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, + 0x65, 0x18, 0x08, 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, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x21, 0x0a, + 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, + 0x22, 0xb5, 0x02, 0x0a, 0x20, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x47, 0x72, 0x61, 0x6e, + 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, + 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x4e, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, + 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x47, + 0x72, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x52, 0x06, + 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x2d, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, + 0x73, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x11, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x53, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x41, 0x0a, 0x0e, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 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, 0x0d, 0x76, 0x69, 0x65, 0x77, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xf4, 0x01, 0x0a, 0x1f, 0x50, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0a, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x08, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, + 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x57, 0x0a, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, + 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, + 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x47, 0x72, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x22, + 0xd4, 0x01, 0x0a, 0x1d, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x12, 0x57, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3b, + 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x42, 0x08, 0xfa, 0x42, 0x05, + 0x82, 0x01, 0x02, 0x20, 0x00, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x44, 0x0a, 0x06, 0x6d, 0x65, + 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x63, 0x61, 0x6f, + 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, + 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x82, 0x03, 0x0a, 0x09, 0x55, 0x73, 0x65, 0x72, 0x47, + 0x72, 0x61, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x02, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x15, 0x0a, + 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, + 0x72, 0x67, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x73, + 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x73, + 0x12, 0x44, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x2e, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x07, 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, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x08, 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, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x44, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x93, 0x01, 0x0a, 0x0f, + 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, + 0x20, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, + 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x6c, + 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, + 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x49, + 0x64, 0x22, 0x69, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, + 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, + 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x22, 0x31, 0x0a, 0x13, + 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, + 0x75, 0x6c, 0x6b, 0x12, 0x1a, 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, + 0x42, 0x08, 0xfa, 0x42, 0x05, 0x92, 0x01, 0x02, 0x08, 0x01, 0x52, 0x03, 0x69, 0x64, 0x73, 0x22, + 0x48, 0x0a, 0x0b, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x20, + 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x12, 0x17, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, + 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x02, 0x69, 0x64, 0x22, 0x9c, 0x05, 0x0a, 0x0d, 0x55, 0x73, + 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x56, 0x69, 0x65, 0x77, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x75, + 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, + 0x65, 0x72, 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, + 0x6c, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x72, + 0x6f, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x44, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, + 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, + 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3f, 0x0a, + 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x07, + 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, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x3b, + 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x08, 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, + 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x75, + 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x69, 0x72, 0x73, + 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, + 0x72, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, + 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, + 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x67, 0x5f, 0x64, 0x6f, 0x6d, + 0x61, 0x69, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x67, 0x44, 0x6f, + 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, + 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, + 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, + 0x08, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x22, 0xa3, 0x02, 0x0a, 0x17, 0x55, 0x73, 0x65, + 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x45, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, + 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, + 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, + 0x56, 0x69, 0x65, 0x77, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x2d, 0x0a, 0x12, + 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, + 0x73, 0x65, 0x64, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x41, 0x0a, 0x0e, 0x76, + 0x69, 0x65, 0x77, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 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, + 0x0d, 0x76, 0x69, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x96, + 0x01, 0x0a, 0x16, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x53, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x4e, 0x0a, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, + 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, + 0x61, 0x6e, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x07, + 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x22, 0xcc, 0x01, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x72, + 0x47, 0x72, 0x61, 0x6e, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x12, 0x4e, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, + 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, + 0x73, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x65, + 0x79, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x82, 0x01, 0x02, 0x20, 0x00, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x4e, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2c, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, + 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x42, 0x08, + 0xfa, 0x42, 0x05, 0x82, 0x01, 0x02, 0x18, 0x00, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, + 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xad, 0x02, 0x0a, 0x1c, 0x55, 0x73, 0x65, 0x72, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, + 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x72, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x4a, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, + 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x56, 0x69, 0x65, 0x77, 0x52, 0x06, 0x72, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x12, 0x2d, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, + 0x64, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x11, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x53, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x12, 0x41, 0x0a, 0x0e, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 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, 0x0d, 0x76, 0x69, 0x65, 0x77, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xc2, 0x01, 0x0a, 0x1b, 0x55, 0x73, 0x65, 0x72, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, + 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x53, 0x0a, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, + 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, + 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x52, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x22, 0xd6, 0x01, 0x0a, 0x19, + 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x53, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, + 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x42, + 0x08, 0xfa, 0x42, 0x05, 0x82, 0x01, 0x02, 0x20, 0x00, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x4e, + 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, + 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x42, 0x08, 0xfa, 0x42, + 0x05, 0x82, 0x01, 0x02, 0x18, 0x00, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x14, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x22, 0xb4, 0x03, 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x56, 0x69, 0x65, 0x77, 0x12, 0x17, 0x0a, 0x07, 0x75, + 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, + 0x65, 0x72, 0x49, 0x64, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x63, 0x61, 0x6f, 0x73, + 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x69, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, + 0x74, 0x65, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, + 0x64, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, + 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, + 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x07, 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, 0x0c, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x08, 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, 0x0a, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x5f, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x22, 0x20, 0x0a, 0x05, 0x49, + 0x64, 0x70, 0x49, 0x44, 0x12, 0x17, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x02, 0x69, 0x64, 0x22, 0xfe, 0x02, + 0x0a, 0x03, 0x49, 0x64, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3e, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, + 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 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, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x5f, 0x64, 0x61, 0x74, 0x65, 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, 0x70, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, + 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6c, 0x6f, 0x67, 0x6f, 0x5f, + 0x73, 0x72, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6c, 0x6f, 0x67, 0x6f, 0x53, + 0x72, 0x63, 0x12, 0x50, 0x0a, 0x0b, 0x6f, 0x69, 0x64, 0x63, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, + 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x69, 0x64, 0x63, 0x49, 0x64, 0x70, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x0a, 0x6f, 0x69, 0x64, 0x63, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x42, 0x0c, 0x0a, 0x0a, 0x69, 0x64, 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x5f, + 0x0a, 0x09, 0x49, 0x64, 0x70, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x17, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, + 0x52, 0x02, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0xc8, 0x01, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6c, 0x6f, 0x67, 0x6f, 0x5f, 0x73, 0x72, 0x63, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6c, 0x6f, 0x67, 0x6f, 0x53, 0x72, 0x63, 0x22, + 0xc9, 0x02, 0x0a, 0x0d, 0x4f, 0x69, 0x64, 0x63, 0x49, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x23, + 0x0a, 0x0d, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, + 0x72, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, + 0x63, 0x6f, 0x70, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x6f, + 0x70, 0x65, 0x73, 0x12, 0x69, 0x0a, 0x18, 0x69, 0x64, 0x70, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6c, + 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, + 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x49, 0x44, 0x43, 0x4d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x15, 0x69, 0x64, 0x70, 0x44, 0x69, 0x73, 0x70, + 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x5b, + 0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, + 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x49, 0x44, 0x43, 0x4d, 0x61, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x0f, 0x75, 0x73, 0x65, 0x72, + 0x6e, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x22, 0xae, 0x03, 0x0a, 0x13, + 0x4f, 0x69, 0x64, 0x63, 0x49, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0xc8, 0x01, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6c, 0x6f, 0x67, 0x6f, 0x5f, 0x73, 0x72, 0x63, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6c, 0x6f, 0x67, 0x6f, 0x53, 0x72, 0x63, 0x12, 0x27, + 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0xc8, 0x01, 0x52, 0x08, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x0d, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, + 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0xc8, 0x01, 0x52, 0x0c, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x22, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, + 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, + 0x01, 0x18, 0xc8, 0x01, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, + 0x6f, 0x70, 0x65, 0x73, 0x12, 0x69, 0x0a, 0x18, 0x69, 0x64, 0x70, 0x5f, 0x64, 0x69, 0x73, 0x70, + 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, + 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x49, 0x44, 0x43, 0x4d, 0x61, 0x70, 0x70, + 0x69, 0x6e, 0x67, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x15, 0x69, 0x64, 0x70, 0x44, 0x69, 0x73, + 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x12, + 0x5b, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x70, + 0x69, 0x6e, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x63, 0x61, 0x6f, 0x73, + 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x49, 0x44, 0x43, 0x4d, + 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x0f, 0x75, 0x73, 0x65, + 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x22, 0x87, 0x03, 0x0a, + 0x13, 0x4f, 0x69, 0x64, 0x63, 0x49, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x06, 0x69, 0x64, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x05, 0x69, + 0x64, 0x70, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, + 0x18, 0xc8, 0x01, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x23, 0x0a, + 0x0d, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, + 0x65, 0x74, 0x12, 0x22, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0xc8, 0x01, 0x52, 0x06, + 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, + 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x12, 0x69, + 0x0a, 0x18, 0x69, 0x64, 0x70, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x30, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, + 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x4f, 0x49, 0x44, 0x43, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x52, 0x15, 0x69, 0x64, 0x70, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, + 0x6d, 0x65, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x5b, 0x0a, 0x10, 0x75, 0x73, 0x65, + 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, + 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x49, 0x44, 0x43, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x4d, + 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x22, 0x97, 0x02, 0x0a, 0x11, 0x49, 0x64, 0x70, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x3f, 0x0a, + 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, + 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, + 0x64, 0x70, 0x56, 0x69, 0x65, 0x77, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x2d, + 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x70, 0x72, 0x6f, 0x63, + 0x65, 0x73, 0x73, 0x65, 0x64, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x41, 0x0a, + 0x0e, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, + 0x06, 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, 0x0d, 0x76, 0x69, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x22, 0xe1, 0x03, 0x0a, 0x07, 0x49, 0x64, 0x70, 0x56, 0x69, 0x65, 0x77, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3e, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x63, 0x61, + 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3f, 0x0a, 0x0d, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 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, + 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, + 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 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, 0x70, 0x52, 0x0a, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x19, + 0x0a, 0x08, 0x6c, 0x6f, 0x67, 0x6f, 0x5f, 0x73, 0x72, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x07, 0x6c, 0x6f, 0x67, 0x6f, 0x53, 0x72, 0x63, 0x12, 0x54, 0x0a, 0x0d, 0x70, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2f, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, + 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x49, 0x64, 0x70, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, + 0x65, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x54, 0x0a, 0x0b, 0x6f, 0x69, 0x64, 0x63, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, + 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x69, 0x64, 0x63, 0x49, 0x64, 0x70, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x56, 0x69, 0x65, 0x77, 0x48, 0x00, 0x52, 0x0a, 0x6f, 0x69, 0x64, 0x63, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x69, 0x64, 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, + 0x76, 0x69, 0x65, 0x77, 0x22, 0xa8, 0x02, 0x0a, 0x11, 0x4f, 0x69, 0x64, 0x63, 0x49, 0x64, 0x70, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x56, 0x69, 0x65, 0x77, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x12, + 0x16, 0x0a, 0x06, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x06, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x12, 0x69, 0x0a, 0x18, 0x69, 0x64, 0x70, 0x5f, 0x64, + 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x70, + 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x63, 0x61, 0x6f, 0x73, + 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x49, 0x44, 0x43, 0x4d, + 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x15, 0x69, 0x64, 0x70, + 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x12, 0x5b, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x6d, + 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x63, + 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x49, + 0x44, 0x43, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x0f, + 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x22, + 0x8a, 0x01, 0x0a, 0x10, 0x49, 0x64, 0x70, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x12, 0x48, 0x0a, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, + 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x52, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x22, 0xb6, 0x01, 0x0a, + 0x0e, 0x49, 0x64, 0x70, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, + 0x48, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x63, + 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, + 0x70, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x82, + 0x01, 0x02, 0x20, 0x00, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x44, 0x0a, 0x06, 0x6d, 0x65, 0x74, + 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x63, 0x61, 0x6f, 0x73, + 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, + 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x9a, 0x01, 0x0a, 0x0b, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x36, 0x0a, 0x17, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x75, + 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x55, 0x73, 0x65, + 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x25, 0x0a, + 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x12, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x65, 0x78, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x10, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, + 0x64, 0x70, 0x22, 0x9d, 0x01, 0x0a, 0x0e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x41, 0x64, 0x64, 0x12, 0x36, 0x0a, 0x17, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x75, + 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x55, 0x73, 0x65, + 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x25, 0x0a, + 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x12, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x65, 0x78, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x10, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, + 0x64, 0x70, 0x22, 0x3c, 0x0a, 0x0d, 0x49, 0x64, 0x70, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, + 0x72, 0x49, 0x44, 0x12, 0x2b, 0x0a, 0x0d, 0x69, 0x64, 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, + 0x02, 0x10, 0x01, 0x52, 0x0b, 0x69, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x64, + 0x22, 0xa7, 0x01, 0x0a, 0x0e, 0x49, 0x64, 0x70, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, + 0x41, 0x64, 0x64, 0x12, 0x2e, 0x0a, 0x0d, 0x69, 0x64, 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, + 0x05, 0x10, 0x01, 0x18, 0xc8, 0x01, 0x52, 0x0b, 0x69, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x49, 0x64, 0x12, 0x65, 0x0a, 0x11, 0x69, 0x64, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, + 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, + 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x49, 0x64, 0x70, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x42, + 0x08, 0xfa, 0x42, 0x05, 0x82, 0x01, 0x02, 0x20, 0x00, 0x52, 0x0f, 0x69, 0x64, 0x70, 0x50, 0x72, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x8e, 0x01, 0x0a, 0x0b, 0x49, + 0x64, 0x70, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0d, 0x69, 0x64, + 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x69, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x64, 0x12, 0x5b, + 0x0a, 0x11, 0x69, 0x64, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x63, 0x61, 0x6f, 0x73, + 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x50, 0x72, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0f, 0x69, 0x64, 0x70, 0x50, + 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0xb8, 0x01, 0x0a, 0x0f, + 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x56, 0x69, 0x65, 0x77, 0x12, + 0x18, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x36, 0x0a, 0x17, 0x61, 0x6c, 0x6c, + 0x6f, 0x77, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x73, 0x73, + 0x77, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, + 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, + 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x12, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x70, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x45, 0x78, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x6c, 0x49, 0x64, 0x70, 0x22, 0x86, 0x01, 0x0a, 0x0f, 0x49, 0x64, 0x70, 0x50, 0x72, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x12, 0x22, 0x0a, 0x0d, 0x69, 0x64, + 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x69, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x64, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x27, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, + 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x49, 0x64, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, + 0xa7, 0x02, 0x0a, 0x19, 0x49, 0x64, 0x70, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x53, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x47, + 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, + 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x49, 0x64, 0x70, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x52, + 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x2d, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x63, 0x65, + 0x73, 0x73, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x11, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x53, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x41, 0x0a, 0x0e, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 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, 0x0d, 0x76, 0x69, 0x65, 0x77, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x48, 0x0a, 0x18, 0x49, 0x64, 0x70, + 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, + 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x22, 0x61, 0x0a, 0x18, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, + 0x44, 0x50, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x17, 0x0a, + 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0xa7, 0x02, 0x0a, 0x19, 0x45, 0x78, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x6c, 0x49, 0x44, 0x50, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x47, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, + 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, + 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, + 0x44, 0x50, 0x56, 0x69, 0x65, 0x77, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x2d, + 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x70, 0x72, 0x6f, 0x63, + 0x65, 0x73, 0x73, 0x65, 0x64, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x41, 0x0a, + 0x0e, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, + 0x06, 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, 0x0d, 0x76, 0x69, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x22, 0xce, 0x02, 0x0a, 0x0f, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x44, 0x50, + 0x56, 0x69, 0x65, 0x77, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x22, 0x0a, + 0x0d, 0x69, 0x64, 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, + 0x64, 0x12, 0x28, 0x0a, 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x75, 0x73, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x69, + 0x64, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x69, + 0x64, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x1a, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x6c, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x65, 0x78, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x64, 0x61, 0x74, 0x65, 0x18, 0x06, 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, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x44, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, + 0x61, 0x74, 0x65, 0x18, 0x07, 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, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, + 0x65, 0x22, 0x81, 0x01, 0x0a, 0x18, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x44, + 0x50, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, + 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x69, 0x64, 0x70, 0x5f, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x69, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x65, + 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x64, 0x2a, 0xaf, 0x01, 0x0a, 0x09, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x55, 0x53, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x45, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, + 0x0a, 0x10, 0x55, 0x53, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, + 0x56, 0x45, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x55, 0x53, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, + 0x45, 0x5f, 0x49, 0x4e, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, + 0x55, 0x53, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, + 0x44, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x55, 0x53, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x45, + 0x5f, 0x4c, 0x4f, 0x43, 0x4b, 0x45, 0x44, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x55, 0x53, 0x45, + 0x52, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x55, 0x53, 0x50, 0x45, 0x4e, 0x44, 0x10, 0x05, + 0x12, 0x15, 0x0a, 0x11, 0x55, 0x53, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x49, 0x4e, + 0x49, 0x54, 0x49, 0x41, 0x4c, 0x10, 0x06, 0x2a, 0x58, 0x0a, 0x06, 0x47, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x12, 0x16, 0x0a, 0x12, 0x47, 0x45, 0x4e, 0x44, 0x45, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x47, 0x45, 0x4e, + 0x44, 0x45, 0x52, 0x5f, 0x46, 0x45, 0x4d, 0x41, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, + 0x47, 0x45, 0x4e, 0x44, 0x45, 0x52, 0x5f, 0x4d, 0x41, 0x4c, 0x45, 0x10, 0x02, 0x12, 0x12, 0x0a, + 0x0e, 0x47, 0x45, 0x4e, 0x44, 0x45, 0x52, 0x5f, 0x44, 0x49, 0x56, 0x45, 0x52, 0x53, 0x45, 0x10, + 0x03, 0x2a, 0x41, 0x0a, 0x0e, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x4b, 0x65, 0x79, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x4d, 0x41, 0x43, 0x48, 0x49, 0x4e, 0x45, 0x4b, 0x45, + 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x13, 0x0a, 0x0f, 0x4d, 0x41, 0x43, 0x48, 0x49, 0x4e, 0x45, 0x4b, 0x45, 0x59, 0x5f, 0x4a, 0x53, + 0x4f, 0x4e, 0x10, 0x01, 0x2a, 0x8d, 0x02, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x12, 0x1d, 0x0a, 0x19, 0x55, 0x53, 0x45, 0x52, 0x53, 0x45, + 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x55, 0x53, 0x45, 0x52, 0x53, 0x45, 0x41, + 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x4e, 0x41, 0x4d, 0x45, + 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x55, 0x53, 0x45, 0x52, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, + 0x4b, 0x45, 0x59, 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x02, + 0x12, 0x1b, 0x0a, 0x17, 0x55, 0x53, 0x45, 0x52, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, + 0x59, 0x5f, 0x4c, 0x41, 0x53, 0x54, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x03, 0x12, 0x1b, 0x0a, + 0x17, 0x55, 0x53, 0x45, 0x52, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x4e, + 0x49, 0x43, 0x4b, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x04, 0x12, 0x1e, 0x0a, 0x1a, 0x55, 0x53, + 0x45, 0x52, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x44, 0x49, 0x53, 0x50, + 0x4c, 0x41, 0x59, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x05, 0x12, 0x17, 0x0a, 0x13, 0x55, 0x53, + 0x45, 0x52, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x45, 0x4d, 0x41, 0x49, + 0x4c, 0x10, 0x06, 0x12, 0x17, 0x0a, 0x13, 0x55, 0x53, 0x45, 0x52, 0x53, 0x45, 0x41, 0x52, 0x43, + 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0x07, 0x12, 0x16, 0x0a, 0x12, + 0x55, 0x53, 0x45, 0x52, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x10, 0x08, 0x2a, 0xea, 0x02, 0x0a, 0x0c, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4d, + 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4d, + 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x53, 0x10, 0x00, 0x12, 0x1c, + 0x0a, 0x18, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x53, + 0x54, 0x41, 0x52, 0x54, 0x53, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, + 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x43, 0x4f, 0x4e, + 0x54, 0x41, 0x49, 0x4e, 0x53, 0x10, 0x02, 0x12, 0x23, 0x0a, 0x1f, 0x53, 0x45, 0x41, 0x52, 0x43, + 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x53, 0x5f, 0x49, + 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x5f, 0x43, 0x41, 0x53, 0x45, 0x10, 0x03, 0x12, 0x28, 0x0a, 0x24, + 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x53, 0x54, 0x41, + 0x52, 0x54, 0x53, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x5f, + 0x43, 0x41, 0x53, 0x45, 0x10, 0x04, 0x12, 0x25, 0x0a, 0x21, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, + 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x53, 0x5f, + 0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x5f, 0x43, 0x41, 0x53, 0x45, 0x10, 0x05, 0x12, 0x1b, 0x0a, + 0x17, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x4e, 0x4f, + 0x54, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x53, 0x10, 0x06, 0x12, 0x1d, 0x0a, 0x19, 0x53, 0x45, + 0x41, 0x52, 0x43, 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x47, 0x52, 0x45, 0x41, 0x54, + 0x45, 0x52, 0x5f, 0x54, 0x48, 0x41, 0x4e, 0x10, 0x07, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x45, 0x41, + 0x52, 0x43, 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x4c, 0x45, 0x53, 0x53, 0x5f, 0x54, + 0x48, 0x41, 0x4e, 0x10, 0x08, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4d, + 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x49, 0x53, 0x5f, 0x4f, 0x4e, 0x45, 0x5f, 0x4f, 0x46, 0x10, + 0x09, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, + 0x44, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x53, 0x10, + 0x0a, 0x2a, 0x44, 0x0a, 0x07, 0x4d, 0x66, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x13, + 0x4d, 0x46, 0x41, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x4d, 0x46, 0x41, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x53, 0x4d, 0x53, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x4d, 0x46, 0x41, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x4f, 0x54, 0x50, 0x10, 0x02, 0x2a, 0x66, 0x0a, 0x08, 0x4d, 0x46, 0x41, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x14, 0x4d, 0x46, 0x41, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, + 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, + 0x12, 0x4d, 0x46, 0x41, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x52, 0x45, + 0x41, 0x44, 0x59, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x4d, 0x46, 0x41, 0x53, 0x54, 0x41, 0x54, + 0x45, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x59, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x4d, 0x46, 0x41, + 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x44, 0x10, 0x03, 0x2a, + 0x48, 0x0a, 0x10, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, + 0x49, 0x4f, 0x4e, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4d, 0x41, 0x49, 0x4c, 0x10, 0x00, 0x12, + 0x18, 0x0a, 0x14, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x53, 0x4d, 0x53, 0x10, 0x01, 0x2a, 0x75, 0x0a, 0x0b, 0x50, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x4c, 0x49, + 0x43, 0x59, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x59, 0x53, + 0x54, 0x41, 0x54, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x18, 0x0a, + 0x14, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x59, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x49, 0x4e, 0x41, + 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x50, 0x4f, 0x4c, 0x49, 0x43, + 0x59, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x03, + 0x2a, 0x50, 0x0a, 0x08, 0x4f, 0x72, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x14, + 0x4f, 0x52, 0x47, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4f, 0x52, 0x47, 0x53, 0x54, 0x41, + 0x54, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x4f, + 0x52, 0x47, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x49, 0x4e, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, + 0x10, 0x02, 0x2a, 0x85, 0x01, 0x0a, 0x17, 0x4f, 0x72, 0x67, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x27, + 0x0a, 0x23, 0x4f, 0x52, 0x47, 0x44, 0x4f, 0x4d, 0x41, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, + 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x20, 0x0a, 0x1c, 0x4f, 0x52, 0x47, 0x44, 0x4f, + 0x4d, 0x41, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x48, 0x54, 0x54, 0x50, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x4f, 0x52, 0x47, + 0x44, 0x4f, 0x4d, 0x41, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x49, 0x4f, 0x4e, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x4e, 0x53, 0x10, 0x02, 0x2a, 0x57, 0x0a, 0x12, 0x4f, 0x72, + 0x67, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x65, 0x79, + 0x12, 0x22, 0x0a, 0x1e, 0x4f, 0x52, 0x47, 0x44, 0x4f, 0x4d, 0x41, 0x49, 0x4e, 0x53, 0x45, 0x41, + 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x4f, 0x52, 0x47, 0x44, 0x4f, 0x4d, 0x41, 0x49, + 0x4e, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x44, 0x4f, 0x4d, 0x41, 0x49, + 0x4e, 0x10, 0x01, 0x2a, 0xbb, 0x01, 0x0a, 0x12, 0x4f, 0x72, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x12, 0x22, 0x0a, 0x1e, 0x4f, 0x52, + 0x47, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x21, + 0x0a, 0x1d, 0x4f, 0x52, 0x47, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x53, 0x45, 0x41, 0x52, 0x43, + 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x10, + 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x4f, 0x52, 0x47, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x53, 0x45, + 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x4c, 0x41, 0x53, 0x54, 0x5f, 0x4e, 0x41, 0x4d, + 0x45, 0x10, 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x4f, 0x52, 0x47, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, + 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x45, 0x4d, 0x41, 0x49, 0x4c, 0x10, + 0x03, 0x12, 0x1e, 0x0a, 0x1a, 0x4f, 0x52, 0x47, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x53, 0x45, + 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x49, 0x44, 0x10, + 0x04, 0x2a, 0x57, 0x0a, 0x10, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x4b, 0x65, 0x79, 0x12, 0x20, 0x0a, 0x1c, 0x50, 0x52, 0x4f, 0x4a, 0x45, 0x43, 0x54, + 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x21, 0x0a, 0x1d, 0x50, 0x52, 0x4f, 0x4a, 0x45, + 0x43, 0x54, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x50, 0x52, 0x4f, 0x4a, + 0x45, 0x43, 0x54, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x01, 0x2a, 0x60, 0x0a, 0x0c, 0x50, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x18, 0x50, 0x52, + 0x4f, 0x4a, 0x45, 0x43, 0x54, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x50, 0x52, 0x4f, 0x4a, + 0x45, 0x43, 0x54, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, + 0x01, 0x12, 0x19, 0x0a, 0x15, 0x50, 0x52, 0x4f, 0x4a, 0x45, 0x43, 0x54, 0x53, 0x54, 0x41, 0x54, + 0x45, 0x5f, 0x49, 0x4e, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x02, 0x2a, 0x81, 0x01, 0x0a, + 0x14, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x53, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x4b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x20, 0x50, 0x52, 0x4f, 0x4a, 0x45, 0x43, 0x54, + 0x52, 0x4f, 0x4c, 0x45, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x55, 0x4e, + 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x50, + 0x52, 0x4f, 0x4a, 0x45, 0x43, 0x54, 0x52, 0x4f, 0x4c, 0x45, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, + 0x4b, 0x45, 0x59, 0x5f, 0x4b, 0x45, 0x59, 0x10, 0x01, 0x12, 0x25, 0x0a, 0x21, 0x50, 0x52, 0x4f, + 0x4a, 0x45, 0x43, 0x54, 0x52, 0x4f, 0x4c, 0x45, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, + 0x59, 0x5f, 0x44, 0x49, 0x53, 0x50, 0x4c, 0x41, 0x59, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x02, + 0x2a, 0xf9, 0x01, 0x0a, 0x16, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x12, 0x26, 0x0a, 0x22, 0x50, + 0x52, 0x4f, 0x4a, 0x45, 0x43, 0x54, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x53, 0x45, 0x41, 0x52, + 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x25, 0x0a, 0x21, 0x50, 0x52, 0x4f, 0x4a, 0x45, 0x43, 0x54, 0x4d, 0x45, + 0x4d, 0x42, 0x45, 0x52, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x46, 0x49, + 0x52, 0x53, 0x54, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x01, 0x12, 0x24, 0x0a, 0x20, 0x50, 0x52, + 0x4f, 0x4a, 0x45, 0x43, 0x54, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x53, 0x45, 0x41, 0x52, 0x43, + 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x4c, 0x41, 0x53, 0x54, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x02, + 0x12, 0x20, 0x0a, 0x1c, 0x50, 0x52, 0x4f, 0x4a, 0x45, 0x43, 0x54, 0x4d, 0x45, 0x4d, 0x42, 0x45, + 0x52, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x45, 0x4d, 0x41, 0x49, 0x4c, + 0x10, 0x03, 0x12, 0x22, 0x0a, 0x1e, 0x50, 0x52, 0x4f, 0x4a, 0x45, 0x43, 0x54, 0x4d, 0x45, 0x4d, + 0x42, 0x45, 0x52, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x55, 0x53, 0x45, + 0x52, 0x5f, 0x49, 0x44, 0x10, 0x04, 0x12, 0x24, 0x0a, 0x20, 0x50, 0x52, 0x4f, 0x4a, 0x45, 0x43, + 0x54, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, + 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x05, 0x2a, 0x50, 0x0a, 0x08, + 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x14, 0x41, 0x50, 0x50, 0x53, + 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x41, 0x50, 0x50, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x41, + 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x41, 0x50, 0x50, 0x53, 0x54, + 0x41, 0x54, 0x45, 0x5f, 0x49, 0x4e, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x02, 0x2a, 0x1b, + 0x0a, 0x0b, 0x4f, 0x49, 0x44, 0x43, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x0c, 0x0a, + 0x08, 0x4f, 0x49, 0x44, 0x43, 0x56, 0x31, 0x5f, 0x30, 0x10, 0x00, 0x2a, 0x71, 0x0a, 0x10, 0x4f, + 0x49, 0x44, 0x43, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x19, 0x0a, 0x15, 0x4f, 0x49, 0x44, 0x43, 0x52, 0x45, 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x45, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x4f, 0x49, + 0x44, 0x43, 0x52, 0x45, 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x45, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, + 0x44, 0x5f, 0x54, 0x4f, 0x4b, 0x45, 0x4e, 0x10, 0x01, 0x12, 0x23, 0x0a, 0x1f, 0x4f, 0x49, 0x44, + 0x43, 0x52, 0x45, 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x45, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x44, + 0x5f, 0x54, 0x4f, 0x4b, 0x45, 0x4e, 0x5f, 0x54, 0x4f, 0x4b, 0x45, 0x4e, 0x10, 0x02, 0x2a, 0x72, + 0x0a, 0x0d, 0x4f, 0x49, 0x44, 0x43, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x24, 0x0a, 0x20, 0x4f, 0x49, 0x44, 0x43, 0x47, 0x52, 0x41, 0x4e, 0x54, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x41, 0x55, 0x54, 0x48, 0x4f, 0x52, 0x49, 0x5a, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, + 0x4f, 0x44, 0x45, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x4f, 0x49, 0x44, 0x43, 0x47, 0x52, 0x41, + 0x4e, 0x54, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4d, 0x50, 0x4c, 0x49, 0x43, 0x49, 0x54, 0x10, + 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x4f, 0x49, 0x44, 0x43, 0x47, 0x52, 0x41, 0x4e, 0x54, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x52, 0x45, 0x46, 0x52, 0x45, 0x53, 0x48, 0x5f, 0x54, 0x4f, 0x4b, 0x45, 0x4e, + 0x10, 0x02, 0x2a, 0x76, 0x0a, 0x13, 0x4f, 0x49, 0x44, 0x43, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x4f, 0x49, 0x44, + 0x43, 0x41, 0x50, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x57, 0x45, 0x42, 0x10, 0x00, 0x12, 0x22, 0x0a, 0x1e, 0x4f, 0x49, 0x44, 0x43, 0x41, 0x50, + 0x50, 0x4c, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x53, + 0x45, 0x52, 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x4f, 0x49, + 0x44, 0x43, 0x41, 0x50, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, 0x10, 0x02, 0x2a, 0x6c, 0x0a, 0x12, 0x4f, 0x49, + 0x44, 0x43, 0x41, 0x75, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x1c, 0x0a, 0x18, 0x4f, 0x49, 0x44, 0x43, 0x41, 0x55, 0x54, 0x48, 0x4d, 0x45, 0x54, 0x48, + 0x4f, 0x44, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x41, 0x53, 0x49, 0x43, 0x10, 0x00, 0x12, 0x1b, + 0x0a, 0x17, 0x4f, 0x49, 0x44, 0x43, 0x41, 0x55, 0x54, 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x4f, + 0x49, 0x44, 0x43, 0x41, 0x55, 0x54, 0x48, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x02, 0x2a, 0x5f, 0x0a, 0x14, 0x41, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x65, 0x79, + 0x12, 0x24, 0x0a, 0x20, 0x41, 0x50, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x53, + 0x45, 0x52, 0x41, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x21, 0x0a, 0x1d, 0x41, 0x50, 0x50, 0x4c, 0x49, 0x43, + 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x41, + 0x50, 0x50, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x01, 0x2a, 0x74, 0x0a, 0x11, 0x50, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x21, + 0x0a, 0x1d, 0x50, 0x52, 0x4f, 0x4a, 0x45, 0x43, 0x54, 0x47, 0x52, 0x41, 0x4e, 0x54, 0x53, 0x54, + 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x50, 0x52, 0x4f, 0x4a, 0x45, 0x43, 0x54, 0x47, 0x52, 0x41, 0x4e, + 0x54, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, + 0x1e, 0x0a, 0x1a, 0x50, 0x52, 0x4f, 0x4a, 0x45, 0x43, 0x54, 0x47, 0x52, 0x41, 0x4e, 0x54, 0x53, + 0x54, 0x41, 0x54, 0x45, 0x5f, 0x49, 0x4e, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x02, 0x2a, + 0x8a, 0x01, 0x0a, 0x15, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x12, 0x25, 0x0a, 0x21, 0x50, 0x52, 0x4f, + 0x4a, 0x45, 0x43, 0x54, 0x47, 0x52, 0x41, 0x4e, 0x54, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, + 0x45, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x26, 0x0a, 0x22, 0x50, 0x52, 0x4f, 0x4a, 0x45, 0x43, 0x54, 0x47, 0x52, 0x41, 0x4e, 0x54, + 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x50, 0x52, 0x4f, 0x4a, 0x45, 0x43, + 0x54, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x01, 0x12, 0x22, 0x0a, 0x1e, 0x50, 0x52, 0x4f, 0x4a, + 0x45, 0x43, 0x54, 0x47, 0x52, 0x41, 0x4e, 0x54, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, + 0x59, 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x5f, 0x4b, 0x45, 0x59, 0x10, 0x02, 0x2a, 0x9c, 0x02, 0x0a, + 0x1b, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x12, 0x2b, 0x0a, 0x27, + 0x50, 0x52, 0x4f, 0x4a, 0x45, 0x43, 0x54, 0x47, 0x52, 0x41, 0x4e, 0x54, 0x4d, 0x45, 0x4d, 0x42, + 0x45, 0x52, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x2a, 0x0a, 0x26, 0x50, 0x52, 0x4f, + 0x4a, 0x45, 0x43, 0x54, 0x47, 0x52, 0x41, 0x4e, 0x54, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x53, + 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x5f, 0x4e, + 0x41, 0x4d, 0x45, 0x10, 0x01, 0x12, 0x29, 0x0a, 0x25, 0x50, 0x52, 0x4f, 0x4a, 0x45, 0x43, 0x54, + 0x47, 0x52, 0x41, 0x4e, 0x54, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x53, 0x45, 0x41, 0x52, 0x43, + 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x4c, 0x41, 0x53, 0x54, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x02, + 0x12, 0x25, 0x0a, 0x21, 0x50, 0x52, 0x4f, 0x4a, 0x45, 0x43, 0x54, 0x47, 0x52, 0x41, 0x4e, 0x54, + 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, + 0x45, 0x4d, 0x41, 0x49, 0x4c, 0x10, 0x03, 0x12, 0x27, 0x0a, 0x23, 0x50, 0x52, 0x4f, 0x4a, 0x45, + 0x43, 0x54, 0x47, 0x52, 0x41, 0x4e, 0x54, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x53, 0x45, 0x41, + 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x49, 0x44, 0x10, 0x04, + 0x12, 0x29, 0x0a, 0x25, 0x50, 0x52, 0x4f, 0x4a, 0x45, 0x43, 0x54, 0x47, 0x52, 0x41, 0x4e, 0x54, + 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, + 0x55, 0x53, 0x45, 0x52, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x05, 0x2a, 0x68, 0x0a, 0x0e, 0x55, + 0x73, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, + 0x1a, 0x55, 0x53, 0x45, 0x52, 0x47, 0x52, 0x41, 0x4e, 0x54, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, + 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, 0x0a, + 0x15, 0x55, 0x53, 0x45, 0x52, 0x47, 0x52, 0x41, 0x4e, 0x54, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, + 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x55, 0x53, 0x45, 0x52, + 0x47, 0x52, 0x41, 0x4e, 0x54, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x49, 0x4e, 0x41, 0x43, 0x54, + 0x49, 0x56, 0x45, 0x10, 0x02, 0x2a, 0xdc, 0x01, 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, + 0x61, 0x6e, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x12, 0x22, 0x0a, 0x1e, + 0x55, 0x53, 0x45, 0x52, 0x47, 0x52, 0x41, 0x4e, 0x54, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, + 0x45, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x21, 0x0a, 0x1d, 0x55, 0x53, 0x45, 0x52, 0x47, 0x52, 0x41, 0x4e, 0x54, 0x53, 0x45, 0x41, + 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x50, 0x52, 0x4f, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x49, + 0x44, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x55, 0x53, 0x45, 0x52, 0x47, 0x52, 0x41, 0x4e, 0x54, + 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x49, + 0x44, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x55, 0x53, 0x45, 0x52, 0x47, 0x52, 0x41, 0x4e, 0x54, + 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x4f, 0x52, 0x47, 0x5f, 0x49, 0x44, + 0x10, 0x03, 0x12, 0x1f, 0x0a, 0x1b, 0x55, 0x53, 0x45, 0x52, 0x47, 0x52, 0x41, 0x4e, 0x54, 0x53, + 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x5f, 0x4b, 0x45, + 0x59, 0x10, 0x04, 0x12, 0x1f, 0x0a, 0x1b, 0x55, 0x53, 0x45, 0x52, 0x47, 0x52, 0x41, 0x4e, 0x54, + 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x47, 0x52, 0x41, 0x4e, 0x54, 0x5f, + 0x49, 0x44, 0x10, 0x05, 0x2a, 0x8b, 0x01, 0x0a, 0x17, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x65, 0x79, + 0x12, 0x27, 0x0a, 0x23, 0x55, 0x53, 0x45, 0x52, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x53, 0x48, + 0x49, 0x50, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x20, 0x0a, 0x1c, 0x55, 0x53, 0x45, + 0x52, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x53, 0x48, 0x49, 0x50, 0x53, 0x45, 0x41, 0x52, 0x43, + 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, 0x12, 0x25, 0x0a, 0x21, 0x55, + 0x53, 0x45, 0x52, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x53, 0x48, 0x49, 0x50, 0x53, 0x45, 0x41, + 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x49, 0x44, + 0x10, 0x02, 0x2a, 0x7b, 0x0a, 0x0a, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x1a, 0x0a, 0x16, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, + 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x52, 0x47, 0x41, 0x4e, + 0x49, 0x53, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x4d, 0x45, 0x4d, + 0x42, 0x45, 0x52, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x4a, 0x45, 0x43, 0x54, 0x10, + 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x50, 0x52, 0x4f, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x47, 0x52, 0x41, 0x4e, 0x54, 0x10, 0x03, 0x2a, + 0x62, 0x0a, 0x08, 0x49, 0x64, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x1a, 0x49, + 0x44, 0x50, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, + 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x49, + 0x44, 0x50, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x41, 0x43, + 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x49, 0x44, 0x50, 0x43, 0x4f, 0x4e, + 0x46, 0x49, 0x47, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x49, 0x4e, 0x41, 0x43, 0x54, 0x49, 0x56, + 0x45, 0x10, 0x02, 0x2a, 0x79, 0x0a, 0x10, 0x4f, 0x49, 0x44, 0x43, 0x4d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x20, 0x0a, 0x1c, 0x4f, 0x49, 0x44, 0x43, 0x4d, + 0x41, 0x50, 0x50, 0x49, 0x4e, 0x47, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x27, 0x0a, 0x23, 0x4f, 0x49, 0x44, + 0x43, 0x4d, 0x41, 0x50, 0x50, 0x49, 0x4e, 0x47, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x50, 0x52, + 0x45, 0x46, 0x45, 0x52, 0x52, 0x45, 0x44, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x4e, 0x41, 0x4d, 0x45, + 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x4f, 0x49, 0x44, 0x43, 0x4d, 0x41, 0x50, 0x50, 0x49, 0x4e, + 0x47, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x45, 0x4d, 0x41, 0x49, 0x4c, 0x10, 0x02, 0x2a, 0x83, + 0x01, 0x0a, 0x0c, 0x49, 0x64, 0x70, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x12, + 0x1c, 0x0a, 0x18, 0x49, 0x44, 0x50, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, + 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1e, 0x0a, + 0x1a, 0x49, 0x44, 0x50, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x49, 0x44, + 0x50, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x5f, 0x49, 0x44, 0x10, 0x01, 0x12, 0x15, 0x0a, + 0x11, 0x49, 0x44, 0x50, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x4e, 0x41, + 0x4d, 0x45, 0x10, 0x02, 0x12, 0x1e, 0x0a, 0x1a, 0x49, 0x44, 0x50, 0x53, 0x45, 0x41, 0x52, 0x43, + 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, 0x52, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x10, 0x03, 0x2a, 0x46, 0x0a, 0x07, 0x49, 0x64, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x17, 0x0a, 0x13, 0x49, 0x44, 0x50, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x49, 0x44, 0x50, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x49, 0x44, 0x43, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x49, 0x44, + 0x50, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x41, 0x4d, 0x4c, 0x10, 0x02, 0x2a, 0x67, 0x0a, 0x0f, + 0x49, 0x64, 0x70, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x1f, 0x0a, 0x1b, 0x49, 0x44, 0x50, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, 0x52, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x1a, 0x0a, 0x16, 0x49, 0x44, 0x50, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, 0x52, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, + 0x49, 0x44, 0x50, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, 0x52, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x4f, 0x52, 0x47, 0x10, 0x02, 0x2a, 0x5a, 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x52, 0x4f, 0x4a, 0x45, 0x43, 0x54, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x15, 0x0a, 0x11, 0x50, 0x52, 0x4f, 0x4a, 0x45, 0x43, 0x54, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x4f, 0x57, 0x4e, 0x45, 0x44, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x50, 0x52, 0x4f, 0x4a, + 0x45, 0x43, 0x54, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x52, 0x41, 0x4e, 0x54, 0x45, 0x44, 0x10, + 0x02, 0x32, 0xac, 0xb5, 0x01, 0x0a, 0x11, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x4b, 0x0a, 0x07, 0x48, 0x65, 0x61, 0x6c, + 0x74, 0x68, 0x7a, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x22, 0x10, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0a, 0x12, 0x08, 0x2f, 0x68, 0x65, + 0x61, 0x6c, 0x74, 0x68, 0x7a, 0x12, 0x47, 0x0a, 0x05, 0x52, 0x65, 0x61, 0x64, 0x79, 0x12, 0x16, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x0e, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x08, 0x12, 0x06, 0x2f, 0x72, 0x65, 0x61, 0x64, 0x79, 0x12, 0x4e, + 0x0a, 0x08, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x1a, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x22, 0x11, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x0b, 0x12, 0x09, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x12, 0x6c, + 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x5a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x44, 0x6f, 0x63, 0x73, + 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2b, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, + 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x5a, 0x69, 0x74, 0x61, 0x64, 0x65, + 0x6c, 0x44, 0x6f, 0x63, 0x73, 0x22, 0x15, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x12, 0x0d, 0x2f, + 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2f, 0x64, 0x6f, 0x63, 0x73, 0x12, 0x66, 0x0a, 0x06, + 0x47, 0x65, 0x74, 0x49, 0x61, 0x6d, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x23, + 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x49, 0x61, 0x6d, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x06, 0x12, 0x04, 0x2f, 0x69, 0x61, + 0x6d, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, + 0x61, 0x74, 0x65, 0x64, 0x12, 0x9e, 0x01, 0x0a, 0x0c, 0x49, 0x73, 0x55, 0x73, 0x65, 0x72, 0x55, + 0x6e, 0x69, 0x71, 0x75, 0x65, 0x12, 0x31, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, + 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x55, 0x73, 0x65, + 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, + 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, + 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x27, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x12, 0x12, 0x10, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x5f, 0x69, 0x73, + 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x82, 0xb5, 0x18, 0x0b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, + 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0x83, 0x01, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, + 0x72, 0x42, 0x79, 0x49, 0x44, 0x12, 0x26, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, + 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x1a, 0x28, 0x2e, + 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, + 0x73, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0d, 0x12, + 0x0b, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x82, 0xb5, 0x18, 0x0b, + 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0xa9, 0x01, 0x0a, 0x18, + 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x4e, 0x61, + 0x6d, 0x65, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x12, 0x29, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, + 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x4e, + 0x61, 0x6d, 0x65, 0x1a, 0x28, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, + 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x22, 0x38, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x12, 0x1a, 0x2f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2f, 0x75, + 0x73, 0x65, 0x72, 0x73, 0x2f, 0x5f, 0x62, 0x79, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x6e, 0x61, 0x6d, + 0x65, 0x82, 0xb5, 0x18, 0x12, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x67, 0x6c, 0x6f, 0x62, + 0x61, 0x6c, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0x9e, 0x01, 0x0a, 0x0b, 0x53, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x31, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, + 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x63, 0x61, 0x6f, + 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x28, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x22, 0x0e, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x5f, + 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0b, 0x0a, 0x09, 0x75, + 0x73, 0x65, 0x72, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0x90, 0x01, 0x0a, 0x0a, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x31, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, + 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, + 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x63, 0x61, 0x6f, + 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0b, + 0x22, 0x06, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0c, 0x0a, + 0x0a, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x9a, 0x01, 0x0a, 0x0e, + 0x44, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x26, + 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x1a, 0x2c, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, + 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x1a, 0x17, 0x2f, 0x75, + 0x73, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x5f, 0x64, 0x65, 0x61, 0x63, 0x74, + 0x69, 0x76, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0c, 0x0a, 0x0a, 0x75, 0x73, + 0x65, 0x72, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x9a, 0x01, 0x0a, 0x0e, 0x52, 0x65, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x26, 0x2e, 0x63, 0x61, + 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x44, 0x1a, 0x2c, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, + 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x1a, 0x17, 0x2f, 0x75, 0x73, 0x65, 0x72, + 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, + 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0c, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x2e, + 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x8e, 0x01, 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x6b, 0x55, 0x73, + 0x65, 0x72, 0x12, 0x26, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, + 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x1a, 0x2c, 0x2e, 0x63, 0x61, 0x6f, + 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, + 0x1a, 0x11, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x5f, 0x6c, + 0x6f, 0x63, 0x6b, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0c, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, + 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x92, 0x01, 0x0a, 0x0a, 0x55, 0x6e, 0x6c, 0x6f, 0x63, + 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x26, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, + 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x1a, 0x2c, 0x2e, + 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, + 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2e, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x18, 0x1a, 0x13, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, + 0x2f, 0x5f, 0x75, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0c, 0x0a, + 0x0a, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x72, 0x0a, 0x0a, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x26, 0x2e, 0x63, 0x61, 0x6f, 0x73, + 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x44, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x0d, 0x2a, 0x0b, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x82, 0xb5, + 0x18, 0x0d, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, + 0x91, 0x01, 0x0a, 0x0b, 0x55, 0x73, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, + 0x2d, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, + 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x22, 0x2a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x12, + 0x13, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x73, 0x82, 0xb5, 0x18, 0x0b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x72, + 0x65, 0x61, 0x64, 0x12, 0xae, 0x01, 0x0a, 0x0d, 0x41, 0x64, 0x64, 0x4d, 0x61, 0x63, 0x68, 0x69, + 0x6e, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x34, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, + 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, + 0x65, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x63, 0x61, + 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, + 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x30, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x22, 0x15, 0x2f, 0x75, 0x73, 0x65, + 0x72, 0x73, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6b, 0x65, 0x79, + 0x73, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0c, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x77, + 0x72, 0x69, 0x74, 0x65, 0x12, 0x97, 0x01, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, + 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x33, 0x2e, 0x63, 0x61, 0x6f, 0x73, + 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x63, 0x68, 0x69, + 0x6e, 0x65, 0x4b, 0x65, 0x79, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x36, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x2a, 0x1e, + 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, + 0x2f, 0x6b, 0x65, 0x79, 0x73, 0x2f, 0x7b, 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x64, 0x7d, 0x82, 0xb5, + 0x18, 0x0c, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0xbf, + 0x01, 0x0a, 0x11, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, + 0x4b, 0x65, 0x79, 0x73, 0x12, 0x37, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, + 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x4b, 0x65, 0x79, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, + 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, + 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x37, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x22, + 0x1d, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x7d, 0x2f, 0x6b, 0x65, 0x79, 0x73, 0x2f, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x3a, 0x01, + 0x2a, 0x82, 0xb5, 0x18, 0x0b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x72, 0x65, 0x61, 0x64, + 0x12, 0xab, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x4b, + 0x65, 0x79, 0x12, 0x33, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, + 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x4b, 0x65, 0x79, 0x49, 0x44, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, + 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, + 0x4b, 0x65, 0x79, 0x56, 0x69, 0x65, 0x77, 0x22, 0x35, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x12, + 0x1e, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x7d, 0x2f, 0x6b, 0x65, 0x79, 0x73, 0x2f, 0x7b, 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x64, 0x7d, 0x82, + 0xb5, 0x18, 0x0b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0x95, + 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, + 0x65, 0x12, 0x26, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, + 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x1a, 0x2f, 0x2e, 0x63, 0x61, 0x6f, 0x73, + 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x50, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x56, 0x69, 0x65, 0x77, 0x22, 0x2a, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x15, 0x12, 0x13, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, + 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x82, 0xb5, 0x18, 0x0b, 0x0a, 0x09, 0x75, 0x73, 0x65, + 0x72, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0xaa, 0x01, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x38, 0x2e, 0x63, + 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, + 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x22, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x1a, 0x13, 0x2f, 0x75, 0x73, + 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0c, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x77, 0x72, + 0x69, 0x74, 0x65, 0x12, 0x8f, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x45, + 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x26, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, + 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x1a, 0x2d, 0x2e, 0x63, + 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, + 0x65, 0x72, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x22, 0x28, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x13, 0x12, 0x11, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, + 0x2f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x82, 0xb5, 0x18, 0x0b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, + 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0x95, 0x01, 0x0a, 0x12, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x55, 0x73, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x39, 0x2e, 0x63, + 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, + 0x2c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x12, 0x14, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, + 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xb5, 0x18, + 0x0c, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0xa2, 0x01, + 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x55, 0x73, 0x65, 0x72, 0x45, 0x6d, 0x61, 0x69, + 0x6c, 0x12, 0x36, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, + 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x45, 0x6d, 0x61, + 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x63, 0x61, 0x6f, 0x73, + 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x45, + 0x6d, 0x61, 0x69, 0x6c, 0x22, 0x2c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x1a, 0x11, 0x2f, 0x75, + 0x73, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x3a, + 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0c, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x77, 0x72, 0x69, + 0x74, 0x65, 0x12, 0x9f, 0x01, 0x0a, 0x1b, 0x52, 0x65, 0x73, 0x65, 0x6e, 0x64, 0x45, 0x6d, 0x61, + 0x69, 0x6c, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, + 0x69, 0x6c, 0x12, 0x26, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, + 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x22, 0x40, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x22, 0x25, 0x2f, 0x75, 0x73, 0x65, + 0x72, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x2f, 0x5f, 0x72, + 0x65, 0x73, 0x65, 0x6e, 0x64, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0c, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x77, + 0x72, 0x69, 0x74, 0x65, 0x12, 0x8f, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, + 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x26, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, + 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x1a, 0x2d, 0x2e, + 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, + 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x56, 0x69, 0x65, 0x77, 0x22, 0x28, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x13, 0x12, 0x11, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x69, 0x64, + 0x7d, 0x2f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x82, 0xb5, 0x18, 0x0b, 0x0a, 0x09, 0x75, 0x73, 0x65, + 0x72, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0xa2, 0x01, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x55, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x36, 0x2e, 0x63, 0x61, 0x6f, + 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, + 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x22, 0x2c, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x1a, 0x11, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x69, + 0x64, 0x7d, 0x2f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0c, 0x0a, + 0x0a, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x7c, 0x0a, 0x0f, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x26, + 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x29, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x2a, 0x11, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x7b, + 0x69, 0x64, 0x7d, 0x2f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x82, 0xb5, 0x18, 0x0c, 0x0a, 0x0a, 0x75, + 0x73, 0x65, 0x72, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x9f, 0x01, 0x0a, 0x1b, 0x52, 0x65, + 0x73, 0x65, 0x6e, 0x64, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x26, 0x2e, 0x63, 0x61, 0x6f, 0x73, + 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x44, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x40, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x2a, 0x22, 0x25, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x70, + 0x68, 0x6f, 0x6e, 0x65, 0x2f, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x64, 0x76, 0x65, 0x72, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0c, 0x0a, + 0x0a, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x95, 0x01, 0x0a, 0x0e, + 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x26, + 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x1a, 0x2f, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, + 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x56, 0x69, 0x65, 0x77, 0x22, 0x2a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x12, + 0x13, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x82, 0xb5, 0x18, 0x0b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x72, + 0x65, 0x61, 0x64, 0x12, 0xaa, 0x01, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, + 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x38, 0x2e, 0x63, 0x61, 0x6f, 0x73, + 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x55, 0x73, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, + 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x22, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x1a, 0x13, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, + 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x3a, 0x01, 0x2a, + 0x82, 0xb5, 0x18, 0x0c, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, + 0x12, 0xaa, 0x01, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4d, + 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x12, 0x34, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, + 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, + 0x63, 0x68, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x63, + 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, + 0x63, 0x68, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2e, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x1a, 0x13, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x69, + 0x64, 0x7d, 0x2f, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, + 0x0c, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0xce, 0x01, + 0x0a, 0x16, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x44, 0x50, 0x73, 0x12, 0x38, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, + 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x6c, 0x49, 0x44, 0x50, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, + 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x44, 0x50, 0x53, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3f, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x22, 0x25, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x75, + 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x69, 0x64, 0x70, 0x73, 0x2f, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x3a, 0x01, 0x2a, 0x82, + 0xb5, 0x18, 0x0b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0xbf, + 0x01, 0x0a, 0x11, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x6c, 0x49, 0x44, 0x50, 0x12, 0x38, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, + 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x44, + 0x50, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x58, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x42, 0x2a, 0x40, + 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, + 0x2f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x69, 0x64, 0x70, 0x73, 0x2f, 0x7b, 0x69, + 0x64, 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x7b, 0x65, + 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, + 0x82, 0xb5, 0x18, 0x0c, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, + 0x12, 0x8c, 0x01, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x66, 0x61, 0x73, + 0x12, 0x26, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, + 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x1a, 0x2c, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, + 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x46, + 0x61, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x12, 0x10, + 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x6d, 0x66, 0x61, 0x73, + 0x82, 0xb5, 0x18, 0x0b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, + 0xbb, 0x01, 0x0a, 0x1b, 0x53, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, + 0x6f, 0x72, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x3e, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x65, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x4e, 0x6f, 0x74, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x44, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2e, 0x22, + 0x29, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x70, 0x61, 0x73, + 0x73, 0x77, 0x6f, 0x72, 0x64, 0x2f, 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x73, 0x65, 0x74, 0x6e, 0x6f, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, + 0x0c, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x9a, 0x01, + 0x0a, 0x12, 0x53, 0x65, 0x74, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x50, 0x61, 0x73, 0x73, + 0x77, 0x6f, 0x72, 0x64, 0x12, 0x2f, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, + 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x3b, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x22, 0x20, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x69, + 0x64, 0x7d, 0x2f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x2f, 0x5f, 0x69, 0x6e, 0x69, + 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0c, 0x0a, 0x0a, + 0x75, 0x73, 0x65, 0x72, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0xdd, 0x01, 0x0a, 0x15, 0x53, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, + 0x68, 0x69, 0x70, 0x73, 0x12, 0x3b, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, + 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x73, 0x68, 0x69, 0x70, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x3c, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, + 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, + 0x70, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x49, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x22, 0x24, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, + 0x7b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x73, 0x68, 0x69, 0x70, 0x73, 0x2f, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x3a, 0x01, 0x2a, + 0x82, 0xb5, 0x18, 0x16, 0x0a, 0x14, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x6d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x73, 0x68, 0x69, 0x70, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0xa8, 0x01, 0x0a, 0x1b, 0x47, + 0x65, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, + 0x78, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x1a, 0x38, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, + 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6d, 0x70, + 0x6c, 0x65, 0x78, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x37, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x20, 0x12, 0x1e, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x2f, + 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, + 0x78, 0x69, 0x74, 0x79, 0x82, 0xb5, 0x18, 0x0d, 0x0a, 0x0b, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0xb7, 0x01, 0x0a, 0x22, 0x47, 0x65, 0x74, 0x44, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6d, 0x70, + 0x6c, 0x65, 0x78, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x16, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x38, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, + 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x43, 0x6f, + 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x3f, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x28, 0x12, 0x26, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, + 0x73, 0x2f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x2f, 0x63, 0x6f, 0x6d, 0x70, + 0x6c, 0x65, 0x78, 0x69, 0x74, 0x79, 0x2f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x82, 0xb5, + 0x18, 0x0d, 0x0a, 0x0b, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, + 0xd7, 0x01, 0x0a, 0x1e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, + 0x72, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x12, 0x3e, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, + 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6d, 0x70, + 0x6c, 0x65, 0x78, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x1a, 0x38, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, + 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6d, 0x70, + 0x6c, 0x65, 0x78, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x3b, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x23, 0x22, 0x1e, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x2f, + 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, + 0x78, 0x69, 0x74, 0x79, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0e, 0x0a, 0x0c, 0x70, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0xd7, 0x01, 0x0a, 0x1e, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6d, 0x70, + 0x6c, 0x65, 0x78, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x3e, 0x2e, 0x63, + 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x69, 0x74, 0x79, + 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x1a, 0x38, 0x2e, 0x63, + 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x69, 0x74, 0x79, + 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x3b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x1a, 0x1e, + 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x2f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, + 0x72, 0x64, 0x73, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x69, 0x74, 0x79, 0x3a, 0x01, + 0x2a, 0x82, 0xb5, 0x18, 0x0e, 0x0a, 0x0c, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x77, 0x72, + 0x69, 0x74, 0x65, 0x12, 0xaf, 0x01, 0x0a, 0x1e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x69, 0x74, 0x79, + 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x3a, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, + 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, + 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x49, 0x44, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x20, 0x2a, 0x1e, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x2f, 0x70, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x69, + 0x74, 0x79, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x64, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x93, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x50, 0x61, 0x73, + 0x73, 0x77, 0x6f, 0x72, 0x64, 0x41, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x16, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x31, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, + 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, + 0x41, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x30, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x19, 0x12, 0x17, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x2f, 0x70, 0x61, 0x73, + 0x73, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x2f, 0x61, 0x67, 0x65, 0x82, 0xb5, 0x18, 0x0d, 0x0a, 0x0b, + 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0xbb, 0x01, 0x0a, 0x17, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x41, 0x67, + 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x37, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, + 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, + 0x64, 0x41, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x1a, 0x31, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, + 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x41, 0x67, 0x65, 0x50, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x22, 0x34, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x22, 0x17, 0x2f, 0x70, 0x6f, + 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x2f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x73, + 0x2f, 0x61, 0x67, 0x65, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0e, 0x0a, 0x0c, 0x70, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0xbb, 0x01, 0x0a, 0x17, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x41, 0x67, 0x65, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x37, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, + 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x41, + 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x1a, 0x31, + 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x41, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x22, 0x34, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x1a, 0x17, 0x2f, 0x70, 0x6f, 0x6c, 0x69, + 0x63, 0x69, 0x65, 0x73, 0x2f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x2f, 0x61, + 0x67, 0x65, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0e, 0x0a, 0x0c, 0x70, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x9a, 0x01, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x41, 0x67, 0x65, 0x50, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x12, 0x33, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, + 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x41, 0x67, 0x65, + 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x44, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x2a, 0x17, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, + 0x69, 0x65, 0x73, 0x2f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x2f, 0x61, 0x67, + 0x65, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x64, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x12, 0x9f, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x50, 0x61, 0x73, 0x73, + 0x77, 0x6f, 0x72, 0x64, 0x4c, 0x6f, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x35, 0x2e, 0x63, 0x61, 0x6f, 0x73, + 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x77, + 0x6f, 0x72, 0x64, 0x4c, 0x6f, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x22, 0x34, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x12, 0x1b, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, + 0x69, 0x65, 0x73, 0x2f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x2f, 0x6c, 0x6f, + 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x82, 0xb5, 0x18, 0x0d, 0x0a, 0x0b, 0x70, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0xcb, 0x01, 0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x4c, 0x6f, 0x63, 0x6b, 0x6f, 0x75, 0x74, + 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x3b, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, + 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, + 0x4c, 0x6f, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x1a, 0x35, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, + 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x4c, 0x6f, 0x63, + 0x6b, 0x6f, 0x75, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x38, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x20, 0x22, 0x1b, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x2f, 0x70, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x2f, 0x6c, 0x6f, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x3a, + 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0e, 0x0a, 0x0c, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x77, + 0x72, 0x69, 0x74, 0x65, 0x12, 0xcb, 0x01, 0x0a, 0x1b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, + 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x4c, 0x6f, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x12, 0x3b, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, + 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x4c, 0x6f, + 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x1a, 0x35, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, + 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x4c, 0x6f, 0x63, 0x6b, 0x6f, + 0x75, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x38, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, + 0x1a, 0x1b, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x2f, 0x70, 0x61, 0x73, 0x73, + 0x77, 0x6f, 0x72, 0x64, 0x73, 0x2f, 0x6c, 0x6f, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x3a, 0x01, 0x2a, + 0x82, 0xb5, 0x18, 0x0e, 0x0a, 0x0c, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x77, 0x72, 0x69, + 0x74, 0x65, 0x12, 0xa6, 0x01, 0x0a, 0x1b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x61, 0x73, + 0x73, 0x77, 0x6f, 0x72, 0x64, 0x4c, 0x6f, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x50, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x12, 0x37, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, + 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x4c, 0x6f, 0x63, 0x6b, + 0x6f, 0x75, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x44, 0x1a, 0x16, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x22, 0x36, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x2a, 0x1b, 0x2f, 0x70, 0x6f, + 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x2f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x73, + 0x2f, 0x6c, 0x6f, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x70, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x84, 0x01, 0x0a, 0x09, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x12, 0x30, 0x2e, 0x63, 0x61, 0x6f, 0x73, + 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x63, 0x61, + 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, + 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0a, 0x22, 0x05, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x3a, + 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0c, 0x0a, 0x0a, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x12, 0x8e, 0x01, 0x0a, 0x0a, 0x4f, 0x72, 0x67, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x73, 0x12, 0x2d, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, + 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x27, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, + 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x14, 0x12, 0x12, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x73, 0x82, 0xb5, 0x18, 0x0a, 0x0a, 0x08, 0x6f, 0x72, 0x67, 0x2e, 0x72, + 0x65, 0x61, 0x64, 0x12, 0x6b, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x4d, 0x79, 0x4f, 0x72, 0x67, 0x12, + 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x27, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, + 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x56, 0x69, 0x65, 0x77, + 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0a, 0x12, 0x08, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, + 0x6d, 0x65, 0x82, 0xb5, 0x18, 0x0a, 0x0a, 0x08, 0x6f, 0x72, 0x67, 0x2e, 0x72, 0x65, 0x61, 0x64, + 0x12, 0x9c, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x42, 0x79, 0x44, 0x6f, 0x6d, + 0x61, 0x69, 0x6e, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x12, 0x26, 0x2e, 0x63, 0x61, 0x6f, 0x73, + 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x6f, 0x6d, 0x61, 0x69, + 0x6e, 0x1a, 0x27, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, + 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x56, 0x69, 0x65, 0x77, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x18, 0x12, 0x16, 0x2f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2f, 0x6f, 0x72, 0x67, 0x73, + 0x2f, 0x5f, 0x62, 0x79, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x82, 0xb5, 0x18, 0x11, 0x0a, 0x0f, + 0x6f, 0x72, 0x67, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, + 0x7e, 0x0a, 0x0f, 0x44, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4d, 0x79, 0x4f, + 0x72, 0x67, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x23, 0x2e, 0x63, 0x61, 0x6f, + 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x22, + 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x1a, 0x14, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x6d, + 0x65, 0x2f, 0x5f, 0x64, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, + 0x82, 0xb5, 0x18, 0x0b, 0x0a, 0x09, 0x6f, 0x72, 0x67, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, + 0x7e, 0x0a, 0x0f, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4d, 0x79, 0x4f, + 0x72, 0x67, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x23, 0x2e, 0x63, 0x61, 0x6f, + 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x22, + 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x1a, 0x14, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x6d, + 0x65, 0x2f, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, + 0x82, 0xb5, 0x18, 0x0b, 0x0a, 0x09, 0x6f, 0x72, 0x67, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, + 0xb8, 0x01, 0x0a, 0x12, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4d, 0x79, 0x4f, 0x72, 0x67, 0x44, + 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x36, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, + 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x44, 0x6f, 0x6d, 0x61, 0x69, + 0x6e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, + 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x4f, 0x72, 0x67, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x22, + 0x18, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x6d, 0x65, 0x2f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, + 0x73, 0x2f, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0a, + 0x0a, 0x08, 0x6f, 0x72, 0x67, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0x9c, 0x01, 0x0a, 0x0e, 0x41, + 0x64, 0x64, 0x4d, 0x79, 0x4f, 0x72, 0x67, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x33, 0x2e, + 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x64, 0x64, 0x4f, 0x72, 0x67, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, + 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x2a, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x22, 0x10, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x6d, 0x65, 0x2f, + 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0b, 0x0a, 0x09, + 0x6f, 0x72, 0x67, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0xdf, 0x01, 0x0a, 0x1d, 0x47, 0x65, + 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x4d, 0x79, 0x4f, 0x72, 0x67, 0x44, 0x6f, 0x6d, 0x61, 0x69, + 0x6e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x2e, 0x63, 0x61, + 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, + 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, + 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x44, 0x6f, 0x6d, 0x61, + 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x45, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x30, 0x22, 0x2b, 0x2f, 0x6f, + 0x72, 0x67, 0x73, 0x2f, 0x6d, 0x65, 0x2f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x2f, 0x7b, + 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x7d, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0b, + 0x0a, 0x09, 0x6f, 0x72, 0x67, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0xad, 0x01, 0x0a, 0x13, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x79, 0x4f, 0x72, 0x67, 0x44, 0x6f, 0x6d, + 0x61, 0x69, 0x6e, 0x12, 0x38, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, + 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x67, + 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x44, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x22, 0x2a, 0x2f, + 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x6d, 0x65, 0x2f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x2f, + 0x7b, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x7d, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0b, + 0x0a, 0x09, 0x6f, 0x72, 0x67, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0xa3, 0x01, 0x0a, 0x15, + 0x53, 0x65, 0x74, 0x4d, 0x79, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x4f, 0x72, 0x67, 0x44, + 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x37, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, + 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x4f, 0x72, + 0x67, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x22, 0x22, + 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x6d, 0x65, 0x2f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, + 0x2f, 0x7b, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x7d, 0x2f, 0x5f, 0x70, 0x72, 0x69, 0x6d, 0x61, + 0x72, 0x79, 0x82, 0xb5, 0x18, 0x0b, 0x0a, 0x09, 0x6f, 0x72, 0x67, 0x2e, 0x77, 0x72, 0x69, 0x74, + 0x65, 0x12, 0x95, 0x01, 0x0a, 0x11, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x79, 0x4f, 0x72, + 0x67, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x36, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, + 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4f, + 0x72, 0x67, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x30, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x2a, + 0x19, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x6d, 0x65, 0x2f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, + 0x73, 0x2f, 0x7b, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x7d, 0x82, 0xb5, 0x18, 0x0b, 0x0a, 0x09, + 0x6f, 0x72, 0x67, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x88, 0x01, 0x0a, 0x11, 0x47, 0x65, + 0x74, 0x4d, 0x79, 0x4f, 0x72, 0x67, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, + 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2c, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, + 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x49, 0x61, 0x6d, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x12, 0x12, 0x2f, + 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x6d, 0x65, 0x2f, 0x69, 0x61, 0x6d, 0x70, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, + 0x61, 0x74, 0x65, 0x64, 0x12, 0x8d, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x1a, 0x2e, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, + 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x6f, 0x6c, + 0x65, 0x73, 0x22, 0x30, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x12, 0x13, 0x2f, 0x6f, 0x72, 0x67, + 0x73, 0x2f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x82, + 0xb5, 0x18, 0x11, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x2e, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x2e, + 0x72, 0x65, 0x61, 0x64, 0x12, 0xa3, 0x01, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x4d, 0x79, 0x4f, 0x72, + 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x33, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, + 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4f, 0x72, 0x67, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x63, + 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, + 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x22, + 0x10, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x6d, 0x65, 0x2f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x73, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x12, 0x0a, 0x10, 0x6f, 0x72, 0x67, 0x2e, 0x6d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0xb3, 0x01, 0x0a, 0x11, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x79, 0x4f, 0x72, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x36, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, + 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x72, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, + 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x22, 0x3b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x1a, 0x1a, 0x2f, 0x6f, 0x72, + 0x67, 0x73, 0x2f, 0x6d, 0x65, 0x2f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x75, + 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x12, 0x0a, 0x10, + 0x6f, 0x72, 0x67, 0x2e, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, + 0x12, 0x9e, 0x01, 0x0a, 0x11, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x79, 0x4f, 0x72, 0x67, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x36, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, + 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4f, 0x72, + 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x2a, 0x1a, + 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x6d, 0x65, 0x2f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, + 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x82, 0xb5, 0x18, 0x13, 0x0a, 0x11, + 0x6f, 0x72, 0x67, 0x2e, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x64, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x12, 0xbf, 0x01, 0x0a, 0x12, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4d, 0x79, 0x4f, 0x72, + 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x36, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, + 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x37, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, + 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x38, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x1d, 0x22, 0x18, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x6d, 0x65, 0x2f, 0x6d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x73, 0x2f, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x3a, 0x01, 0x2a, 0x82, 0xb5, + 0x18, 0x11, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x2e, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x72, + 0x65, 0x61, 0x64, 0x12, 0x9a, 0x01, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x2d, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, + 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, + 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x22, 0x30, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x82, 0xb5, + 0x18, 0x0e, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x72, 0x65, 0x61, 0x64, + 0x12, 0xad, 0x01, 0x0a, 0x0e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x12, 0x34, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, + 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x63, 0x61, 0x6f, 0x73, + 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x22, 0x11, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x2f, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x3a, 0x01, 0x2a, 0x82, 0xb5, + 0x18, 0x0e, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x72, 0x65, 0x61, 0x64, + 0x12, 0x93, 0x01, 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x42, 0x79, 0x49, 0x44, + 0x12, 0x29, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, + 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x1a, 0x2b, 0x2e, 0x63, 0x61, + 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x56, 0x69, 0x65, 0x77, 0x22, 0x2c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, + 0x12, 0x0e, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, + 0x82, 0xb5, 0x18, 0x12, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x72, 0x65, + 0x61, 0x64, 0x12, 0x02, 0x49, 0x64, 0x12, 0x98, 0x01, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x34, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, + 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, + 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0e, 0x22, + 0x09, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, + 0x10, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x12, 0xa0, 0x01, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x12, 0x34, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, + 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x63, 0x61, 0x6f, 0x73, + 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x22, 0x30, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x1a, 0x0e, 0x2f, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, + 0x13, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, + 0x12, 0x02, 0x49, 0x64, 0x12, 0xa5, 0x01, 0x0a, 0x11, 0x44, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x29, 0x2e, 0x63, 0x61, 0x6f, + 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x49, 0x44, 0x1a, 0x27, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, + 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x22, 0x3c, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x1a, 0x1a, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x5f, 0x64, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, + 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x13, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x02, 0x49, 0x64, 0x12, 0xa5, 0x01, 0x0a, + 0x11, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x12, 0x29, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, + 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x1a, 0x27, 0x2e, + 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x22, 0x3c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x1a, 0x1a, + 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x5f, + 0x72, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, + 0x13, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, + 0x12, 0x02, 0x49, 0x64, 0x12, 0x82, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x29, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, + 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, + 0x44, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x10, 0x2a, 0x0e, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x69, 0x64, + 0x7d, 0x82, 0xb5, 0x18, 0x14, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x64, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x02, 0x49, 0x64, 0x12, 0xc7, 0x01, 0x0a, 0x15, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x12, 0x3b, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, + 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x3a, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, + 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x35, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x1d, 0x22, 0x18, 0x2f, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x3a, 0x01, + 0x2a, 0x82, 0xb5, 0x18, 0x0e, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x72, + 0x65, 0x61, 0x64, 0x12, 0xbe, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, + 0x65, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x42, 0x79, 0x49, 0x44, 0x12, 0x2e, 0x2e, + 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x44, 0x1a, 0x30, 0x2e, + 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x56, 0x69, 0x65, 0x77, 0x22, + 0x43, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x12, 0x29, 0x2f, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, + 0x64, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x69, + 0x64, 0x7d, 0x82, 0xb5, 0x18, 0x0e, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, + 0x72, 0x65, 0x61, 0x64, 0x12, 0x9d, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x16, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x32, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, + 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x22, 0x38, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x19, 0x12, 0x17, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x6d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x73, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x82, 0xb5, 0x18, 0x15, 0x0a, + 0x13, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x2e, + 0x72, 0x65, 0x61, 0x64, 0x12, 0xe6, 0x01, 0x0a, 0x14, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x3a, 0x2e, + 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x63, 0x61, 0x6f, 0x73, + 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x55, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x22, 0x26, + 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x2f, 0x5f, + 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x20, 0x0a, 0x13, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x72, 0x65, + 0x61, 0x64, 0x12, 0x09, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0xb4, 0x01, + 0x0a, 0x10, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x30, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, + 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x41, 0x64, 0x64, 0x1a, 0x2d, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, + 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x22, 0x3f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x22, 0x16, 0x2f, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x6d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x73, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x1a, 0x0a, 0x14, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x2e, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, + 0x12, 0x02, 0x49, 0x64, 0x12, 0xc4, 0x01, 0x0a, 0x13, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x33, 0x2e, 0x63, + 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x1a, 0x2d, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, + 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x22, 0x49, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x1a, 0x20, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, + 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, + 0x1a, 0x0a, 0x14, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x6d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x02, 0x49, 0x64, 0x12, 0xab, 0x01, 0x0a, 0x13, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x12, 0x33, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, + 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x22, 0x47, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x2a, 0x20, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, + 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x82, 0xb5, 0x18, 0x1b, 0x0a, 0x15, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x64, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x02, 0x49, 0x64, 0x12, 0xdc, 0x01, 0x0a, 0x12, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, + 0x12, 0x38, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, + 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x63, 0x61, 0x6f, + 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x51, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x22, 0x24, 0x2f, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x2f, 0x5f, 0x73, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x1e, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x2e, 0x72, 0x6f, 0x6c, 0x65, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0x09, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0xaa, 0x01, 0x0a, 0x0e, 0x41, 0x64, 0x64, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x2e, 0x2e, 0x63, 0x61, + 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x41, 0x64, 0x64, 0x1a, 0x2b, 0x2e, 0x63, 0x61, + 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x22, 0x3b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, + 0x22, 0x14, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, + 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x18, 0x0a, 0x12, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x72, 0x6f, 0x6c, 0x65, 0x2e, 0x77, 0x72, 0x69, 0x74, + 0x65, 0x12, 0x02, 0x49, 0x64, 0x12, 0xa3, 0x01, 0x0a, 0x12, 0x42, 0x75, 0x6c, 0x6b, 0x41, 0x64, + 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x32, 0x2e, 0x63, + 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6c, 0x6b, + 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x41, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, + 0x22, 0x1a, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, + 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x2f, 0x5f, 0x62, 0x75, 0x6c, 0x6b, 0x3a, 0x01, 0x2a, 0x82, + 0xb5, 0x18, 0x18, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x72, 0x6f, 0x6c, + 0x65, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x02, 0x49, 0x64, 0x12, 0xb6, 0x01, 0x0a, 0x11, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x6f, 0x6c, + 0x65, 0x12, 0x31, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, + 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x1a, 0x2b, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, + 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x6f, 0x6c, + 0x65, 0x22, 0x41, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x1a, 0x1a, 0x2f, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x2f, + 0x7b, 0x6b, 0x65, 0x79, 0x7d, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x18, 0x0a, 0x12, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x72, 0x6f, 0x6c, 0x65, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, + 0x12, 0x02, 0x49, 0x64, 0x12, 0x9f, 0x01, 0x0a, 0x11, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x31, 0x2e, 0x63, 0x61, 0x6f, + 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x1a, 0x16, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x3f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x2a, 0x1a, 0x2f, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x6f, + 0x6c, 0x65, 0x73, 0x2f, 0x7b, 0x6b, 0x65, 0x79, 0x7d, 0x82, 0xb5, 0x18, 0x19, 0x0a, 0x13, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x72, 0x6f, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x12, 0x02, 0x49, 0x64, 0x12, 0xe2, 0x01, 0x0a, 0x12, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x38, 0x2e, + 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, + 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x57, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x30, 0x22, 0x2b, 0x2f, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, + 0x64, 0x7d, 0x2f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, + 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x1d, 0x0a, 0x10, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x72, 0x65, 0x61, 0x64, + 0x12, 0x09, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0xc4, 0x01, 0x0a, 0x0f, + 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x79, 0x49, 0x44, 0x12, + 0x2d, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x1a, 0x2f, + 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x22, + 0x51, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x12, 0x28, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x69, 0x64, + 0x7d, 0x82, 0xb5, 0x18, 0x1d, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x61, + 0x70, 0x70, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0x09, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x49, 0x64, 0x12, 0xb8, 0x01, 0x0a, 0x12, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x2d, 0x2e, 0x63, 0x61, 0x6f, 0x73, + 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, + 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x73, 0x22, 0x4a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2e, 0x12, 0x2c, 0x2f, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x63, 0x5f, 0x69, 0x64, 0x7d, 0x2f, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x82, 0xb5, 0x18, 0x12, 0x0a, 0x10, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0xd2, 0x01, + 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x49, 0x44, 0x43, 0x41, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, + 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x49, 0x44, 0x43, 0x41, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x1a, 0x2b, + 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x55, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x2d, 0x22, 0x28, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x6f, 0x69, 0x64, 0x63, 0x3a, 0x01, 0x2a, + 0x82, 0xb5, 0x18, 0x1e, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x61, 0x70, + 0x70, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x09, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x49, 0x64, 0x12, 0xca, 0x01, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, + 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x1a, 0x2b, 0x2e, 0x63, 0x61, + 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x55, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, + 0x1a, 0x28, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, + 0x1e, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x77, + 0x72, 0x69, 0x74, 0x65, 0x12, 0x09, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, + 0xd6, 0x01, 0x0a, 0x15, 0x44, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x41, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x2e, 0x63, 0x61, 0x6f, 0x73, + 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x1a, 0x2b, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, + 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x61, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x39, 0x1a, 0x34, 0x2f, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x5f, 0x64, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x1e, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x09, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0xd6, 0x01, 0x0a, 0x15, 0x52, 0x65, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x2d, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, + 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x44, 0x1a, 0x2b, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, + 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x61, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x39, 0x1a, 0x34, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, + 0x2f, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x82, + 0xb5, 0x18, 0x1e, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x61, 0x70, 0x70, + 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x09, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, + 0x64, 0x12, 0xaf, 0x01, 0x0a, 0x11, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, + 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x53, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x2a, 0x28, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, + 0x82, 0xb5, 0x18, 0x1f, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x61, 0x70, + 0x70, 0x2e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x09, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x49, 0x64, 0x12, 0xe9, 0x01, 0x0a, 0x1b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x49, 0x44, 0x43, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x12, 0x30, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, + 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x49, 0x44, 0x43, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x1a, 0x2a, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, + 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x49, 0x44, 0x43, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x22, 0x6c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x44, 0x1a, 0x3f, 0x2f, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, + 0x7d, 0x2f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x2f, + 0x6f, 0x69, 0x64, 0x63, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, + 0x1e, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x77, + 0x72, 0x69, 0x74, 0x65, 0x12, 0x09, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, + 0xef, 0x01, 0x0a, 0x1a, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x4f, 0x49, + 0x44, 0x43, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x2d, + 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x1a, 0x2c, 0x2e, + 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x22, 0x74, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x4c, 0x1a, 0x47, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x69, + 0x64, 0x63, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x3a, 0x01, 0x2a, 0x82, + 0xb5, 0x18, 0x1e, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x61, 0x70, 0x70, + 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x09, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, + 0x64, 0x12, 0xe1, 0x01, 0x0a, 0x13, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x73, 0x12, 0x39, 0x2e, 0x63, 0x61, 0x6f, 0x73, + 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, + 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x47, 0x72, 0x61, + 0x6e, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x53, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x22, 0x25, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, + 0x2f, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x73, 0x2f, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x3a, + 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x1f, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, + 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0x09, 0x50, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0xb8, 0x01, 0x0a, 0x10, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x44, 0x12, 0x2e, 0x2e, 0x63, 0x61, 0x6f, + 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x44, 0x1a, 0x30, 0x2e, 0x63, 0x61, 0x6f, + 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x56, 0x69, 0x65, 0x77, 0x22, 0x42, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x24, 0x12, 0x22, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, + 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x67, 0x72, 0x61, + 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x82, 0xb5, 0x18, 0x14, 0x0a, 0x12, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x72, 0x65, 0x61, 0x64, + 0x12, 0xb9, 0x01, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x12, 0x32, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, + 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x47, 0x72, 0x61, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x1a, 0x2c, 0x2e, 0x63, 0x61, + 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x22, 0x41, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x22, 0x22, 0x1d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x73, + 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x15, 0x0a, 0x13, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x2e, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0xbe, 0x01, 0x0a, + 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x47, 0x72, + 0x61, 0x6e, 0x74, 0x12, 0x32, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, + 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x47, 0x72, 0x61, 0x6e, + 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x1a, 0x2c, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, + 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x47, 0x72, 0x61, 0x6e, 0x74, 0x22, 0x46, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x1a, 0x22, 0x2f, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x69, 0x64, + 0x7d, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x15, 0x0a, 0x13, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x2e, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0xca, 0x01, + 0x0a, 0x16, 0x44, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x12, 0x2e, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, + 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x44, 0x1a, 0x2c, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, + 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x22, 0x52, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x1a, 0x2e, + 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x69, + 0x64, 0x7d, 0x2f, 0x5f, 0x64, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x3a, 0x01, + 0x2a, 0x82, 0xb5, 0x18, 0x15, 0x0a, 0x13, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x67, + 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0xca, 0x01, 0x0a, 0x16, 0x52, + 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x47, 0x72, 0x61, 0x6e, 0x74, 0x12, 0x2e, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, + 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x47, 0x72, + 0x61, 0x6e, 0x74, 0x49, 0x44, 0x1a, 0x2c, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, + 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x47, 0x72, + 0x61, 0x6e, 0x74, 0x22, 0x52, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x1a, 0x2e, 0x2f, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, + 0x69, 0x64, 0x7d, 0x2f, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, + 0x5f, 0x72, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x82, 0xb5, + 0x18, 0x15, 0x0a, 0x13, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x67, 0x72, 0x61, 0x6e, + 0x74, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0xa2, 0x01, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x12, 0x2e, + 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x44, 0x1a, 0x16, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x44, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x2a, 0x22, + 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x69, + 0x64, 0x7d, 0x82, 0xb5, 0x18, 0x16, 0x0a, 0x14, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, + 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0xb4, 0x01, 0x0a, + 0x1a, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x1a, 0x37, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, + 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x47, 0x72, 0x61, 0x6e, + 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x22, 0x45, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x20, 0x12, 0x1e, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, + 0x67, 0x72, 0x61, 0x6e, 0x74, 0x73, 0x2f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x2f, 0x72, + 0x6f, 0x6c, 0x65, 0x73, 0x82, 0xb5, 0x18, 0x1b, 0x0a, 0x19, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x2e, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x72, + 0x65, 0x61, 0x64, 0x12, 0x82, 0x02, 0x0a, 0x19, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x73, 0x12, 0x3f, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, + 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x40, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, + 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x62, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x22, 0x38, 0x2f, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x67, 0x72, 0x61, + 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x2f, 0x5f, + 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x1b, 0x0a, 0x19, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x6d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0xdf, 0x01, 0x0a, 0x15, 0x41, 0x64, 0x64, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x35, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, + 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x64, 0x64, 0x1a, 0x32, 0x2e, 0x63, 0x61, 0x6f, 0x73, + 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x5b, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x35, 0x22, 0x30, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x67, 0x72, + 0x61, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, + 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x1c, 0x0a, 0x1a, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x6d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0xef, 0x01, 0x0a, 0x18, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x47, 0x72, 0x61, 0x6e, + 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x38, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, + 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x47, 0x72, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x1a, 0x32, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, + 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x1a, 0x3a, 0x2f, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x67, 0x72, + 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x2f, + 0x7b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x1c, + 0x0a, 0x1a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, + 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0xd1, 0x01, 0x0a, + 0x18, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x47, 0x72, + 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x38, 0x2e, 0x63, 0x61, 0x6f, 0x73, + 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x63, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x3c, 0x2a, 0x3a, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x67, 0x72, 0x61, 0x6e, + 0x74, 0x73, 0x2f, 0x7b, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x82, + 0xb5, 0x18, 0x1d, 0x0a, 0x1b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x67, 0x72, 0x61, + 0x6e, 0x74, 0x2e, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x12, 0xba, 0x01, 0x0a, 0x10, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x55, 0x73, 0x65, 0x72, 0x47, + 0x72, 0x61, 0x6e, 0x74, 0x73, 0x12, 0x36, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, + 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, + 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, + 0x73, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x35, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x22, 0x15, + 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x73, 0x2f, 0x5f, 0x73, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x11, 0x0a, 0x0f, 0x75, 0x73, + 0x65, 0x72, 0x2e, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0xa6, 0x01, + 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x44, 0x12, + 0x2b, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x44, 0x1a, 0x2d, 0x2e, 0x63, + 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, + 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x56, 0x69, 0x65, 0x77, 0x22, 0x39, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x1e, 0x12, 0x1c, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x75, 0x73, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x69, 0x64, + 0x7d, 0x82, 0xb5, 0x18, 0x11, 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x61, 0x6e, + 0x74, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0xa7, 0x01, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x12, 0x2f, 0x2e, 0x63, 0x61, 0x6f, + 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, + 0x47, 0x72, 0x61, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x1a, 0x29, 0x2e, 0x63, 0x61, + 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, + 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x22, 0x38, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x22, 0x17, + 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, + 0x2f, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x73, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x12, 0x0a, 0x10, + 0x75, 0x73, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, + 0x12, 0xac, 0x01, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x47, + 0x72, 0x61, 0x6e, 0x74, 0x12, 0x2f, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, + 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x1a, 0x29, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, + 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, + 0x22, 0x3d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x1a, 0x1c, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, + 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x67, 0x72, 0x61, 0x6e, 0x74, + 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x12, 0x0a, 0x10, 0x75, + 0x73, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, + 0xb8, 0x01, 0x0a, 0x13, 0x44, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x55, 0x73, + 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x12, 0x2b, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, + 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x61, + 0x6e, 0x74, 0x49, 0x44, 0x1a, 0x29, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, + 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x22, + 0x49, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x1a, 0x28, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, + 0x7b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x73, + 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x5f, 0x64, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, + 0x65, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x12, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x67, + 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0xb8, 0x01, 0x0a, 0x13, 0x52, + 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x61, + 0x6e, 0x74, 0x12, 0x2b, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, + 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x44, 0x1a, + 0x29, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x22, 0x49, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x2d, 0x1a, 0x28, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, + 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, + 0x2f, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x82, + 0xb5, 0x18, 0x12, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, + 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x93, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x12, 0x2b, 0x2e, 0x63, 0x61, 0x6f, 0x73, + 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, + 0x72, 0x61, 0x6e, 0x74, 0x49, 0x44, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x3b, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x2a, 0x1c, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x7b, + 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x73, 0x2f, + 0x7b, 0x69, 0x64, 0x7d, 0x82, 0xb5, 0x18, 0x13, 0x0a, 0x11, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x67, + 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x98, 0x01, 0x0a, 0x13, + 0x42, 0x75, 0x6c, 0x6b, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, + 0x61, 0x6e, 0x74, 0x12, 0x33, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, + 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x75, 0x6c, 0x6b, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x22, 0x34, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x2a, 0x12, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, + 0x67, 0x72, 0x61, 0x6e, 0x74, 0x73, 0x2f, 0x5f, 0x62, 0x75, 0x6c, 0x6b, 0x3a, 0x01, 0x2a, 0x82, + 0xb5, 0x18, 0x13, 0x0a, 0x11, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, + 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x87, 0x01, 0x0a, 0x07, 0x49, 0x64, 0x70, 0x42, 0x79, + 0x49, 0x44, 0x12, 0x25, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, + 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x49, 0x44, 0x1a, 0x27, 0x2e, 0x63, 0x61, 0x6f, 0x73, + 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x56, 0x69, + 0x65, 0x77, 0x22, 0x2c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x12, 0x12, 0x2f, 0x6f, 0x72, 0x67, + 0x73, 0x2f, 0x6d, 0x65, 0x2f, 0x69, 0x64, 0x70, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x82, 0xb5, + 0x18, 0x0e, 0x0a, 0x0c, 0x6f, 0x72, 0x67, 0x2e, 0x69, 0x64, 0x70, 0x2e, 0x72, 0x65, 0x61, 0x64, + 0x12, 0x9b, 0x01, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x69, 0x64, 0x63, 0x49, + 0x64, 0x70, 0x12, 0x33, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, + 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x69, 0x64, 0x63, 0x49, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x1a, 0x23, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, + 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x22, 0x30, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x17, 0x22, 0x12, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x6d, 0x65, 0x2f, 0x69, + 0x64, 0x70, 0x73, 0x2f, 0x6f, 0x69, 0x64, 0x63, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0f, 0x0a, + 0x0d, 0x6f, 0x72, 0x67, 0x2e, 0x69, 0x64, 0x70, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x93, + 0x01, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x12, 0x29, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, + 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x1a, 0x23, 0x2e, + 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, + 0x64, 0x70, 0x22, 0x30, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x1a, 0x12, 0x2f, 0x6f, 0x72, 0x67, + 0x73, 0x2f, 0x6d, 0x65, 0x2f, 0x69, 0x64, 0x70, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x3a, 0x01, + 0x2a, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x6f, 0x72, 0x67, 0x2e, 0x69, 0x64, 0x70, 0x2e, 0x77, + 0x72, 0x69, 0x74, 0x65, 0x12, 0x9f, 0x01, 0x0a, 0x13, 0x44, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x61, 0x74, 0x65, 0x49, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x25, 0x2e, 0x63, + 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, + 0x70, 0x49, 0x44, 0x1a, 0x23, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, + 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x22, 0x3c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, + 0x1a, 0x1e, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x6d, 0x65, 0x2f, 0x69, 0x64, 0x70, 0x73, 0x2f, + 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x5f, 0x64, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, + 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x6f, 0x72, 0x67, 0x2e, 0x69, 0x64, 0x70, + 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x9f, 0x01, 0x0a, 0x13, 0x52, 0x65, 0x61, 0x63, 0x74, + 0x69, 0x76, 0x61, 0x74, 0x65, 0x49, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x25, + 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x49, 0x64, 0x70, 0x49, 0x44, 0x1a, 0x23, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, + 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x22, 0x3c, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x23, 0x1a, 0x1e, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x6d, 0x65, 0x2f, 0x69, 0x64, 0x70, + 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, + 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x6f, 0x72, 0x67, 0x2e, 0x69, + 0x64, 0x70, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x7f, 0x0a, 0x0f, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x49, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x25, 0x2e, 0x63, 0x61, + 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, + 0x49, 0x44, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x14, 0x2a, 0x12, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x6d, 0x65, 0x2f, 0x69, 0x64, 0x70, + 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x6f, 0x72, 0x67, 0x2e, + 0x69, 0x64, 0x70, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0xba, 0x01, 0x0a, 0x13, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x4f, 0x69, 0x64, 0x63, 0x49, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x12, 0x33, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, + 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x4f, 0x69, 0x64, 0x63, 0x49, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x1a, 0x2d, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, + 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x69, 0x64, 0x63, 0x49, 0x64, 0x70, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x3f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x1a, 0x21, 0x2f, + 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x6d, 0x65, 0x2f, 0x69, 0x64, 0x70, 0x73, 0x2f, 0x7b, 0x69, 0x64, + 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x69, 0x64, 0x63, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x6f, 0x72, 0x67, 0x2e, 0x69, 0x64, 0x70, + 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0xa5, 0x01, 0x0a, 0x0a, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x49, 0x64, 0x70, 0x73, 0x12, 0x30, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, + 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, + 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x53, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x1a, 0x22, 0x15, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x6d, 0x65, 0x2f, 0x69, 0x64, 0x70, + 0x73, 0x2f, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0e, + 0x0a, 0x0c, 0x6f, 0x72, 0x67, 0x2e, 0x69, 0x64, 0x70, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0x8b, + 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2f, 0x2e, 0x63, 0x61, 0x6f, 0x73, + 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, + 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x56, 0x69, 0x65, 0x77, 0x22, 0x30, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x19, 0x12, 0x17, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x6d, 0x65, 0x2f, 0x70, 0x6f, 0x6c, + 0x69, 0x63, 0x69, 0x65, 0x73, 0x2f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x82, 0xb5, 0x18, 0x0d, 0x0a, + 0x0b, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x12, 0xa6, 0x01, 0x0a, + 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x12, 0x2e, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, + 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, + 0x64, 0x64, 0x1a, 0x2b, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, + 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, + 0x34, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x22, 0x17, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x6d, + 0x65, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x2f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, + 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0e, 0x0a, 0x0c, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, + 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0xa3, 0x01, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x2b, 0x2e, 0x63, 0x61, + 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, + 0x69, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x1a, 0x2b, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, + 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x34, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x1a, 0x17, 0x2f, + 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x6d, 0x65, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, + 0x2f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, 0x0e, 0x0a, 0x0c, 0x70, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x77, 0x0a, 0x11, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x2a, 0x17, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, + 0x6d, 0x65, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x2f, 0x6c, 0x6f, 0x67, 0x69, + 0x6e, 0x82, 0xb5, 0x18, 0x0f, 0x0a, 0x0d, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x64, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x12, 0xdb, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x4c, 0x6f, 0x67, 0x69, + 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x70, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, + 0x65, 0x72, 0x73, 0x12, 0x38, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, + 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, + 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, + 0x64, 0x70, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x48, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, + 0x22, 0x2c, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x6d, 0x65, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, + 0x69, 0x65, 0x73, 0x2f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x2f, 0x69, 0x64, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x2f, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x3a, 0x01, + 0x2a, 0x82, 0xb5, 0x18, 0x0d, 0x0a, 0x0b, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x72, 0x65, + 0x61, 0x64, 0x12, 0xbd, 0x01, 0x0a, 0x1b, 0x41, 0x64, 0x64, 0x49, 0x64, 0x70, 0x50, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x6f, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x12, 0x2e, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, + 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x41, + 0x64, 0x64, 0x1a, 0x2b, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, + 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, + 0x41, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x22, 0x24, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x6d, + 0x65, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x2f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, + 0x2f, 0x69, 0x64, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x3a, 0x01, 0x2a, + 0x82, 0xb5, 0x18, 0x0e, 0x0a, 0x0c, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x77, 0x72, 0x69, + 0x74, 0x65, 0x12, 0xbc, 0x01, 0x0a, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x64, 0x70, + 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x46, 0x72, 0x6f, 0x6d, 0x4c, 0x6f, 0x67, 0x69, + 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x2d, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, + 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x70, 0x50, 0x72, 0x6f, 0x76, + 0x69, 0x64, 0x65, 0x72, 0x49, 0x44, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x51, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x39, 0x22, 0x34, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x6d, 0x65, + 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x2f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x2f, + 0x69, 0x64, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x69, 0x64, + 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x82, + 0xb5, 0x18, 0x0e, 0x0a, 0x0c, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x77, 0x72, 0x69, 0x74, + 0x65, 0x42, 0xc5, 0x01, 0x5a, 0x2b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x63, 0x61, 0x6f, 0x73, 0x2f, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2f, 0x70, 0x6b, + 0x67, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x92, 0x41, 0x94, 0x01, 0x12, 0x47, 0x0a, 0x0e, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x20, 0x41, 0x50, 0x49, 0x22, 0x30, 0x12, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x73, + 0x3a, 0x2f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x61, + 0x6f, 0x73, 0x2f, 0x7a, 0x69, 0x74, 0x61, 0x64, 0x65, 0x6c, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x6d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x32, 0x03, 0x30, 0x2e, 0x31, 0x2a, 0x01, + 0x02, 0x32, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, + 0x73, 0x6f, 0x6e, 0x32, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x67, 0x72, 0x70, 0x63, 0x3a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x3a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, +} + +var ( + file_management_proto_rawDescOnce sync.Once + file_management_proto_rawDescData = file_management_proto_rawDesc +) + +func file_management_proto_rawDescGZIP() []byte { + file_management_proto_rawDescOnce.Do(func() { + file_management_proto_rawDescData = protoimpl.X.CompressGZIP(file_management_proto_rawDescData) + }) + return file_management_proto_rawDescData +} + +var file_management_proto_enumTypes = make([]protoimpl.EnumInfo, 37) +var file_management_proto_msgTypes = make([]protoimpl.MessageInfo, 175) +var file_management_proto_goTypes = []interface{}{ + (UserState)(0), // 0: caos.zitadel.management.api.v1.UserState + (Gender)(0), // 1: caos.zitadel.management.api.v1.Gender + (MachineKeyType)(0), // 2: caos.zitadel.management.api.v1.MachineKeyType + (UserSearchKey)(0), // 3: caos.zitadel.management.api.v1.UserSearchKey + (SearchMethod)(0), // 4: caos.zitadel.management.api.v1.SearchMethod + (MfaType)(0), // 5: caos.zitadel.management.api.v1.MfaType + (MFAState)(0), // 6: caos.zitadel.management.api.v1.MFAState + (NotificationType)(0), // 7: caos.zitadel.management.api.v1.NotificationType + (PolicyState)(0), // 8: caos.zitadel.management.api.v1.PolicyState + (OrgState)(0), // 9: caos.zitadel.management.api.v1.OrgState + (OrgDomainValidationType)(0), // 10: caos.zitadel.management.api.v1.OrgDomainValidationType + (OrgDomainSearchKey)(0), // 11: caos.zitadel.management.api.v1.OrgDomainSearchKey + (OrgMemberSearchKey)(0), // 12: caos.zitadel.management.api.v1.OrgMemberSearchKey + (ProjectSearchKey)(0), // 13: caos.zitadel.management.api.v1.ProjectSearchKey + (ProjectState)(0), // 14: caos.zitadel.management.api.v1.ProjectState + (ProjectRoleSearchKey)(0), // 15: caos.zitadel.management.api.v1.ProjectRoleSearchKey + (ProjectMemberSearchKey)(0), // 16: caos.zitadel.management.api.v1.ProjectMemberSearchKey + (AppState)(0), // 17: caos.zitadel.management.api.v1.AppState + (OIDCVersion)(0), // 18: caos.zitadel.management.api.v1.OIDCVersion + (OIDCResponseType)(0), // 19: caos.zitadel.management.api.v1.OIDCResponseType + (OIDCGrantType)(0), // 20: caos.zitadel.management.api.v1.OIDCGrantType + (OIDCApplicationType)(0), // 21: caos.zitadel.management.api.v1.OIDCApplicationType + (OIDCAuthMethodType)(0), // 22: caos.zitadel.management.api.v1.OIDCAuthMethodType + (ApplicationSearchKey)(0), // 23: caos.zitadel.management.api.v1.ApplicationSearchKey + (ProjectGrantState)(0), // 24: caos.zitadel.management.api.v1.ProjectGrantState + (ProjectGrantSearchKey)(0), // 25: caos.zitadel.management.api.v1.ProjectGrantSearchKey + (ProjectGrantMemberSearchKey)(0), // 26: caos.zitadel.management.api.v1.ProjectGrantMemberSearchKey + (UserGrantState)(0), // 27: caos.zitadel.management.api.v1.UserGrantState + (UserGrantSearchKey)(0), // 28: caos.zitadel.management.api.v1.UserGrantSearchKey + (UserMembershipSearchKey)(0), // 29: caos.zitadel.management.api.v1.UserMembershipSearchKey + (MemberType)(0), // 30: caos.zitadel.management.api.v1.MemberType + (IdpState)(0), // 31: caos.zitadel.management.api.v1.IdpState + (OIDCMappingField)(0), // 32: caos.zitadel.management.api.v1.OIDCMappingField + (IdpSearchKey)(0), // 33: caos.zitadel.management.api.v1.IdpSearchKey + (IdpType)(0), // 34: caos.zitadel.management.api.v1.IdpType + (IdpProviderType)(0), // 35: caos.zitadel.management.api.v1.IdpProviderType + (ProjectType)(0), // 36: caos.zitadel.management.api.v1.ProjectType + (*ZitadelDocs)(nil), // 37: caos.zitadel.management.api.v1.ZitadelDocs + (*Iam)(nil), // 38: caos.zitadel.management.api.v1.Iam + (*ChangeRequest)(nil), // 39: caos.zitadel.management.api.v1.ChangeRequest + (*Changes)(nil), // 40: caos.zitadel.management.api.v1.Changes + (*Change)(nil), // 41: caos.zitadel.management.api.v1.Change + (*ApplicationID)(nil), // 42: caos.zitadel.management.api.v1.ApplicationID + (*ProjectID)(nil), // 43: caos.zitadel.management.api.v1.ProjectID + (*UserID)(nil), // 44: caos.zitadel.management.api.v1.UserID + (*LoginName)(nil), // 45: caos.zitadel.management.api.v1.LoginName + (*UniqueUserRequest)(nil), // 46: caos.zitadel.management.api.v1.UniqueUserRequest + (*UniqueUserResponse)(nil), // 47: caos.zitadel.management.api.v1.UniqueUserResponse + (*CreateUserRequest)(nil), // 48: caos.zitadel.management.api.v1.CreateUserRequest + (*CreateHumanRequest)(nil), // 49: caos.zitadel.management.api.v1.CreateHumanRequest + (*CreateMachineRequest)(nil), // 50: caos.zitadel.management.api.v1.CreateMachineRequest + (*UserResponse)(nil), // 51: caos.zitadel.management.api.v1.UserResponse + (*UserView)(nil), // 52: caos.zitadel.management.api.v1.UserView + (*HumanResponse)(nil), // 53: caos.zitadel.management.api.v1.HumanResponse + (*HumanView)(nil), // 54: caos.zitadel.management.api.v1.HumanView + (*MachineResponse)(nil), // 55: caos.zitadel.management.api.v1.MachineResponse + (*MachineView)(nil), // 56: caos.zitadel.management.api.v1.MachineView + (*UpdateMachineRequest)(nil), // 57: caos.zitadel.management.api.v1.UpdateMachineRequest + (*AddMachineKeyRequest)(nil), // 58: caos.zitadel.management.api.v1.AddMachineKeyRequest + (*AddMachineKeyResponse)(nil), // 59: caos.zitadel.management.api.v1.AddMachineKeyResponse + (*MachineKeyIDRequest)(nil), // 60: caos.zitadel.management.api.v1.MachineKeyIDRequest + (*MachineKeyView)(nil), // 61: caos.zitadel.management.api.v1.MachineKeyView + (*MachineKeySearchRequest)(nil), // 62: caos.zitadel.management.api.v1.MachineKeySearchRequest + (*MachineKeySearchResponse)(nil), // 63: caos.zitadel.management.api.v1.MachineKeySearchResponse + (*UserSearchRequest)(nil), // 64: caos.zitadel.management.api.v1.UserSearchRequest + (*UserSearchQuery)(nil), // 65: caos.zitadel.management.api.v1.UserSearchQuery + (*UserSearchResponse)(nil), // 66: caos.zitadel.management.api.v1.UserSearchResponse + (*UserProfile)(nil), // 67: caos.zitadel.management.api.v1.UserProfile + (*UserProfileView)(nil), // 68: caos.zitadel.management.api.v1.UserProfileView + (*UpdateUserProfileRequest)(nil), // 69: caos.zitadel.management.api.v1.UpdateUserProfileRequest + (*UpdateUserUserNameRequest)(nil), // 70: caos.zitadel.management.api.v1.UpdateUserUserNameRequest + (*UserEmail)(nil), // 71: caos.zitadel.management.api.v1.UserEmail + (*UserEmailView)(nil), // 72: caos.zitadel.management.api.v1.UserEmailView + (*UpdateUserEmailRequest)(nil), // 73: caos.zitadel.management.api.v1.UpdateUserEmailRequest + (*UserPhone)(nil), // 74: caos.zitadel.management.api.v1.UserPhone + (*UserPhoneView)(nil), // 75: caos.zitadel.management.api.v1.UserPhoneView + (*UpdateUserPhoneRequest)(nil), // 76: caos.zitadel.management.api.v1.UpdateUserPhoneRequest + (*UserAddress)(nil), // 77: caos.zitadel.management.api.v1.UserAddress + (*UserAddressView)(nil), // 78: caos.zitadel.management.api.v1.UserAddressView + (*UpdateUserAddressRequest)(nil), // 79: caos.zitadel.management.api.v1.UpdateUserAddressRequest + (*MultiFactors)(nil), // 80: caos.zitadel.management.api.v1.MultiFactors + (*MultiFactor)(nil), // 81: caos.zitadel.management.api.v1.MultiFactor + (*PasswordRequest)(nil), // 82: caos.zitadel.management.api.v1.PasswordRequest + (*SetPasswordNotificationRequest)(nil), // 83: caos.zitadel.management.api.v1.SetPasswordNotificationRequest + (*PasswordComplexityPolicyID)(nil), // 84: caos.zitadel.management.api.v1.PasswordComplexityPolicyID + (*PasswordComplexityPolicy)(nil), // 85: caos.zitadel.management.api.v1.PasswordComplexityPolicy + (*PasswordComplexityPolicyCreate)(nil), // 86: caos.zitadel.management.api.v1.PasswordComplexityPolicyCreate + (*PasswordComplexityPolicyUpdate)(nil), // 87: caos.zitadel.management.api.v1.PasswordComplexityPolicyUpdate + (*PasswordAgePolicyID)(nil), // 88: caos.zitadel.management.api.v1.PasswordAgePolicyID + (*PasswordAgePolicy)(nil), // 89: caos.zitadel.management.api.v1.PasswordAgePolicy + (*PasswordAgePolicyCreate)(nil), // 90: caos.zitadel.management.api.v1.PasswordAgePolicyCreate + (*PasswordAgePolicyUpdate)(nil), // 91: caos.zitadel.management.api.v1.PasswordAgePolicyUpdate + (*PasswordLockoutPolicyID)(nil), // 92: caos.zitadel.management.api.v1.PasswordLockoutPolicyID + (*PasswordLockoutPolicy)(nil), // 93: caos.zitadel.management.api.v1.PasswordLockoutPolicy + (*PasswordLockoutPolicyCreate)(nil), // 94: caos.zitadel.management.api.v1.PasswordLockoutPolicyCreate + (*PasswordLockoutPolicyUpdate)(nil), // 95: caos.zitadel.management.api.v1.PasswordLockoutPolicyUpdate + (*OrgIamPolicy)(nil), // 96: caos.zitadel.management.api.v1.OrgIamPolicy + (*OrgCreateRequest)(nil), // 97: caos.zitadel.management.api.v1.OrgCreateRequest + (*Org)(nil), // 98: caos.zitadel.management.api.v1.Org + (*OrgView)(nil), // 99: caos.zitadel.management.api.v1.OrgView + (*Domain)(nil), // 100: caos.zitadel.management.api.v1.Domain + (*OrgDomain)(nil), // 101: caos.zitadel.management.api.v1.OrgDomain + (*OrgDomainView)(nil), // 102: caos.zitadel.management.api.v1.OrgDomainView + (*AddOrgDomainRequest)(nil), // 103: caos.zitadel.management.api.v1.AddOrgDomainRequest + (*OrgDomainValidationRequest)(nil), // 104: caos.zitadel.management.api.v1.OrgDomainValidationRequest + (*OrgDomainValidationResponse)(nil), // 105: caos.zitadel.management.api.v1.OrgDomainValidationResponse + (*ValidateOrgDomainRequest)(nil), // 106: caos.zitadel.management.api.v1.ValidateOrgDomainRequest + (*PrimaryOrgDomainRequest)(nil), // 107: caos.zitadel.management.api.v1.PrimaryOrgDomainRequest + (*RemoveOrgDomainRequest)(nil), // 108: caos.zitadel.management.api.v1.RemoveOrgDomainRequest + (*OrgDomainSearchResponse)(nil), // 109: caos.zitadel.management.api.v1.OrgDomainSearchResponse + (*OrgDomainSearchRequest)(nil), // 110: caos.zitadel.management.api.v1.OrgDomainSearchRequest + (*OrgDomainSearchQuery)(nil), // 111: caos.zitadel.management.api.v1.OrgDomainSearchQuery + (*OrgMemberRoles)(nil), // 112: caos.zitadel.management.api.v1.OrgMemberRoles + (*OrgMember)(nil), // 113: caos.zitadel.management.api.v1.OrgMember + (*AddOrgMemberRequest)(nil), // 114: caos.zitadel.management.api.v1.AddOrgMemberRequest + (*ChangeOrgMemberRequest)(nil), // 115: caos.zitadel.management.api.v1.ChangeOrgMemberRequest + (*RemoveOrgMemberRequest)(nil), // 116: caos.zitadel.management.api.v1.RemoveOrgMemberRequest + (*OrgMemberSearchResponse)(nil), // 117: caos.zitadel.management.api.v1.OrgMemberSearchResponse + (*OrgMemberView)(nil), // 118: caos.zitadel.management.api.v1.OrgMemberView + (*OrgMemberSearchRequest)(nil), // 119: caos.zitadel.management.api.v1.OrgMemberSearchRequest + (*OrgMemberSearchQuery)(nil), // 120: caos.zitadel.management.api.v1.OrgMemberSearchQuery + (*ProjectCreateRequest)(nil), // 121: caos.zitadel.management.api.v1.ProjectCreateRequest + (*ProjectUpdateRequest)(nil), // 122: caos.zitadel.management.api.v1.ProjectUpdateRequest + (*ProjectSearchResponse)(nil), // 123: caos.zitadel.management.api.v1.ProjectSearchResponse + (*ProjectView)(nil), // 124: caos.zitadel.management.api.v1.ProjectView + (*ProjectSearchRequest)(nil), // 125: caos.zitadel.management.api.v1.ProjectSearchRequest + (*ProjectSearchQuery)(nil), // 126: caos.zitadel.management.api.v1.ProjectSearchQuery + (*Projects)(nil), // 127: caos.zitadel.management.api.v1.Projects + (*Project)(nil), // 128: caos.zitadel.management.api.v1.Project + (*ProjectMemberRoles)(nil), // 129: caos.zitadel.management.api.v1.ProjectMemberRoles + (*ProjectMember)(nil), // 130: caos.zitadel.management.api.v1.ProjectMember + (*ProjectMemberAdd)(nil), // 131: caos.zitadel.management.api.v1.ProjectMemberAdd + (*ProjectMemberChange)(nil), // 132: caos.zitadel.management.api.v1.ProjectMemberChange + (*ProjectMemberRemove)(nil), // 133: caos.zitadel.management.api.v1.ProjectMemberRemove + (*ProjectRoleAdd)(nil), // 134: caos.zitadel.management.api.v1.ProjectRoleAdd + (*ProjectRoleAddBulk)(nil), // 135: caos.zitadel.management.api.v1.ProjectRoleAddBulk + (*ProjectRoleChange)(nil), // 136: caos.zitadel.management.api.v1.ProjectRoleChange + (*ProjectRole)(nil), // 137: caos.zitadel.management.api.v1.ProjectRole + (*ProjectRoleView)(nil), // 138: caos.zitadel.management.api.v1.ProjectRoleView + (*ProjectRoleRemove)(nil), // 139: caos.zitadel.management.api.v1.ProjectRoleRemove + (*ProjectRoleSearchResponse)(nil), // 140: caos.zitadel.management.api.v1.ProjectRoleSearchResponse + (*ProjectRoleSearchRequest)(nil), // 141: caos.zitadel.management.api.v1.ProjectRoleSearchRequest + (*ProjectRoleSearchQuery)(nil), // 142: caos.zitadel.management.api.v1.ProjectRoleSearchQuery + (*ProjectMemberView)(nil), // 143: caos.zitadel.management.api.v1.ProjectMemberView + (*ProjectMemberSearchResponse)(nil), // 144: caos.zitadel.management.api.v1.ProjectMemberSearchResponse + (*ProjectMemberSearchRequest)(nil), // 145: caos.zitadel.management.api.v1.ProjectMemberSearchRequest + (*ProjectMemberSearchQuery)(nil), // 146: caos.zitadel.management.api.v1.ProjectMemberSearchQuery + (*Application)(nil), // 147: caos.zitadel.management.api.v1.Application + (*ApplicationUpdate)(nil), // 148: caos.zitadel.management.api.v1.ApplicationUpdate + (*OIDCConfig)(nil), // 149: caos.zitadel.management.api.v1.OIDCConfig + (*OIDCApplicationCreate)(nil), // 150: caos.zitadel.management.api.v1.OIDCApplicationCreate + (*OIDCConfigUpdate)(nil), // 151: caos.zitadel.management.api.v1.OIDCConfigUpdate + (*ClientSecret)(nil), // 152: caos.zitadel.management.api.v1.ClientSecret + (*ApplicationView)(nil), // 153: caos.zitadel.management.api.v1.ApplicationView + (*ApplicationSearchResponse)(nil), // 154: caos.zitadel.management.api.v1.ApplicationSearchResponse + (*ApplicationSearchRequest)(nil), // 155: caos.zitadel.management.api.v1.ApplicationSearchRequest + (*ApplicationSearchQuery)(nil), // 156: caos.zitadel.management.api.v1.ApplicationSearchQuery + (*ProjectGrant)(nil), // 157: caos.zitadel.management.api.v1.ProjectGrant + (*ProjectGrantCreate)(nil), // 158: caos.zitadel.management.api.v1.ProjectGrantCreate + (*ProjectGrantUpdate)(nil), // 159: caos.zitadel.management.api.v1.ProjectGrantUpdate + (*ProjectGrantID)(nil), // 160: caos.zitadel.management.api.v1.ProjectGrantID + (*ProjectGrantView)(nil), // 161: caos.zitadel.management.api.v1.ProjectGrantView + (*ProjectGrantSearchResponse)(nil), // 162: caos.zitadel.management.api.v1.ProjectGrantSearchResponse + (*GrantedProjectSearchRequest)(nil), // 163: caos.zitadel.management.api.v1.GrantedProjectSearchRequest + (*ProjectGrantSearchRequest)(nil), // 164: caos.zitadel.management.api.v1.ProjectGrantSearchRequest + (*ProjectGrantSearchQuery)(nil), // 165: caos.zitadel.management.api.v1.ProjectGrantSearchQuery + (*ProjectGrantMemberRoles)(nil), // 166: caos.zitadel.management.api.v1.ProjectGrantMemberRoles + (*ProjectGrantMember)(nil), // 167: caos.zitadel.management.api.v1.ProjectGrantMember + (*ProjectGrantMemberAdd)(nil), // 168: caos.zitadel.management.api.v1.ProjectGrantMemberAdd + (*ProjectGrantMemberChange)(nil), // 169: caos.zitadel.management.api.v1.ProjectGrantMemberChange + (*ProjectGrantMemberRemove)(nil), // 170: caos.zitadel.management.api.v1.ProjectGrantMemberRemove + (*ProjectGrantMemberView)(nil), // 171: caos.zitadel.management.api.v1.ProjectGrantMemberView + (*ProjectGrantMemberSearchResponse)(nil), // 172: caos.zitadel.management.api.v1.ProjectGrantMemberSearchResponse + (*ProjectGrantMemberSearchRequest)(nil), // 173: caos.zitadel.management.api.v1.ProjectGrantMemberSearchRequest + (*ProjectGrantMemberSearchQuery)(nil), // 174: caos.zitadel.management.api.v1.ProjectGrantMemberSearchQuery + (*UserGrant)(nil), // 175: caos.zitadel.management.api.v1.UserGrant + (*UserGrantCreate)(nil), // 176: caos.zitadel.management.api.v1.UserGrantCreate + (*UserGrantUpdate)(nil), // 177: caos.zitadel.management.api.v1.UserGrantUpdate + (*UserGrantRemoveBulk)(nil), // 178: caos.zitadel.management.api.v1.UserGrantRemoveBulk + (*UserGrantID)(nil), // 179: caos.zitadel.management.api.v1.UserGrantID + (*UserGrantView)(nil), // 180: caos.zitadel.management.api.v1.UserGrantView + (*UserGrantSearchResponse)(nil), // 181: caos.zitadel.management.api.v1.UserGrantSearchResponse + (*UserGrantSearchRequest)(nil), // 182: caos.zitadel.management.api.v1.UserGrantSearchRequest + (*UserGrantSearchQuery)(nil), // 183: caos.zitadel.management.api.v1.UserGrantSearchQuery + (*UserMembershipSearchResponse)(nil), // 184: caos.zitadel.management.api.v1.UserMembershipSearchResponse + (*UserMembershipSearchRequest)(nil), // 185: caos.zitadel.management.api.v1.UserMembershipSearchRequest + (*UserMembershipSearchQuery)(nil), // 186: caos.zitadel.management.api.v1.UserMembershipSearchQuery + (*UserMembershipView)(nil), // 187: caos.zitadel.management.api.v1.UserMembershipView + (*IdpID)(nil), // 188: caos.zitadel.management.api.v1.IdpID + (*Idp)(nil), // 189: caos.zitadel.management.api.v1.Idp + (*IdpUpdate)(nil), // 190: caos.zitadel.management.api.v1.IdpUpdate + (*OidcIdpConfig)(nil), // 191: caos.zitadel.management.api.v1.OidcIdpConfig + (*OidcIdpConfigCreate)(nil), // 192: caos.zitadel.management.api.v1.OidcIdpConfigCreate + (*OidcIdpConfigUpdate)(nil), // 193: caos.zitadel.management.api.v1.OidcIdpConfigUpdate + (*IdpSearchResponse)(nil), // 194: caos.zitadel.management.api.v1.IdpSearchResponse + (*IdpView)(nil), // 195: caos.zitadel.management.api.v1.IdpView + (*OidcIdpConfigView)(nil), // 196: caos.zitadel.management.api.v1.OidcIdpConfigView + (*IdpSearchRequest)(nil), // 197: caos.zitadel.management.api.v1.IdpSearchRequest + (*IdpSearchQuery)(nil), // 198: caos.zitadel.management.api.v1.IdpSearchQuery + (*LoginPolicy)(nil), // 199: caos.zitadel.management.api.v1.LoginPolicy + (*LoginPolicyAdd)(nil), // 200: caos.zitadel.management.api.v1.LoginPolicyAdd + (*IdpProviderID)(nil), // 201: caos.zitadel.management.api.v1.IdpProviderID + (*IdpProviderAdd)(nil), // 202: caos.zitadel.management.api.v1.IdpProviderAdd + (*IdpProvider)(nil), // 203: caos.zitadel.management.api.v1.IdpProvider + (*LoginPolicyView)(nil), // 204: caos.zitadel.management.api.v1.LoginPolicyView + (*IdpProviderView)(nil), // 205: caos.zitadel.management.api.v1.IdpProviderView + (*IdpProviderSearchResponse)(nil), // 206: caos.zitadel.management.api.v1.IdpProviderSearchResponse + (*IdpProviderSearchRequest)(nil), // 207: caos.zitadel.management.api.v1.IdpProviderSearchRequest + (*ExternalIDPSearchRequest)(nil), // 208: caos.zitadel.management.api.v1.ExternalIDPSearchRequest + (*ExternalIDPSearchResponse)(nil), // 209: caos.zitadel.management.api.v1.ExternalIDPSearchResponse + (*ExternalIDPView)(nil), // 210: caos.zitadel.management.api.v1.ExternalIDPView + (*ExternalIDPRemoveRequest)(nil), // 211: caos.zitadel.management.api.v1.ExternalIDPRemoveRequest + (*timestamp.Timestamp)(nil), // 212: google.protobuf.Timestamp + (*message.LocalizedMessage)(nil), // 213: caos.zitadel.api.v1.LocalizedMessage + (*_struct.Struct)(nil), // 214: google.protobuf.Struct + (*empty.Empty)(nil), // 215: google.protobuf.Empty +} +var file_management_proto_depIdxs = []int32{ + 41, // 0: caos.zitadel.management.api.v1.Changes.changes:type_name -> caos.zitadel.management.api.v1.Change + 212, // 1: caos.zitadel.management.api.v1.Change.change_date:type_name -> google.protobuf.Timestamp + 213, // 2: caos.zitadel.management.api.v1.Change.event_type:type_name -> caos.zitadel.api.v1.LocalizedMessage + 214, // 3: caos.zitadel.management.api.v1.Change.data:type_name -> google.protobuf.Struct + 49, // 4: caos.zitadel.management.api.v1.CreateUserRequest.human:type_name -> caos.zitadel.management.api.v1.CreateHumanRequest + 50, // 5: caos.zitadel.management.api.v1.CreateUserRequest.machine:type_name -> caos.zitadel.management.api.v1.CreateMachineRequest + 1, // 6: caos.zitadel.management.api.v1.CreateHumanRequest.gender:type_name -> caos.zitadel.management.api.v1.Gender + 0, // 7: caos.zitadel.management.api.v1.UserResponse.state:type_name -> caos.zitadel.management.api.v1.UserState + 212, // 8: caos.zitadel.management.api.v1.UserResponse.creation_date:type_name -> google.protobuf.Timestamp + 212, // 9: caos.zitadel.management.api.v1.UserResponse.change_date:type_name -> google.protobuf.Timestamp + 53, // 10: caos.zitadel.management.api.v1.UserResponse.human:type_name -> caos.zitadel.management.api.v1.HumanResponse + 55, // 11: caos.zitadel.management.api.v1.UserResponse.machine:type_name -> caos.zitadel.management.api.v1.MachineResponse + 0, // 12: caos.zitadel.management.api.v1.UserView.state:type_name -> caos.zitadel.management.api.v1.UserState + 212, // 13: caos.zitadel.management.api.v1.UserView.creation_date:type_name -> google.protobuf.Timestamp + 212, // 14: caos.zitadel.management.api.v1.UserView.change_date:type_name -> google.protobuf.Timestamp + 212, // 15: caos.zitadel.management.api.v1.UserView.last_login:type_name -> google.protobuf.Timestamp + 54, // 16: caos.zitadel.management.api.v1.UserView.human:type_name -> caos.zitadel.management.api.v1.HumanView + 56, // 17: caos.zitadel.management.api.v1.UserView.machine:type_name -> caos.zitadel.management.api.v1.MachineView + 1, // 18: caos.zitadel.management.api.v1.HumanResponse.gender:type_name -> caos.zitadel.management.api.v1.Gender + 212, // 19: caos.zitadel.management.api.v1.HumanView.password_changed:type_name -> google.protobuf.Timestamp + 1, // 20: caos.zitadel.management.api.v1.HumanView.gender:type_name -> caos.zitadel.management.api.v1.Gender + 212, // 21: caos.zitadel.management.api.v1.MachineView.last_key_added:type_name -> google.protobuf.Timestamp + 2, // 22: caos.zitadel.management.api.v1.AddMachineKeyRequest.type:type_name -> caos.zitadel.management.api.v1.MachineKeyType + 212, // 23: caos.zitadel.management.api.v1.AddMachineKeyRequest.expiration_date:type_name -> google.protobuf.Timestamp + 212, // 24: caos.zitadel.management.api.v1.AddMachineKeyResponse.creation_date:type_name -> google.protobuf.Timestamp + 2, // 25: caos.zitadel.management.api.v1.AddMachineKeyResponse.type:type_name -> caos.zitadel.management.api.v1.MachineKeyType + 212, // 26: caos.zitadel.management.api.v1.AddMachineKeyResponse.expiration_date:type_name -> google.protobuf.Timestamp + 2, // 27: caos.zitadel.management.api.v1.MachineKeyView.type:type_name -> caos.zitadel.management.api.v1.MachineKeyType + 212, // 28: caos.zitadel.management.api.v1.MachineKeyView.creation_date:type_name -> google.protobuf.Timestamp + 212, // 29: caos.zitadel.management.api.v1.MachineKeyView.expiration_date:type_name -> google.protobuf.Timestamp + 61, // 30: caos.zitadel.management.api.v1.MachineKeySearchResponse.result:type_name -> caos.zitadel.management.api.v1.MachineKeyView + 212, // 31: caos.zitadel.management.api.v1.MachineKeySearchResponse.view_timestamp:type_name -> google.protobuf.Timestamp + 3, // 32: caos.zitadel.management.api.v1.UserSearchRequest.sorting_column:type_name -> caos.zitadel.management.api.v1.UserSearchKey + 65, // 33: caos.zitadel.management.api.v1.UserSearchRequest.queries:type_name -> caos.zitadel.management.api.v1.UserSearchQuery + 3, // 34: caos.zitadel.management.api.v1.UserSearchQuery.key:type_name -> caos.zitadel.management.api.v1.UserSearchKey + 4, // 35: caos.zitadel.management.api.v1.UserSearchQuery.method:type_name -> caos.zitadel.management.api.v1.SearchMethod + 52, // 36: caos.zitadel.management.api.v1.UserSearchResponse.result:type_name -> caos.zitadel.management.api.v1.UserView + 212, // 37: caos.zitadel.management.api.v1.UserSearchResponse.view_timestamp:type_name -> google.protobuf.Timestamp + 1, // 38: caos.zitadel.management.api.v1.UserProfile.gender:type_name -> caos.zitadel.management.api.v1.Gender + 212, // 39: caos.zitadel.management.api.v1.UserProfile.creation_date:type_name -> google.protobuf.Timestamp + 212, // 40: caos.zitadel.management.api.v1.UserProfile.change_date:type_name -> google.protobuf.Timestamp + 1, // 41: caos.zitadel.management.api.v1.UserProfileView.gender:type_name -> caos.zitadel.management.api.v1.Gender + 212, // 42: caos.zitadel.management.api.v1.UserProfileView.creation_date:type_name -> google.protobuf.Timestamp + 212, // 43: caos.zitadel.management.api.v1.UserProfileView.change_date:type_name -> google.protobuf.Timestamp + 1, // 44: caos.zitadel.management.api.v1.UpdateUserProfileRequest.gender:type_name -> caos.zitadel.management.api.v1.Gender + 212, // 45: caos.zitadel.management.api.v1.UserEmail.creation_date:type_name -> google.protobuf.Timestamp + 212, // 46: caos.zitadel.management.api.v1.UserEmail.change_date:type_name -> google.protobuf.Timestamp + 212, // 47: caos.zitadel.management.api.v1.UserEmailView.creation_date:type_name -> google.protobuf.Timestamp + 212, // 48: caos.zitadel.management.api.v1.UserEmailView.change_date:type_name -> google.protobuf.Timestamp + 212, // 49: caos.zitadel.management.api.v1.UserPhone.creation_date:type_name -> google.protobuf.Timestamp + 212, // 50: caos.zitadel.management.api.v1.UserPhone.change_date:type_name -> google.protobuf.Timestamp + 212, // 51: caos.zitadel.management.api.v1.UserPhoneView.creation_date:type_name -> google.protobuf.Timestamp + 212, // 52: caos.zitadel.management.api.v1.UserPhoneView.change_date:type_name -> google.protobuf.Timestamp + 212, // 53: caos.zitadel.management.api.v1.UserAddress.creation_date:type_name -> google.protobuf.Timestamp + 212, // 54: caos.zitadel.management.api.v1.UserAddress.change_date:type_name -> google.protobuf.Timestamp + 212, // 55: caos.zitadel.management.api.v1.UserAddressView.creation_date:type_name -> google.protobuf.Timestamp + 212, // 56: caos.zitadel.management.api.v1.UserAddressView.change_date:type_name -> google.protobuf.Timestamp + 81, // 57: caos.zitadel.management.api.v1.MultiFactors.mfas:type_name -> caos.zitadel.management.api.v1.MultiFactor + 5, // 58: caos.zitadel.management.api.v1.MultiFactor.type:type_name -> caos.zitadel.management.api.v1.MfaType + 6, // 59: caos.zitadel.management.api.v1.MultiFactor.state:type_name -> caos.zitadel.management.api.v1.MFAState + 7, // 60: caos.zitadel.management.api.v1.SetPasswordNotificationRequest.type:type_name -> caos.zitadel.management.api.v1.NotificationType + 8, // 61: caos.zitadel.management.api.v1.PasswordComplexityPolicy.state:type_name -> caos.zitadel.management.api.v1.PolicyState + 212, // 62: caos.zitadel.management.api.v1.PasswordComplexityPolicy.creation_date:type_name -> google.protobuf.Timestamp + 212, // 63: caos.zitadel.management.api.v1.PasswordComplexityPolicy.change_date:type_name -> google.protobuf.Timestamp + 8, // 64: caos.zitadel.management.api.v1.PasswordAgePolicy.state:type_name -> caos.zitadel.management.api.v1.PolicyState + 212, // 65: caos.zitadel.management.api.v1.PasswordAgePolicy.creation_date:type_name -> google.protobuf.Timestamp + 212, // 66: caos.zitadel.management.api.v1.PasswordAgePolicy.change_date:type_name -> google.protobuf.Timestamp + 8, // 67: caos.zitadel.management.api.v1.PasswordLockoutPolicy.state:type_name -> caos.zitadel.management.api.v1.PolicyState + 212, // 68: caos.zitadel.management.api.v1.PasswordLockoutPolicy.creation_date:type_name -> google.protobuf.Timestamp + 212, // 69: caos.zitadel.management.api.v1.PasswordLockoutPolicy.change_date:type_name -> google.protobuf.Timestamp + 9, // 70: caos.zitadel.management.api.v1.Org.state:type_name -> caos.zitadel.management.api.v1.OrgState + 212, // 71: caos.zitadel.management.api.v1.Org.creation_date:type_name -> google.protobuf.Timestamp + 212, // 72: caos.zitadel.management.api.v1.Org.change_date:type_name -> google.protobuf.Timestamp + 9, // 73: caos.zitadel.management.api.v1.OrgView.state:type_name -> caos.zitadel.management.api.v1.OrgState + 212, // 74: caos.zitadel.management.api.v1.OrgView.creation_date:type_name -> google.protobuf.Timestamp + 212, // 75: caos.zitadel.management.api.v1.OrgView.change_date:type_name -> google.protobuf.Timestamp + 212, // 76: caos.zitadel.management.api.v1.OrgDomain.creation_date:type_name -> google.protobuf.Timestamp + 212, // 77: caos.zitadel.management.api.v1.OrgDomain.change_date:type_name -> google.protobuf.Timestamp + 212, // 78: caos.zitadel.management.api.v1.OrgDomainView.creation_date:type_name -> google.protobuf.Timestamp + 212, // 79: caos.zitadel.management.api.v1.OrgDomainView.change_date:type_name -> google.protobuf.Timestamp + 10, // 80: caos.zitadel.management.api.v1.OrgDomainView.validation_type:type_name -> caos.zitadel.management.api.v1.OrgDomainValidationType + 10, // 81: caos.zitadel.management.api.v1.OrgDomainValidationRequest.type:type_name -> caos.zitadel.management.api.v1.OrgDomainValidationType + 102, // 82: caos.zitadel.management.api.v1.OrgDomainSearchResponse.result:type_name -> caos.zitadel.management.api.v1.OrgDomainView + 212, // 83: caos.zitadel.management.api.v1.OrgDomainSearchResponse.view_timestamp:type_name -> google.protobuf.Timestamp + 111, // 84: caos.zitadel.management.api.v1.OrgDomainSearchRequest.queries:type_name -> caos.zitadel.management.api.v1.OrgDomainSearchQuery + 11, // 85: caos.zitadel.management.api.v1.OrgDomainSearchQuery.key:type_name -> caos.zitadel.management.api.v1.OrgDomainSearchKey + 4, // 86: caos.zitadel.management.api.v1.OrgDomainSearchQuery.method:type_name -> caos.zitadel.management.api.v1.SearchMethod + 212, // 87: caos.zitadel.management.api.v1.OrgMember.change_date:type_name -> google.protobuf.Timestamp + 212, // 88: caos.zitadel.management.api.v1.OrgMember.creation_date:type_name -> google.protobuf.Timestamp + 118, // 89: caos.zitadel.management.api.v1.OrgMemberSearchResponse.result:type_name -> caos.zitadel.management.api.v1.OrgMemberView + 212, // 90: caos.zitadel.management.api.v1.OrgMemberSearchResponse.view_timestamp:type_name -> google.protobuf.Timestamp + 212, // 91: caos.zitadel.management.api.v1.OrgMemberView.change_date:type_name -> google.protobuf.Timestamp + 212, // 92: caos.zitadel.management.api.v1.OrgMemberView.creation_date:type_name -> google.protobuf.Timestamp + 120, // 93: caos.zitadel.management.api.v1.OrgMemberSearchRequest.queries:type_name -> caos.zitadel.management.api.v1.OrgMemberSearchQuery + 12, // 94: caos.zitadel.management.api.v1.OrgMemberSearchQuery.key:type_name -> caos.zitadel.management.api.v1.OrgMemberSearchKey + 4, // 95: caos.zitadel.management.api.v1.OrgMemberSearchQuery.method:type_name -> caos.zitadel.management.api.v1.SearchMethod + 124, // 96: caos.zitadel.management.api.v1.ProjectSearchResponse.result:type_name -> caos.zitadel.management.api.v1.ProjectView + 212, // 97: caos.zitadel.management.api.v1.ProjectSearchResponse.view_timestamp:type_name -> google.protobuf.Timestamp + 14, // 98: caos.zitadel.management.api.v1.ProjectView.state:type_name -> caos.zitadel.management.api.v1.ProjectState + 212, // 99: caos.zitadel.management.api.v1.ProjectView.change_date:type_name -> google.protobuf.Timestamp + 212, // 100: caos.zitadel.management.api.v1.ProjectView.creation_date:type_name -> google.protobuf.Timestamp + 126, // 101: caos.zitadel.management.api.v1.ProjectSearchRequest.queries:type_name -> caos.zitadel.management.api.v1.ProjectSearchQuery + 13, // 102: caos.zitadel.management.api.v1.ProjectSearchQuery.key:type_name -> caos.zitadel.management.api.v1.ProjectSearchKey + 4, // 103: caos.zitadel.management.api.v1.ProjectSearchQuery.method:type_name -> caos.zitadel.management.api.v1.SearchMethod + 128, // 104: caos.zitadel.management.api.v1.Projects.projects:type_name -> caos.zitadel.management.api.v1.Project + 14, // 105: caos.zitadel.management.api.v1.Project.state:type_name -> caos.zitadel.management.api.v1.ProjectState + 212, // 106: caos.zitadel.management.api.v1.Project.change_date:type_name -> google.protobuf.Timestamp + 212, // 107: caos.zitadel.management.api.v1.Project.creation_date:type_name -> google.protobuf.Timestamp + 212, // 108: caos.zitadel.management.api.v1.ProjectMember.change_date:type_name -> google.protobuf.Timestamp + 212, // 109: caos.zitadel.management.api.v1.ProjectMember.creation_date:type_name -> google.protobuf.Timestamp + 134, // 110: caos.zitadel.management.api.v1.ProjectRoleAddBulk.project_roles:type_name -> caos.zitadel.management.api.v1.ProjectRoleAdd + 212, // 111: caos.zitadel.management.api.v1.ProjectRole.creation_date:type_name -> google.protobuf.Timestamp + 212, // 112: caos.zitadel.management.api.v1.ProjectRole.change_date:type_name -> google.protobuf.Timestamp + 212, // 113: caos.zitadel.management.api.v1.ProjectRoleView.creation_date:type_name -> google.protobuf.Timestamp + 138, // 114: caos.zitadel.management.api.v1.ProjectRoleSearchResponse.result:type_name -> caos.zitadel.management.api.v1.ProjectRoleView + 212, // 115: caos.zitadel.management.api.v1.ProjectRoleSearchResponse.view_timestamp:type_name -> google.protobuf.Timestamp + 142, // 116: caos.zitadel.management.api.v1.ProjectRoleSearchRequest.queries:type_name -> caos.zitadel.management.api.v1.ProjectRoleSearchQuery + 15, // 117: caos.zitadel.management.api.v1.ProjectRoleSearchQuery.key:type_name -> caos.zitadel.management.api.v1.ProjectRoleSearchKey + 4, // 118: caos.zitadel.management.api.v1.ProjectRoleSearchQuery.method:type_name -> caos.zitadel.management.api.v1.SearchMethod + 212, // 119: caos.zitadel.management.api.v1.ProjectMemberView.change_date:type_name -> google.protobuf.Timestamp + 212, // 120: caos.zitadel.management.api.v1.ProjectMemberView.creation_date:type_name -> google.protobuf.Timestamp + 143, // 121: caos.zitadel.management.api.v1.ProjectMemberSearchResponse.result:type_name -> caos.zitadel.management.api.v1.ProjectMemberView + 212, // 122: caos.zitadel.management.api.v1.ProjectMemberSearchResponse.view_timestamp:type_name -> google.protobuf.Timestamp + 146, // 123: caos.zitadel.management.api.v1.ProjectMemberSearchRequest.queries:type_name -> caos.zitadel.management.api.v1.ProjectMemberSearchQuery + 16, // 124: caos.zitadel.management.api.v1.ProjectMemberSearchQuery.key:type_name -> caos.zitadel.management.api.v1.ProjectMemberSearchKey + 4, // 125: caos.zitadel.management.api.v1.ProjectMemberSearchQuery.method:type_name -> caos.zitadel.management.api.v1.SearchMethod + 17, // 126: caos.zitadel.management.api.v1.Application.state:type_name -> caos.zitadel.management.api.v1.AppState + 212, // 127: caos.zitadel.management.api.v1.Application.creation_date:type_name -> google.protobuf.Timestamp + 212, // 128: caos.zitadel.management.api.v1.Application.change_date:type_name -> google.protobuf.Timestamp + 149, // 129: caos.zitadel.management.api.v1.Application.oidc_config:type_name -> caos.zitadel.management.api.v1.OIDCConfig + 19, // 130: caos.zitadel.management.api.v1.OIDCConfig.response_types:type_name -> caos.zitadel.management.api.v1.OIDCResponseType + 20, // 131: caos.zitadel.management.api.v1.OIDCConfig.grant_types:type_name -> caos.zitadel.management.api.v1.OIDCGrantType + 21, // 132: caos.zitadel.management.api.v1.OIDCConfig.application_type:type_name -> caos.zitadel.management.api.v1.OIDCApplicationType + 22, // 133: caos.zitadel.management.api.v1.OIDCConfig.auth_method_type:type_name -> caos.zitadel.management.api.v1.OIDCAuthMethodType + 18, // 134: caos.zitadel.management.api.v1.OIDCConfig.version:type_name -> caos.zitadel.management.api.v1.OIDCVersion + 213, // 135: caos.zitadel.management.api.v1.OIDCConfig.compliance_problems:type_name -> caos.zitadel.api.v1.LocalizedMessage + 19, // 136: caos.zitadel.management.api.v1.OIDCApplicationCreate.response_types:type_name -> caos.zitadel.management.api.v1.OIDCResponseType + 20, // 137: caos.zitadel.management.api.v1.OIDCApplicationCreate.grant_types:type_name -> caos.zitadel.management.api.v1.OIDCGrantType + 21, // 138: caos.zitadel.management.api.v1.OIDCApplicationCreate.application_type:type_name -> caos.zitadel.management.api.v1.OIDCApplicationType + 22, // 139: caos.zitadel.management.api.v1.OIDCApplicationCreate.auth_method_type:type_name -> caos.zitadel.management.api.v1.OIDCAuthMethodType + 18, // 140: caos.zitadel.management.api.v1.OIDCApplicationCreate.version:type_name -> caos.zitadel.management.api.v1.OIDCVersion + 19, // 141: caos.zitadel.management.api.v1.OIDCConfigUpdate.response_types:type_name -> caos.zitadel.management.api.v1.OIDCResponseType + 20, // 142: caos.zitadel.management.api.v1.OIDCConfigUpdate.grant_types:type_name -> caos.zitadel.management.api.v1.OIDCGrantType + 21, // 143: caos.zitadel.management.api.v1.OIDCConfigUpdate.application_type:type_name -> caos.zitadel.management.api.v1.OIDCApplicationType + 22, // 144: caos.zitadel.management.api.v1.OIDCConfigUpdate.auth_method_type:type_name -> caos.zitadel.management.api.v1.OIDCAuthMethodType + 17, // 145: caos.zitadel.management.api.v1.ApplicationView.state:type_name -> caos.zitadel.management.api.v1.AppState + 212, // 146: caos.zitadel.management.api.v1.ApplicationView.creation_date:type_name -> google.protobuf.Timestamp + 212, // 147: caos.zitadel.management.api.v1.ApplicationView.change_date:type_name -> google.protobuf.Timestamp + 149, // 148: caos.zitadel.management.api.v1.ApplicationView.oidc_config:type_name -> caos.zitadel.management.api.v1.OIDCConfig + 153, // 149: caos.zitadel.management.api.v1.ApplicationSearchResponse.result:type_name -> caos.zitadel.management.api.v1.ApplicationView + 212, // 150: caos.zitadel.management.api.v1.ApplicationSearchResponse.view_timestamp:type_name -> google.protobuf.Timestamp + 156, // 151: caos.zitadel.management.api.v1.ApplicationSearchRequest.queries:type_name -> caos.zitadel.management.api.v1.ApplicationSearchQuery + 23, // 152: caos.zitadel.management.api.v1.ApplicationSearchQuery.key:type_name -> caos.zitadel.management.api.v1.ApplicationSearchKey + 4, // 153: caos.zitadel.management.api.v1.ApplicationSearchQuery.method:type_name -> caos.zitadel.management.api.v1.SearchMethod + 24, // 154: caos.zitadel.management.api.v1.ProjectGrant.state:type_name -> caos.zitadel.management.api.v1.ProjectGrantState + 212, // 155: caos.zitadel.management.api.v1.ProjectGrant.creation_date:type_name -> google.protobuf.Timestamp + 212, // 156: caos.zitadel.management.api.v1.ProjectGrant.change_date:type_name -> google.protobuf.Timestamp + 24, // 157: caos.zitadel.management.api.v1.ProjectGrantView.state:type_name -> caos.zitadel.management.api.v1.ProjectGrantState + 212, // 158: caos.zitadel.management.api.v1.ProjectGrantView.creation_date:type_name -> google.protobuf.Timestamp + 212, // 159: caos.zitadel.management.api.v1.ProjectGrantView.change_date:type_name -> google.protobuf.Timestamp + 161, // 160: caos.zitadel.management.api.v1.ProjectGrantSearchResponse.result:type_name -> caos.zitadel.management.api.v1.ProjectGrantView + 212, // 161: caos.zitadel.management.api.v1.ProjectGrantSearchResponse.view_timestamp:type_name -> google.protobuf.Timestamp + 126, // 162: caos.zitadel.management.api.v1.GrantedProjectSearchRequest.queries:type_name -> caos.zitadel.management.api.v1.ProjectSearchQuery + 165, // 163: caos.zitadel.management.api.v1.ProjectGrantSearchRequest.queries:type_name -> caos.zitadel.management.api.v1.ProjectGrantSearchQuery + 25, // 164: caos.zitadel.management.api.v1.ProjectGrantSearchQuery.key:type_name -> caos.zitadel.management.api.v1.ProjectGrantSearchKey + 4, // 165: caos.zitadel.management.api.v1.ProjectGrantSearchQuery.method:type_name -> caos.zitadel.management.api.v1.SearchMethod + 212, // 166: caos.zitadel.management.api.v1.ProjectGrantMember.change_date:type_name -> google.protobuf.Timestamp + 212, // 167: caos.zitadel.management.api.v1.ProjectGrantMember.creation_date:type_name -> google.protobuf.Timestamp + 212, // 168: caos.zitadel.management.api.v1.ProjectGrantMemberView.change_date:type_name -> google.protobuf.Timestamp + 212, // 169: caos.zitadel.management.api.v1.ProjectGrantMemberView.creation_date:type_name -> google.protobuf.Timestamp + 171, // 170: caos.zitadel.management.api.v1.ProjectGrantMemberSearchResponse.result:type_name -> caos.zitadel.management.api.v1.ProjectGrantMemberView + 212, // 171: caos.zitadel.management.api.v1.ProjectGrantMemberSearchResponse.view_timestamp:type_name -> google.protobuf.Timestamp + 174, // 172: caos.zitadel.management.api.v1.ProjectGrantMemberSearchRequest.queries:type_name -> caos.zitadel.management.api.v1.ProjectGrantMemberSearchQuery + 26, // 173: caos.zitadel.management.api.v1.ProjectGrantMemberSearchQuery.key:type_name -> caos.zitadel.management.api.v1.ProjectGrantMemberSearchKey + 4, // 174: caos.zitadel.management.api.v1.ProjectGrantMemberSearchQuery.method:type_name -> caos.zitadel.management.api.v1.SearchMethod + 27, // 175: caos.zitadel.management.api.v1.UserGrant.state:type_name -> caos.zitadel.management.api.v1.UserGrantState + 212, // 176: caos.zitadel.management.api.v1.UserGrant.creation_date:type_name -> google.protobuf.Timestamp + 212, // 177: caos.zitadel.management.api.v1.UserGrant.change_date:type_name -> google.protobuf.Timestamp + 27, // 178: caos.zitadel.management.api.v1.UserGrantView.state:type_name -> caos.zitadel.management.api.v1.UserGrantState + 212, // 179: caos.zitadel.management.api.v1.UserGrantView.creation_date:type_name -> google.protobuf.Timestamp + 212, // 180: caos.zitadel.management.api.v1.UserGrantView.change_date:type_name -> google.protobuf.Timestamp + 180, // 181: caos.zitadel.management.api.v1.UserGrantSearchResponse.result:type_name -> caos.zitadel.management.api.v1.UserGrantView + 212, // 182: caos.zitadel.management.api.v1.UserGrantSearchResponse.view_timestamp:type_name -> google.protobuf.Timestamp + 183, // 183: caos.zitadel.management.api.v1.UserGrantSearchRequest.queries:type_name -> caos.zitadel.management.api.v1.UserGrantSearchQuery + 28, // 184: caos.zitadel.management.api.v1.UserGrantSearchQuery.key:type_name -> caos.zitadel.management.api.v1.UserGrantSearchKey + 4, // 185: caos.zitadel.management.api.v1.UserGrantSearchQuery.method:type_name -> caos.zitadel.management.api.v1.SearchMethod + 187, // 186: caos.zitadel.management.api.v1.UserMembershipSearchResponse.result:type_name -> caos.zitadel.management.api.v1.UserMembershipView + 212, // 187: caos.zitadel.management.api.v1.UserMembershipSearchResponse.view_timestamp:type_name -> google.protobuf.Timestamp + 186, // 188: caos.zitadel.management.api.v1.UserMembershipSearchRequest.queries:type_name -> caos.zitadel.management.api.v1.UserMembershipSearchQuery + 29, // 189: caos.zitadel.management.api.v1.UserMembershipSearchQuery.key:type_name -> caos.zitadel.management.api.v1.UserMembershipSearchKey + 4, // 190: caos.zitadel.management.api.v1.UserMembershipSearchQuery.method:type_name -> caos.zitadel.management.api.v1.SearchMethod + 30, // 191: caos.zitadel.management.api.v1.UserMembershipView.member_type:type_name -> caos.zitadel.management.api.v1.MemberType + 212, // 192: caos.zitadel.management.api.v1.UserMembershipView.creation_date:type_name -> google.protobuf.Timestamp + 212, // 193: caos.zitadel.management.api.v1.UserMembershipView.change_date:type_name -> google.protobuf.Timestamp + 31, // 194: caos.zitadel.management.api.v1.Idp.state:type_name -> caos.zitadel.management.api.v1.IdpState + 212, // 195: caos.zitadel.management.api.v1.Idp.creation_date:type_name -> google.protobuf.Timestamp + 212, // 196: caos.zitadel.management.api.v1.Idp.change_date:type_name -> google.protobuf.Timestamp + 191, // 197: caos.zitadel.management.api.v1.Idp.oidc_config:type_name -> caos.zitadel.management.api.v1.OidcIdpConfig + 32, // 198: caos.zitadel.management.api.v1.OidcIdpConfig.idp_display_name_mapping:type_name -> caos.zitadel.management.api.v1.OIDCMappingField + 32, // 199: caos.zitadel.management.api.v1.OidcIdpConfig.username_mapping:type_name -> caos.zitadel.management.api.v1.OIDCMappingField + 32, // 200: caos.zitadel.management.api.v1.OidcIdpConfigCreate.idp_display_name_mapping:type_name -> caos.zitadel.management.api.v1.OIDCMappingField + 32, // 201: caos.zitadel.management.api.v1.OidcIdpConfigCreate.username_mapping:type_name -> caos.zitadel.management.api.v1.OIDCMappingField + 32, // 202: caos.zitadel.management.api.v1.OidcIdpConfigUpdate.idp_display_name_mapping:type_name -> caos.zitadel.management.api.v1.OIDCMappingField + 32, // 203: caos.zitadel.management.api.v1.OidcIdpConfigUpdate.username_mapping:type_name -> caos.zitadel.management.api.v1.OIDCMappingField + 195, // 204: caos.zitadel.management.api.v1.IdpSearchResponse.result:type_name -> caos.zitadel.management.api.v1.IdpView + 212, // 205: caos.zitadel.management.api.v1.IdpSearchResponse.view_timestamp:type_name -> google.protobuf.Timestamp + 31, // 206: caos.zitadel.management.api.v1.IdpView.state:type_name -> caos.zitadel.management.api.v1.IdpState + 212, // 207: caos.zitadel.management.api.v1.IdpView.creation_date:type_name -> google.protobuf.Timestamp + 212, // 208: caos.zitadel.management.api.v1.IdpView.change_date:type_name -> google.protobuf.Timestamp + 35, // 209: caos.zitadel.management.api.v1.IdpView.provider_type:type_name -> caos.zitadel.management.api.v1.IdpProviderType + 196, // 210: caos.zitadel.management.api.v1.IdpView.oidc_config:type_name -> caos.zitadel.management.api.v1.OidcIdpConfigView + 32, // 211: caos.zitadel.management.api.v1.OidcIdpConfigView.idp_display_name_mapping:type_name -> caos.zitadel.management.api.v1.OIDCMappingField + 32, // 212: caos.zitadel.management.api.v1.OidcIdpConfigView.username_mapping:type_name -> caos.zitadel.management.api.v1.OIDCMappingField + 198, // 213: caos.zitadel.management.api.v1.IdpSearchRequest.queries:type_name -> caos.zitadel.management.api.v1.IdpSearchQuery + 33, // 214: caos.zitadel.management.api.v1.IdpSearchQuery.key:type_name -> caos.zitadel.management.api.v1.IdpSearchKey + 4, // 215: caos.zitadel.management.api.v1.IdpSearchQuery.method:type_name -> caos.zitadel.management.api.v1.SearchMethod + 35, // 216: caos.zitadel.management.api.v1.IdpProviderAdd.idp_provider_type:type_name -> caos.zitadel.management.api.v1.IdpProviderType + 35, // 217: caos.zitadel.management.api.v1.IdpProvider.idp_provider_Type:type_name -> caos.zitadel.management.api.v1.IdpProviderType + 34, // 218: caos.zitadel.management.api.v1.IdpProviderView.type:type_name -> caos.zitadel.management.api.v1.IdpType + 205, // 219: caos.zitadel.management.api.v1.IdpProviderSearchResponse.result:type_name -> caos.zitadel.management.api.v1.IdpProviderView + 212, // 220: caos.zitadel.management.api.v1.IdpProviderSearchResponse.view_timestamp:type_name -> google.protobuf.Timestamp + 210, // 221: caos.zitadel.management.api.v1.ExternalIDPSearchResponse.result:type_name -> caos.zitadel.management.api.v1.ExternalIDPView + 212, // 222: caos.zitadel.management.api.v1.ExternalIDPSearchResponse.view_timestamp:type_name -> google.protobuf.Timestamp + 212, // 223: caos.zitadel.management.api.v1.ExternalIDPView.creation_date:type_name -> google.protobuf.Timestamp + 212, // 224: caos.zitadel.management.api.v1.ExternalIDPView.change_date:type_name -> google.protobuf.Timestamp + 215, // 225: caos.zitadel.management.api.v1.ManagementService.Healthz:input_type -> google.protobuf.Empty + 215, // 226: caos.zitadel.management.api.v1.ManagementService.Ready:input_type -> google.protobuf.Empty + 215, // 227: caos.zitadel.management.api.v1.ManagementService.Validate:input_type -> google.protobuf.Empty + 215, // 228: caos.zitadel.management.api.v1.ManagementService.GetZitadelDocs:input_type -> google.protobuf.Empty + 215, // 229: caos.zitadel.management.api.v1.ManagementService.GetIam:input_type -> google.protobuf.Empty + 46, // 230: caos.zitadel.management.api.v1.ManagementService.IsUserUnique:input_type -> caos.zitadel.management.api.v1.UniqueUserRequest + 44, // 231: caos.zitadel.management.api.v1.ManagementService.GetUserByID:input_type -> caos.zitadel.management.api.v1.UserID + 45, // 232: caos.zitadel.management.api.v1.ManagementService.GetUserByLoginNameGlobal:input_type -> caos.zitadel.management.api.v1.LoginName + 64, // 233: caos.zitadel.management.api.v1.ManagementService.SearchUsers:input_type -> caos.zitadel.management.api.v1.UserSearchRequest + 48, // 234: caos.zitadel.management.api.v1.ManagementService.CreateUser:input_type -> caos.zitadel.management.api.v1.CreateUserRequest + 44, // 235: caos.zitadel.management.api.v1.ManagementService.DeactivateUser:input_type -> caos.zitadel.management.api.v1.UserID + 44, // 236: caos.zitadel.management.api.v1.ManagementService.ReactivateUser:input_type -> caos.zitadel.management.api.v1.UserID + 44, // 237: caos.zitadel.management.api.v1.ManagementService.LockUser:input_type -> caos.zitadel.management.api.v1.UserID + 44, // 238: caos.zitadel.management.api.v1.ManagementService.UnlockUser:input_type -> caos.zitadel.management.api.v1.UserID + 44, // 239: caos.zitadel.management.api.v1.ManagementService.DeleteUser:input_type -> caos.zitadel.management.api.v1.UserID + 39, // 240: caos.zitadel.management.api.v1.ManagementService.UserChanges:input_type -> caos.zitadel.management.api.v1.ChangeRequest + 58, // 241: caos.zitadel.management.api.v1.ManagementService.AddMachineKey:input_type -> caos.zitadel.management.api.v1.AddMachineKeyRequest + 60, // 242: caos.zitadel.management.api.v1.ManagementService.DeleteMachineKey:input_type -> caos.zitadel.management.api.v1.MachineKeyIDRequest + 62, // 243: caos.zitadel.management.api.v1.ManagementService.SearchMachineKeys:input_type -> caos.zitadel.management.api.v1.MachineKeySearchRequest + 60, // 244: caos.zitadel.management.api.v1.ManagementService.GetMachineKey:input_type -> caos.zitadel.management.api.v1.MachineKeyIDRequest + 44, // 245: caos.zitadel.management.api.v1.ManagementService.GetUserProfile:input_type -> caos.zitadel.management.api.v1.UserID + 69, // 246: caos.zitadel.management.api.v1.ManagementService.UpdateUserProfile:input_type -> caos.zitadel.management.api.v1.UpdateUserProfileRequest + 44, // 247: caos.zitadel.management.api.v1.ManagementService.GetUserEmail:input_type -> caos.zitadel.management.api.v1.UserID + 70, // 248: caos.zitadel.management.api.v1.ManagementService.ChangeUserUserName:input_type -> caos.zitadel.management.api.v1.UpdateUserUserNameRequest + 73, // 249: caos.zitadel.management.api.v1.ManagementService.ChangeUserEmail:input_type -> caos.zitadel.management.api.v1.UpdateUserEmailRequest + 44, // 250: caos.zitadel.management.api.v1.ManagementService.ResendEmailVerificationMail:input_type -> caos.zitadel.management.api.v1.UserID + 44, // 251: caos.zitadel.management.api.v1.ManagementService.GetUserPhone:input_type -> caos.zitadel.management.api.v1.UserID + 76, // 252: caos.zitadel.management.api.v1.ManagementService.ChangeUserPhone:input_type -> caos.zitadel.management.api.v1.UpdateUserPhoneRequest + 44, // 253: caos.zitadel.management.api.v1.ManagementService.RemoveUserPhone:input_type -> caos.zitadel.management.api.v1.UserID + 44, // 254: caos.zitadel.management.api.v1.ManagementService.ResendPhoneVerificationCode:input_type -> caos.zitadel.management.api.v1.UserID + 44, // 255: caos.zitadel.management.api.v1.ManagementService.GetUserAddress:input_type -> caos.zitadel.management.api.v1.UserID + 79, // 256: caos.zitadel.management.api.v1.ManagementService.UpdateUserAddress:input_type -> caos.zitadel.management.api.v1.UpdateUserAddressRequest + 57, // 257: caos.zitadel.management.api.v1.ManagementService.UpdateUserMachine:input_type -> caos.zitadel.management.api.v1.UpdateMachineRequest + 208, // 258: caos.zitadel.management.api.v1.ManagementService.SearchUserExternalIDPs:input_type -> caos.zitadel.management.api.v1.ExternalIDPSearchRequest + 211, // 259: caos.zitadel.management.api.v1.ManagementService.RemoveExternalIDP:input_type -> caos.zitadel.management.api.v1.ExternalIDPRemoveRequest + 44, // 260: caos.zitadel.management.api.v1.ManagementService.GetUserMfas:input_type -> caos.zitadel.management.api.v1.UserID + 83, // 261: caos.zitadel.management.api.v1.ManagementService.SendSetPasswordNotification:input_type -> caos.zitadel.management.api.v1.SetPasswordNotificationRequest + 82, // 262: caos.zitadel.management.api.v1.ManagementService.SetInitialPassword:input_type -> caos.zitadel.management.api.v1.PasswordRequest + 185, // 263: caos.zitadel.management.api.v1.ManagementService.SearchUserMemberships:input_type -> caos.zitadel.management.api.v1.UserMembershipSearchRequest + 215, // 264: caos.zitadel.management.api.v1.ManagementService.GetPasswordComplexityPolicy:input_type -> google.protobuf.Empty + 215, // 265: caos.zitadel.management.api.v1.ManagementService.GetDefaultPasswordComplexityPolicy:input_type -> google.protobuf.Empty + 86, // 266: caos.zitadel.management.api.v1.ManagementService.CreatePasswordComplexityPolicy:input_type -> caos.zitadel.management.api.v1.PasswordComplexityPolicyCreate + 87, // 267: caos.zitadel.management.api.v1.ManagementService.UpdatePasswordComplexityPolicy:input_type -> caos.zitadel.management.api.v1.PasswordComplexityPolicyUpdate + 84, // 268: caos.zitadel.management.api.v1.ManagementService.DeletePasswordComplexityPolicy:input_type -> caos.zitadel.management.api.v1.PasswordComplexityPolicyID + 215, // 269: caos.zitadel.management.api.v1.ManagementService.GetPasswordAgePolicy:input_type -> google.protobuf.Empty + 90, // 270: caos.zitadel.management.api.v1.ManagementService.CreatePasswordAgePolicy:input_type -> caos.zitadel.management.api.v1.PasswordAgePolicyCreate + 91, // 271: caos.zitadel.management.api.v1.ManagementService.UpdatePasswordAgePolicy:input_type -> caos.zitadel.management.api.v1.PasswordAgePolicyUpdate + 88, // 272: caos.zitadel.management.api.v1.ManagementService.DeletePasswordAgePolicy:input_type -> caos.zitadel.management.api.v1.PasswordAgePolicyID + 215, // 273: caos.zitadel.management.api.v1.ManagementService.GetPasswordLockoutPolicy:input_type -> google.protobuf.Empty + 94, // 274: caos.zitadel.management.api.v1.ManagementService.CreatePasswordLockoutPolicy:input_type -> caos.zitadel.management.api.v1.PasswordLockoutPolicyCreate + 95, // 275: caos.zitadel.management.api.v1.ManagementService.UpdatePasswordLockoutPolicy:input_type -> caos.zitadel.management.api.v1.PasswordLockoutPolicyUpdate + 92, // 276: caos.zitadel.management.api.v1.ManagementService.DeletePasswordLockoutPolicy:input_type -> caos.zitadel.management.api.v1.PasswordLockoutPolicyID + 97, // 277: caos.zitadel.management.api.v1.ManagementService.CreateOrg:input_type -> caos.zitadel.management.api.v1.OrgCreateRequest + 39, // 278: caos.zitadel.management.api.v1.ManagementService.OrgChanges:input_type -> caos.zitadel.management.api.v1.ChangeRequest + 215, // 279: caos.zitadel.management.api.v1.ManagementService.GetMyOrg:input_type -> google.protobuf.Empty + 100, // 280: caos.zitadel.management.api.v1.ManagementService.GetOrgByDomainGlobal:input_type -> caos.zitadel.management.api.v1.Domain + 215, // 281: caos.zitadel.management.api.v1.ManagementService.DeactivateMyOrg:input_type -> google.protobuf.Empty + 215, // 282: caos.zitadel.management.api.v1.ManagementService.ReactivateMyOrg:input_type -> google.protobuf.Empty + 110, // 283: caos.zitadel.management.api.v1.ManagementService.SearchMyOrgDomains:input_type -> caos.zitadel.management.api.v1.OrgDomainSearchRequest + 103, // 284: caos.zitadel.management.api.v1.ManagementService.AddMyOrgDomain:input_type -> caos.zitadel.management.api.v1.AddOrgDomainRequest + 104, // 285: caos.zitadel.management.api.v1.ManagementService.GenerateMyOrgDomainValidation:input_type -> caos.zitadel.management.api.v1.OrgDomainValidationRequest + 106, // 286: caos.zitadel.management.api.v1.ManagementService.ValidateMyOrgDomain:input_type -> caos.zitadel.management.api.v1.ValidateOrgDomainRequest + 107, // 287: caos.zitadel.management.api.v1.ManagementService.SetMyPrimaryOrgDomain:input_type -> caos.zitadel.management.api.v1.PrimaryOrgDomainRequest + 108, // 288: caos.zitadel.management.api.v1.ManagementService.RemoveMyOrgDomain:input_type -> caos.zitadel.management.api.v1.RemoveOrgDomainRequest + 215, // 289: caos.zitadel.management.api.v1.ManagementService.GetMyOrgIamPolicy:input_type -> google.protobuf.Empty + 215, // 290: caos.zitadel.management.api.v1.ManagementService.GetOrgMemberRoles:input_type -> google.protobuf.Empty + 114, // 291: caos.zitadel.management.api.v1.ManagementService.AddMyOrgMember:input_type -> caos.zitadel.management.api.v1.AddOrgMemberRequest + 115, // 292: caos.zitadel.management.api.v1.ManagementService.ChangeMyOrgMember:input_type -> caos.zitadel.management.api.v1.ChangeOrgMemberRequest + 116, // 293: caos.zitadel.management.api.v1.ManagementService.RemoveMyOrgMember:input_type -> caos.zitadel.management.api.v1.RemoveOrgMemberRequest + 119, // 294: caos.zitadel.management.api.v1.ManagementService.SearchMyOrgMembers:input_type -> caos.zitadel.management.api.v1.OrgMemberSearchRequest + 39, // 295: caos.zitadel.management.api.v1.ManagementService.ProjectChanges:input_type -> caos.zitadel.management.api.v1.ChangeRequest + 125, // 296: caos.zitadel.management.api.v1.ManagementService.SearchProjects:input_type -> caos.zitadel.management.api.v1.ProjectSearchRequest + 43, // 297: caos.zitadel.management.api.v1.ManagementService.ProjectByID:input_type -> caos.zitadel.management.api.v1.ProjectID + 121, // 298: caos.zitadel.management.api.v1.ManagementService.CreateProject:input_type -> caos.zitadel.management.api.v1.ProjectCreateRequest + 122, // 299: caos.zitadel.management.api.v1.ManagementService.UpdateProject:input_type -> caos.zitadel.management.api.v1.ProjectUpdateRequest + 43, // 300: caos.zitadel.management.api.v1.ManagementService.DeactivateProject:input_type -> caos.zitadel.management.api.v1.ProjectID + 43, // 301: caos.zitadel.management.api.v1.ManagementService.ReactivateProject:input_type -> caos.zitadel.management.api.v1.ProjectID + 43, // 302: caos.zitadel.management.api.v1.ManagementService.RemoveProject:input_type -> caos.zitadel.management.api.v1.ProjectID + 163, // 303: caos.zitadel.management.api.v1.ManagementService.SearchGrantedProjects:input_type -> caos.zitadel.management.api.v1.GrantedProjectSearchRequest + 160, // 304: caos.zitadel.management.api.v1.ManagementService.GetGrantedProjectByID:input_type -> caos.zitadel.management.api.v1.ProjectGrantID + 215, // 305: caos.zitadel.management.api.v1.ManagementService.GetProjectMemberRoles:input_type -> google.protobuf.Empty + 145, // 306: caos.zitadel.management.api.v1.ManagementService.SearchProjectMembers:input_type -> caos.zitadel.management.api.v1.ProjectMemberSearchRequest + 131, // 307: caos.zitadel.management.api.v1.ManagementService.AddProjectMember:input_type -> caos.zitadel.management.api.v1.ProjectMemberAdd + 132, // 308: caos.zitadel.management.api.v1.ManagementService.ChangeProjectMember:input_type -> caos.zitadel.management.api.v1.ProjectMemberChange + 133, // 309: caos.zitadel.management.api.v1.ManagementService.RemoveProjectMember:input_type -> caos.zitadel.management.api.v1.ProjectMemberRemove + 141, // 310: caos.zitadel.management.api.v1.ManagementService.SearchProjectRoles:input_type -> caos.zitadel.management.api.v1.ProjectRoleSearchRequest + 134, // 311: caos.zitadel.management.api.v1.ManagementService.AddProjectRole:input_type -> caos.zitadel.management.api.v1.ProjectRoleAdd + 135, // 312: caos.zitadel.management.api.v1.ManagementService.BulkAddProjectRole:input_type -> caos.zitadel.management.api.v1.ProjectRoleAddBulk + 136, // 313: caos.zitadel.management.api.v1.ManagementService.ChangeProjectRole:input_type -> caos.zitadel.management.api.v1.ProjectRoleChange + 139, // 314: caos.zitadel.management.api.v1.ManagementService.RemoveProjectRole:input_type -> caos.zitadel.management.api.v1.ProjectRoleRemove + 155, // 315: caos.zitadel.management.api.v1.ManagementService.SearchApplications:input_type -> caos.zitadel.management.api.v1.ApplicationSearchRequest + 42, // 316: caos.zitadel.management.api.v1.ManagementService.ApplicationByID:input_type -> caos.zitadel.management.api.v1.ApplicationID + 39, // 317: caos.zitadel.management.api.v1.ManagementService.ApplicationChanges:input_type -> caos.zitadel.management.api.v1.ChangeRequest + 150, // 318: caos.zitadel.management.api.v1.ManagementService.CreateOIDCApplication:input_type -> caos.zitadel.management.api.v1.OIDCApplicationCreate + 148, // 319: caos.zitadel.management.api.v1.ManagementService.UpdateApplication:input_type -> caos.zitadel.management.api.v1.ApplicationUpdate + 42, // 320: caos.zitadel.management.api.v1.ManagementService.DeactivateApplication:input_type -> caos.zitadel.management.api.v1.ApplicationID + 42, // 321: caos.zitadel.management.api.v1.ManagementService.ReactivateApplication:input_type -> caos.zitadel.management.api.v1.ApplicationID + 42, // 322: caos.zitadel.management.api.v1.ManagementService.RemoveApplication:input_type -> caos.zitadel.management.api.v1.ApplicationID + 151, // 323: caos.zitadel.management.api.v1.ManagementService.UpdateApplicationOIDCConfig:input_type -> caos.zitadel.management.api.v1.OIDCConfigUpdate + 42, // 324: caos.zitadel.management.api.v1.ManagementService.RegenerateOIDCClientSecret:input_type -> caos.zitadel.management.api.v1.ApplicationID + 164, // 325: caos.zitadel.management.api.v1.ManagementService.SearchProjectGrants:input_type -> caos.zitadel.management.api.v1.ProjectGrantSearchRequest + 160, // 326: caos.zitadel.management.api.v1.ManagementService.ProjectGrantByID:input_type -> caos.zitadel.management.api.v1.ProjectGrantID + 158, // 327: caos.zitadel.management.api.v1.ManagementService.CreateProjectGrant:input_type -> caos.zitadel.management.api.v1.ProjectGrantCreate + 159, // 328: caos.zitadel.management.api.v1.ManagementService.UpdateProjectGrant:input_type -> caos.zitadel.management.api.v1.ProjectGrantUpdate + 160, // 329: caos.zitadel.management.api.v1.ManagementService.DeactivateProjectGrant:input_type -> caos.zitadel.management.api.v1.ProjectGrantID + 160, // 330: caos.zitadel.management.api.v1.ManagementService.ReactivateProjectGrant:input_type -> caos.zitadel.management.api.v1.ProjectGrantID + 160, // 331: caos.zitadel.management.api.v1.ManagementService.RemoveProjectGrant:input_type -> caos.zitadel.management.api.v1.ProjectGrantID + 215, // 332: caos.zitadel.management.api.v1.ManagementService.GetProjectGrantMemberRoles:input_type -> google.protobuf.Empty + 173, // 333: caos.zitadel.management.api.v1.ManagementService.SearchProjectGrantMembers:input_type -> caos.zitadel.management.api.v1.ProjectGrantMemberSearchRequest + 168, // 334: caos.zitadel.management.api.v1.ManagementService.AddProjectGrantMember:input_type -> caos.zitadel.management.api.v1.ProjectGrantMemberAdd + 169, // 335: caos.zitadel.management.api.v1.ManagementService.ChangeProjectGrantMember:input_type -> caos.zitadel.management.api.v1.ProjectGrantMemberChange + 170, // 336: caos.zitadel.management.api.v1.ManagementService.RemoveProjectGrantMember:input_type -> caos.zitadel.management.api.v1.ProjectGrantMemberRemove + 182, // 337: caos.zitadel.management.api.v1.ManagementService.SearchUserGrants:input_type -> caos.zitadel.management.api.v1.UserGrantSearchRequest + 179, // 338: caos.zitadel.management.api.v1.ManagementService.UserGrantByID:input_type -> caos.zitadel.management.api.v1.UserGrantID + 176, // 339: caos.zitadel.management.api.v1.ManagementService.CreateUserGrant:input_type -> caos.zitadel.management.api.v1.UserGrantCreate + 177, // 340: caos.zitadel.management.api.v1.ManagementService.UpdateUserGrant:input_type -> caos.zitadel.management.api.v1.UserGrantUpdate + 179, // 341: caos.zitadel.management.api.v1.ManagementService.DeactivateUserGrant:input_type -> caos.zitadel.management.api.v1.UserGrantID + 179, // 342: caos.zitadel.management.api.v1.ManagementService.ReactivateUserGrant:input_type -> caos.zitadel.management.api.v1.UserGrantID + 179, // 343: caos.zitadel.management.api.v1.ManagementService.RemoveUserGrant:input_type -> caos.zitadel.management.api.v1.UserGrantID + 178, // 344: caos.zitadel.management.api.v1.ManagementService.BulkRemoveUserGrant:input_type -> caos.zitadel.management.api.v1.UserGrantRemoveBulk + 188, // 345: caos.zitadel.management.api.v1.ManagementService.IdpByID:input_type -> caos.zitadel.management.api.v1.IdpID + 192, // 346: caos.zitadel.management.api.v1.ManagementService.CreateOidcIdp:input_type -> caos.zitadel.management.api.v1.OidcIdpConfigCreate + 190, // 347: caos.zitadel.management.api.v1.ManagementService.UpdateIdpConfig:input_type -> caos.zitadel.management.api.v1.IdpUpdate + 188, // 348: caos.zitadel.management.api.v1.ManagementService.DeactivateIdpConfig:input_type -> caos.zitadel.management.api.v1.IdpID + 188, // 349: caos.zitadel.management.api.v1.ManagementService.ReactivateIdpConfig:input_type -> caos.zitadel.management.api.v1.IdpID + 188, // 350: caos.zitadel.management.api.v1.ManagementService.RemoveIdpConfig:input_type -> caos.zitadel.management.api.v1.IdpID + 193, // 351: caos.zitadel.management.api.v1.ManagementService.UpdateOidcIdpConfig:input_type -> caos.zitadel.management.api.v1.OidcIdpConfigUpdate + 197, // 352: caos.zitadel.management.api.v1.ManagementService.SearchIdps:input_type -> caos.zitadel.management.api.v1.IdpSearchRequest + 215, // 353: caos.zitadel.management.api.v1.ManagementService.GetLoginPolicy:input_type -> google.protobuf.Empty + 200, // 354: caos.zitadel.management.api.v1.ManagementService.CreateLoginPolicy:input_type -> caos.zitadel.management.api.v1.LoginPolicyAdd + 199, // 355: caos.zitadel.management.api.v1.ManagementService.UpdateLoginPolicy:input_type -> caos.zitadel.management.api.v1.LoginPolicy + 215, // 356: caos.zitadel.management.api.v1.ManagementService.RemoveLoginPolicy:input_type -> google.protobuf.Empty + 207, // 357: caos.zitadel.management.api.v1.ManagementService.GetLoginPolicyIdpProviders:input_type -> caos.zitadel.management.api.v1.IdpProviderSearchRequest + 202, // 358: caos.zitadel.management.api.v1.ManagementService.AddIdpProviderToLoginPolicy:input_type -> caos.zitadel.management.api.v1.IdpProviderAdd + 201, // 359: caos.zitadel.management.api.v1.ManagementService.RemoveIdpProviderFromLoginPolicy:input_type -> caos.zitadel.management.api.v1.IdpProviderID + 215, // 360: caos.zitadel.management.api.v1.ManagementService.Healthz:output_type -> google.protobuf.Empty + 215, // 361: caos.zitadel.management.api.v1.ManagementService.Ready:output_type -> google.protobuf.Empty + 214, // 362: caos.zitadel.management.api.v1.ManagementService.Validate:output_type -> google.protobuf.Struct + 37, // 363: caos.zitadel.management.api.v1.ManagementService.GetZitadelDocs:output_type -> caos.zitadel.management.api.v1.ZitadelDocs + 38, // 364: caos.zitadel.management.api.v1.ManagementService.GetIam:output_type -> caos.zitadel.management.api.v1.Iam + 47, // 365: caos.zitadel.management.api.v1.ManagementService.IsUserUnique:output_type -> caos.zitadel.management.api.v1.UniqueUserResponse + 52, // 366: caos.zitadel.management.api.v1.ManagementService.GetUserByID:output_type -> caos.zitadel.management.api.v1.UserView + 52, // 367: caos.zitadel.management.api.v1.ManagementService.GetUserByLoginNameGlobal:output_type -> caos.zitadel.management.api.v1.UserView + 66, // 368: caos.zitadel.management.api.v1.ManagementService.SearchUsers:output_type -> caos.zitadel.management.api.v1.UserSearchResponse + 51, // 369: caos.zitadel.management.api.v1.ManagementService.CreateUser:output_type -> caos.zitadel.management.api.v1.UserResponse + 51, // 370: caos.zitadel.management.api.v1.ManagementService.DeactivateUser:output_type -> caos.zitadel.management.api.v1.UserResponse + 51, // 371: caos.zitadel.management.api.v1.ManagementService.ReactivateUser:output_type -> caos.zitadel.management.api.v1.UserResponse + 51, // 372: caos.zitadel.management.api.v1.ManagementService.LockUser:output_type -> caos.zitadel.management.api.v1.UserResponse + 51, // 373: caos.zitadel.management.api.v1.ManagementService.UnlockUser:output_type -> caos.zitadel.management.api.v1.UserResponse + 215, // 374: caos.zitadel.management.api.v1.ManagementService.DeleteUser:output_type -> google.protobuf.Empty + 40, // 375: caos.zitadel.management.api.v1.ManagementService.UserChanges:output_type -> caos.zitadel.management.api.v1.Changes + 59, // 376: caos.zitadel.management.api.v1.ManagementService.AddMachineKey:output_type -> caos.zitadel.management.api.v1.AddMachineKeyResponse + 215, // 377: caos.zitadel.management.api.v1.ManagementService.DeleteMachineKey:output_type -> google.protobuf.Empty + 63, // 378: caos.zitadel.management.api.v1.ManagementService.SearchMachineKeys:output_type -> caos.zitadel.management.api.v1.MachineKeySearchResponse + 61, // 379: caos.zitadel.management.api.v1.ManagementService.GetMachineKey:output_type -> caos.zitadel.management.api.v1.MachineKeyView + 68, // 380: caos.zitadel.management.api.v1.ManagementService.GetUserProfile:output_type -> caos.zitadel.management.api.v1.UserProfileView + 67, // 381: caos.zitadel.management.api.v1.ManagementService.UpdateUserProfile:output_type -> caos.zitadel.management.api.v1.UserProfile + 72, // 382: caos.zitadel.management.api.v1.ManagementService.GetUserEmail:output_type -> caos.zitadel.management.api.v1.UserEmailView + 215, // 383: caos.zitadel.management.api.v1.ManagementService.ChangeUserUserName:output_type -> google.protobuf.Empty + 71, // 384: caos.zitadel.management.api.v1.ManagementService.ChangeUserEmail:output_type -> caos.zitadel.management.api.v1.UserEmail + 215, // 385: caos.zitadel.management.api.v1.ManagementService.ResendEmailVerificationMail:output_type -> google.protobuf.Empty + 75, // 386: caos.zitadel.management.api.v1.ManagementService.GetUserPhone:output_type -> caos.zitadel.management.api.v1.UserPhoneView + 74, // 387: caos.zitadel.management.api.v1.ManagementService.ChangeUserPhone:output_type -> caos.zitadel.management.api.v1.UserPhone + 215, // 388: caos.zitadel.management.api.v1.ManagementService.RemoveUserPhone:output_type -> google.protobuf.Empty + 215, // 389: caos.zitadel.management.api.v1.ManagementService.ResendPhoneVerificationCode:output_type -> google.protobuf.Empty + 78, // 390: caos.zitadel.management.api.v1.ManagementService.GetUserAddress:output_type -> caos.zitadel.management.api.v1.UserAddressView + 77, // 391: caos.zitadel.management.api.v1.ManagementService.UpdateUserAddress:output_type -> caos.zitadel.management.api.v1.UserAddress + 55, // 392: caos.zitadel.management.api.v1.ManagementService.UpdateUserMachine:output_type -> caos.zitadel.management.api.v1.MachineResponse + 209, // 393: caos.zitadel.management.api.v1.ManagementService.SearchUserExternalIDPs:output_type -> caos.zitadel.management.api.v1.ExternalIDPSearchResponse + 215, // 394: caos.zitadel.management.api.v1.ManagementService.RemoveExternalIDP:output_type -> google.protobuf.Empty + 80, // 395: caos.zitadel.management.api.v1.ManagementService.GetUserMfas:output_type -> caos.zitadel.management.api.v1.MultiFactors + 215, // 396: caos.zitadel.management.api.v1.ManagementService.SendSetPasswordNotification:output_type -> google.protobuf.Empty + 215, // 397: caos.zitadel.management.api.v1.ManagementService.SetInitialPassword:output_type -> google.protobuf.Empty + 184, // 398: caos.zitadel.management.api.v1.ManagementService.SearchUserMemberships:output_type -> caos.zitadel.management.api.v1.UserMembershipSearchResponse + 85, // 399: caos.zitadel.management.api.v1.ManagementService.GetPasswordComplexityPolicy:output_type -> caos.zitadel.management.api.v1.PasswordComplexityPolicy + 85, // 400: caos.zitadel.management.api.v1.ManagementService.GetDefaultPasswordComplexityPolicy:output_type -> caos.zitadel.management.api.v1.PasswordComplexityPolicy + 85, // 401: caos.zitadel.management.api.v1.ManagementService.CreatePasswordComplexityPolicy:output_type -> caos.zitadel.management.api.v1.PasswordComplexityPolicy + 85, // 402: caos.zitadel.management.api.v1.ManagementService.UpdatePasswordComplexityPolicy:output_type -> caos.zitadel.management.api.v1.PasswordComplexityPolicy + 215, // 403: caos.zitadel.management.api.v1.ManagementService.DeletePasswordComplexityPolicy:output_type -> google.protobuf.Empty + 89, // 404: caos.zitadel.management.api.v1.ManagementService.GetPasswordAgePolicy:output_type -> caos.zitadel.management.api.v1.PasswordAgePolicy + 89, // 405: caos.zitadel.management.api.v1.ManagementService.CreatePasswordAgePolicy:output_type -> caos.zitadel.management.api.v1.PasswordAgePolicy + 89, // 406: caos.zitadel.management.api.v1.ManagementService.UpdatePasswordAgePolicy:output_type -> caos.zitadel.management.api.v1.PasswordAgePolicy + 215, // 407: caos.zitadel.management.api.v1.ManagementService.DeletePasswordAgePolicy:output_type -> google.protobuf.Empty + 93, // 408: caos.zitadel.management.api.v1.ManagementService.GetPasswordLockoutPolicy:output_type -> caos.zitadel.management.api.v1.PasswordLockoutPolicy + 93, // 409: caos.zitadel.management.api.v1.ManagementService.CreatePasswordLockoutPolicy:output_type -> caos.zitadel.management.api.v1.PasswordLockoutPolicy + 93, // 410: caos.zitadel.management.api.v1.ManagementService.UpdatePasswordLockoutPolicy:output_type -> caos.zitadel.management.api.v1.PasswordLockoutPolicy + 215, // 411: caos.zitadel.management.api.v1.ManagementService.DeletePasswordLockoutPolicy:output_type -> google.protobuf.Empty + 98, // 412: caos.zitadel.management.api.v1.ManagementService.CreateOrg:output_type -> caos.zitadel.management.api.v1.Org + 40, // 413: caos.zitadel.management.api.v1.ManagementService.OrgChanges:output_type -> caos.zitadel.management.api.v1.Changes + 99, // 414: caos.zitadel.management.api.v1.ManagementService.GetMyOrg:output_type -> caos.zitadel.management.api.v1.OrgView + 99, // 415: caos.zitadel.management.api.v1.ManagementService.GetOrgByDomainGlobal:output_type -> caos.zitadel.management.api.v1.OrgView + 98, // 416: caos.zitadel.management.api.v1.ManagementService.DeactivateMyOrg:output_type -> caos.zitadel.management.api.v1.Org + 98, // 417: caos.zitadel.management.api.v1.ManagementService.ReactivateMyOrg:output_type -> caos.zitadel.management.api.v1.Org + 109, // 418: caos.zitadel.management.api.v1.ManagementService.SearchMyOrgDomains:output_type -> caos.zitadel.management.api.v1.OrgDomainSearchResponse + 101, // 419: caos.zitadel.management.api.v1.ManagementService.AddMyOrgDomain:output_type -> caos.zitadel.management.api.v1.OrgDomain + 105, // 420: caos.zitadel.management.api.v1.ManagementService.GenerateMyOrgDomainValidation:output_type -> caos.zitadel.management.api.v1.OrgDomainValidationResponse + 215, // 421: caos.zitadel.management.api.v1.ManagementService.ValidateMyOrgDomain:output_type -> google.protobuf.Empty + 215, // 422: caos.zitadel.management.api.v1.ManagementService.SetMyPrimaryOrgDomain:output_type -> google.protobuf.Empty + 215, // 423: caos.zitadel.management.api.v1.ManagementService.RemoveMyOrgDomain:output_type -> google.protobuf.Empty + 96, // 424: caos.zitadel.management.api.v1.ManagementService.GetMyOrgIamPolicy:output_type -> caos.zitadel.management.api.v1.OrgIamPolicy + 112, // 425: caos.zitadel.management.api.v1.ManagementService.GetOrgMemberRoles:output_type -> caos.zitadel.management.api.v1.OrgMemberRoles + 113, // 426: caos.zitadel.management.api.v1.ManagementService.AddMyOrgMember:output_type -> caos.zitadel.management.api.v1.OrgMember + 113, // 427: caos.zitadel.management.api.v1.ManagementService.ChangeMyOrgMember:output_type -> caos.zitadel.management.api.v1.OrgMember + 215, // 428: caos.zitadel.management.api.v1.ManagementService.RemoveMyOrgMember:output_type -> google.protobuf.Empty + 117, // 429: caos.zitadel.management.api.v1.ManagementService.SearchMyOrgMembers:output_type -> caos.zitadel.management.api.v1.OrgMemberSearchResponse + 40, // 430: caos.zitadel.management.api.v1.ManagementService.ProjectChanges:output_type -> caos.zitadel.management.api.v1.Changes + 123, // 431: caos.zitadel.management.api.v1.ManagementService.SearchProjects:output_type -> caos.zitadel.management.api.v1.ProjectSearchResponse + 124, // 432: caos.zitadel.management.api.v1.ManagementService.ProjectByID:output_type -> caos.zitadel.management.api.v1.ProjectView + 128, // 433: caos.zitadel.management.api.v1.ManagementService.CreateProject:output_type -> caos.zitadel.management.api.v1.Project + 128, // 434: caos.zitadel.management.api.v1.ManagementService.UpdateProject:output_type -> caos.zitadel.management.api.v1.Project + 128, // 435: caos.zitadel.management.api.v1.ManagementService.DeactivateProject:output_type -> caos.zitadel.management.api.v1.Project + 128, // 436: caos.zitadel.management.api.v1.ManagementService.ReactivateProject:output_type -> caos.zitadel.management.api.v1.Project + 215, // 437: caos.zitadel.management.api.v1.ManagementService.RemoveProject:output_type -> google.protobuf.Empty + 162, // 438: caos.zitadel.management.api.v1.ManagementService.SearchGrantedProjects:output_type -> caos.zitadel.management.api.v1.ProjectGrantSearchResponse + 161, // 439: caos.zitadel.management.api.v1.ManagementService.GetGrantedProjectByID:output_type -> caos.zitadel.management.api.v1.ProjectGrantView + 129, // 440: caos.zitadel.management.api.v1.ManagementService.GetProjectMemberRoles:output_type -> caos.zitadel.management.api.v1.ProjectMemberRoles + 144, // 441: caos.zitadel.management.api.v1.ManagementService.SearchProjectMembers:output_type -> caos.zitadel.management.api.v1.ProjectMemberSearchResponse + 130, // 442: caos.zitadel.management.api.v1.ManagementService.AddProjectMember:output_type -> caos.zitadel.management.api.v1.ProjectMember + 130, // 443: caos.zitadel.management.api.v1.ManagementService.ChangeProjectMember:output_type -> caos.zitadel.management.api.v1.ProjectMember + 215, // 444: caos.zitadel.management.api.v1.ManagementService.RemoveProjectMember:output_type -> google.protobuf.Empty + 140, // 445: caos.zitadel.management.api.v1.ManagementService.SearchProjectRoles:output_type -> caos.zitadel.management.api.v1.ProjectRoleSearchResponse + 137, // 446: caos.zitadel.management.api.v1.ManagementService.AddProjectRole:output_type -> caos.zitadel.management.api.v1.ProjectRole + 215, // 447: caos.zitadel.management.api.v1.ManagementService.BulkAddProjectRole:output_type -> google.protobuf.Empty + 137, // 448: caos.zitadel.management.api.v1.ManagementService.ChangeProjectRole:output_type -> caos.zitadel.management.api.v1.ProjectRole + 215, // 449: caos.zitadel.management.api.v1.ManagementService.RemoveProjectRole:output_type -> google.protobuf.Empty + 154, // 450: caos.zitadel.management.api.v1.ManagementService.SearchApplications:output_type -> caos.zitadel.management.api.v1.ApplicationSearchResponse + 153, // 451: caos.zitadel.management.api.v1.ManagementService.ApplicationByID:output_type -> caos.zitadel.management.api.v1.ApplicationView + 40, // 452: caos.zitadel.management.api.v1.ManagementService.ApplicationChanges:output_type -> caos.zitadel.management.api.v1.Changes + 147, // 453: caos.zitadel.management.api.v1.ManagementService.CreateOIDCApplication:output_type -> caos.zitadel.management.api.v1.Application + 147, // 454: caos.zitadel.management.api.v1.ManagementService.UpdateApplication:output_type -> caos.zitadel.management.api.v1.Application + 147, // 455: caos.zitadel.management.api.v1.ManagementService.DeactivateApplication:output_type -> caos.zitadel.management.api.v1.Application + 147, // 456: caos.zitadel.management.api.v1.ManagementService.ReactivateApplication:output_type -> caos.zitadel.management.api.v1.Application + 215, // 457: caos.zitadel.management.api.v1.ManagementService.RemoveApplication:output_type -> google.protobuf.Empty + 149, // 458: caos.zitadel.management.api.v1.ManagementService.UpdateApplicationOIDCConfig:output_type -> caos.zitadel.management.api.v1.OIDCConfig + 152, // 459: caos.zitadel.management.api.v1.ManagementService.RegenerateOIDCClientSecret:output_type -> caos.zitadel.management.api.v1.ClientSecret + 162, // 460: caos.zitadel.management.api.v1.ManagementService.SearchProjectGrants:output_type -> caos.zitadel.management.api.v1.ProjectGrantSearchResponse + 161, // 461: caos.zitadel.management.api.v1.ManagementService.ProjectGrantByID:output_type -> caos.zitadel.management.api.v1.ProjectGrantView + 157, // 462: caos.zitadel.management.api.v1.ManagementService.CreateProjectGrant:output_type -> caos.zitadel.management.api.v1.ProjectGrant + 157, // 463: caos.zitadel.management.api.v1.ManagementService.UpdateProjectGrant:output_type -> caos.zitadel.management.api.v1.ProjectGrant + 157, // 464: caos.zitadel.management.api.v1.ManagementService.DeactivateProjectGrant:output_type -> caos.zitadel.management.api.v1.ProjectGrant + 157, // 465: caos.zitadel.management.api.v1.ManagementService.ReactivateProjectGrant:output_type -> caos.zitadel.management.api.v1.ProjectGrant + 215, // 466: caos.zitadel.management.api.v1.ManagementService.RemoveProjectGrant:output_type -> google.protobuf.Empty + 166, // 467: caos.zitadel.management.api.v1.ManagementService.GetProjectGrantMemberRoles:output_type -> caos.zitadel.management.api.v1.ProjectGrantMemberRoles + 172, // 468: caos.zitadel.management.api.v1.ManagementService.SearchProjectGrantMembers:output_type -> caos.zitadel.management.api.v1.ProjectGrantMemberSearchResponse + 167, // 469: caos.zitadel.management.api.v1.ManagementService.AddProjectGrantMember:output_type -> caos.zitadel.management.api.v1.ProjectGrantMember + 167, // 470: caos.zitadel.management.api.v1.ManagementService.ChangeProjectGrantMember:output_type -> caos.zitadel.management.api.v1.ProjectGrantMember + 215, // 471: caos.zitadel.management.api.v1.ManagementService.RemoveProjectGrantMember:output_type -> google.protobuf.Empty + 181, // 472: caos.zitadel.management.api.v1.ManagementService.SearchUserGrants:output_type -> caos.zitadel.management.api.v1.UserGrantSearchResponse + 180, // 473: caos.zitadel.management.api.v1.ManagementService.UserGrantByID:output_type -> caos.zitadel.management.api.v1.UserGrantView + 175, // 474: caos.zitadel.management.api.v1.ManagementService.CreateUserGrant:output_type -> caos.zitadel.management.api.v1.UserGrant + 175, // 475: caos.zitadel.management.api.v1.ManagementService.UpdateUserGrant:output_type -> caos.zitadel.management.api.v1.UserGrant + 175, // 476: caos.zitadel.management.api.v1.ManagementService.DeactivateUserGrant:output_type -> caos.zitadel.management.api.v1.UserGrant + 175, // 477: caos.zitadel.management.api.v1.ManagementService.ReactivateUserGrant:output_type -> caos.zitadel.management.api.v1.UserGrant + 215, // 478: caos.zitadel.management.api.v1.ManagementService.RemoveUserGrant:output_type -> google.protobuf.Empty + 215, // 479: caos.zitadel.management.api.v1.ManagementService.BulkRemoveUserGrant:output_type -> google.protobuf.Empty + 195, // 480: caos.zitadel.management.api.v1.ManagementService.IdpByID:output_type -> caos.zitadel.management.api.v1.IdpView + 189, // 481: caos.zitadel.management.api.v1.ManagementService.CreateOidcIdp:output_type -> caos.zitadel.management.api.v1.Idp + 189, // 482: caos.zitadel.management.api.v1.ManagementService.UpdateIdpConfig:output_type -> caos.zitadel.management.api.v1.Idp + 189, // 483: caos.zitadel.management.api.v1.ManagementService.DeactivateIdpConfig:output_type -> caos.zitadel.management.api.v1.Idp + 189, // 484: caos.zitadel.management.api.v1.ManagementService.ReactivateIdpConfig:output_type -> caos.zitadel.management.api.v1.Idp + 215, // 485: caos.zitadel.management.api.v1.ManagementService.RemoveIdpConfig:output_type -> google.protobuf.Empty + 191, // 486: caos.zitadel.management.api.v1.ManagementService.UpdateOidcIdpConfig:output_type -> caos.zitadel.management.api.v1.OidcIdpConfig + 194, // 487: caos.zitadel.management.api.v1.ManagementService.SearchIdps:output_type -> caos.zitadel.management.api.v1.IdpSearchResponse + 204, // 488: caos.zitadel.management.api.v1.ManagementService.GetLoginPolicy:output_type -> caos.zitadel.management.api.v1.LoginPolicyView + 199, // 489: caos.zitadel.management.api.v1.ManagementService.CreateLoginPolicy:output_type -> caos.zitadel.management.api.v1.LoginPolicy + 199, // 490: caos.zitadel.management.api.v1.ManagementService.UpdateLoginPolicy:output_type -> caos.zitadel.management.api.v1.LoginPolicy + 215, // 491: caos.zitadel.management.api.v1.ManagementService.RemoveLoginPolicy:output_type -> google.protobuf.Empty + 206, // 492: caos.zitadel.management.api.v1.ManagementService.GetLoginPolicyIdpProviders:output_type -> caos.zitadel.management.api.v1.IdpProviderSearchResponse + 203, // 493: caos.zitadel.management.api.v1.ManagementService.AddIdpProviderToLoginPolicy:output_type -> caos.zitadel.management.api.v1.IdpProvider + 215, // 494: caos.zitadel.management.api.v1.ManagementService.RemoveIdpProviderFromLoginPolicy:output_type -> google.protobuf.Empty + 360, // [360:495] is the sub-list for method output_type + 225, // [225:360] is the sub-list for method input_type + 225, // [225:225] is the sub-list for extension type_name + 225, // [225:225] is the sub-list for extension extendee + 0, // [0:225] is the sub-list for field type_name +} + +func init() { file_management_proto_init() } +func file_management_proto_init() { + if File_management_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_management_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ZitadelDocs); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Iam); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChangeRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Changes); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Change); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ApplicationID); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProjectID); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserID); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LoginName); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UniqueUserRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UniqueUserResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateUserRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateHumanRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateMachineRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserView); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HumanResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HumanView); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MachineResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MachineView); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateMachineRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddMachineKeyRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddMachineKeyResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MachineKeyIDRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MachineKeyView); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MachineKeySearchRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MachineKeySearchResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserSearchRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserSearchQuery); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserSearchResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserProfile); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserProfileView); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateUserProfileRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateUserUserNameRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserEmail); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserEmailView); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateUserEmailRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserPhone); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserPhoneView); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateUserPhoneRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserAddress); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserAddressView); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateUserAddressRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MultiFactors); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MultiFactor); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PasswordRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetPasswordNotificationRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PasswordComplexityPolicyID); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PasswordComplexityPolicy); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PasswordComplexityPolicyCreate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PasswordComplexityPolicyUpdate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PasswordAgePolicyID); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PasswordAgePolicy); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PasswordAgePolicyCreate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PasswordAgePolicyUpdate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PasswordLockoutPolicyID); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PasswordLockoutPolicy); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PasswordLockoutPolicyCreate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PasswordLockoutPolicyUpdate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrgIamPolicy); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrgCreateRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Org); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrgView); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Domain); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrgDomain); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrgDomainView); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddOrgDomainRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrgDomainValidationRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrgDomainValidationResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ValidateOrgDomainRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PrimaryOrgDomainRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RemoveOrgDomainRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrgDomainSearchResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrgDomainSearchRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrgDomainSearchQuery); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrgMemberRoles); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrgMember); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddOrgMemberRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChangeOrgMemberRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RemoveOrgMemberRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrgMemberSearchResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrgMemberView); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrgMemberSearchRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrgMemberSearchQuery); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProjectCreateRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProjectUpdateRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProjectSearchResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProjectView); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProjectSearchRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProjectSearchQuery); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Projects); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Project); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProjectMemberRoles); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProjectMember); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProjectMemberAdd); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProjectMemberChange); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProjectMemberRemove); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProjectRoleAdd); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProjectRoleAddBulk); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProjectRoleChange); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProjectRole); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProjectRoleView); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProjectRoleRemove); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProjectRoleSearchResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProjectRoleSearchRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProjectRoleSearchQuery); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProjectMemberView); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProjectMemberSearchResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProjectMemberSearchRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProjectMemberSearchQuery); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Application); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ApplicationUpdate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OIDCConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OIDCApplicationCreate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OIDCConfigUpdate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ClientSecret); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ApplicationView); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ApplicationSearchResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ApplicationSearchRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ApplicationSearchQuery); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProjectGrant); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProjectGrantCreate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProjectGrantUpdate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProjectGrantID); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProjectGrantView); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProjectGrantSearchResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GrantedProjectSearchRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProjectGrantSearchRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProjectGrantSearchQuery); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProjectGrantMemberRoles); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProjectGrantMember); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProjectGrantMemberAdd); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[132].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProjectGrantMemberChange); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProjectGrantMemberRemove); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[134].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProjectGrantMemberView); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[135].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProjectGrantMemberSearchResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[136].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProjectGrantMemberSearchRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[137].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProjectGrantMemberSearchQuery); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[138].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserGrant); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[139].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserGrantCreate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[140].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserGrantUpdate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[141].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserGrantRemoveBulk); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[142].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserGrantID); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[143].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserGrantView); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[144].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserGrantSearchResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[145].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserGrantSearchRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[146].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserGrantSearchQuery); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[147].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserMembershipSearchResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[148].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserMembershipSearchRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[149].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserMembershipSearchQuery); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[150].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserMembershipView); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[151].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IdpID); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[152].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Idp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[153].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IdpUpdate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[154].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OidcIdpConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[155].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OidcIdpConfigCreate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[156].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OidcIdpConfigUpdate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[157].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IdpSearchResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[158].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IdpView); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[159].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OidcIdpConfigView); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[160].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IdpSearchRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[161].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IdpSearchQuery); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[162].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LoginPolicy); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[163].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LoginPolicyAdd); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[164].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IdpProviderID); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[165].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IdpProviderAdd); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[166].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IdpProvider); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[167].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LoginPolicyView); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[168].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IdpProviderView); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[169].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IdpProviderSearchResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[170].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IdpProviderSearchRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[171].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExternalIDPSearchRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[172].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExternalIDPSearchResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[173].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExternalIDPView); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_management_proto_msgTypes[174].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExternalIDPRemoveRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_management_proto_msgTypes[11].OneofWrappers = []interface{}{ + (*CreateUserRequest_Human)(nil), + (*CreateUserRequest_Machine)(nil), + } + file_management_proto_msgTypes[14].OneofWrappers = []interface{}{ + (*UserResponse_Human)(nil), + (*UserResponse_Machine)(nil), + } + file_management_proto_msgTypes[15].OneofWrappers = []interface{}{ + (*UserView_Human)(nil), + (*UserView_Machine)(nil), + } + file_management_proto_msgTypes[110].OneofWrappers = []interface{}{ + (*Application_OidcConfig)(nil), + } + file_management_proto_msgTypes[116].OneofWrappers = []interface{}{ + (*ApplicationView_OidcConfig)(nil), + } + file_management_proto_msgTypes[152].OneofWrappers = []interface{}{ + (*Idp_OidcConfig)(nil), + } + file_management_proto_msgTypes[158].OneofWrappers = []interface{}{ + (*IdpView_OidcConfig)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_management_proto_rawDesc, + NumEnums: 37, + NumMessages: 175, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_management_proto_goTypes, + DependencyIndexes: file_management_proto_depIdxs, + EnumInfos: file_management_proto_enumTypes, + MessageInfos: file_management_proto_msgTypes, + }.Build() + File_management_proto = out.File + file_management_proto_rawDesc = nil + file_management_proto_goTypes = nil + file_management_proto_depIdxs = nil } // Reference imports to suppress errors if they are not otherwise used. var _ context.Context -var _ grpc.ClientConn +var _ grpc.ClientConnInterface // This is a compile-time assertion to ensure that this generated file // is compatible with the grpc package it is being compiled against. -const _ = grpc.SupportPackageIsVersion4 +const _ = grpc.SupportPackageIsVersion6 // ManagementServiceClient is the client API for ManagementService service. // @@ -13887,6 +22511,8 @@ type ManagementServiceClient interface { GetUserAddress(ctx context.Context, in *UserID, opts ...grpc.CallOption) (*UserAddressView, error) UpdateUserAddress(ctx context.Context, in *UpdateUserAddressRequest, opts ...grpc.CallOption) (*UserAddress, error) UpdateUserMachine(ctx context.Context, in *UpdateMachineRequest, opts ...grpc.CallOption) (*MachineResponse, error) + SearchUserExternalIDPs(ctx context.Context, in *ExternalIDPSearchRequest, opts ...grpc.CallOption) (*ExternalIDPSearchResponse, error) + RemoveExternalIDP(ctx context.Context, in *ExternalIDPRemoveRequest, opts ...grpc.CallOption) (*empty.Empty, error) GetUserMfas(ctx context.Context, in *UserID, opts ...grpc.CallOption) (*MultiFactors, error) // Sends an Notification (Email/SMS) with a password reset Link SendSetPasswordNotification(ctx context.Context, in *SetPasswordNotificationRequest, opts ...grpc.CallOption) (*empty.Empty, error) @@ -14005,10 +22631,10 @@ type ManagementServiceClient interface { } type managementServiceClient struct { - cc *grpc.ClientConn + cc grpc.ClientConnInterface } -func NewManagementServiceClient(cc *grpc.ClientConn) ManagementServiceClient { +func NewManagementServiceClient(cc grpc.ClientConnInterface) ManagementServiceClient { return &managementServiceClient{cc} } @@ -14309,6 +22935,24 @@ func (c *managementServiceClient) UpdateUserMachine(ctx context.Context, in *Upd return out, nil } +func (c *managementServiceClient) SearchUserExternalIDPs(ctx context.Context, in *ExternalIDPSearchRequest, opts ...grpc.CallOption) (*ExternalIDPSearchResponse, error) { + out := new(ExternalIDPSearchResponse) + err := c.cc.Invoke(ctx, "/caos.zitadel.management.api.v1.ManagementService/SearchUserExternalIDPs", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *managementServiceClient) RemoveExternalIDP(ctx context.Context, in *ExternalIDPRemoveRequest, opts ...grpc.CallOption) (*empty.Empty, error) { + out := new(empty.Empty) + err := c.cc.Invoke(ctx, "/caos.zitadel.management.api.v1.ManagementService/RemoveExternalIDP", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *managementServiceClient) GetUserMfas(ctx context.Context, in *UserID, opts ...grpc.CallOption) (*MultiFactors, error) { out := new(MultiFactors) err := c.cc.Invoke(ctx, "/caos.zitadel.management.api.v1.ManagementService/GetUserMfas", in, out, opts...) @@ -15249,6 +23893,8 @@ type ManagementServiceServer interface { GetUserAddress(context.Context, *UserID) (*UserAddressView, error) UpdateUserAddress(context.Context, *UpdateUserAddressRequest) (*UserAddress, error) UpdateUserMachine(context.Context, *UpdateMachineRequest) (*MachineResponse, error) + SearchUserExternalIDPs(context.Context, *ExternalIDPSearchRequest) (*ExternalIDPSearchResponse, error) + RemoveExternalIDP(context.Context, *ExternalIDPRemoveRequest) (*empty.Empty, error) GetUserMfas(context.Context, *UserID) (*MultiFactors, error) // Sends an Notification (Email/SMS) with a password reset Link SendSetPasswordNotification(context.Context, *SetPasswordNotificationRequest) (*empty.Empty, error) @@ -15370,403 +24016,409 @@ type ManagementServiceServer interface { type UnimplementedManagementServiceServer struct { } -func (*UnimplementedManagementServiceServer) Healthz(ctx context.Context, req *empty.Empty) (*empty.Empty, error) { +func (*UnimplementedManagementServiceServer) Healthz(context.Context, *empty.Empty) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method Healthz not implemented") } -func (*UnimplementedManagementServiceServer) Ready(ctx context.Context, req *empty.Empty) (*empty.Empty, error) { +func (*UnimplementedManagementServiceServer) Ready(context.Context, *empty.Empty) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method Ready not implemented") } -func (*UnimplementedManagementServiceServer) Validate(ctx context.Context, req *empty.Empty) (*_struct.Struct, error) { +func (*UnimplementedManagementServiceServer) Validate(context.Context, *empty.Empty) (*_struct.Struct, error) { return nil, status.Errorf(codes.Unimplemented, "method Validate not implemented") } -func (*UnimplementedManagementServiceServer) GetZitadelDocs(ctx context.Context, req *empty.Empty) (*ZitadelDocs, error) { +func (*UnimplementedManagementServiceServer) GetZitadelDocs(context.Context, *empty.Empty) (*ZitadelDocs, error) { return nil, status.Errorf(codes.Unimplemented, "method GetZitadelDocs not implemented") } -func (*UnimplementedManagementServiceServer) GetIam(ctx context.Context, req *empty.Empty) (*Iam, error) { +func (*UnimplementedManagementServiceServer) GetIam(context.Context, *empty.Empty) (*Iam, error) { return nil, status.Errorf(codes.Unimplemented, "method GetIam not implemented") } -func (*UnimplementedManagementServiceServer) IsUserUnique(ctx context.Context, req *UniqueUserRequest) (*UniqueUserResponse, error) { +func (*UnimplementedManagementServiceServer) IsUserUnique(context.Context, *UniqueUserRequest) (*UniqueUserResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method IsUserUnique not implemented") } -func (*UnimplementedManagementServiceServer) GetUserByID(ctx context.Context, req *UserID) (*UserView, error) { +func (*UnimplementedManagementServiceServer) GetUserByID(context.Context, *UserID) (*UserView, error) { return nil, status.Errorf(codes.Unimplemented, "method GetUserByID not implemented") } -func (*UnimplementedManagementServiceServer) GetUserByLoginNameGlobal(ctx context.Context, req *LoginName) (*UserView, error) { +func (*UnimplementedManagementServiceServer) GetUserByLoginNameGlobal(context.Context, *LoginName) (*UserView, error) { return nil, status.Errorf(codes.Unimplemented, "method GetUserByLoginNameGlobal not implemented") } -func (*UnimplementedManagementServiceServer) SearchUsers(ctx context.Context, req *UserSearchRequest) (*UserSearchResponse, error) { +func (*UnimplementedManagementServiceServer) SearchUsers(context.Context, *UserSearchRequest) (*UserSearchResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SearchUsers not implemented") } -func (*UnimplementedManagementServiceServer) CreateUser(ctx context.Context, req *CreateUserRequest) (*UserResponse, error) { +func (*UnimplementedManagementServiceServer) CreateUser(context.Context, *CreateUserRequest) (*UserResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method CreateUser not implemented") } -func (*UnimplementedManagementServiceServer) DeactivateUser(ctx context.Context, req *UserID) (*UserResponse, error) { +func (*UnimplementedManagementServiceServer) DeactivateUser(context.Context, *UserID) (*UserResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method DeactivateUser not implemented") } -func (*UnimplementedManagementServiceServer) ReactivateUser(ctx context.Context, req *UserID) (*UserResponse, error) { +func (*UnimplementedManagementServiceServer) ReactivateUser(context.Context, *UserID) (*UserResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ReactivateUser not implemented") } -func (*UnimplementedManagementServiceServer) LockUser(ctx context.Context, req *UserID) (*UserResponse, error) { +func (*UnimplementedManagementServiceServer) LockUser(context.Context, *UserID) (*UserResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method LockUser not implemented") } -func (*UnimplementedManagementServiceServer) UnlockUser(ctx context.Context, req *UserID) (*UserResponse, error) { +func (*UnimplementedManagementServiceServer) UnlockUser(context.Context, *UserID) (*UserResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method UnlockUser not implemented") } -func (*UnimplementedManagementServiceServer) DeleteUser(ctx context.Context, req *UserID) (*empty.Empty, error) { +func (*UnimplementedManagementServiceServer) DeleteUser(context.Context, *UserID) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method DeleteUser not implemented") } -func (*UnimplementedManagementServiceServer) UserChanges(ctx context.Context, req *ChangeRequest) (*Changes, error) { +func (*UnimplementedManagementServiceServer) UserChanges(context.Context, *ChangeRequest) (*Changes, error) { return nil, status.Errorf(codes.Unimplemented, "method UserChanges not implemented") } -func (*UnimplementedManagementServiceServer) AddMachineKey(ctx context.Context, req *AddMachineKeyRequest) (*AddMachineKeyResponse, error) { +func (*UnimplementedManagementServiceServer) AddMachineKey(context.Context, *AddMachineKeyRequest) (*AddMachineKeyResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method AddMachineKey not implemented") } -func (*UnimplementedManagementServiceServer) DeleteMachineKey(ctx context.Context, req *MachineKeyIDRequest) (*empty.Empty, error) { +func (*UnimplementedManagementServiceServer) DeleteMachineKey(context.Context, *MachineKeyIDRequest) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method DeleteMachineKey not implemented") } -func (*UnimplementedManagementServiceServer) SearchMachineKeys(ctx context.Context, req *MachineKeySearchRequest) (*MachineKeySearchResponse, error) { +func (*UnimplementedManagementServiceServer) SearchMachineKeys(context.Context, *MachineKeySearchRequest) (*MachineKeySearchResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SearchMachineKeys not implemented") } -func (*UnimplementedManagementServiceServer) GetMachineKey(ctx context.Context, req *MachineKeyIDRequest) (*MachineKeyView, error) { +func (*UnimplementedManagementServiceServer) GetMachineKey(context.Context, *MachineKeyIDRequest) (*MachineKeyView, error) { return nil, status.Errorf(codes.Unimplemented, "method GetMachineKey not implemented") } -func (*UnimplementedManagementServiceServer) GetUserProfile(ctx context.Context, req *UserID) (*UserProfileView, error) { +func (*UnimplementedManagementServiceServer) GetUserProfile(context.Context, *UserID) (*UserProfileView, error) { return nil, status.Errorf(codes.Unimplemented, "method GetUserProfile not implemented") } -func (*UnimplementedManagementServiceServer) UpdateUserProfile(ctx context.Context, req *UpdateUserProfileRequest) (*UserProfile, error) { +func (*UnimplementedManagementServiceServer) UpdateUserProfile(context.Context, *UpdateUserProfileRequest) (*UserProfile, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateUserProfile not implemented") } -func (*UnimplementedManagementServiceServer) GetUserEmail(ctx context.Context, req *UserID) (*UserEmailView, error) { +func (*UnimplementedManagementServiceServer) GetUserEmail(context.Context, *UserID) (*UserEmailView, error) { return nil, status.Errorf(codes.Unimplemented, "method GetUserEmail not implemented") } -func (*UnimplementedManagementServiceServer) ChangeUserUserName(ctx context.Context, req *UpdateUserUserNameRequest) (*empty.Empty, error) { +func (*UnimplementedManagementServiceServer) ChangeUserUserName(context.Context, *UpdateUserUserNameRequest) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method ChangeUserUserName not implemented") } -func (*UnimplementedManagementServiceServer) ChangeUserEmail(ctx context.Context, req *UpdateUserEmailRequest) (*UserEmail, error) { +func (*UnimplementedManagementServiceServer) ChangeUserEmail(context.Context, *UpdateUserEmailRequest) (*UserEmail, error) { return nil, status.Errorf(codes.Unimplemented, "method ChangeUserEmail not implemented") } -func (*UnimplementedManagementServiceServer) ResendEmailVerificationMail(ctx context.Context, req *UserID) (*empty.Empty, error) { +func (*UnimplementedManagementServiceServer) ResendEmailVerificationMail(context.Context, *UserID) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method ResendEmailVerificationMail not implemented") } -func (*UnimplementedManagementServiceServer) GetUserPhone(ctx context.Context, req *UserID) (*UserPhoneView, error) { +func (*UnimplementedManagementServiceServer) GetUserPhone(context.Context, *UserID) (*UserPhoneView, error) { return nil, status.Errorf(codes.Unimplemented, "method GetUserPhone not implemented") } -func (*UnimplementedManagementServiceServer) ChangeUserPhone(ctx context.Context, req *UpdateUserPhoneRequest) (*UserPhone, error) { +func (*UnimplementedManagementServiceServer) ChangeUserPhone(context.Context, *UpdateUserPhoneRequest) (*UserPhone, error) { return nil, status.Errorf(codes.Unimplemented, "method ChangeUserPhone not implemented") } -func (*UnimplementedManagementServiceServer) RemoveUserPhone(ctx context.Context, req *UserID) (*empty.Empty, error) { +func (*UnimplementedManagementServiceServer) RemoveUserPhone(context.Context, *UserID) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method RemoveUserPhone not implemented") } -func (*UnimplementedManagementServiceServer) ResendPhoneVerificationCode(ctx context.Context, req *UserID) (*empty.Empty, error) { +func (*UnimplementedManagementServiceServer) ResendPhoneVerificationCode(context.Context, *UserID) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method ResendPhoneVerificationCode not implemented") } -func (*UnimplementedManagementServiceServer) GetUserAddress(ctx context.Context, req *UserID) (*UserAddressView, error) { +func (*UnimplementedManagementServiceServer) GetUserAddress(context.Context, *UserID) (*UserAddressView, error) { return nil, status.Errorf(codes.Unimplemented, "method GetUserAddress not implemented") } -func (*UnimplementedManagementServiceServer) UpdateUserAddress(ctx context.Context, req *UpdateUserAddressRequest) (*UserAddress, error) { +func (*UnimplementedManagementServiceServer) UpdateUserAddress(context.Context, *UpdateUserAddressRequest) (*UserAddress, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateUserAddress not implemented") } -func (*UnimplementedManagementServiceServer) UpdateUserMachine(ctx context.Context, req *UpdateMachineRequest) (*MachineResponse, error) { +func (*UnimplementedManagementServiceServer) UpdateUserMachine(context.Context, *UpdateMachineRequest) (*MachineResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateUserMachine not implemented") } -func (*UnimplementedManagementServiceServer) GetUserMfas(ctx context.Context, req *UserID) (*MultiFactors, error) { +func (*UnimplementedManagementServiceServer) SearchUserExternalIDPs(context.Context, *ExternalIDPSearchRequest) (*ExternalIDPSearchResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SearchUserExternalIDPs not implemented") +} +func (*UnimplementedManagementServiceServer) RemoveExternalIDP(context.Context, *ExternalIDPRemoveRequest) (*empty.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method RemoveExternalIDP not implemented") +} +func (*UnimplementedManagementServiceServer) GetUserMfas(context.Context, *UserID) (*MultiFactors, error) { return nil, status.Errorf(codes.Unimplemented, "method GetUserMfas not implemented") } -func (*UnimplementedManagementServiceServer) SendSetPasswordNotification(ctx context.Context, req *SetPasswordNotificationRequest) (*empty.Empty, error) { +func (*UnimplementedManagementServiceServer) SendSetPasswordNotification(context.Context, *SetPasswordNotificationRequest) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method SendSetPasswordNotification not implemented") } -func (*UnimplementedManagementServiceServer) SetInitialPassword(ctx context.Context, req *PasswordRequest) (*empty.Empty, error) { +func (*UnimplementedManagementServiceServer) SetInitialPassword(context.Context, *PasswordRequest) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method SetInitialPassword not implemented") } -func (*UnimplementedManagementServiceServer) SearchUserMemberships(ctx context.Context, req *UserMembershipSearchRequest) (*UserMembershipSearchResponse, error) { +func (*UnimplementedManagementServiceServer) SearchUserMemberships(context.Context, *UserMembershipSearchRequest) (*UserMembershipSearchResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SearchUserMemberships not implemented") } -func (*UnimplementedManagementServiceServer) GetPasswordComplexityPolicy(ctx context.Context, req *empty.Empty) (*PasswordComplexityPolicy, error) { +func (*UnimplementedManagementServiceServer) GetPasswordComplexityPolicy(context.Context, *empty.Empty) (*PasswordComplexityPolicy, error) { return nil, status.Errorf(codes.Unimplemented, "method GetPasswordComplexityPolicy not implemented") } -func (*UnimplementedManagementServiceServer) GetDefaultPasswordComplexityPolicy(ctx context.Context, req *empty.Empty) (*PasswordComplexityPolicy, error) { +func (*UnimplementedManagementServiceServer) GetDefaultPasswordComplexityPolicy(context.Context, *empty.Empty) (*PasswordComplexityPolicy, error) { return nil, status.Errorf(codes.Unimplemented, "method GetDefaultPasswordComplexityPolicy not implemented") } -func (*UnimplementedManagementServiceServer) CreatePasswordComplexityPolicy(ctx context.Context, req *PasswordComplexityPolicyCreate) (*PasswordComplexityPolicy, error) { +func (*UnimplementedManagementServiceServer) CreatePasswordComplexityPolicy(context.Context, *PasswordComplexityPolicyCreate) (*PasswordComplexityPolicy, error) { return nil, status.Errorf(codes.Unimplemented, "method CreatePasswordComplexityPolicy not implemented") } -func (*UnimplementedManagementServiceServer) UpdatePasswordComplexityPolicy(ctx context.Context, req *PasswordComplexityPolicyUpdate) (*PasswordComplexityPolicy, error) { +func (*UnimplementedManagementServiceServer) UpdatePasswordComplexityPolicy(context.Context, *PasswordComplexityPolicyUpdate) (*PasswordComplexityPolicy, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdatePasswordComplexityPolicy not implemented") } -func (*UnimplementedManagementServiceServer) DeletePasswordComplexityPolicy(ctx context.Context, req *PasswordComplexityPolicyID) (*empty.Empty, error) { +func (*UnimplementedManagementServiceServer) DeletePasswordComplexityPolicy(context.Context, *PasswordComplexityPolicyID) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method DeletePasswordComplexityPolicy not implemented") } -func (*UnimplementedManagementServiceServer) GetPasswordAgePolicy(ctx context.Context, req *empty.Empty) (*PasswordAgePolicy, error) { +func (*UnimplementedManagementServiceServer) GetPasswordAgePolicy(context.Context, *empty.Empty) (*PasswordAgePolicy, error) { return nil, status.Errorf(codes.Unimplemented, "method GetPasswordAgePolicy not implemented") } -func (*UnimplementedManagementServiceServer) CreatePasswordAgePolicy(ctx context.Context, req *PasswordAgePolicyCreate) (*PasswordAgePolicy, error) { +func (*UnimplementedManagementServiceServer) CreatePasswordAgePolicy(context.Context, *PasswordAgePolicyCreate) (*PasswordAgePolicy, error) { return nil, status.Errorf(codes.Unimplemented, "method CreatePasswordAgePolicy not implemented") } -func (*UnimplementedManagementServiceServer) UpdatePasswordAgePolicy(ctx context.Context, req *PasswordAgePolicyUpdate) (*PasswordAgePolicy, error) { +func (*UnimplementedManagementServiceServer) UpdatePasswordAgePolicy(context.Context, *PasswordAgePolicyUpdate) (*PasswordAgePolicy, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdatePasswordAgePolicy not implemented") } -func (*UnimplementedManagementServiceServer) DeletePasswordAgePolicy(ctx context.Context, req *PasswordAgePolicyID) (*empty.Empty, error) { +func (*UnimplementedManagementServiceServer) DeletePasswordAgePolicy(context.Context, *PasswordAgePolicyID) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method DeletePasswordAgePolicy not implemented") } -func (*UnimplementedManagementServiceServer) GetPasswordLockoutPolicy(ctx context.Context, req *empty.Empty) (*PasswordLockoutPolicy, error) { +func (*UnimplementedManagementServiceServer) GetPasswordLockoutPolicy(context.Context, *empty.Empty) (*PasswordLockoutPolicy, error) { return nil, status.Errorf(codes.Unimplemented, "method GetPasswordLockoutPolicy not implemented") } -func (*UnimplementedManagementServiceServer) CreatePasswordLockoutPolicy(ctx context.Context, req *PasswordLockoutPolicyCreate) (*PasswordLockoutPolicy, error) { +func (*UnimplementedManagementServiceServer) CreatePasswordLockoutPolicy(context.Context, *PasswordLockoutPolicyCreate) (*PasswordLockoutPolicy, error) { return nil, status.Errorf(codes.Unimplemented, "method CreatePasswordLockoutPolicy not implemented") } -func (*UnimplementedManagementServiceServer) UpdatePasswordLockoutPolicy(ctx context.Context, req *PasswordLockoutPolicyUpdate) (*PasswordLockoutPolicy, error) { +func (*UnimplementedManagementServiceServer) UpdatePasswordLockoutPolicy(context.Context, *PasswordLockoutPolicyUpdate) (*PasswordLockoutPolicy, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdatePasswordLockoutPolicy not implemented") } -func (*UnimplementedManagementServiceServer) DeletePasswordLockoutPolicy(ctx context.Context, req *PasswordLockoutPolicyID) (*empty.Empty, error) { +func (*UnimplementedManagementServiceServer) DeletePasswordLockoutPolicy(context.Context, *PasswordLockoutPolicyID) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method DeletePasswordLockoutPolicy not implemented") } -func (*UnimplementedManagementServiceServer) CreateOrg(ctx context.Context, req *OrgCreateRequest) (*Org, error) { +func (*UnimplementedManagementServiceServer) CreateOrg(context.Context, *OrgCreateRequest) (*Org, error) { return nil, status.Errorf(codes.Unimplemented, "method CreateOrg not implemented") } -func (*UnimplementedManagementServiceServer) OrgChanges(ctx context.Context, req *ChangeRequest) (*Changes, error) { +func (*UnimplementedManagementServiceServer) OrgChanges(context.Context, *ChangeRequest) (*Changes, error) { return nil, status.Errorf(codes.Unimplemented, "method OrgChanges not implemented") } -func (*UnimplementedManagementServiceServer) GetMyOrg(ctx context.Context, req *empty.Empty) (*OrgView, error) { +func (*UnimplementedManagementServiceServer) GetMyOrg(context.Context, *empty.Empty) (*OrgView, error) { return nil, status.Errorf(codes.Unimplemented, "method GetMyOrg not implemented") } -func (*UnimplementedManagementServiceServer) GetOrgByDomainGlobal(ctx context.Context, req *Domain) (*OrgView, error) { +func (*UnimplementedManagementServiceServer) GetOrgByDomainGlobal(context.Context, *Domain) (*OrgView, error) { return nil, status.Errorf(codes.Unimplemented, "method GetOrgByDomainGlobal not implemented") } -func (*UnimplementedManagementServiceServer) DeactivateMyOrg(ctx context.Context, req *empty.Empty) (*Org, error) { +func (*UnimplementedManagementServiceServer) DeactivateMyOrg(context.Context, *empty.Empty) (*Org, error) { return nil, status.Errorf(codes.Unimplemented, "method DeactivateMyOrg not implemented") } -func (*UnimplementedManagementServiceServer) ReactivateMyOrg(ctx context.Context, req *empty.Empty) (*Org, error) { +func (*UnimplementedManagementServiceServer) ReactivateMyOrg(context.Context, *empty.Empty) (*Org, error) { return nil, status.Errorf(codes.Unimplemented, "method ReactivateMyOrg not implemented") } -func (*UnimplementedManagementServiceServer) SearchMyOrgDomains(ctx context.Context, req *OrgDomainSearchRequest) (*OrgDomainSearchResponse, error) { +func (*UnimplementedManagementServiceServer) SearchMyOrgDomains(context.Context, *OrgDomainSearchRequest) (*OrgDomainSearchResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SearchMyOrgDomains not implemented") } -func (*UnimplementedManagementServiceServer) AddMyOrgDomain(ctx context.Context, req *AddOrgDomainRequest) (*OrgDomain, error) { +func (*UnimplementedManagementServiceServer) AddMyOrgDomain(context.Context, *AddOrgDomainRequest) (*OrgDomain, error) { return nil, status.Errorf(codes.Unimplemented, "method AddMyOrgDomain not implemented") } -func (*UnimplementedManagementServiceServer) GenerateMyOrgDomainValidation(ctx context.Context, req *OrgDomainValidationRequest) (*OrgDomainValidationResponse, error) { +func (*UnimplementedManagementServiceServer) GenerateMyOrgDomainValidation(context.Context, *OrgDomainValidationRequest) (*OrgDomainValidationResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GenerateMyOrgDomainValidation not implemented") } -func (*UnimplementedManagementServiceServer) ValidateMyOrgDomain(ctx context.Context, req *ValidateOrgDomainRequest) (*empty.Empty, error) { +func (*UnimplementedManagementServiceServer) ValidateMyOrgDomain(context.Context, *ValidateOrgDomainRequest) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method ValidateMyOrgDomain not implemented") } -func (*UnimplementedManagementServiceServer) SetMyPrimaryOrgDomain(ctx context.Context, req *PrimaryOrgDomainRequest) (*empty.Empty, error) { +func (*UnimplementedManagementServiceServer) SetMyPrimaryOrgDomain(context.Context, *PrimaryOrgDomainRequest) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method SetMyPrimaryOrgDomain not implemented") } -func (*UnimplementedManagementServiceServer) RemoveMyOrgDomain(ctx context.Context, req *RemoveOrgDomainRequest) (*empty.Empty, error) { +func (*UnimplementedManagementServiceServer) RemoveMyOrgDomain(context.Context, *RemoveOrgDomainRequest) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method RemoveMyOrgDomain not implemented") } -func (*UnimplementedManagementServiceServer) GetMyOrgIamPolicy(ctx context.Context, req *empty.Empty) (*OrgIamPolicy, error) { +func (*UnimplementedManagementServiceServer) GetMyOrgIamPolicy(context.Context, *empty.Empty) (*OrgIamPolicy, error) { return nil, status.Errorf(codes.Unimplemented, "method GetMyOrgIamPolicy not implemented") } -func (*UnimplementedManagementServiceServer) GetOrgMemberRoles(ctx context.Context, req *empty.Empty) (*OrgMemberRoles, error) { +func (*UnimplementedManagementServiceServer) GetOrgMemberRoles(context.Context, *empty.Empty) (*OrgMemberRoles, error) { return nil, status.Errorf(codes.Unimplemented, "method GetOrgMemberRoles not implemented") } -func (*UnimplementedManagementServiceServer) AddMyOrgMember(ctx context.Context, req *AddOrgMemberRequest) (*OrgMember, error) { +func (*UnimplementedManagementServiceServer) AddMyOrgMember(context.Context, *AddOrgMemberRequest) (*OrgMember, error) { return nil, status.Errorf(codes.Unimplemented, "method AddMyOrgMember not implemented") } -func (*UnimplementedManagementServiceServer) ChangeMyOrgMember(ctx context.Context, req *ChangeOrgMemberRequest) (*OrgMember, error) { +func (*UnimplementedManagementServiceServer) ChangeMyOrgMember(context.Context, *ChangeOrgMemberRequest) (*OrgMember, error) { return nil, status.Errorf(codes.Unimplemented, "method ChangeMyOrgMember not implemented") } -func (*UnimplementedManagementServiceServer) RemoveMyOrgMember(ctx context.Context, req *RemoveOrgMemberRequest) (*empty.Empty, error) { +func (*UnimplementedManagementServiceServer) RemoveMyOrgMember(context.Context, *RemoveOrgMemberRequest) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method RemoveMyOrgMember not implemented") } -func (*UnimplementedManagementServiceServer) SearchMyOrgMembers(ctx context.Context, req *OrgMemberSearchRequest) (*OrgMemberSearchResponse, error) { +func (*UnimplementedManagementServiceServer) SearchMyOrgMembers(context.Context, *OrgMemberSearchRequest) (*OrgMemberSearchResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SearchMyOrgMembers not implemented") } -func (*UnimplementedManagementServiceServer) ProjectChanges(ctx context.Context, req *ChangeRequest) (*Changes, error) { +func (*UnimplementedManagementServiceServer) ProjectChanges(context.Context, *ChangeRequest) (*Changes, error) { return nil, status.Errorf(codes.Unimplemented, "method ProjectChanges not implemented") } -func (*UnimplementedManagementServiceServer) SearchProjects(ctx context.Context, req *ProjectSearchRequest) (*ProjectSearchResponse, error) { +func (*UnimplementedManagementServiceServer) SearchProjects(context.Context, *ProjectSearchRequest) (*ProjectSearchResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SearchProjects not implemented") } -func (*UnimplementedManagementServiceServer) ProjectByID(ctx context.Context, req *ProjectID) (*ProjectView, error) { +func (*UnimplementedManagementServiceServer) ProjectByID(context.Context, *ProjectID) (*ProjectView, error) { return nil, status.Errorf(codes.Unimplemented, "method ProjectByID not implemented") } -func (*UnimplementedManagementServiceServer) CreateProject(ctx context.Context, req *ProjectCreateRequest) (*Project, error) { +func (*UnimplementedManagementServiceServer) CreateProject(context.Context, *ProjectCreateRequest) (*Project, error) { return nil, status.Errorf(codes.Unimplemented, "method CreateProject not implemented") } -func (*UnimplementedManagementServiceServer) UpdateProject(ctx context.Context, req *ProjectUpdateRequest) (*Project, error) { +func (*UnimplementedManagementServiceServer) UpdateProject(context.Context, *ProjectUpdateRequest) (*Project, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateProject not implemented") } -func (*UnimplementedManagementServiceServer) DeactivateProject(ctx context.Context, req *ProjectID) (*Project, error) { +func (*UnimplementedManagementServiceServer) DeactivateProject(context.Context, *ProjectID) (*Project, error) { return nil, status.Errorf(codes.Unimplemented, "method DeactivateProject not implemented") } -func (*UnimplementedManagementServiceServer) ReactivateProject(ctx context.Context, req *ProjectID) (*Project, error) { +func (*UnimplementedManagementServiceServer) ReactivateProject(context.Context, *ProjectID) (*Project, error) { return nil, status.Errorf(codes.Unimplemented, "method ReactivateProject not implemented") } -func (*UnimplementedManagementServiceServer) RemoveProject(ctx context.Context, req *ProjectID) (*empty.Empty, error) { +func (*UnimplementedManagementServiceServer) RemoveProject(context.Context, *ProjectID) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method RemoveProject not implemented") } -func (*UnimplementedManagementServiceServer) SearchGrantedProjects(ctx context.Context, req *GrantedProjectSearchRequest) (*ProjectGrantSearchResponse, error) { +func (*UnimplementedManagementServiceServer) SearchGrantedProjects(context.Context, *GrantedProjectSearchRequest) (*ProjectGrantSearchResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SearchGrantedProjects not implemented") } -func (*UnimplementedManagementServiceServer) GetGrantedProjectByID(ctx context.Context, req *ProjectGrantID) (*ProjectGrantView, error) { +func (*UnimplementedManagementServiceServer) GetGrantedProjectByID(context.Context, *ProjectGrantID) (*ProjectGrantView, error) { return nil, status.Errorf(codes.Unimplemented, "method GetGrantedProjectByID not implemented") } -func (*UnimplementedManagementServiceServer) GetProjectMemberRoles(ctx context.Context, req *empty.Empty) (*ProjectMemberRoles, error) { +func (*UnimplementedManagementServiceServer) GetProjectMemberRoles(context.Context, *empty.Empty) (*ProjectMemberRoles, error) { return nil, status.Errorf(codes.Unimplemented, "method GetProjectMemberRoles not implemented") } -func (*UnimplementedManagementServiceServer) SearchProjectMembers(ctx context.Context, req *ProjectMemberSearchRequest) (*ProjectMemberSearchResponse, error) { +func (*UnimplementedManagementServiceServer) SearchProjectMembers(context.Context, *ProjectMemberSearchRequest) (*ProjectMemberSearchResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SearchProjectMembers not implemented") } -func (*UnimplementedManagementServiceServer) AddProjectMember(ctx context.Context, req *ProjectMemberAdd) (*ProjectMember, error) { +func (*UnimplementedManagementServiceServer) AddProjectMember(context.Context, *ProjectMemberAdd) (*ProjectMember, error) { return nil, status.Errorf(codes.Unimplemented, "method AddProjectMember not implemented") } -func (*UnimplementedManagementServiceServer) ChangeProjectMember(ctx context.Context, req *ProjectMemberChange) (*ProjectMember, error) { +func (*UnimplementedManagementServiceServer) ChangeProjectMember(context.Context, *ProjectMemberChange) (*ProjectMember, error) { return nil, status.Errorf(codes.Unimplemented, "method ChangeProjectMember not implemented") } -func (*UnimplementedManagementServiceServer) RemoveProjectMember(ctx context.Context, req *ProjectMemberRemove) (*empty.Empty, error) { +func (*UnimplementedManagementServiceServer) RemoveProjectMember(context.Context, *ProjectMemberRemove) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method RemoveProjectMember not implemented") } -func (*UnimplementedManagementServiceServer) SearchProjectRoles(ctx context.Context, req *ProjectRoleSearchRequest) (*ProjectRoleSearchResponse, error) { +func (*UnimplementedManagementServiceServer) SearchProjectRoles(context.Context, *ProjectRoleSearchRequest) (*ProjectRoleSearchResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SearchProjectRoles not implemented") } -func (*UnimplementedManagementServiceServer) AddProjectRole(ctx context.Context, req *ProjectRoleAdd) (*ProjectRole, error) { +func (*UnimplementedManagementServiceServer) AddProjectRole(context.Context, *ProjectRoleAdd) (*ProjectRole, error) { return nil, status.Errorf(codes.Unimplemented, "method AddProjectRole not implemented") } -func (*UnimplementedManagementServiceServer) BulkAddProjectRole(ctx context.Context, req *ProjectRoleAddBulk) (*empty.Empty, error) { +func (*UnimplementedManagementServiceServer) BulkAddProjectRole(context.Context, *ProjectRoleAddBulk) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method BulkAddProjectRole not implemented") } -func (*UnimplementedManagementServiceServer) ChangeProjectRole(ctx context.Context, req *ProjectRoleChange) (*ProjectRole, error) { +func (*UnimplementedManagementServiceServer) ChangeProjectRole(context.Context, *ProjectRoleChange) (*ProjectRole, error) { return nil, status.Errorf(codes.Unimplemented, "method ChangeProjectRole not implemented") } -func (*UnimplementedManagementServiceServer) RemoveProjectRole(ctx context.Context, req *ProjectRoleRemove) (*empty.Empty, error) { +func (*UnimplementedManagementServiceServer) RemoveProjectRole(context.Context, *ProjectRoleRemove) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method RemoveProjectRole not implemented") } -func (*UnimplementedManagementServiceServer) SearchApplications(ctx context.Context, req *ApplicationSearchRequest) (*ApplicationSearchResponse, error) { +func (*UnimplementedManagementServiceServer) SearchApplications(context.Context, *ApplicationSearchRequest) (*ApplicationSearchResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SearchApplications not implemented") } -func (*UnimplementedManagementServiceServer) ApplicationByID(ctx context.Context, req *ApplicationID) (*ApplicationView, error) { +func (*UnimplementedManagementServiceServer) ApplicationByID(context.Context, *ApplicationID) (*ApplicationView, error) { return nil, status.Errorf(codes.Unimplemented, "method ApplicationByID not implemented") } -func (*UnimplementedManagementServiceServer) ApplicationChanges(ctx context.Context, req *ChangeRequest) (*Changes, error) { +func (*UnimplementedManagementServiceServer) ApplicationChanges(context.Context, *ChangeRequest) (*Changes, error) { return nil, status.Errorf(codes.Unimplemented, "method ApplicationChanges not implemented") } -func (*UnimplementedManagementServiceServer) CreateOIDCApplication(ctx context.Context, req *OIDCApplicationCreate) (*Application, error) { +func (*UnimplementedManagementServiceServer) CreateOIDCApplication(context.Context, *OIDCApplicationCreate) (*Application, error) { return nil, status.Errorf(codes.Unimplemented, "method CreateOIDCApplication not implemented") } -func (*UnimplementedManagementServiceServer) UpdateApplication(ctx context.Context, req *ApplicationUpdate) (*Application, error) { +func (*UnimplementedManagementServiceServer) UpdateApplication(context.Context, *ApplicationUpdate) (*Application, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateApplication not implemented") } -func (*UnimplementedManagementServiceServer) DeactivateApplication(ctx context.Context, req *ApplicationID) (*Application, error) { +func (*UnimplementedManagementServiceServer) DeactivateApplication(context.Context, *ApplicationID) (*Application, error) { return nil, status.Errorf(codes.Unimplemented, "method DeactivateApplication not implemented") } -func (*UnimplementedManagementServiceServer) ReactivateApplication(ctx context.Context, req *ApplicationID) (*Application, error) { +func (*UnimplementedManagementServiceServer) ReactivateApplication(context.Context, *ApplicationID) (*Application, error) { return nil, status.Errorf(codes.Unimplemented, "method ReactivateApplication not implemented") } -func (*UnimplementedManagementServiceServer) RemoveApplication(ctx context.Context, req *ApplicationID) (*empty.Empty, error) { +func (*UnimplementedManagementServiceServer) RemoveApplication(context.Context, *ApplicationID) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method RemoveApplication not implemented") } -func (*UnimplementedManagementServiceServer) UpdateApplicationOIDCConfig(ctx context.Context, req *OIDCConfigUpdate) (*OIDCConfig, error) { +func (*UnimplementedManagementServiceServer) UpdateApplicationOIDCConfig(context.Context, *OIDCConfigUpdate) (*OIDCConfig, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateApplicationOIDCConfig not implemented") } -func (*UnimplementedManagementServiceServer) RegenerateOIDCClientSecret(ctx context.Context, req *ApplicationID) (*ClientSecret, error) { +func (*UnimplementedManagementServiceServer) RegenerateOIDCClientSecret(context.Context, *ApplicationID) (*ClientSecret, error) { return nil, status.Errorf(codes.Unimplemented, "method RegenerateOIDCClientSecret not implemented") } -func (*UnimplementedManagementServiceServer) SearchProjectGrants(ctx context.Context, req *ProjectGrantSearchRequest) (*ProjectGrantSearchResponse, error) { +func (*UnimplementedManagementServiceServer) SearchProjectGrants(context.Context, *ProjectGrantSearchRequest) (*ProjectGrantSearchResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SearchProjectGrants not implemented") } -func (*UnimplementedManagementServiceServer) ProjectGrantByID(ctx context.Context, req *ProjectGrantID) (*ProjectGrantView, error) { +func (*UnimplementedManagementServiceServer) ProjectGrantByID(context.Context, *ProjectGrantID) (*ProjectGrantView, error) { return nil, status.Errorf(codes.Unimplemented, "method ProjectGrantByID not implemented") } -func (*UnimplementedManagementServiceServer) CreateProjectGrant(ctx context.Context, req *ProjectGrantCreate) (*ProjectGrant, error) { +func (*UnimplementedManagementServiceServer) CreateProjectGrant(context.Context, *ProjectGrantCreate) (*ProjectGrant, error) { return nil, status.Errorf(codes.Unimplemented, "method CreateProjectGrant not implemented") } -func (*UnimplementedManagementServiceServer) UpdateProjectGrant(ctx context.Context, req *ProjectGrantUpdate) (*ProjectGrant, error) { +func (*UnimplementedManagementServiceServer) UpdateProjectGrant(context.Context, *ProjectGrantUpdate) (*ProjectGrant, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateProjectGrant not implemented") } -func (*UnimplementedManagementServiceServer) DeactivateProjectGrant(ctx context.Context, req *ProjectGrantID) (*ProjectGrant, error) { +func (*UnimplementedManagementServiceServer) DeactivateProjectGrant(context.Context, *ProjectGrantID) (*ProjectGrant, error) { return nil, status.Errorf(codes.Unimplemented, "method DeactivateProjectGrant not implemented") } -func (*UnimplementedManagementServiceServer) ReactivateProjectGrant(ctx context.Context, req *ProjectGrantID) (*ProjectGrant, error) { +func (*UnimplementedManagementServiceServer) ReactivateProjectGrant(context.Context, *ProjectGrantID) (*ProjectGrant, error) { return nil, status.Errorf(codes.Unimplemented, "method ReactivateProjectGrant not implemented") } -func (*UnimplementedManagementServiceServer) RemoveProjectGrant(ctx context.Context, req *ProjectGrantID) (*empty.Empty, error) { +func (*UnimplementedManagementServiceServer) RemoveProjectGrant(context.Context, *ProjectGrantID) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method RemoveProjectGrant not implemented") } -func (*UnimplementedManagementServiceServer) GetProjectGrantMemberRoles(ctx context.Context, req *empty.Empty) (*ProjectGrantMemberRoles, error) { +func (*UnimplementedManagementServiceServer) GetProjectGrantMemberRoles(context.Context, *empty.Empty) (*ProjectGrantMemberRoles, error) { return nil, status.Errorf(codes.Unimplemented, "method GetProjectGrantMemberRoles not implemented") } -func (*UnimplementedManagementServiceServer) SearchProjectGrantMembers(ctx context.Context, req *ProjectGrantMemberSearchRequest) (*ProjectGrantMemberSearchResponse, error) { +func (*UnimplementedManagementServiceServer) SearchProjectGrantMembers(context.Context, *ProjectGrantMemberSearchRequest) (*ProjectGrantMemberSearchResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SearchProjectGrantMembers not implemented") } -func (*UnimplementedManagementServiceServer) AddProjectGrantMember(ctx context.Context, req *ProjectGrantMemberAdd) (*ProjectGrantMember, error) { +func (*UnimplementedManagementServiceServer) AddProjectGrantMember(context.Context, *ProjectGrantMemberAdd) (*ProjectGrantMember, error) { return nil, status.Errorf(codes.Unimplemented, "method AddProjectGrantMember not implemented") } -func (*UnimplementedManagementServiceServer) ChangeProjectGrantMember(ctx context.Context, req *ProjectGrantMemberChange) (*ProjectGrantMember, error) { +func (*UnimplementedManagementServiceServer) ChangeProjectGrantMember(context.Context, *ProjectGrantMemberChange) (*ProjectGrantMember, error) { return nil, status.Errorf(codes.Unimplemented, "method ChangeProjectGrantMember not implemented") } -func (*UnimplementedManagementServiceServer) RemoveProjectGrantMember(ctx context.Context, req *ProjectGrantMemberRemove) (*empty.Empty, error) { +func (*UnimplementedManagementServiceServer) RemoveProjectGrantMember(context.Context, *ProjectGrantMemberRemove) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method RemoveProjectGrantMember not implemented") } -func (*UnimplementedManagementServiceServer) SearchUserGrants(ctx context.Context, req *UserGrantSearchRequest) (*UserGrantSearchResponse, error) { +func (*UnimplementedManagementServiceServer) SearchUserGrants(context.Context, *UserGrantSearchRequest) (*UserGrantSearchResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SearchUserGrants not implemented") } -func (*UnimplementedManagementServiceServer) UserGrantByID(ctx context.Context, req *UserGrantID) (*UserGrantView, error) { +func (*UnimplementedManagementServiceServer) UserGrantByID(context.Context, *UserGrantID) (*UserGrantView, error) { return nil, status.Errorf(codes.Unimplemented, "method UserGrantByID not implemented") } -func (*UnimplementedManagementServiceServer) CreateUserGrant(ctx context.Context, req *UserGrantCreate) (*UserGrant, error) { +func (*UnimplementedManagementServiceServer) CreateUserGrant(context.Context, *UserGrantCreate) (*UserGrant, error) { return nil, status.Errorf(codes.Unimplemented, "method CreateUserGrant not implemented") } -func (*UnimplementedManagementServiceServer) UpdateUserGrant(ctx context.Context, req *UserGrantUpdate) (*UserGrant, error) { +func (*UnimplementedManagementServiceServer) UpdateUserGrant(context.Context, *UserGrantUpdate) (*UserGrant, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateUserGrant not implemented") } -func (*UnimplementedManagementServiceServer) DeactivateUserGrant(ctx context.Context, req *UserGrantID) (*UserGrant, error) { +func (*UnimplementedManagementServiceServer) DeactivateUserGrant(context.Context, *UserGrantID) (*UserGrant, error) { return nil, status.Errorf(codes.Unimplemented, "method DeactivateUserGrant not implemented") } -func (*UnimplementedManagementServiceServer) ReactivateUserGrant(ctx context.Context, req *UserGrantID) (*UserGrant, error) { +func (*UnimplementedManagementServiceServer) ReactivateUserGrant(context.Context, *UserGrantID) (*UserGrant, error) { return nil, status.Errorf(codes.Unimplemented, "method ReactivateUserGrant not implemented") } -func (*UnimplementedManagementServiceServer) RemoveUserGrant(ctx context.Context, req *UserGrantID) (*empty.Empty, error) { +func (*UnimplementedManagementServiceServer) RemoveUserGrant(context.Context, *UserGrantID) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method RemoveUserGrant not implemented") } -func (*UnimplementedManagementServiceServer) BulkRemoveUserGrant(ctx context.Context, req *UserGrantRemoveBulk) (*empty.Empty, error) { +func (*UnimplementedManagementServiceServer) BulkRemoveUserGrant(context.Context, *UserGrantRemoveBulk) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method BulkRemoveUserGrant not implemented") } -func (*UnimplementedManagementServiceServer) IdpByID(ctx context.Context, req *IdpID) (*IdpView, error) { +func (*UnimplementedManagementServiceServer) IdpByID(context.Context, *IdpID) (*IdpView, error) { return nil, status.Errorf(codes.Unimplemented, "method IdpByID not implemented") } -func (*UnimplementedManagementServiceServer) CreateOidcIdp(ctx context.Context, req *OidcIdpConfigCreate) (*Idp, error) { +func (*UnimplementedManagementServiceServer) CreateOidcIdp(context.Context, *OidcIdpConfigCreate) (*Idp, error) { return nil, status.Errorf(codes.Unimplemented, "method CreateOidcIdp not implemented") } -func (*UnimplementedManagementServiceServer) UpdateIdpConfig(ctx context.Context, req *IdpUpdate) (*Idp, error) { +func (*UnimplementedManagementServiceServer) UpdateIdpConfig(context.Context, *IdpUpdate) (*Idp, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateIdpConfig not implemented") } -func (*UnimplementedManagementServiceServer) DeactivateIdpConfig(ctx context.Context, req *IdpID) (*Idp, error) { +func (*UnimplementedManagementServiceServer) DeactivateIdpConfig(context.Context, *IdpID) (*Idp, error) { return nil, status.Errorf(codes.Unimplemented, "method DeactivateIdpConfig not implemented") } -func (*UnimplementedManagementServiceServer) ReactivateIdpConfig(ctx context.Context, req *IdpID) (*Idp, error) { +func (*UnimplementedManagementServiceServer) ReactivateIdpConfig(context.Context, *IdpID) (*Idp, error) { return nil, status.Errorf(codes.Unimplemented, "method ReactivateIdpConfig not implemented") } -func (*UnimplementedManagementServiceServer) RemoveIdpConfig(ctx context.Context, req *IdpID) (*empty.Empty, error) { +func (*UnimplementedManagementServiceServer) RemoveIdpConfig(context.Context, *IdpID) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method RemoveIdpConfig not implemented") } -func (*UnimplementedManagementServiceServer) UpdateOidcIdpConfig(ctx context.Context, req *OidcIdpConfigUpdate) (*OidcIdpConfig, error) { +func (*UnimplementedManagementServiceServer) UpdateOidcIdpConfig(context.Context, *OidcIdpConfigUpdate) (*OidcIdpConfig, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateOidcIdpConfig not implemented") } -func (*UnimplementedManagementServiceServer) SearchIdps(ctx context.Context, req *IdpSearchRequest) (*IdpSearchResponse, error) { +func (*UnimplementedManagementServiceServer) SearchIdps(context.Context, *IdpSearchRequest) (*IdpSearchResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SearchIdps not implemented") } -func (*UnimplementedManagementServiceServer) GetLoginPolicy(ctx context.Context, req *empty.Empty) (*LoginPolicyView, error) { +func (*UnimplementedManagementServiceServer) GetLoginPolicy(context.Context, *empty.Empty) (*LoginPolicyView, error) { return nil, status.Errorf(codes.Unimplemented, "method GetLoginPolicy not implemented") } -func (*UnimplementedManagementServiceServer) CreateLoginPolicy(ctx context.Context, req *LoginPolicyAdd) (*LoginPolicy, error) { +func (*UnimplementedManagementServiceServer) CreateLoginPolicy(context.Context, *LoginPolicyAdd) (*LoginPolicy, error) { return nil, status.Errorf(codes.Unimplemented, "method CreateLoginPolicy not implemented") } -func (*UnimplementedManagementServiceServer) UpdateLoginPolicy(ctx context.Context, req *LoginPolicy) (*LoginPolicy, error) { +func (*UnimplementedManagementServiceServer) UpdateLoginPolicy(context.Context, *LoginPolicy) (*LoginPolicy, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateLoginPolicy not implemented") } -func (*UnimplementedManagementServiceServer) RemoveLoginPolicy(ctx context.Context, req *empty.Empty) (*empty.Empty, error) { +func (*UnimplementedManagementServiceServer) RemoveLoginPolicy(context.Context, *empty.Empty) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method RemoveLoginPolicy not implemented") } -func (*UnimplementedManagementServiceServer) GetLoginPolicyIdpProviders(ctx context.Context, req *IdpProviderSearchRequest) (*IdpProviderSearchResponse, error) { +func (*UnimplementedManagementServiceServer) GetLoginPolicyIdpProviders(context.Context, *IdpProviderSearchRequest) (*IdpProviderSearchResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetLoginPolicyIdpProviders not implemented") } -func (*UnimplementedManagementServiceServer) AddIdpProviderToLoginPolicy(ctx context.Context, req *IdpProviderAdd) (*IdpProvider, error) { +func (*UnimplementedManagementServiceServer) AddIdpProviderToLoginPolicy(context.Context, *IdpProviderAdd) (*IdpProvider, error) { return nil, status.Errorf(codes.Unimplemented, "method AddIdpProviderToLoginPolicy not implemented") } -func (*UnimplementedManagementServiceServer) RemoveIdpProviderFromLoginPolicy(ctx context.Context, req *IdpProviderID) (*empty.Empty, error) { +func (*UnimplementedManagementServiceServer) RemoveIdpProviderFromLoginPolicy(context.Context, *IdpProviderID) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method RemoveIdpProviderFromLoginPolicy not implemented") } @@ -16368,6 +25020,42 @@ func _ManagementService_UpdateUserMachine_Handler(srv interface{}, ctx context.C return interceptor(ctx, in, info, handler) } +func _ManagementService_SearchUserExternalIDPs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ExternalIDPSearchRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ManagementServiceServer).SearchUserExternalIDPs(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/caos.zitadel.management.api.v1.ManagementService/SearchUserExternalIDPs", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ManagementServiceServer).SearchUserExternalIDPs(ctx, req.(*ExternalIDPSearchRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ManagementService_RemoveExternalIDP_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ExternalIDPRemoveRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ManagementServiceServer).RemoveExternalIDP(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/caos.zitadel.management.api.v1.ManagementService/RemoveExternalIDP", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ManagementServiceServer).RemoveExternalIDP(ctx, req.(*ExternalIDPRemoveRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _ManagementService_GetUserMfas_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(UserID) if err := dec(in); err != nil { @@ -18304,6 +26992,14 @@ var _ManagementService_serviceDesc = grpc.ServiceDesc{ MethodName: "UpdateUserMachine", Handler: _ManagementService_UpdateUserMachine_Handler, }, + { + MethodName: "SearchUserExternalIDPs", + Handler: _ManagementService_SearchUserExternalIDPs_Handler, + }, + { + MethodName: "RemoveExternalIDP", + Handler: _ManagementService_RemoveExternalIDP_Handler, + }, { MethodName: "GetUserMfas", Handler: _ManagementService_GetUserMfas_Handler, diff --git a/pkg/grpc/management/management.pb.gw.go b/pkg/grpc/management/management.pb.gw.go index 6745c11ebc..e8e0fb6cc5 100644 --- a/pkg/grpc/management/management.pb.gw.go +++ b/pkg/grpc/management/management.pb.gw.go @@ -146,7 +146,10 @@ func local_request_ManagementService_IsUserUnique_0(ctx context.Context, marshal var protoReq UniqueUserRequest var metadata runtime.ServerMetadata - if err := runtime.PopulateQueryParameters(&protoReq, req.URL.Query(), filter_ManagementService_IsUserUnique_0); err != nil { + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ManagementService_IsUserUnique_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } @@ -233,7 +236,10 @@ func local_request_ManagementService_GetUserByLoginNameGlobal_0(ctx context.Cont var protoReq LoginName var metadata runtime.ServerMetadata - if err := runtime.PopulateQueryParameters(&protoReq, req.URL.Query(), filter_ManagementService_GetUserByLoginNameGlobal_0); err != nil { + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ManagementService_GetUserByLoginNameGlobal_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } @@ -704,7 +710,10 @@ func local_request_ManagementService_UserChanges_0(ctx context.Context, marshale return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.URL.Query(), filter_ManagementService_UserChanges_0); err != nil { + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ManagementService_UserChanges_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } @@ -1243,7 +1252,10 @@ func local_request_ManagementService_ChangeUserUserName_0(ctx context.Context, m return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.URL.Query(), filter_ManagementService_ChangeUserUserName_0); err != nil { + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ManagementService_ChangeUserUserName_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } @@ -1834,6 +1846,174 @@ func local_request_ManagementService_UpdateUserMachine_0(ctx context.Context, ma } +func request_ManagementService_SearchUserExternalIDPs_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ExternalIDPSearchRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["user_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "user_id") + } + + protoReq.UserId, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "user_id", err) + } + + msg, err := client.SearchUserExternalIDPs(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_ManagementService_SearchUserExternalIDPs_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ExternalIDPSearchRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["user_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "user_id") + } + + protoReq.UserId, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "user_id", err) + } + + msg, err := server.SearchUserExternalIDPs(ctx, &protoReq) + return msg, metadata, err + +} + +func request_ManagementService_RemoveExternalIDP_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ExternalIDPRemoveRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["user_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "user_id") + } + + protoReq.UserId, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "user_id", err) + } + + val, ok = pathParams["idp_config_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "idp_config_id") + } + + protoReq.IdpConfigId, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "idp_config_id", err) + } + + val, ok = pathParams["external_user_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "external_user_id") + } + + protoReq.ExternalUserId, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "external_user_id", err) + } + + msg, err := client.RemoveExternalIDP(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_ManagementService_RemoveExternalIDP_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ExternalIDPRemoveRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["user_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "user_id") + } + + protoReq.UserId, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "user_id", err) + } + + val, ok = pathParams["idp_config_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "idp_config_id") + } + + protoReq.IdpConfigId, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "idp_config_id", err) + } + + val, ok = pathParams["external_user_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "external_user_id") + } + + protoReq.ExternalUserId, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "external_user_id", err) + } + + msg, err := server.RemoveExternalIDP(ctx, &protoReq) + return msg, metadata, err + +} + func request_ManagementService_GetUserMfas_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq UserID var metadata runtime.ServerMetadata @@ -2226,7 +2406,10 @@ func local_request_ManagementService_DeletePasswordComplexityPolicy_0(ctx contex var protoReq PasswordComplexityPolicyID var metadata runtime.ServerMetadata - if err := runtime.PopulateQueryParameters(&protoReq, req.URL.Query(), filter_ManagementService_DeletePasswordComplexityPolicy_0); err != nil { + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ManagementService_DeletePasswordComplexityPolicy_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } @@ -2345,7 +2528,10 @@ func local_request_ManagementService_DeletePasswordAgePolicy_0(ctx context.Conte var protoReq PasswordAgePolicyID var metadata runtime.ServerMetadata - if err := runtime.PopulateQueryParameters(&protoReq, req.URL.Query(), filter_ManagementService_DeletePasswordAgePolicy_0); err != nil { + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ManagementService_DeletePasswordAgePolicy_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } @@ -2464,7 +2650,10 @@ func local_request_ManagementService_DeletePasswordLockoutPolicy_0(ctx context.C var protoReq PasswordLockoutPolicyID var metadata runtime.ServerMetadata - if err := runtime.PopulateQueryParameters(&protoReq, req.URL.Query(), filter_ManagementService_DeletePasswordLockoutPolicy_0); err != nil { + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ManagementService_DeletePasswordLockoutPolicy_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } @@ -2567,7 +2756,10 @@ func local_request_ManagementService_OrgChanges_0(ctx context.Context, marshaler return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.URL.Query(), filter_ManagementService_OrgChanges_0); err != nil { + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ManagementService_OrgChanges_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } @@ -2618,7 +2810,10 @@ func local_request_ManagementService_GetOrgByDomainGlobal_0(ctx context.Context, var protoReq Domain var metadata runtime.ServerMetadata - if err := runtime.PopulateQueryParameters(&protoReq, req.URL.Query(), filter_ManagementService_GetOrgByDomainGlobal_0); err != nil { + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ManagementService_GetOrgByDomainGlobal_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } @@ -3299,7 +3494,10 @@ func local_request_ManagementService_ProjectChanges_0(ctx context.Context, marsh return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.URL.Query(), filter_ManagementService_ProjectChanges_0); err != nil { + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ManagementService_ProjectChanges_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } @@ -4736,7 +4934,10 @@ func local_request_ManagementService_ApplicationChanges_0(ctx context.Context, m return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "sec_id", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.URL.Query(), filter_ManagementService_ApplicationChanges_0); err != nil { + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ManagementService_ApplicationChanges_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } @@ -8262,6 +8463,46 @@ func RegisterManagementServiceHandlerServer(ctx context.Context, mux *runtime.Se }) + mux.Handle("POST", pattern_ManagementService_SearchUserExternalIDPs_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_ManagementService_SearchUserExternalIDPs_0(rctx, inboundMarshaler, server, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_ManagementService_SearchUserExternalIDPs_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_ManagementService_RemoveExternalIDP_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_ManagementService_RemoveExternalIDP_0(rctx, inboundMarshaler, server, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_ManagementService_RemoveExternalIDP_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("GET", pattern_ManagementService_GetUserMfas_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -10963,6 +11204,46 @@ func RegisterManagementServiceHandlerClient(ctx context.Context, mux *runtime.Se }) + mux.Handle("POST", pattern_ManagementService_SearchUserExternalIDPs_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_ManagementService_SearchUserExternalIDPs_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_ManagementService_SearchUserExternalIDPs_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_ManagementService_RemoveExternalIDP_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_ManagementService_RemoveExternalIDP_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_ManagementService_RemoveExternalIDP_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("GET", pattern_ManagementService_GetUserMfas_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -13033,6 +13314,10 @@ var ( pattern_ManagementService_UpdateUserMachine_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"users", "id", "machine"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_SearchUserExternalIDPs_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 2, 3}, []string{"users", "user_id", "externalidps", "_search"}, "", runtime.AssumeColonVerbOpt(true))) + + pattern_ManagementService_RemoveExternalIDP_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4}, []string{"users", "user_id", "externalidps", "idp_config_id", "external_user_id"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_GetUserMfas_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"users", "id", "mfas"}, "", runtime.AssumeColonVerbOpt(true))) pattern_ManagementService_SendSetPasswordNotification_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 2, 3}, []string{"users", "id", "password", "_sendsetnotification"}, "", runtime.AssumeColonVerbOpt(true))) @@ -13301,6 +13586,10 @@ var ( forward_ManagementService_UpdateUserMachine_0 = runtime.ForwardResponseMessage + forward_ManagementService_SearchUserExternalIDPs_0 = runtime.ForwardResponseMessage + + forward_ManagementService_RemoveExternalIDP_0 = runtime.ForwardResponseMessage + forward_ManagementService_GetUserMfas_0 = runtime.ForwardResponseMessage forward_ManagementService_SendSetPasswordNotification_0 = runtime.ForwardResponseMessage diff --git a/pkg/grpc/management/management.pb.validate.go b/pkg/grpc/management/management.pb.validate.go index 7edc452aa0..e9eb7cc68d 100644 --- a/pkg/grpc/management/management.pb.validate.go +++ b/pkg/grpc/management/management.pb.validate.go @@ -13618,6 +13618,10 @@ func (m *OidcIdpConfig) Validate() error { // no validation rules for Issuer + // no validation rules for IdpDisplayNameMapping + + // no validation rules for UsernameMapping + return nil } @@ -13713,6 +13717,10 @@ func (m *OidcIdpConfigCreate) Validate() error { } } + // no validation rules for IdpDisplayNameMapping + + // no validation rules for UsernameMapping + return nil } @@ -13803,6 +13811,10 @@ func (m *OidcIdpConfigUpdate) Validate() error { } } + // no validation rules for IdpDisplayNameMapping + + // no validation rules for UsernameMapping + return nil } @@ -14086,6 +14098,10 @@ func (m *OidcIdpConfigView) Validate() error { // no validation rules for Issuer + // no validation rules for IdpDisplayNameMapping + + // no validation rules for UsernameMapping + return nil } @@ -14989,3 +15005,344 @@ var _ interface { Cause() error ErrorName() string } = IdpProviderSearchRequestValidationError{} + +// Validate checks the field values on ExternalIDPSearchRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *ExternalIDPSearchRequest) Validate() error { + if m == nil { + return nil + } + + // no validation rules for Offset + + // no validation rules for Limit + + // no validation rules for UserId + + return nil +} + +// ExternalIDPSearchRequestValidationError is the validation error returned by +// ExternalIDPSearchRequest.Validate if the designated constraints aren't met. +type ExternalIDPSearchRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ExternalIDPSearchRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ExternalIDPSearchRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ExternalIDPSearchRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ExternalIDPSearchRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ExternalIDPSearchRequestValidationError) ErrorName() string { + return "ExternalIDPSearchRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e ExternalIDPSearchRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sExternalIDPSearchRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ExternalIDPSearchRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ExternalIDPSearchRequestValidationError{} + +// Validate checks the field values on ExternalIDPSearchResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *ExternalIDPSearchResponse) Validate() error { + if m == nil { + return nil + } + + // no validation rules for Offset + + // no validation rules for Limit + + // no validation rules for TotalResult + + for idx, item := range m.GetResult() { + _, _ = idx, item + + if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ExternalIDPSearchResponseValidationError{ + field: fmt.Sprintf("Result[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + // no validation rules for ProcessedSequence + + if v, ok := interface{}(m.GetViewTimestamp()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ExternalIDPSearchResponseValidationError{ + field: "ViewTimestamp", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// ExternalIDPSearchResponseValidationError is the validation error returned by +// ExternalIDPSearchResponse.Validate if the designated constraints aren't met. +type ExternalIDPSearchResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ExternalIDPSearchResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ExternalIDPSearchResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ExternalIDPSearchResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ExternalIDPSearchResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ExternalIDPSearchResponseValidationError) ErrorName() string { + return "ExternalIDPSearchResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e ExternalIDPSearchResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sExternalIDPSearchResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ExternalIDPSearchResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ExternalIDPSearchResponseValidationError{} + +// Validate checks the field values on ExternalIDPView with the rules defined +// in the proto definition for this message. If any rules are violated, an +// error is returned. +func (m *ExternalIDPView) Validate() error { + if m == nil { + return nil + } + + // no validation rules for UserId + + // no validation rules for IdpConfigId + + // no validation rules for ExternalUserId + + // no validation rules for IdpName + + // no validation rules for ExternalUserDisplayName + + if v, ok := interface{}(m.GetCreationDate()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ExternalIDPViewValidationError{ + field: "CreationDate", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if v, ok := interface{}(m.GetChangeDate()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ExternalIDPViewValidationError{ + field: "ChangeDate", + reason: "embedded message failed validation", + cause: err, + } + } + } + + return nil +} + +// ExternalIDPViewValidationError is the validation error returned by +// ExternalIDPView.Validate if the designated constraints aren't met. +type ExternalIDPViewValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ExternalIDPViewValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ExternalIDPViewValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ExternalIDPViewValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ExternalIDPViewValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ExternalIDPViewValidationError) ErrorName() string { return "ExternalIDPViewValidationError" } + +// Error satisfies the builtin error interface +func (e ExternalIDPViewValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sExternalIDPView.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ExternalIDPViewValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ExternalIDPViewValidationError{} + +// Validate checks the field values on ExternalIDPRemoveRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *ExternalIDPRemoveRequest) Validate() error { + if m == nil { + return nil + } + + // no validation rules for UserId + + // no validation rules for IdpConfigId + + // no validation rules for ExternalUserId + + return nil +} + +// ExternalIDPRemoveRequestValidationError is the validation error returned by +// ExternalIDPRemoveRequest.Validate if the designated constraints aren't met. +type ExternalIDPRemoveRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ExternalIDPRemoveRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ExternalIDPRemoveRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ExternalIDPRemoveRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ExternalIDPRemoveRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ExternalIDPRemoveRequestValidationError) ErrorName() string { + return "ExternalIDPRemoveRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e ExternalIDPRemoveRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sExternalIDPRemoveRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ExternalIDPRemoveRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ExternalIDPRemoveRequestValidationError{} diff --git a/pkg/grpc/management/mock/management.proto.mock.go b/pkg/grpc/management/mock/management.proto.mock.go index 865602a630..df4a94be84 100644 --- a/pkg/grpc/management/mock/management.proto.mock.go +++ b/pkg/grpc/management/mock/management.proto.mock.go @@ -1697,6 +1697,26 @@ func (mr *MockManagementServiceClientMockRecorder) RemoveApplication(arg0, arg1 return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveApplication", reflect.TypeOf((*MockManagementServiceClient)(nil).RemoveApplication), varargs...) } +// RemoveExternalIDP mocks base method +func (m *MockManagementServiceClient) RemoveExternalIDP(arg0 context.Context, arg1 *management.ExternalIDPRemoveRequest, arg2 ...grpc.CallOption) (*emptypb.Empty, error) { + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "RemoveExternalIDP", varargs...) + ret0, _ := ret[0].(*emptypb.Empty) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// RemoveExternalIDP indicates an expected call of RemoveExternalIDP +func (mr *MockManagementServiceClientMockRecorder) RemoveExternalIDP(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]interface{}{arg0, arg1}, arg2...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveExternalIDP", reflect.TypeOf((*MockManagementServiceClient)(nil).RemoveExternalIDP), varargs...) +} + // RemoveIdpConfig mocks base method func (m *MockManagementServiceClient) RemoveIdpConfig(arg0 context.Context, arg1 *management.IdpID, arg2 ...grpc.CallOption) (*emptypb.Empty, error) { m.ctrl.T.Helper() @@ -2197,6 +2217,26 @@ func (mr *MockManagementServiceClientMockRecorder) SearchProjects(arg0, arg1 int return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SearchProjects", reflect.TypeOf((*MockManagementServiceClient)(nil).SearchProjects), varargs...) } +// SearchUserExternalIDPs mocks base method +func (m *MockManagementServiceClient) SearchUserExternalIDPs(arg0 context.Context, arg1 *management.ExternalIDPSearchRequest, arg2 ...grpc.CallOption) (*management.ExternalIDPSearchResponse, error) { + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "SearchUserExternalIDPs", varargs...) + ret0, _ := ret[0].(*management.ExternalIDPSearchResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// SearchUserExternalIDPs indicates an expected call of SearchUserExternalIDPs +func (mr *MockManagementServiceClientMockRecorder) SearchUserExternalIDPs(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]interface{}{arg0, arg1}, arg2...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SearchUserExternalIDPs", reflect.TypeOf((*MockManagementServiceClient)(nil).SearchUserExternalIDPs), varargs...) +} + // SearchUserGrants mocks base method func (m *MockManagementServiceClient) SearchUserGrants(arg0 context.Context, arg1 *management.UserGrantSearchRequest, arg2 ...grpc.CallOption) (*management.UserGrantSearchResponse, error) { m.ctrl.T.Helper() diff --git a/pkg/grpc/management/proto/management.proto b/pkg/grpc/management/proto/management.proto index f5362492fc..30458fab92 100644 --- a/pkg/grpc/management/proto/management.proto +++ b/pkg/grpc/management/proto/management.proto @@ -369,6 +369,27 @@ rpc GetUserByID(UserID) returns (UserView) { }; } + rpc SearchUserExternalIDPs(ExternalIDPSearchRequest) returns (ExternalIDPSearchResponse) { + option (google.api.http) = { + post: "/users/{user_id}/externalidps/_search" + body: "*" + }; + + option (caos.zitadel.utils.v1.auth_option) = { + permission: "user.read" + }; + } + + rpc RemoveExternalIDP(ExternalIDPRemoveRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/users/{user_id}/externalidps/{idp_config_id}/{external_user_id}" + }; + + option (caos.zitadel.utils.v1.auth_option) = { + permission: "user.write" + }; + } + rpc GetUserMfas(UserID) returns (MultiFactors) { option (google.api.http) = { get: "/users/{id}/mfas" @@ -2898,6 +2919,8 @@ message OidcIdpConfig { string client_secret = 2; string issuer = 3; repeated string scopes = 4; + OIDCMappingField idp_display_name_mapping = 5; + OIDCMappingField username_mapping = 6; } enum IdpState { @@ -2906,6 +2929,12 @@ enum IdpState { IDPCONFIGSTATE_INACTIVE = 2; } +enum OIDCMappingField { + OIDCMAPPINGFIELD_UNSPECIFIED = 0; + OIDCMAPPINGFIELD_PREFERRED_USERNAME = 1; + OIDCMAPPINGFIELD_EMAIL = 2; +} + message OidcIdpConfigCreate { string name = 1 [(validate.rules).string = {min_len: 1, max_len: 200}]; bytes logo_src = 2; @@ -2913,6 +2942,8 @@ message OidcIdpConfigCreate { string client_secret = 4 [(validate.rules).string = {min_len: 1, max_len: 200}]; string issuer = 5 [(validate.rules).string = {min_len: 1, max_len: 200}]; repeated string scopes = 6; + OIDCMappingField idp_display_name_mapping = 7; + OIDCMappingField username_mapping = 8; } message OidcIdpConfigUpdate { @@ -2921,6 +2952,8 @@ message OidcIdpConfigUpdate { string client_secret = 3; string issuer = 4 [(validate.rules).string = {min_len: 1, max_len: 200}]; repeated string scopes = 5; + OIDCMappingField idp_display_name_mapping = 6; + OIDCMappingField username_mapping = 7; } message IdpSearchResponse { @@ -2950,6 +2983,8 @@ message OidcIdpConfigView { string client_id = 1; string issuer = 2; repeated string scopes = 3; + OIDCMappingField idp_display_name_mapping = 4; + OIDCMappingField username_mapping = 5; } message IdpSearchRequest { @@ -3041,4 +3076,35 @@ enum ProjectType { PROJECTTYPE_UNSPECIFIED = 0; PROJECTTYPE_OWNED = 1; PROJECTTYPE_GRANTED = 2; +} + +message ExternalIDPSearchRequest { + uint64 offset = 1; + uint64 limit = 2; + string user_id = 3; +} + +message ExternalIDPSearchResponse { + uint64 offset = 1; + uint64 limit = 2; + uint64 total_result = 3; + repeated ExternalIDPView result = 4; + uint64 processed_sequence = 5; + google.protobuf.Timestamp view_timestamp = 6; +} + +message ExternalIDPView { + string user_id = 1; + string idp_config_id = 2; + string external_user_id = 3; + string idp_name = 4; + string external_user_display_name = 5; + google.protobuf.Timestamp creation_date = 6; + google.protobuf.Timestamp change_date = 7; +} + +message ExternalIDPRemoveRequest { + string user_id = 1; + string idp_config_id = 2; + string external_user_id = 3; } \ No newline at end of file