From db1d8f4efe9f7076de9a996faf33a55e6235e053 Mon Sep 17 00:00:00 2001 From: Fabi <38692350+fgerschwiler@users.noreply.github.com> Date: Wed, 26 Aug 2020 09:56:23 +0200 Subject: [PATCH] feat: idp and login policy configurations (#619) * feat: oidc config * fix: oidc configurations * feat: oidc idp config * feat: add oidc config test * fix: tests * fix: tests * feat: translate new events * feat: idp eventstore * feat: idp eventstore * fix: tests * feat: command side idp * feat: query side idp * feat: idp config on org * fix: tests * feat: authz idp on org * feat: org idps * feat: login policy * feat: login policy * feat: login policy * feat: add idp func on login policy * feat: add validation to loginpolicy and idp provider * feat: add default login policy * feat: login policy on org * feat: login policy on org * fix: id config handlers * fix: id config handlers * fix: create idp on org * fix: create idp on org * fix: not existing idp config * fix: default login policy * fix: add login policy on org * fix: idp provider search on org * fix: test * fix: remove idp on org * fix: test * fix: test * fix: remove admin idp * fix: logo src as byte * fix: migration * fix: tests * Update internal/iam/repository/eventsourcing/iam.go Co-authored-by: Silvan * Update internal/iam/repository/eventsourcing/iam_test.go Co-authored-by: Silvan * Update internal/iam/repository/eventsourcing/iam_test.go Co-authored-by: Silvan * Update internal/iam/repository/eventsourcing/model/login_policy.go Co-authored-by: Silvan * Update internal/iam/repository/eventsourcing/model/login_policy.go Co-authored-by: Silvan * Update internal/org/repository/eventsourcing/org_test.go Co-authored-by: Silvan * Update internal/iam/repository/eventsourcing/model/login_policy_test.go Co-authored-by: Silvan * Update internal/iam/repository/eventsourcing/model/login_policy_test.go Co-authored-by: Silvan * fix: pr comments * fix: tests * Update types.go * fix: merge request changes * fix: reduce optimization Co-authored-by: Silvan Co-authored-by: Livio Amstutz --- cmd/zitadel/authz.yaml | 12 + cmd/zitadel/caos_local.sh | 1 + cmd/zitadel/setup.yaml | 4 + cmd/zitadel/system-defaults.yaml | 2 + docs/local.md | 1 + .../eventsourcing/eventstore/iam.go | 172 +- .../eventsourcing/eventstore/org.go | 21 +- .../eventsourcing/eventstore/user.go | 4 +- .../eventsourcing/handler/handler.go | 8 +- .../eventsourcing/handler/iam_member.go | 36 +- .../eventsourcing/handler/idp_config.go | 79 + .../eventsourcing/handler/idp_providers.go | 114 + .../eventsourcing/handler/login_policy.go | 66 + .../repository/eventsourcing/handler/user.go | 12 +- .../repository/eventsourcing/repository.go | 12 +- .../eventsourcing/spooler/spooler.go | 5 +- .../eventsourcing/view/iam_member.go | 32 +- .../eventsourcing/view/idp_configs.go | 53 + .../eventsourcing/view/idp_providers.go | 65 + .../eventsourcing/view/login_policies.go | 48 + internal/admin/repository/iam.go | 28 +- internal/admin/repository/org.go | 6 +- internal/admin/repository/repository.go | 2 +- internal/api/api.go | 2 +- internal/api/grpc/admin/iam_member.go | 10 +- .../api/grpc/admin/iam_member_converter.go | 44 +- internal/api/grpc/admin/idp_config.go | 69 + .../api/grpc/admin/idp_config_converter.go | 180 + internal/api/grpc/admin/login_policy.go | 44 + .../api/grpc/admin/login_policy_converter.go | 87 + internal/api/grpc/admin/org_converter.go | 6 +- internal/api/grpc/admin/server.go | 2 +- internal/api/grpc/management/iam.go | 2 +- internal/api/grpc/management/iam_converter.go | 4 +- internal/api/grpc/management/idp_config.go | 69 + .../grpc/management/idp_config_converter.go | 183 + internal/api/grpc/management/login_policy.go | 57 + .../grpc/management/login_policy_converter.go | 131 + internal/api/grpc/management/org_converter.go | 2 +- .../eventsourcing/eventstore/iam.go | 10 +- .../eventsourcing/eventstore/org.go | 6 +- .../eventsourcing/eventstore/user.go | 2 +- .../eventsourcing/handler/handler.go | 2 +- .../repository/eventsourcing/handler/user.go | 12 +- .../eventsourcing/handler/user_grant.go | 16 +- .../repository/eventsourcing/repository.go | 12 +- internal/auth/repository/iam.go | 4 +- internal/auth/repository/org.go | 2 +- .../eventsourcing/eventstore/iam.go | 10 +- .../eventstore/token_verifier.go | 8 +- .../eventsourcing/eventstore/user_grant.go | 6 +- .../eventsourcing/handler/handler.go | 2 +- .../eventsourcing/handler/user_grant.go | 16 +- .../repository/eventsourcing/repository.go | 10 +- internal/authz/repository/iam.go | 4 +- internal/authz/repository/repository.go | 2 +- .../config/systemdefaults/system_defaults.go | 25 +- internal/iam/model/iam.go | 25 +- internal/iam/model/iam_member.go | 8 +- internal/iam/model/iam_member_view.go | 36 +- internal/iam/model/idp_config.go | 74 + internal/iam/model/idp_config_view.go | 68 + internal/iam/model/idp_provider_view.go | 59 + internal/iam/model/login_policy.go | 53 + internal/iam/model/login_policy_view.go | 48 + .../iam/repository/eventsourcing/cache.go | 12 +- .../repository/eventsourcing/eventstore.go | 426 +- .../eventsourcing/eventstore_mock_test.go | 91 +- .../eventsourcing/eventstore_test.go | 1082 +- internal/iam/repository/eventsourcing/iam.go | 304 +- .../iam/repository/eventsourcing/iam_test.go | 1050 +- .../iam/repository/eventsourcing/model/iam.go | 83 +- .../eventsourcing/model/iam_member.go | 42 +- .../eventsourcing/model/iam_member_test.go | 36 +- .../eventsourcing/model/iam_test.go | 34 +- .../eventsourcing/model/idp_config.go | 151 + .../eventsourcing/model/idp_config_test.go | 213 + .../eventsourcing/model/login_policy.go | 164 + .../eventsourcing/model/login_policy_test.go | 253 + .../eventsourcing/model/oidc_idp_config.go | 96 + .../model/oidc_idp_config_test.go | 156 + .../repository/eventsourcing/model/types.go | 32 +- .../iam/repository/view/iam_member_view.go | 32 +- .../iam/repository/view/idp_provider_view.go | 78 + internal/iam/repository/view/idp_view.go | 42 + .../iam/repository/view/login_policy_view.go | 32 + .../iam/repository/view/model/iam_member.go | 46 +- .../repository/view/model/iam_member_query.go | 58 +- .../iam/repository/view/model/idp_config.go | 121 + .../repository/view/model/idp_config_query.go | 65 + .../iam/repository/view/model/idp_provider.go | 89 + .../view/model/idp_provider_query.go | 61 + .../iam/repository/view/model/login_policy.go | 84 + .../view/model/login_policy_query.go | 59 + .../eventsourcing/eventstore/iam.go | 8 +- .../eventsourcing/eventstore/org.go | 159 +- .../eventsourcing/eventstore/project.go | 54 +- .../eventsourcing/eventstore/user.go | 17 +- .../eventsourcing/eventstore/user_grant.go | 6 +- .../eventsourcing/handler/handler.go | 8 +- .../eventsourcing/handler/idp_config.go | 82 + .../eventsourcing/handler/idp_providers.go | 120 + .../eventsourcing/handler/login_policy.go | 67 + .../repository/eventsourcing/handler/user.go | 12 +- .../eventsourcing/handler/user_membership.go | 10 +- .../repository/eventsourcing/repository.go | 12 +- .../eventsourcing/spooler/spooler.go | 5 +- .../eventsourcing/view/idp_configs.go | 53 + .../eventsourcing/view/idp_providers.go | 73 + .../eventsourcing/view/login_policies.go | 48 + internal/management/repository/iam.go | 2 +- internal/management/repository/org.go | 20 +- .../eventsourcing/handler/notify_user.go | 12 +- internal/org/model/org.go | 15 +- internal/org/model/org_iam_policy.go | 2 +- .../repository/eventsourcing/eventstore.go | 328 +- .../eventsourcing/eventstore_mock_test.go | 73 +- .../eventsourcing/eventstore_test.go | 1041 + .../repository/eventsourcing/login_policy.go | 169 + .../eventsourcing/login_policy_test.go | 452 + .../eventsourcing/model/idp_config.go | 85 + .../eventsourcing/model/idp_config_test.go | 252 + .../eventsourcing/model/login_policy.go | 49 + .../eventsourcing/model/login_policy_test.go | 210 + .../org/repository/eventsourcing/model/org.go | 80 +- .../eventsourcing/model/org_iam_policy.go | 22 +- .../eventsourcing/model/org_test.go | 7 - .../repository/eventsourcing/model/types.go | 25 +- internal/org/repository/eventsourcing/org.go | 114 + .../eventsourcing/org_iam_policy.go | 10 +- .../eventsourcing/org_iam_policy_test.go | 38 +- .../org/repository/eventsourcing/org_test.go | 581 + internal/setup/config.go | 15 +- internal/setup/setup.go | 50 +- internal/static/i18n/de.yaml | 64 + internal/static/i18n/en.yaml | 64 + .../login/handler/org_iam_policy_handler.go | 2 +- internal/ui/login/handler/register_handler.go | 4 +- internal/user/model/user.go | 2 +- .../repository/eventsourcing/eventstore.go | 20 +- .../eventsourcing/eventstore_test.go | 28 +- .../user/repository/view/model/notify_user.go | 2 +- internal/user/repository/view/model/user.go | 2 +- .../repository/view/model/user_membership.go | 6 +- migrations/cockroach/V1.7__idps.sql | 105 + pkg/grpc/admin/admin.pb.authoptions.go | 65 + pkg/grpc/admin/admin.pb.go | 7077 ++++- pkg/grpc/admin/admin.pb.gw.go | 680 +- pkg/grpc/admin/admin.swagger.json | 775 +- pkg/grpc/admin/mock/admin.proto.mock.go | 260 + pkg/grpc/admin/oneof.go | 6 + pkg/grpc/admin/proto/admin.proto | 282 + .../management/management.pb.authoptions.go | 75 + pkg/grpc/management/management.pb.go | 25092 +++++++++++----- pkg/grpc/management/management.pb.gw.go | 6382 +--- .../management/mock/management.proto.mock.go | 300 + pkg/grpc/management/proto/management.proto | 342 +- 157 files changed, 37510 insertions(+), 15698 deletions(-) create mode 100644 internal/admin/repository/eventsourcing/handler/idp_config.go create mode 100644 internal/admin/repository/eventsourcing/handler/idp_providers.go create mode 100644 internal/admin/repository/eventsourcing/handler/login_policy.go create mode 100644 internal/admin/repository/eventsourcing/view/idp_configs.go create mode 100644 internal/admin/repository/eventsourcing/view/idp_providers.go create mode 100644 internal/admin/repository/eventsourcing/view/login_policies.go create mode 100644 internal/api/grpc/admin/idp_config.go create mode 100644 internal/api/grpc/admin/idp_config_converter.go create mode 100644 internal/api/grpc/admin/login_policy.go create mode 100644 internal/api/grpc/admin/login_policy_converter.go create mode 100644 internal/api/grpc/management/idp_config.go create mode 100644 internal/api/grpc/management/idp_config_converter.go create mode 100644 internal/api/grpc/management/login_policy.go create mode 100644 internal/api/grpc/management/login_policy_converter.go create mode 100644 internal/iam/model/idp_config.go create mode 100644 internal/iam/model/idp_config_view.go create mode 100644 internal/iam/model/idp_provider_view.go create mode 100644 internal/iam/model/login_policy.go create mode 100644 internal/iam/model/login_policy_view.go create mode 100644 internal/iam/repository/eventsourcing/model/idp_config.go create mode 100644 internal/iam/repository/eventsourcing/model/idp_config_test.go create mode 100644 internal/iam/repository/eventsourcing/model/login_policy.go create mode 100644 internal/iam/repository/eventsourcing/model/login_policy_test.go create mode 100644 internal/iam/repository/eventsourcing/model/oidc_idp_config.go create mode 100644 internal/iam/repository/eventsourcing/model/oidc_idp_config_test.go create mode 100644 internal/iam/repository/view/idp_provider_view.go create mode 100644 internal/iam/repository/view/idp_view.go create mode 100644 internal/iam/repository/view/login_policy_view.go create mode 100644 internal/iam/repository/view/model/idp_config.go create mode 100644 internal/iam/repository/view/model/idp_config_query.go create mode 100644 internal/iam/repository/view/model/idp_provider.go create mode 100644 internal/iam/repository/view/model/idp_provider_query.go create mode 100644 internal/iam/repository/view/model/login_policy.go create mode 100644 internal/iam/repository/view/model/login_policy_query.go create mode 100644 internal/management/repository/eventsourcing/handler/idp_config.go create mode 100644 internal/management/repository/eventsourcing/handler/idp_providers.go create mode 100644 internal/management/repository/eventsourcing/handler/login_policy.go create mode 100644 internal/management/repository/eventsourcing/view/idp_configs.go create mode 100644 internal/management/repository/eventsourcing/view/idp_providers.go create mode 100644 internal/management/repository/eventsourcing/view/login_policies.go create mode 100644 internal/org/repository/eventsourcing/login_policy.go create mode 100644 internal/org/repository/eventsourcing/login_policy_test.go create mode 100644 internal/org/repository/eventsourcing/model/idp_config.go create mode 100644 internal/org/repository/eventsourcing/model/idp_config_test.go create mode 100644 internal/org/repository/eventsourcing/model/login_policy.go create mode 100644 internal/org/repository/eventsourcing/model/login_policy_test.go create mode 100644 migrations/cockroach/V1.7__idps.sql create mode 100644 pkg/grpc/admin/oneof.go diff --git a/cmd/zitadel/authz.yaml b/cmd/zitadel/authz.yaml index 4eca193d8..af2120379 100644 --- a/cmd/zitadel/authz.yaml +++ b/cmd/zitadel/authz.yaml @@ -10,12 +10,18 @@ InternalAuthZ: - "iam.member.read" - "iam.member.write" - "iam.member.delete" + - "iam.idp.read" + - "iam.idp.write" + - "iam.idp.delete" - "org.read" - "org.create" - "org.write" - "org.member.read" - "org.member.write" - "org.member.delete" + - "org.idp.read" + - "org.idp.write" + - "org.idp.delete" - "user.read" - "user.write" - "user.delete" @@ -55,8 +61,10 @@ InternalAuthZ: - "iam.read" - "iam.policy.read" - "iam.member.read" + - "iam.idp.read" - "org.read" - "org.member.read" + - "org.idp.read" - "user.read" - "user.grant.read" - "user.membership.read" @@ -77,6 +85,9 @@ InternalAuthZ: - "org.member.read" - "org.member.write" - "org.member.delete" + - "org.idp.read" + - "org.idp.write" + - "org.idp.delete" - "user.read" - "user.write" - "user.delete" @@ -114,6 +125,7 @@ InternalAuthZ: Permissions: - "org.read" - "org.member.read" + - "org.idp.read" - "user.read" - "user.grant.read" - "user.membership.read" diff --git a/cmd/zitadel/caos_local.sh b/cmd/zitadel/caos_local.sh index 1e1febd4a..142a7d250 100755 --- a/cmd/zitadel/caos_local.sh +++ b/cmd/zitadel/caos_local.sh @@ -21,6 +21,7 @@ gopass zitadel-secrets/zitadel/developer/default/keys.yaml > "$BASEDIR/local_key export ZITADEL_KEY_PATH="$BASEDIR/local_keys.yaml" export ZITADEL_USER_VERIFICATION_KEY=UserVerificationKey_1 +export ZITADEL_IDP_CONFIG_VERIFICATION_KEY=IdpConfigVerificationKey_1 export ZITADEL_OTP_VERIFICATION_KEY=OTPVerificationKey_1 export ZITADEL_OIDC_KEYS_ID=OIDCKey_1 export ZITADEL_COOKIE_KEY=CookieKey_1 diff --git a/cmd/zitadel/setup.yaml b/cmd/zitadel/setup.yaml index 37e68fdba..2750b1f45 100644 --- a/cmd/zitadel/setup.yaml +++ b/cmd/zitadel/setup.yaml @@ -25,6 +25,10 @@ Eventstore: SetUp: GlobalOrg: 'Global' IAMProject: 'Zitadel' + DefaultLoginPolicy: + AllowUsernamePassword: true + AllowRegister: true + AllowExternalIdp: true Orgs: - Name: 'Global' Domain: 'global.caos.ch' diff --git a/cmd/zitadel/system-defaults.yaml b/cmd/zitadel/system-defaults.yaml index 1a1b79541..2ecf400e4 100644 --- a/cmd/zitadel/system-defaults.yaml +++ b/cmd/zitadel/system-defaults.yaml @@ -6,6 +6,8 @@ SystemDefaults: DiscoveryEndpoint: '$ZITADEL_ISSUER/.well-known/openid-configuration' UserVerificationKey: EncryptionKeyID: $ZITADEL_USER_VERIFICATION_KEY + IDPConfigVerificationKey: + EncryptionKeyID: $ZITADEL_IDP_CONFIG_VERIFICATION_KEY SecretGenerators: PasswordSaltCost: 14 ClientSecretGenerator: diff --git a/docs/local.md b/docs/local.md index e6585cf30..5850ad8a4 100644 --- a/docs/local.md +++ b/docs/local.md @@ -31,4 +31,5 @@ cockroachdb/cockroach:latest start --insecure #### Should show eventstore, management, admin, auth `show databases;` + \ 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 ea36f97ee..bed72cc18 100644 --- a/internal/admin/repository/eventsourcing/eventstore/iam.go +++ b/internal/admin/repository/eventsourcing/eventstore/iam.go @@ -5,57 +5,61 @@ import ( "github.com/caos/logging" admin_view "github.com/caos/zitadel/internal/admin/repository/eventsourcing/view" "github.com/caos/zitadel/internal/config/systemdefaults" + es_models "github.com/caos/zitadel/internal/eventstore/models" + 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" "strings" iam_model "github.com/caos/zitadel/internal/iam/model" iam_es "github.com/caos/zitadel/internal/iam/repository/eventsourcing" ) -type IamRepository struct { +type IAMRepository struct { SearchLimit uint64 - *iam_es.IamEventstore + *iam_es.IAMEventstore + OrgEvents *org_es.OrgEventstore View *admin_view.View SystemDefaults systemdefaults.SystemDefaults Roles []string } -func (repo *IamRepository) IamMemberByID(ctx context.Context, orgID, userID string) (*iam_model.IamMemberView, error) { - member, err := repo.View.IamMemberByIDs(orgID, userID) +func (repo *IAMRepository) IAMMemberByID(ctx context.Context, orgID, userID string) (*iam_model.IAMMemberView, error) { + member, err := repo.View.IAMMemberByIDs(orgID, userID) if err != nil { return nil, err } - return iam_es_model.IamMemberToModel(member), nil + return iam_es_model.IAMMemberToModel(member), nil } -func (repo *IamRepository) AddIamMember(ctx context.Context, member *iam_model.IamMember) (*iam_model.IamMember, error) { +func (repo *IAMRepository) AddIAMMember(ctx context.Context, member *iam_model.IAMMember) (*iam_model.IAMMember, error) { member.AggregateID = repo.SystemDefaults.IamID - return repo.IamEventstore.AddIamMember(ctx, member) + return repo.IAMEventstore.AddIAMMember(ctx, member) } -func (repo *IamRepository) ChangeIamMember(ctx context.Context, member *iam_model.IamMember) (*iam_model.IamMember, error) { +func (repo *IAMRepository) ChangeIAMMember(ctx context.Context, member *iam_model.IAMMember) (*iam_model.IAMMember, error) { member.AggregateID = repo.SystemDefaults.IamID - return repo.IamEventstore.ChangeIamMember(ctx, member) + return repo.IAMEventstore.ChangeIAMMember(ctx, member) } -func (repo *IamRepository) RemoveIamMember(ctx context.Context, userID string) error { - member := iam_model.NewIamMember(repo.SystemDefaults.IamID, userID) - return repo.IamEventstore.RemoveIamMember(ctx, member) +func (repo *IAMRepository) RemoveIAMMember(ctx context.Context, userID string) error { + member := iam_model.NewIAMMember(repo.SystemDefaults.IamID, userID) + return repo.IAMEventstore.RemoveIAMMember(ctx, member) } -func (repo *IamRepository) SearchIamMembers(ctx context.Context, request *iam_model.IamMemberSearchRequest) (*iam_model.IamMemberSearchResponse, error) { +func (repo *IAMRepository) SearchIAMMembers(ctx context.Context, request *iam_model.IAMMemberSearchRequest) (*iam_model.IAMMemberSearchResponse, error) { request.EnsureLimit(repo.SearchLimit) - sequence, err := repo.View.GetLatestIamMemberSequence() + sequence, err := repo.View.GetLatestIAMMemberSequence() logging.Log("EVENT-Slkci").OnError(err).Warn("could not read latest iam sequence") - members, count, err := repo.View.SearchIamMembers(request) + members, count, err := repo.View.SearchIAMMembers(request) if err != nil { return nil, err } - result := &iam_model.IamMemberSearchResponse{ + result := &iam_model.IAMMemberSearchResponse{ Offset: request.Offset, Limit: request.Limit, - TotalResult: uint64(count), - Result: iam_es_model.IamMembersToModel(members), + TotalResult: count, + Result: iam_es_model.IAMMembersToModel(members), } if err == nil { result.Sequence = sequence.CurrentSequence @@ -64,7 +68,7 @@ func (repo *IamRepository) SearchIamMembers(ctx context.Context, request *iam_mo return result, nil } -func (repo *IamRepository) GetIamMemberRoles() []string { +func (repo *IAMRepository) GetIAMMemberRoles() []string { roles := make([]string, 0) for _, roleMap := range repo.Roles { if strings.HasPrefix(roleMap, "IAM") { @@ -73,3 +77,133 @@ func (repo *IamRepository) GetIamMemberRoles() []string { } return roles } + +func (repo *IAMRepository) IDPConfigByID(ctx context.Context, idpConfigID string) (*iam_model.IDPConfigView, error) { + idp, err := repo.View.IDPConfigByID(idpConfigID) + if err != nil { + return nil, err + } + 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 + return repo.IAMEventstore.AddIDPConfig(ctx, idp) +} + +func (repo *IAMRepository) ChangeIDPConfig(ctx context.Context, idp *iam_model.IDPConfig) (*iam_model.IDPConfig, error) { + idp.AggregateID = repo.SystemDefaults.IamID + return repo.IAMEventstore.ChangeIDPConfig(ctx, idp) +} + +func (repo *IAMRepository) DeactivateIDPConfig(ctx context.Context, idpConfigID string) (*iam_model.IDPConfig, error) { + return repo.IAMEventstore.DeactivateIDPConfig(ctx, repo.SystemDefaults.IamID, idpConfigID) +} + +func (repo *IAMRepository) ReactivateIDPConfig(ctx context.Context, idpConfigID string) (*iam_model.IDPConfig, error) { + return repo.IAMEventstore.ReactivateIDPConfig(ctx, repo.SystemDefaults.IamID, idpConfigID) +} + +func (repo *IAMRepository) RemoveIDPConfig(ctx context.Context, idpConfigID string) error { + aggregates := make([]*es_models.Aggregate, 0) + idp := iam_model.NewIDPConfig(repo.SystemDefaults.IamID, idpConfigID) + _, agg, err := repo.IAMEventstore.PrepareRemoveIDPConfig(ctx, idp) + if err != nil { + return err + } + aggregates = append(aggregates, agg) + + providers, err := repo.View.IDPProvidersByIdpConfigID(idpConfigID) + if err != nil { + return err + } + for _, p := range providers { + if p.AggregateID == repo.SystemDefaults.IamID { + continue + } + provider := &iam_model.IDPProvider{ObjectRoot: es_models.ObjectRoot{AggregateID: p.AggregateID}, IdpConfigID: p.IDPConfigID} + providerAgg := new(es_models.Aggregate) + _, providerAgg, err = repo.OrgEvents.PrepareRemoveIDPProviderFromLoginPolicy(ctx, provider, true) + if err != nil { + return err + } + aggregates = append(aggregates, providerAgg) + } + + return es_sdk.PushAggregates(ctx, repo.Eventstore.PushAggregates, nil, aggregates...) +} + +func (repo *IAMRepository) ChangeOidcIDPConfig(ctx context.Context, oidcConfig *iam_model.OIDCIDPConfig) (*iam_model.OIDCIDPConfig, error) { + oidcConfig.AggregateID = repo.SystemDefaults.IamID + return repo.IAMEventstore.ChangeIDPOIDCConfig(ctx, oidcConfig) +} + +func (repo *IAMRepository) SearchIDPConfigs(ctx context.Context, request *iam_model.IDPConfigSearchRequest) (*iam_model.IDPConfigSearchResponse, error) { + request.EnsureLimit(repo.SearchLimit) + sequence, err := repo.View.GetLatestIDPConfigSequence() + logging.Log("EVENT-Dk8si").OnError(err).Warn("could not read latest idp config sequence") + idps, count, err := repo.View.SearchIDPConfigs(request) + if err != nil { + return nil, err + } + result := &iam_model.IDPConfigSearchResponse{ + Offset: request.Offset, + Limit: request.Limit, + TotalResult: uint64(count), + Result: iam_es_model.IdpConfigViewsToModel(idps), + } + if err == nil { + result.Sequence = sequence.CurrentSequence + result.Timestamp = sequence.CurrentTimestamp + } + return result, nil +} + +func (repo *IAMRepository) GetDefaultLoginPolicy(ctx context.Context) (*iam_model.LoginPolicyView, error) { + policy, err := repo.View.LoginPolicyByAggregateID(repo.SystemDefaults.IamID) + if err != nil { + return nil, err + } + return iam_es_model.LoginPolicyViewToModel(policy), err +} + +func (repo *IAMRepository) AddDefaultLoginPolicy(ctx context.Context, policy *iam_model.LoginPolicy) (*iam_model.LoginPolicy, error) { + policy.AggregateID = repo.SystemDefaults.IamID + return repo.IAMEventstore.AddLoginPolicy(ctx, policy) +} + +func (repo *IAMRepository) ChangeDefaultLoginPolicy(ctx context.Context, policy *iam_model.LoginPolicy) (*iam_model.LoginPolicy, error) { + policy.AggregateID = repo.SystemDefaults.IamID + return repo.IAMEventstore.ChangeLoginPolicy(ctx, policy) +} + +func (repo *IAMRepository) SearchDefaultIDPProviders(ctx context.Context, request *iam_model.IDPProviderSearchRequest) (*iam_model.IDPProviderSearchResponse, error) { + request.EnsureLimit(repo.SearchLimit) + request.AppendAggregateIDQuery(repo.SystemDefaults.IamID) + sequence, err := repo.View.GetLatestIDPProviderSequence() + logging.Log("EVENT-Tuiks").OnError(err).Warn("could not read latest iam sequence") + providers, count, err := repo.View.SearchIDPProviders(request) + if err != nil { + return nil, err + } + result := &iam_model.IDPProviderSearchResponse{ + Offset: request.Offset, + Limit: request.Limit, + TotalResult: count, + Result: iam_es_model.IDPProviderViewsToModel(providers), + } + if err == nil { + result.Sequence = sequence.CurrentSequence + result.Timestamp = sequence.CurrentTimestamp + } + return result, nil +} + +func (repo *IAMRepository) AddIDPProviderToLoginPolicy(ctx context.Context, provider *iam_model.IDPProvider) (*iam_model.IDPProvider, error) { + provider.AggregateID = repo.SystemDefaults.IamID + return repo.IAMEventstore.AddIDPProviderToLoginPolicy(ctx, provider) +} + +func (repo *IAMRepository) RemoveIdpProviderFromIdpProvider(ctx context.Context, provider *iam_model.IDPProvider) error { + provider.AggregateID = repo.SystemDefaults.IamID + return repo.IAMEventstore.RemoveIDPProviderFromLoginPolicy(ctx, provider) +} diff --git a/internal/admin/repository/eventsourcing/eventstore/org.go b/internal/admin/repository/eventsourcing/eventstore/org.go index 7bf7a52c1..2d651001f 100644 --- a/internal/admin/repository/eventsourcing/eventstore/org.go +++ b/internal/admin/repository/eventsourcing/eventstore/org.go @@ -4,9 +4,9 @@ import ( "context" "github.com/caos/logging" - admin_model "github.com/caos/zitadel/internal/admin/model" admin_view "github.com/caos/zitadel/internal/admin/repository/eventsourcing/view" + "github.com/caos/zitadel/internal/config/systemdefaults" "github.com/caos/zitadel/internal/eventstore" es_models "github.com/caos/zitadel/internal/eventstore/models" "github.com/caos/zitadel/internal/eventstore/sdk" @@ -30,7 +30,8 @@ type OrgRepo struct { View *admin_view.View - SearchLimit uint64 + SearchLimit uint64 + SystemDefaults systemdefaults.SystemDefaults } func (repo *OrgRepo) SetUpOrg(ctx context.Context, setUp *admin_model.SetupOrg) (*admin_model.SetupOrg, error) { @@ -38,7 +39,7 @@ func (repo *OrgRepo) SetUpOrg(ctx context.Context, setUp *admin_model.SetupOrg) if err != nil { return nil, err } - orgPolicy, err := repo.OrgEventstore.GetOrgIamPolicy(ctx, policy_model.DefaultPolicy) + orgPolicy, err := repo.OrgEventstore.GetOrgIAMPolicy(ctx, policy_model.DefaultPolicy) if err != nil { return nil, err } @@ -105,18 +106,18 @@ func (repo *OrgRepo) IsOrgUnique(ctx context.Context, name, domain string) (isUn return repo.OrgEventstore.IsOrgUnique(ctx, name, domain) } -func (repo *OrgRepo) GetOrgIamPolicyByID(ctx context.Context, id string) (*org_model.OrgIamPolicy, error) { - return repo.OrgEventstore.GetOrgIamPolicy(ctx, id) +func (repo *OrgRepo) GetOrgIamPolicyByID(ctx context.Context, id string) (*org_model.OrgIAMPolicy, error) { + return repo.OrgEventstore.GetOrgIAMPolicy(ctx, id) } -func (repo *OrgRepo) CreateOrgIamPolicy(ctx context.Context, policy *org_model.OrgIamPolicy) (*org_model.OrgIamPolicy, error) { - return repo.OrgEventstore.AddOrgIamPolicy(ctx, policy) +func (repo *OrgRepo) CreateOrgIamPolicy(ctx context.Context, policy *org_model.OrgIAMPolicy) (*org_model.OrgIAMPolicy, error) { + return repo.OrgEventstore.AddOrgIAMPolicy(ctx, policy) } -func (repo *OrgRepo) ChangeOrgIamPolicy(ctx context.Context, policy *org_model.OrgIamPolicy) (*org_model.OrgIamPolicy, error) { - return repo.OrgEventstore.ChangeOrgIamPolicy(ctx, policy) +func (repo *OrgRepo) ChangeOrgIamPolicy(ctx context.Context, policy *org_model.OrgIAMPolicy) (*org_model.OrgIAMPolicy, error) { + return repo.OrgEventstore.ChangeOrgIAMPolicy(ctx, policy) } func (repo *OrgRepo) RemoveOrgIamPolicy(ctx context.Context, id string) error { - return repo.OrgEventstore.RemoveOrgIamPolicy(ctx, id) + return repo.OrgEventstore.RemoveOrgIAMPolicy(ctx, id) } diff --git a/internal/admin/repository/eventsourcing/eventstore/user.go b/internal/admin/repository/eventsourcing/eventstore/user.go index 685be5636..6fd87412a 100644 --- a/internal/admin/repository/eventsourcing/eventstore/user.go +++ b/internal/admin/repository/eventsourcing/eventstore/user.go @@ -25,7 +25,7 @@ func (repo *UserRepo) CreateUser(ctx context.Context, user *usr_model.User) (*us if err != nil { return nil, err } - orgPolicy, err := repo.OrgEvents.GetOrgIamPolicy(ctx, authz.GetCtxData(ctx).OrgID) + orgPolicy, err := repo.OrgEvents.GetOrgIAMPolicy(ctx, authz.GetCtxData(ctx).OrgID) if err != nil { return nil, err } @@ -41,7 +41,7 @@ func (repo *UserRepo) RegisterUser(ctx context.Context, user *usr_model.User, re if err != nil { return nil, err } - orgPolicy, err := repo.OrgEvents.GetOrgIamPolicy(ctx, policyResourceOwner) + orgPolicy, err := repo.OrgEvents.GetOrgIAMPolicy(ctx, policyResourceOwner) if err != nil { return nil, err } diff --git a/internal/admin/repository/eventsourcing/handler/handler.go b/internal/admin/repository/eventsourcing/handler/handler.go index 79dfb988b..0507ac596 100644 --- a/internal/admin/repository/eventsourcing/handler/handler.go +++ b/internal/admin/repository/eventsourcing/handler/handler.go @@ -1,6 +1,8 @@ package handler import ( + "github.com/caos/zitadel/internal/config/systemdefaults" + iam_event "github.com/caos/zitadel/internal/iam/repository/eventsourcing" "time" "github.com/caos/zitadel/internal/admin/repository/eventsourcing/view" @@ -26,13 +28,17 @@ type handler struct { type EventstoreRepos struct { UserEvents *usr_event.UserEventstore + IamEvents *iam_event.IAMEventstore OrgEvents *org_event.OrgEventstore } -func Register(configs Configs, bulkLimit, errorCount uint64, view *view.View, eventstore eventstore.Eventstore, repos EventstoreRepos) []query.Handler { +func Register(configs Configs, bulkLimit, errorCount uint64, view *view.View, eventstore eventstore.Eventstore, repos EventstoreRepos, defaults systemdefaults.SystemDefaults) []query.Handler { return []query.Handler{ &Org{handler: handler{view, bulkLimit, configs.cycleDuration("Org"), errorCount}}, &IamMember{handler: handler{view, bulkLimit, configs.cycleDuration("IamMember"), errorCount}, userEvents: repos.UserEvents}, + &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("LoginPolicy"), errorCount}, systemDefaults: defaults, iamEvents: repos.IamEvents, orgEvents: repos.OrgEvents}, &User{handler: handler{view, bulkLimit, configs.cycleDuration("User"), errorCount}, eventstore: eventstore, orgEvents: repos.OrgEvents}, } } diff --git a/internal/admin/repository/eventsourcing/handler/iam_member.go b/internal/admin/repository/eventsourcing/handler/iam_member.go index 512914799..2d1cfed17 100644 --- a/internal/admin/repository/eventsourcing/handler/iam_member.go +++ b/internal/admin/repository/eventsourcing/handler/iam_member.go @@ -29,18 +29,18 @@ func (m *IamMember) ViewModel() string { } func (m *IamMember) EventQuery() (*models.SearchQuery, error) { - sequence, err := m.view.GetLatestIamMemberSequence() + sequence, err := m.view.GetLatestIAMMemberSequence() if err != nil { return nil, err } return es_models.NewSearchQuery(). - AggregateTypeFilter(model.IamAggregate, usr_es_model.UserAggregate). + AggregateTypeFilter(model.IAMAggregate, usr_es_model.UserAggregate). LatestSequenceFilter(sequence.CurrentSequence), nil } func (m *IamMember) Reduce(event *models.Event) (err error) { switch event.AggregateType { - case model.IamAggregate: + case model.IAMAggregate: err = m.processIamMember(event) case usr_es_model.UserAggregate: err = m.processUser(event) @@ -49,46 +49,46 @@ func (m *IamMember) Reduce(event *models.Event) (err error) { } func (m *IamMember) processIamMember(event *models.Event) (err error) { - member := new(iam_model.IamMemberView) + member := new(iam_model.IAMMemberView) switch event.Type { - case model.IamMemberAdded: + case model.IAMMemberAdded: member.AppendEvent(event) m.fillData(member) - case model.IamMemberChanged: + case model.IAMMemberChanged: err := member.SetData(event) if err != nil { return err } - member, err = m.view.IamMemberByIDs(event.AggregateID, member.UserID) + member, err = m.view.IAMMemberByIDs(event.AggregateID, member.UserID) if err != nil { return err } member.AppendEvent(event) - case model.IamMemberRemoved: + case model.IAMMemberRemoved: err := member.SetData(event) if err != nil { return err } - return m.view.DeleteIamMember(event.AggregateID, member.UserID, event.Sequence) + return m.view.DeleteIAMMember(event.AggregateID, member.UserID, event.Sequence) default: - return m.view.ProcessedIamMemberSequence(event.Sequence) + return m.view.ProcessedIAMMemberSequence(event.Sequence) } if err != nil { return err } - return m.view.PutIamMember(member, member.Sequence) + return m.view.PutIAMMember(member, member.Sequence) } func (m *IamMember) processUser(event *models.Event) (err error) { switch event.Type { case usr_es_model.UserProfileChanged, usr_es_model.UserEmailChanged: - members, err := m.view.IamMembersByUserID(event.AggregateID) + members, err := m.view.IAMMembersByUserID(event.AggregateID) if err != nil { return err } if len(members) == 0 { - return m.view.ProcessedIamMemberSequence(event.Sequence) + return m.view.ProcessedIAMMemberSequence(event.Sequence) } user, err := m.userEvents.UserByID(context.Background(), event.AggregateID) if err != nil { @@ -96,18 +96,18 @@ func (m *IamMember) processUser(event *models.Event) (err error) { } for _, member := range members { m.fillUserData(member, user) - err = m.view.PutIamMember(member, event.Sequence) + err = m.view.PutIAMMember(member, event.Sequence) if err != nil { return err } } default: - return m.view.ProcessedIamMemberSequence(event.Sequence) + return m.view.ProcessedIAMMemberSequence(event.Sequence) } return nil } -func (m *IamMember) fillData(member *iam_model.IamMemberView) (err error) { +func (m *IamMember) fillData(member *iam_model.IAMMemberView) (err error) { user, err := m.userEvents.UserByID(context.Background(), member.UserID) if err != nil { return err @@ -116,7 +116,7 @@ func (m *IamMember) fillData(member *iam_model.IamMemberView) (err error) { return nil } -func (m *IamMember) fillUserData(member *iam_model.IamMemberView, user *usr_model.User) { +func (m *IamMember) fillUserData(member *iam_model.IAMMemberView, user *usr_model.User) { member.UserName = user.UserName member.FirstName = user.FirstName member.LastName = user.LastName @@ -125,5 +125,5 @@ func (m *IamMember) fillUserData(member *iam_model.IamMemberView, user *usr_mode } func (m *IamMember) OnError(event *models.Event, err error) error { logging.LogWithFields("SPOOL-Ld9ow", "id", event.AggregateID).WithError(err).Warn("something went wrong in iammember handler") - return spooler.HandleError(event, err, m.view.GetLatestIamMemberFailedEvent, m.view.ProcessedIamMemberFailedEvent, m.view.ProcessedIamMemberSequence, m.errorCountUntilSkip) + return spooler.HandleError(event, err, m.view.GetLatestIAMMemberFailedEvent, m.view.ProcessedIAMMemberFailedEvent, m.view.ProcessedIAMMemberSequence, m.errorCountUntilSkip) } diff --git a/internal/admin/repository/eventsourcing/handler/idp_config.go b/internal/admin/repository/eventsourcing/handler/idp_config.go new file mode 100644 index 000000000..1f6500cc0 --- /dev/null +++ b/internal/admin/repository/eventsourcing/handler/idp_config.go @@ -0,0 +1,79 @@ +package handler + +import ( + "github.com/caos/logging" + iam_model "github.com/caos/zitadel/internal/iam/model" + + "github.com/caos/zitadel/internal/eventstore/models" + es_models "github.com/caos/zitadel/internal/eventstore/models" + "github.com/caos/zitadel/internal/eventstore/spooler" + "github.com/caos/zitadel/internal/iam/repository/eventsourcing/model" + iam_view_model "github.com/caos/zitadel/internal/iam/repository/view/model" +) + +type IDPConfig struct { + handler +} + +const ( + idpConfigTable = "adminapi.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.IAMAggregate). + LatestSequenceFilter(sequence.CurrentSequence), nil +} + +func (m *IDPConfig) Reduce(event *models.Event) (err error) { + switch event.AggregateType { + case model.IAMAggregate: + err = m.processIDPConfig(event) + } + return err +} + +func (m *IDPConfig) processIDPConfig(event *models.Event) (err error) { + idp := new(iam_view_model.IDPConfigView) + switch event.Type { + case model.IDPConfigAdded: + err = idp.AppendEvent(iam_model.IDPProviderTypeSystem, event) + case model.IDPConfigChanged, + model.OIDCIDPConfigAdded, + 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(iam_model.IDPProviderTypeSystem, event) + case 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-Mslo9", "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/admin/repository/eventsourcing/handler/idp_providers.go b/internal/admin/repository/eventsourcing/handler/idp_providers.go new file mode 100644 index 000000000..9b0382cbe --- /dev/null +++ b/internal/admin/repository/eventsourcing/handler/idp_providers.go @@ -0,0 +1,114 @@ +package handler + +import ( + "context" + "github.com/caos/logging" + "github.com/caos/zitadel/internal/config/systemdefaults" + "github.com/caos/zitadel/internal/iam/repository/eventsourcing" + org_events "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_events.OrgEventstore +} + +const ( + idpProviderTable = "adminapi.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 + } + config, err = m.iamEvents.GetIDPConfig(context.Background(), provider.AggregateID, config.IDPConfigID) + if err != nil { + return err + } + for _, provider := range providers { + m.fillConfigData(provider, config) + } + return m.view.PutIDPProviders(event.Sequence, providers...) + 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-Msj8c", "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/admin/repository/eventsourcing/handler/login_policy.go b/internal/admin/repository/eventsourcing/handler/login_policy.go new file mode 100644 index 000000000..639d74c81 --- /dev/null +++ b/internal/admin/repository/eventsourcing/handler/login_policy.go @@ -0,0 +1,66 @@ +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" + "github.com/caos/zitadel/internal/iam/repository/eventsourcing/model" + iam_model "github.com/caos/zitadel/internal/iam/repository/view/model" +) + +type LoginPolicy struct { + handler +} + +const ( + loginPolicyTable = "adminapi.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.IAMAggregate). + LatestSequenceFilter(sequence.CurrentSequence), nil +} + +func (m *LoginPolicy) Reduce(event *models.Event) (err error) { + switch event.AggregateType { + case 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 model.LoginPolicyAdded: + err = policy.AppendEvent(event) + case 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-Wj8sf", "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/admin/repository/eventsourcing/handler/user.go b/internal/admin/repository/eventsourcing/handler/user.go index cde493d52..19d55f59c 100644 --- a/internal/admin/repository/eventsourcing/handler/user.go +++ b/internal/admin/repository/eventsourcing/handler/user.go @@ -105,9 +105,9 @@ func (u *User) ProcessOrg(event *models.Event) (err error) { switch event.Type { case org_es_model.OrgDomainVerified, org_es_model.OrgDomainRemoved, - org_es_model.OrgIamPolicyAdded, - org_es_model.OrgIamPolicyChanged, - org_es_model.OrgIamPolicyRemoved: + org_es_model.OrgIAMPolicyAdded, + org_es_model.OrgIAMPolicyChanged, + org_es_model.OrgIAMPolicyRemoved: return u.fillLoginNamesOnOrgUsers(event) case org_es_model.OrgDomainPrimarySet: return u.fillPreferredLoginNamesOnOrgUsers(event) @@ -121,7 +121,7 @@ func (u *User) fillLoginNamesOnOrgUsers(event *models.Event) error { if err != nil { return err } - policy, err := u.orgEvents.GetOrgIamPolicy(context.Background(), event.ResourceOwner) + policy, err := u.orgEvents.GetOrgIAMPolicy(context.Background(), event.ResourceOwner) if err != nil { return err } @@ -140,7 +140,7 @@ func (u *User) fillPreferredLoginNamesOnOrgUsers(event *models.Event) error { if err != nil { return err } - policy, err := u.orgEvents.GetOrgIamPolicy(context.Background(), event.ResourceOwner) + policy, err := u.orgEvents.GetOrgIAMPolicy(context.Background(), event.ResourceOwner) if err != nil { return err } @@ -162,7 +162,7 @@ func (u *User) fillLoginNames(user *view_model.UserView) (err error) { if err != nil { return err } - policy, err := u.orgEvents.GetOrgIamPolicy(context.Background(), user.ResourceOwner) + policy, err := u.orgEvents.GetOrgIAMPolicy(context.Background(), user.ResourceOwner) if err != nil { return err } diff --git a/internal/admin/repository/eventsourcing/repository.go b/internal/admin/repository/eventsourcing/repository.go index 82b9f2fa5..e1c2d0d67 100644 --- a/internal/admin/repository/eventsourcing/repository.go +++ b/internal/admin/repository/eventsourcing/repository.go @@ -28,7 +28,7 @@ type Config struct { type EsRepository struct { spooler *es_spol.Spooler eventstore.OrgRepo - eventstore.IamRepository + eventstore.IAMRepository eventstore.AdministratorRepo } @@ -38,7 +38,7 @@ func Start(ctx context.Context, conf Config, systemDefaults sd.SystemDefaults, r return nil, err } - iam, err := es_iam.StartIam(es_iam.IamConfig{ + iam, err := es_iam.StartIAM(es_iam.IAMConfig{ Eventstore: es, Cache: conf.Eventstore.Cache, }, systemDefaults) @@ -71,7 +71,7 @@ func Start(ctx context.Context, conf Config, systemDefaults sd.SystemDefaults, r return nil, err } - spool := spooler.StartSpooler(conf.Spooler, es, view, sqlClient, handler.EventstoreRepos{UserEvents: user, OrgEvents: org}) + spool := spooler.StartSpooler(conf.Spooler, es, view, sqlClient, handler.EventstoreRepos{UserEvents: user, OrgEvents: org, IamEvents: iam}, systemDefaults) return &EsRepository{ spooler: spool, @@ -82,9 +82,11 @@ func Start(ctx context.Context, conf Config, systemDefaults sd.SystemDefaults, r PolicyEventstore: policy, View: view, SearchLimit: conf.SearchLimit, + SystemDefaults: systemDefaults, }, - IamRepository: eventstore.IamRepository{ - IamEventstore: iam, + IAMRepository: eventstore.IAMRepository{ + IAMEventstore: iam, + OrgEvents: org, View: view, SystemDefaults: systemDefaults, SearchLimit: conf.SearchLimit, diff --git a/internal/admin/repository/eventsourcing/spooler/spooler.go b/internal/admin/repository/eventsourcing/spooler/spooler.go index 59b6fe2ed..751113082 100644 --- a/internal/admin/repository/eventsourcing/spooler/spooler.go +++ b/internal/admin/repository/eventsourcing/spooler/spooler.go @@ -2,6 +2,7 @@ package spooler import ( "database/sql" + "github.com/caos/zitadel/internal/config/systemdefaults" "github.com/caos/zitadel/internal/admin/repository/eventsourcing/handler" "github.com/caos/zitadel/internal/admin/repository/eventsourcing/view" @@ -16,12 +17,12 @@ type SpoolerConfig struct { Handlers handler.Configs } -func StartSpooler(c SpoolerConfig, es eventstore.Eventstore, view *view.View, sql *sql.DB, repos handler.EventstoreRepos) *spooler.Spooler { +func StartSpooler(c SpoolerConfig, es eventstore.Eventstore, view *view.View, sql *sql.DB, repos handler.EventstoreRepos, defaults systemdefaults.SystemDefaults) *spooler.Spooler { spoolerConfig := spooler.Config{ Eventstore: es, Locker: &locker{dbClient: sql}, ConcurrentWorkers: c.ConcurrentWorkers, - ViewHandlers: handler.Register(c.Handlers, c.BulkLimit, c.FailureCountUntilSkip, view, es, repos), + ViewHandlers: handler.Register(c.Handlers, c.BulkLimit, c.FailureCountUntilSkip, view, es, repos, defaults), } spool := spoolerConfig.New() spool.Start() diff --git a/internal/admin/repository/eventsourcing/view/iam_member.go b/internal/admin/repository/eventsourcing/view/iam_member.go index 4d25067ba..b52532e9f 100644 --- a/internal/admin/repository/eventsourcing/view/iam_member.go +++ b/internal/admin/repository/eventsourcing/view/iam_member.go @@ -12,46 +12,46 @@ const ( iamMemberTable = "adminapi.iam_members" ) -func (v *View) IamMemberByIDs(orgID, userID string) (*model.IamMemberView, error) { - return view.IamMemberByIDs(v.Db, iamMemberTable, orgID, userID) +func (v *View) IAMMemberByIDs(orgID, userID string) (*model.IAMMemberView, error) { + return view.IAMMemberByIDs(v.Db, iamMemberTable, orgID, userID) } -func (v *View) SearchIamMembers(request *iam_model.IamMemberSearchRequest) ([]*model.IamMemberView, uint64, error) { - return view.SearchIamMembers(v.Db, iamMemberTable, request) +func (v *View) SearchIAMMembers(request *iam_model.IAMMemberSearchRequest) ([]*model.IAMMemberView, uint64, error) { + return view.SearchIAMMembers(v.Db, iamMemberTable, request) } -func (v *View) IamMembersByUserID(userID string) ([]*model.IamMemberView, error) { - return view.IamMembersByUserID(v.Db, iamMemberTable, userID) +func (v *View) IAMMembersByUserID(userID string) ([]*model.IAMMemberView, error) { + return view.IAMMembersByUserID(v.Db, iamMemberTable, userID) } -func (v *View) PutIamMember(org *model.IamMemberView, sequence uint64) error { - err := view.PutIamMember(v.Db, iamMemberTable, org) +func (v *View) PutIAMMember(org *model.IAMMemberView, sequence uint64) error { + err := view.PutIAMMember(v.Db, iamMemberTable, org) if err != nil { return err } - return v.ProcessedIamMemberSequence(sequence) + return v.ProcessedIAMMemberSequence(sequence) } -func (v *View) DeleteIamMember(iamID, userID string, eventSequence uint64) error { - err := view.DeleteIamMember(v.Db, iamMemberTable, iamID, userID) +func (v *View) DeleteIAMMember(iamID, userID string, eventSequence uint64) error { + err := view.DeleteIAMMember(v.Db, iamMemberTable, iamID, userID) if err != nil && !errors.IsNotFound(err) { return err } - return v.ProcessedIamMemberSequence(eventSequence) + return v.ProcessedIAMMemberSequence(eventSequence) } -func (v *View) GetLatestIamMemberSequence() (*global_view.CurrentSequence, error) { +func (v *View) GetLatestIAMMemberSequence() (*global_view.CurrentSequence, error) { return v.latestSequence(iamMemberTable) } -func (v *View) ProcessedIamMemberSequence(eventSequence uint64) error { +func (v *View) ProcessedIAMMemberSequence(eventSequence uint64) error { return v.saveCurrentSequence(iamMemberTable, eventSequence) } -func (v *View) GetLatestIamMemberFailedEvent(sequence uint64) (*global_view.FailedEvent, error) { +func (v *View) GetLatestIAMMemberFailedEvent(sequence uint64) (*global_view.FailedEvent, error) { return v.latestFailedEvent(iamMemberTable, sequence) } -func (v *View) ProcessedIamMemberFailedEvent(failedEvent *global_view.FailedEvent) error { +func (v *View) ProcessedIAMMemberFailedEvent(failedEvent *global_view.FailedEvent) error { return v.saveFailedEvent(failedEvent) } diff --git a/internal/admin/repository/eventsourcing/view/idp_configs.go b/internal/admin/repository/eventsourcing/view/idp_configs.go new file mode 100644 index 000000000..d6deab121 --- /dev/null +++ b/internal/admin/repository/eventsourcing/view/idp_configs.go @@ -0,0 +1,53 @@ +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 ( + idpConfigTable = "adminapi.idp_configs" +) + +func (v *View) IDPConfigByID(idpID string) (*model.IDPConfigView, error) { + return view.IDPByID(v.Db, idpConfigTable, idpID) +} + +func (v *View) SearchIDPConfigs(request *iam_model.IDPConfigSearchRequest) ([]*model.IDPConfigView, uint64, error) { + return view.SearchIDPs(v.Db, idpConfigTable, request) +} + +func (v *View) PutIDPConfig(idp *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/admin/repository/eventsourcing/view/idp_providers.go b/internal/admin/repository/eventsourcing/view/idp_providers.go new file mode 100644 index 000000000..5c4931abf --- /dev/null +++ b/internal/admin/repository/eventsourcing/view/idp_providers.go @@ -0,0 +1,65 @@ +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 = "adminapi.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) 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) 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/admin/repository/eventsourcing/view/login_policies.go b/internal/admin/repository/eventsourcing/view/login_policies.go new file mode 100644 index 000000000..8e37e5772 --- /dev/null +++ b/internal/admin/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 = "adminapi.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/admin/repository/iam.go b/internal/admin/repository/iam.go index 85e588c61..c01c2d0fd 100644 --- a/internal/admin/repository/iam.go +++ b/internal/admin/repository/iam.go @@ -5,11 +5,27 @@ import ( iam_model "github.com/caos/zitadel/internal/iam/model" ) -type IamRepository interface { - SearchIamMembers(ctx context.Context, request *iam_model.IamMemberSearchRequest) (*iam_model.IamMemberSearchResponse, error) - AddIamMember(ctx context.Context, member *iam_model.IamMember) (*iam_model.IamMember, error) - ChangeIamMember(ctx context.Context, member *iam_model.IamMember) (*iam_model.IamMember, error) - RemoveIamMember(ctx context.Context, userID string) error +type IAMRepository interface { + SearchIAMMembers(ctx context.Context, request *iam_model.IAMMemberSearchRequest) (*iam_model.IAMMemberSearchResponse, error) + AddIAMMember(ctx context.Context, member *iam_model.IAMMember) (*iam_model.IAMMember, error) + ChangeIAMMember(ctx context.Context, member *iam_model.IAMMember) (*iam_model.IAMMember, error) + RemoveIAMMember(ctx context.Context, userID string) error - GetIamMemberRoles() []string + GetIAMMemberRoles() []string + + SearchIDPConfigs(ctx context.Context, request *iam_model.IDPConfigSearchRequest) (*iam_model.IDPConfigSearchResponse, error) + IDPConfigByID(ctx context.Context, id string) (*iam_model.IDPConfigView, error) + AddOIDCIDPConfig(ctx context.Context, idp *iam_model.IDPConfig) (*iam_model.IDPConfig, error) + ChangeIDPConfig(ctx context.Context, idp *iam_model.IDPConfig) (*iam_model.IDPConfig, error) + DeactivateIDPConfig(ctx context.Context, idpConfigID string) (*iam_model.IDPConfig, error) + ReactivateIDPConfig(ctx context.Context, idpConfigID string) (*iam_model.IDPConfig, error) + RemoveIDPConfig(ctx context.Context, idpConfigID string) error + ChangeOidcIDPConfig(ctx context.Context, oidcConfig *iam_model.OIDCIDPConfig) (*iam_model.OIDCIDPConfig, error) + + GetDefaultLoginPolicy(ctx context.Context) (*iam_model.LoginPolicyView, error) + AddDefaultLoginPolicy(ctx context.Context, policy *iam_model.LoginPolicy) (*iam_model.LoginPolicy, error) + ChangeDefaultLoginPolicy(ctx context.Context, policy *iam_model.LoginPolicy) (*iam_model.LoginPolicy, error) + SearchDefaultIDPProviders(ctx context.Context, request *iam_model.IDPProviderSearchRequest) (*iam_model.IDPProviderSearchResponse, error) + AddIDPProviderToLoginPolicy(ctx context.Context, provider *iam_model.IDPProvider) (*iam_model.IDPProvider, error) + RemoveIDPProviderFromLoginPolicy(ctx context.Context, provider *iam_model.IDPProvider) error } diff --git a/internal/admin/repository/org.go b/internal/admin/repository/org.go index bcc21c917..8849d2b03 100644 --- a/internal/admin/repository/org.go +++ b/internal/admin/repository/org.go @@ -13,8 +13,8 @@ type OrgRepository interface { OrgByID(ctx context.Context, id string) (*org_model.Org, error) SearchOrgs(ctx context.Context, query *org_model.OrgSearchRequest) (*org_model.OrgSearchResult, error) - GetOrgIamPolicyByID(ctx context.Context, id string) (*org_model.OrgIamPolicy, error) - CreateOrgIamPolicy(ctx context.Context, policy *org_model.OrgIamPolicy) (*org_model.OrgIamPolicy, error) - ChangeOrgIamPolicy(ctx context.Context, policy *org_model.OrgIamPolicy) (*org_model.OrgIamPolicy, error) + GetOrgIamPolicyByID(ctx context.Context, id string) (*org_model.OrgIAMPolicy, error) + CreateOrgIamPolicy(ctx context.Context, policy *org_model.OrgIAMPolicy) (*org_model.OrgIAMPolicy, error) + ChangeOrgIamPolicy(ctx context.Context, policy *org_model.OrgIAMPolicy) (*org_model.OrgIAMPolicy, error) RemoveOrgIamPolicy(ctx context.Context, id string) error } diff --git a/internal/admin/repository/repository.go b/internal/admin/repository/repository.go index b646459e2..b76321a17 100644 --- a/internal/admin/repository/repository.go +++ b/internal/admin/repository/repository.go @@ -5,6 +5,6 @@ import "context" type Repository interface { Health(ctx context.Context) error OrgRepository - IamRepository + IAMRepository AdministratorRepository } diff --git a/internal/api/api.go b/internal/api/api.go index 007b4a2f1..cfcb9727d 100644 --- a/internal/api/api.go +++ b/internal/api/api.go @@ -32,7 +32,7 @@ type API struct { } type health interface { Health(ctx context.Context) error - IamByID(ctx context.Context) (*iam_model.Iam, error) + IamByID(ctx context.Context) (*iam_model.IAM, error) VerifierClientID(ctx context.Context, appName string) (string, error) } diff --git a/internal/api/grpc/admin/iam_member.go b/internal/api/grpc/admin/iam_member.go index 93cca2834..fb171108f 100644 --- a/internal/api/grpc/admin/iam_member.go +++ b/internal/api/grpc/admin/iam_member.go @@ -9,11 +9,11 @@ import ( ) func (s *Server) GetIamMemberRoles(ctx context.Context, _ *empty.Empty) (*admin.IamMemberRoles, error) { - return &admin.IamMemberRoles{Roles: s.iam.GetIamMemberRoles()}, nil + return &admin.IamMemberRoles{Roles: s.iam.GetIAMMemberRoles()}, nil } func (s *Server) SearchIamMembers(ctx context.Context, in *admin.IamMemberSearchRequest) (*admin.IamMemberSearchResponse, error) { - members, err := s.iam.SearchIamMembers(ctx, iamMemberSearchRequestToModel(in)) + members, err := s.iam.SearchIAMMembers(ctx, iamMemberSearchRequestToModel(in)) if err != nil { return nil, err } @@ -21,7 +21,7 @@ func (s *Server) SearchIamMembers(ctx context.Context, in *admin.IamMemberSearch } func (s *Server) AddIamMember(ctx context.Context, member *admin.AddIamMemberRequest) (*admin.IamMember, error) { - addedMember, err := s.iam.AddIamMember(ctx, addIamMemberToModel(member)) + addedMember, err := s.iam.AddIAMMember(ctx, addIamMemberToModel(member)) if err != nil { return nil, err } @@ -30,7 +30,7 @@ func (s *Server) AddIamMember(ctx context.Context, member *admin.AddIamMemberReq } func (s *Server) ChangeIamMember(ctx context.Context, member *admin.ChangeIamMemberRequest) (*admin.IamMember, error) { - changedMember, err := s.iam.ChangeIamMember(ctx, changeIamMemberToModel(member)) + changedMember, err := s.iam.ChangeIAMMember(ctx, changeIamMemberToModel(member)) if err != nil { return nil, err } @@ -38,6 +38,6 @@ func (s *Server) ChangeIamMember(ctx context.Context, member *admin.ChangeIamMem } func (s *Server) RemoveIamMember(ctx context.Context, member *admin.RemoveIamMemberRequest) (*empty.Empty, error) { - err := s.iam.RemoveIamMember(ctx, member.UserId) + err := s.iam.RemoveIAMMember(ctx, member.UserId) return &empty.Empty{}, err } diff --git a/internal/api/grpc/admin/iam_member_converter.go b/internal/api/grpc/admin/iam_member_converter.go index dc7cb20b3..bd5297b31 100644 --- a/internal/api/grpc/admin/iam_member_converter.go +++ b/internal/api/grpc/admin/iam_member_converter.go @@ -9,8 +9,8 @@ import ( "github.com/caos/zitadel/pkg/grpc/admin" ) -func addIamMemberToModel(member *admin.AddIamMemberRequest) *iam_model.IamMember { - memberModel := &iam_model.IamMember{ +func addIamMemberToModel(member *admin.AddIamMemberRequest) *iam_model.IAMMember { + memberModel := &iam_model.IAMMember{ UserID: member.UserId, } memberModel.Roles = member.Roles @@ -18,8 +18,8 @@ func addIamMemberToModel(member *admin.AddIamMemberRequest) *iam_model.IamMember return memberModel } -func changeIamMemberToModel(member *admin.ChangeIamMemberRequest) *iam_model.IamMember { - memberModel := &iam_model.IamMember{ +func changeIamMemberToModel(member *admin.ChangeIamMemberRequest) *iam_model.IAMMember { + memberModel := &iam_model.IAMMember{ UserID: member.UserId, } memberModel.Roles = member.Roles @@ -27,7 +27,7 @@ func changeIamMemberToModel(member *admin.ChangeIamMemberRequest) *iam_model.Iam return memberModel } -func iamMemberFromModel(member *iam_model.IamMember) *admin.IamMember { +func iamMemberFromModel(member *iam_model.IAMMember) *admin.IamMember { creationDate, err := ptypes.TimestampProto(member.CreationDate) logging.Log("GRPC-Lsp76").OnError(err).Debug("date parse failed") @@ -43,16 +43,16 @@ func iamMemberFromModel(member *iam_model.IamMember) *admin.IamMember { } } -func iamMemberSearchRequestToModel(request *admin.IamMemberSearchRequest) *iam_model.IamMemberSearchRequest { - return &iam_model.IamMemberSearchRequest{ +func iamMemberSearchRequestToModel(request *admin.IamMemberSearchRequest) *iam_model.IAMMemberSearchRequest { + return &iam_model.IAMMemberSearchRequest{ Limit: request.Limit, Offset: request.Offset, Queries: iamMemberSearchQueriesToModel(request.Queries), } } -func iamMemberSearchQueriesToModel(queries []*admin.IamMemberSearchQuery) []*iam_model.IamMemberSearchQuery { - modelQueries := make([]*iam_model.IamMemberSearchQuery, len(queries)) +func iamMemberSearchQueriesToModel(queries []*admin.IamMemberSearchQuery) []*iam_model.IAMMemberSearchQuery { + modelQueries := make([]*iam_model.IAMMemberSearchQuery, len(queries)) for i, query := range queries { modelQueries[i] = iamMemberSearchQueryToModel(query) } @@ -60,30 +60,30 @@ func iamMemberSearchQueriesToModel(queries []*admin.IamMemberSearchQuery) []*iam return modelQueries } -func iamMemberSearchQueryToModel(query *admin.IamMemberSearchQuery) *iam_model.IamMemberSearchQuery { - return &iam_model.IamMemberSearchQuery{ +func iamMemberSearchQueryToModel(query *admin.IamMemberSearchQuery) *iam_model.IAMMemberSearchQuery { + return &iam_model.IAMMemberSearchQuery{ Key: iamMemberSearchKeyToModel(query.Key), - Method: iamMemberSearchMethodToModel(query.Method), + Method: searchMethodToModel(query.Method), Value: query.Value, } } -func iamMemberSearchKeyToModel(key admin.IamMemberSearchKey) iam_model.IamMemberSearchKey { +func iamMemberSearchKeyToModel(key admin.IamMemberSearchKey) iam_model.IAMMemberSearchKey { switch key { case admin.IamMemberSearchKey_IAMMEMBERSEARCHKEY_EMAIL: - return iam_model.IamMemberSearchKeyEmail + return iam_model.IAMMemberSearchKeyEmail case admin.IamMemberSearchKey_IAMMEMBERSEARCHKEY_FIRST_NAME: - return iam_model.IamMemberSearchKeyFirstName + return iam_model.IAMMemberSearchKeyFirstName case admin.IamMemberSearchKey_IAMMEMBERSEARCHKEY_LAST_NAME: - return iam_model.IamMemberSearchKeyLastName + return iam_model.IAMMemberSearchKeyLastName case admin.IamMemberSearchKey_IAMMEMBERSEARCHKEY_USER_ID: - return iam_model.IamMemberSearchKeyUserID + return iam_model.IAMMemberSearchKeyUserID default: - return iam_model.IamMemberSearchKeyUnspecified + return iam_model.IAMMemberSearchKeyUnspecified } } -func iamMemberSearchMethodToModel(key admin.SearchMethod) model.SearchMethod { +func searchMethodToModel(key admin.SearchMethod) model.SearchMethod { switch key { case admin.SearchMethod_SEARCHMETHOD_CONTAINS: return model.SearchMethodContains @@ -102,7 +102,7 @@ func iamMemberSearchMethodToModel(key admin.SearchMethod) model.SearchMethod { } } -func iamMemberSearchResponseFromModel(resp *iam_model.IamMemberSearchResponse) *admin.IamMemberSearchResponse { +func iamMemberSearchResponseFromModel(resp *iam_model.IAMMemberSearchResponse) *admin.IamMemberSearchResponse { timestamp, err := ptypes.TimestampProto(resp.Timestamp) logging.Log("GRPC-5shu8").OnError(err).Debug("date parse failed") return &admin.IamMemberSearchResponse{ @@ -114,7 +114,7 @@ func iamMemberSearchResponseFromModel(resp *iam_model.IamMemberSearchResponse) * ViewTimestamp: timestamp, } } -func iamMembersFromView(viewMembers []*iam_model.IamMemberView) []*admin.IamMemberView { +func iamMembersFromView(viewMembers []*iam_model.IAMMemberView) []*admin.IamMemberView { members := make([]*admin.IamMemberView, len(viewMembers)) for i, member := range viewMembers { @@ -124,7 +124,7 @@ func iamMembersFromView(viewMembers []*iam_model.IamMemberView) []*admin.IamMemb return members } -func iamMemberFromView(member *iam_model.IamMemberView) *admin.IamMemberView { +func iamMemberFromView(member *iam_model.IAMMemberView) *admin.IamMemberView { changeDate, err := ptypes.TimestampProto(member.ChangeDate) logging.Log("GRPC-Lso9c").OnError(err).Debug("unable to parse changedate") creationDate, err := ptypes.TimestampProto(member.CreationDate) diff --git a/internal/api/grpc/admin/idp_config.go b/internal/api/grpc/admin/idp_config.go new file mode 100644 index 000000000..e0e6d6fe3 --- /dev/null +++ b/internal/api/grpc/admin/idp_config.go @@ -0,0 +1,69 @@ +package admin + +import ( + "context" + "github.com/golang/protobuf/ptypes/empty" + + "github.com/caos/zitadel/pkg/grpc/admin" +) + +func (s *Server) IdpByID(ctx context.Context, id *admin.IdpID) (*admin.IdpView, error) { + config, err := s.iam.IDPConfigByID(ctx, id.Id) + if err != nil { + return nil, err + } + return idpViewFromModel(config), nil +} + +func (s *Server) CreateOidcIdp(ctx context.Context, oidcIdpConfig *admin.OidcIdpConfigCreate) (*admin.Idp, error) { + config, err := s.iam.AddOIDCIDPConfig(ctx, createOidcIdpToModel(oidcIdpConfig)) + if err != nil { + return nil, err + } + return idpFromModel(config), nil +} + +func (s *Server) UpdateIdpConfig(ctx context.Context, idpConfig *admin.IdpUpdate) (*admin.Idp, error) { + config, err := s.iam.ChangeIDPConfig(ctx, updateIdpToModel(idpConfig)) + if err != nil { + return nil, err + } + return idpFromModel(config), nil +} + +func (s *Server) DeactivateIdpConfig(ctx context.Context, id *admin.IdpID) (*admin.Idp, error) { + config, err := s.iam.DeactivateIDPConfig(ctx, id.Id) + if err != nil { + return nil, err + } + return idpFromModel(config), nil +} + +func (s *Server) ReactivateIdpConfig(ctx context.Context, id *admin.IdpID) (*admin.Idp, error) { + config, err := s.iam.ReactivateIDPConfig(ctx, id.Id) + if err != nil { + return nil, err + } + return idpFromModel(config), nil +} + +func (s *Server) RemoveIdpConfig(ctx context.Context, id *admin.IdpID) (*empty.Empty, error) { + err := s.iam.RemoveIDPConfig(ctx, id.Id) + return &empty.Empty{}, err +} + +func (s *Server) UpdateOidcIdpConfig(ctx context.Context, request *admin.OidcIdpConfigUpdate) (*admin.OidcIdpConfig, error) { + config, err := s.iam.ChangeOidcIDPConfig(ctx, updateOidcIdpToModel(request)) + if err != nil { + return nil, err + } + return oidcIdpConfigFromModel(config), nil +} + +func (s *Server) SearchIdps(ctx context.Context, request *admin.IdpSearchRequest) (*admin.IdpSearchResponse, error) { + response, err := s.iam.SearchIDPConfigs(ctx, idpConfigSearchRequestToModel(request)) + if err != nil { + return nil, err + } + return idpConfigSearchResponseFromModel(response), nil +} diff --git a/internal/api/grpc/admin/idp_config_converter.go b/internal/api/grpc/admin/idp_config_converter.go new file mode 100644 index 000000000..c772dbd68 --- /dev/null +++ b/internal/api/grpc/admin/idp_config_converter.go @@ -0,0 +1,180 @@ +package admin + +import ( + "github.com/caos/logging" + iam_model "github.com/caos/zitadel/internal/iam/model" + "github.com/caos/zitadel/pkg/grpc/admin" + "github.com/golang/protobuf/ptypes" +) + +func createOidcIdpToModel(idp *admin.OidcIdpConfigCreate) *iam_model.IDPConfig { + return &iam_model.IDPConfig{ + Name: idp.Name, + LogoSrc: idp.LogoSrc, + Type: iam_model.IDPConfigTypeOIDC, + OIDCConfig: &iam_model.OIDCIDPConfig{ + ClientID: idp.ClientId, + ClientSecretString: idp.ClientSecret, + Issuer: idp.Issuer, + Scopes: idp.Scopes, + }, + } +} + +func updateIdpToModel(idp *admin.IdpUpdate) *iam_model.IDPConfig { + return &iam_model.IDPConfig{ + IDPConfigID: idp.Id, + Name: idp.Name, + LogoSrc: idp.LogoSrc, + } +} + +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, + } +} + +func idpFromModel(idp *iam_model.IDPConfig) *admin.Idp { + creationDate, err := ptypes.TimestampProto(idp.CreationDate) + logging.Log("GRPC-8dju8").OnError(err).Debug("date parse failed") + + changeDate, err := ptypes.TimestampProto(idp.ChangeDate) + logging.Log("GRPC-Dsj8i").OnError(err).Debug("date parse failed") + + return &admin.Idp{ + Id: idp.IDPConfigID, + CreationDate: creationDate, + ChangeDate: changeDate, + Sequence: idp.Sequence, + Name: idp.Name, + LogoSrc: idp.LogoSrc, + State: idpConfigStateFromModel(idp.State), + IdpConfig: idpConfigFromModel(idp), + } +} + +func idpViewFromModel(idp *iam_model.IDPConfigView) *admin.IdpView { + creationDate, err := ptypes.TimestampProto(idp.CreationDate) + logging.Log("GRPC-8dju8").OnError(err).Debug("date parse failed") + + changeDate, err := ptypes.TimestampProto(idp.ChangeDate) + logging.Log("GRPC-Dsj8i").OnError(err).Debug("date parse failed") + + return &admin.IdpView{ + Id: idp.IDPConfigID, + CreationDate: creationDate, + ChangeDate: changeDate, + Sequence: idp.Sequence, + Name: idp.Name, + LogoSrc: idp.LogoSrc, + State: idpConfigStateFromModel(idp.State), + IdpConfigView: idpConfigViewFromModel(idp), + } +} + +func idpConfigFromModel(idp *iam_model.IDPConfig) *admin.Idp_OidcConfig { + if idp.Type == iam_model.IDPConfigTypeOIDC { + return &admin.Idp_OidcConfig{ + OidcConfig: oidcIdpConfigFromModel(idp.OIDCConfig), + } + } + return nil +} + +func oidcIdpConfigFromModel(idp *iam_model.OIDCIDPConfig) *admin.OidcIdpConfig { + return &admin.OidcIdpConfig{ + ClientId: idp.ClientID, + Issuer: idp.Issuer, + Scopes: idp.Scopes, + } +} + +func idpConfigViewFromModel(idp *iam_model.IDPConfigView) *admin.IdpView_OidcConfig { + if idp.IsOIDC { + return &admin.IdpView_OidcConfig{ + OidcConfig: oidcIdpConfigViewFromModel(idp), + } + } + return nil +} + +func oidcIdpConfigViewFromModel(idp *iam_model.IDPConfigView) *admin.OidcIdpConfigView { + return &admin.OidcIdpConfigView{ + ClientId: idp.OIDCClientID, + Issuer: idp.OIDCIssuer, + Scopes: idp.OIDCScopes, + } +} + +func idpConfigStateFromModel(state iam_model.IDPConfigState) admin.IdpState { + switch state { + case iam_model.IDPConfigStateActive: + return admin.IdpState_IDPCONFIGSTATE_ACTIVE + case iam_model.IDPConfigStateInactive: + return admin.IdpState_IDPCONFIGSTATE_INACTIVE + default: + return admin.IdpState_IDPCONFIGSTATE_UNSPECIFIED + } +} + +func idpConfigSearchRequestToModel(request *admin.IdpSearchRequest) *iam_model.IDPConfigSearchRequest { + return &iam_model.IDPConfigSearchRequest{ + Limit: request.Limit, + Offset: request.Offset, + Queries: idpConfigSearchQueriesToModel(request.Queries), + } +} + +func idpConfigSearchQueriesToModel(queries []*admin.IdpSearchQuery) []*iam_model.IDPConfigSearchQuery { + modelQueries := make([]*iam_model.IDPConfigSearchQuery, len(queries)) + for i, query := range queries { + modelQueries[i] = idpConfigSearchQueryToModel(query) + } + + return modelQueries +} + +func idpConfigSearchQueryToModel(query *admin.IdpSearchQuery) *iam_model.IDPConfigSearchQuery { + return &iam_model.IDPConfigSearchQuery{ + Key: idpConfigSearchKeyToModel(query.Key), + Method: searchMethodToModel(query.Method), + Value: query.Value, + } +} + +func idpConfigSearchKeyToModel(key admin.IdpSearchKey) iam_model.IDPConfigSearchKey { + switch key { + case admin.IdpSearchKey_IDPSEARCHKEY_IDP_CONFIG_ID: + return iam_model.IDPConfigSearchKeyIdpConfigID + case admin.IdpSearchKey_IDPSEARCHKEY_NAME: + return iam_model.IDPConfigSearchKeyName + default: + return iam_model.IDPConfigSearchKeyUnspecified + } +} + +func idpConfigSearchResponseFromModel(resp *iam_model.IDPConfigSearchResponse) *admin.IdpSearchResponse { + timestamp, err := ptypes.TimestampProto(resp.Timestamp) + logging.Log("GRPC-KSi8c").OnError(err).Debug("date parse failed") + return &admin.IdpSearchResponse{ + Limit: resp.Limit, + Offset: resp.Offset, + TotalResult: resp.TotalResult, + Result: idpConfigsFromView(resp.Result), + ProcessedSequence: resp.Sequence, + ViewTimestamp: timestamp, + } +} + +func idpConfigsFromView(viewIdps []*iam_model.IDPConfigView) []*admin.IdpView { + idps := make([]*admin.IdpView, len(viewIdps)) + for i, idp := range viewIdps { + idps[i] = idpViewFromModel(idp) + } + return idps +} diff --git a/internal/api/grpc/admin/login_policy.go b/internal/api/grpc/admin/login_policy.go new file mode 100644 index 000000000..e75ef530d --- /dev/null +++ b/internal/api/grpc/admin/login_policy.go @@ -0,0 +1,44 @@ +package admin + +import ( + "context" + "github.com/caos/zitadel/pkg/grpc/admin" + "github.com/golang/protobuf/ptypes/empty" +) + +func (s *Server) GetDefaultLoginPolicy(ctx context.Context, _ *empty.Empty) (*admin.DefaultLoginPolicyView, error) { + result, err := s.iam.GetDefaultLoginPolicy(ctx) + if err != nil { + return nil, err + } + return loginPolicyViewFromModel(result), nil +} + +func (s *Server) UpdateDefaultLoginPolicy(ctx context.Context, policy *admin.DefaultLoginPolicy) (*admin.DefaultLoginPolicy, error) { + result, err := s.iam.ChangeDefaultLoginPolicy(ctx, loginPolicyToModel(policy)) + if err != nil { + return nil, err + } + return loginPolicyFromModel(result), nil +} + +func (s *Server) GetDefaultLoginPolicyIdpProviders(ctx context.Context, request *admin.IdpProviderSearchRequest) (*admin.IdpProviderSearchResponse, error) { + result, err := s.iam.SearchDefaultIDPProviders(ctx, idpProviderSearchRequestToModel(request)) + if err != nil { + return nil, err + } + return idpProviderSearchResponseFromModel(result), nil +} + +func (s *Server) AddIdpProviderToDefaultLoginPolicy(ctx context.Context, provider *admin.IdpProviderID) (*admin.IdpProviderID, error) { + result, err := s.iam.AddIDPProviderToLoginPolicy(ctx, idpProviderToModel(provider)) + if err != nil { + return nil, err + } + return idpProviderFromModel(result), nil +} + +func (s *Server) RemoveIdpProviderFromDefaultLoginPolicy(ctx context.Context, provider *admin.IdpProviderID) (*empty.Empty, error) { + err := s.iam.RemoveIDPProviderFromLoginPolicy(ctx, idpProviderToModel(provider)) + return &empty.Empty{}, err +} diff --git a/internal/api/grpc/admin/login_policy_converter.go b/internal/api/grpc/admin/login_policy_converter.go new file mode 100644 index 000000000..aba3ce1f0 --- /dev/null +++ b/internal/api/grpc/admin/login_policy_converter.go @@ -0,0 +1,87 @@ +package admin + +import ( + iam_model "github.com/caos/zitadel/internal/iam/model" + "github.com/caos/zitadel/pkg/grpc/admin" +) + +func loginPolicyToModel(policy *admin.DefaultLoginPolicy) *iam_model.LoginPolicy { + return &iam_model.LoginPolicy{ + AllowUsernamePassword: policy.AllowUsernamePassword, + AllowExternalIdp: policy.AllowExternalIdp, + AllowRegister: policy.AllowRegister, + } +} + +func loginPolicyFromModel(policy *iam_model.LoginPolicy) *admin.DefaultLoginPolicy { + return &admin.DefaultLoginPolicy{ + AllowUsernamePassword: policy.AllowUsernamePassword, + AllowExternalIdp: policy.AllowExternalIdp, + AllowRegister: policy.AllowRegister, + } +} + +func loginPolicyViewFromModel(policy *iam_model.LoginPolicyView) *admin.DefaultLoginPolicyView { + return &admin.DefaultLoginPolicyView{ + AllowUsernamePassword: policy.AllowUsernamePassword, + AllowExternalIdp: policy.AllowExternalIDP, + AllowRegister: policy.AllowRegister, + } +} + +func idpProviderSearchRequestToModel(request *admin.IdpProviderSearchRequest) *iam_model.IDPProviderSearchRequest { + return &iam_model.IDPProviderSearchRequest{ + Limit: request.Limit, + Offset: request.Offset, + } +} + +func idpProviderSearchResponseFromModel(response *iam_model.IDPProviderSearchResponse) *admin.IdpProviderSearchResponse { + return &admin.IdpProviderSearchResponse{ + Limit: response.Limit, + Offset: response.Offset, + TotalResult: response.TotalResult, + Result: idpProviderViewsFromModel(response.Result), + } +} + +func idpProviderToModel(provider *admin.IdpProviderID) *iam_model.IDPProvider { + return &iam_model.IDPProvider{ + IdpConfigID: provider.IdpConfigId, + Type: iam_model.IDPProviderTypeSystem, + } +} + +func idpProviderFromModel(provider *iam_model.IDPProvider) *admin.IdpProviderID { + return &admin.IdpProviderID{ + IdpConfigId: provider.IdpConfigID, + } +} + +func idpProviderViewsFromModel(providers []*iam_model.IDPProviderView) []*admin.IdpProviderView { + converted := make([]*admin.IdpProviderView, len(providers)) + for i, provider := range providers { + converted[i] = idpProviderViewFromModel(provider) + } + + return converted +} + +func idpProviderViewFromModel(provider *iam_model.IDPProviderView) *admin.IdpProviderView { + return &admin.IdpProviderView{ + IdpConfigId: provider.IDPConfigID, + Name: provider.Name, + Type: idpConfigTypeToModel(provider.IDPConfigType), + } +} + +func idpConfigTypeToModel(providerType iam_model.IdpConfigType) admin.IdpType { + switch providerType { + case iam_model.IDPConfigTypeOIDC: + return admin.IdpType_IDPTYPE_OIDC + case iam_model.IDPConfigTypeSAML: + return admin.IdpType_IDPTYPE_SAML + default: + return admin.IdpType_IDPTYPE_UNSPECIFIED + } +} diff --git a/internal/api/grpc/admin/org_converter.go b/internal/api/grpc/admin/org_converter.go index a31df9bbd..796bfed4f 100644 --- a/internal/api/grpc/admin/org_converter.go +++ b/internal/api/grpc/admin/org_converter.go @@ -269,7 +269,7 @@ func orgQueryMethodToModel(method admin.OrgSearchMethod) model.SearchMethod { } } -func orgIamPolicyFromModel(policy *org_model.OrgIamPolicy) *admin.OrgIamPolicy { +func orgIamPolicyFromModel(policy *org_model.OrgIAMPolicy) *admin.OrgIamPolicy { creationDate, err := ptypes.TimestampProto(policy.CreationDate) logging.Log("GRPC-ush36").OnError(err).Debug("unable to get timestamp from time") @@ -286,8 +286,8 @@ func orgIamPolicyFromModel(policy *org_model.OrgIamPolicy) *admin.OrgIamPolicy { } } -func orgIamPolicyRequestToModel(policy *admin.OrgIamPolicyRequest) *org_model.OrgIamPolicy { - return &org_model.OrgIamPolicy{ +func orgIamPolicyRequestToModel(policy *admin.OrgIamPolicyRequest) *org_model.OrgIAMPolicy { + return &org_model.OrgIAMPolicy{ ObjectRoot: models.ObjectRoot{ AggregateID: policy.OrgId, }, diff --git a/internal/api/grpc/admin/server.go b/internal/api/grpc/admin/server.go index 126989c38..7c9522663 100644 --- a/internal/api/grpc/admin/server.go +++ b/internal/api/grpc/admin/server.go @@ -18,7 +18,7 @@ var _ admin.AdminServiceServer = (*Server)(nil) type Server struct { org repository.OrgRepository - iam repository.IamRepository + iam repository.IAMRepository administrator repository.AdministratorRepository repo repository.Repository } diff --git a/internal/api/grpc/management/iam.go b/internal/api/grpc/management/iam.go index fb22e23bf..cd7f29409 100644 --- a/internal/api/grpc/management/iam.go +++ b/internal/api/grpc/management/iam.go @@ -9,7 +9,7 @@ import ( ) func (s *Server) GetIam(ctx context.Context, _ *empty.Empty) (*management.Iam, error) { - iam, err := s.iam.IamByID(ctx, s.systemDefaults.IamID) + iam, err := s.iam.IAMByID(ctx, s.systemDefaults.IamID) if err != nil { return nil, err } diff --git a/internal/api/grpc/management/iam_converter.go b/internal/api/grpc/management/iam_converter.go index 9eb4b49a7..917894cc9 100644 --- a/internal/api/grpc/management/iam_converter.go +++ b/internal/api/grpc/management/iam_converter.go @@ -5,9 +5,9 @@ import ( "github.com/caos/zitadel/pkg/grpc/management" ) -func iamFromModel(iam *iam_model.Iam) *management.Iam { +func iamFromModel(iam *iam_model.IAM) *management.Iam { return &management.Iam{ - IamProjectId: iam.IamProjectID, + IamProjectId: iam.IAMProjectID, GlobalOrgId: iam.GlobalOrgID, SetUpDone: iam.SetUpDone, SetUpStarted: iam.SetUpStarted, diff --git a/internal/api/grpc/management/idp_config.go b/internal/api/grpc/management/idp_config.go new file mode 100644 index 000000000..bc41f7584 --- /dev/null +++ b/internal/api/grpc/management/idp_config.go @@ -0,0 +1,69 @@ +package management + +import ( + "context" + "github.com/golang/protobuf/ptypes/empty" + + "github.com/caos/zitadel/pkg/grpc/management" +) + +func (s *Server) IdpByID(ctx context.Context, id *management.IdpID) (*management.IdpView, error) { + config, err := s.org.IDPConfigByID(ctx, id.Id) + if err != nil { + return nil, err + } + return idpViewFromModel(config), nil +} + +func (s *Server) CreateOidcIdp(ctx context.Context, oidcIdpConfig *management.OidcIdpConfigCreate) (*management.Idp, error) { + config, err := s.org.AddOIDCIDPConfig(ctx, createOidcIdpToModel(oidcIdpConfig)) + if err != nil { + return nil, err + } + return idpFromModel(config), nil +} + +func (s *Server) UpdateIdpConfig(ctx context.Context, idpConfig *management.IdpUpdate) (*management.Idp, error) { + config, err := s.org.ChangeIDPConfig(ctx, updateIdpToModel(idpConfig)) + if err != nil { + return nil, err + } + return idpFromModel(config), nil +} + +func (s *Server) DeactivateIdpConfig(ctx context.Context, id *management.IdpID) (*management.Idp, error) { + config, err := s.org.DeactivateIDPConfig(ctx, id.Id) + if err != nil { + return nil, err + } + return idpFromModel(config), nil +} + +func (s *Server) ReactivateIdpConfig(ctx context.Context, id *management.IdpID) (*management.Idp, error) { + config, err := s.org.ReactivateIDPConfig(ctx, id.Id) + if err != nil { + return nil, err + } + return idpFromModel(config), nil +} + +func (s *Server) RemoveIdpConfig(ctx context.Context, id *management.IdpID) (*empty.Empty, error) { + err := s.org.RemoveIDPConfig(ctx, id.Id) + return &empty.Empty{}, err +} + +func (s *Server) UpdateOidcIdpConfig(ctx context.Context, request *management.OidcIdpConfigUpdate) (*management.OidcIdpConfig, error) { + config, err := s.org.ChangeOIDCIDPConfig(ctx, updateOidcIdpToModel(request)) + if err != nil { + return nil, err + } + return oidcIdpConfigFromModel(config), nil +} + +func (s *Server) SearchIdps(ctx context.Context, request *management.IdpSearchRequest) (*management.IdpSearchResponse, error) { + response, err := s.org.SearchIDPConfigs(ctx, idpConfigSearchRequestToModel(request)) + if err != nil { + return nil, err + } + return idpConfigSearchResponseFromModel(response), nil +} diff --git a/internal/api/grpc/management/idp_config_converter.go b/internal/api/grpc/management/idp_config_converter.go new file mode 100644 index 000000000..32f35dc33 --- /dev/null +++ b/internal/api/grpc/management/idp_config_converter.go @@ -0,0 +1,183 @@ +package management + +import ( + "github.com/caos/logging" + iam_model "github.com/caos/zitadel/internal/iam/model" + "github.com/caos/zitadel/pkg/grpc/management" + "github.com/golang/protobuf/ptypes" +) + +func createOidcIdpToModel(idp *management.OidcIdpConfigCreate) *iam_model.IDPConfig { + return &iam_model.IDPConfig{ + Name: idp.Name, + LogoSrc: idp.LogoSrc, + Type: iam_model.IDPConfigTypeOIDC, + OIDCConfig: &iam_model.OIDCIDPConfig{ + ClientID: idp.ClientId, + ClientSecretString: idp.ClientSecret, + Issuer: idp.Issuer, + Scopes: idp.Scopes, + }, + } +} + +func updateIdpToModel(idp *management.IdpUpdate) *iam_model.IDPConfig { + return &iam_model.IDPConfig{ + IDPConfigID: idp.Id, + Name: idp.Name, + LogoSrc: idp.LogoSrc, + } +} + +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, + } +} + +func idpFromModel(idp *iam_model.IDPConfig) *management.Idp { + creationDate, err := ptypes.TimestampProto(idp.CreationDate) + logging.Log("GRPC-8dju8").OnError(err).Debug("date parse failed") + + changeDate, err := ptypes.TimestampProto(idp.ChangeDate) + logging.Log("GRPC-Dsj8i").OnError(err).Debug("date parse failed") + + return &management.Idp{ + Id: idp.IDPConfigID, + CreationDate: creationDate, + ChangeDate: changeDate, + Sequence: idp.Sequence, + Name: idp.Name, + LogoSrc: idp.LogoSrc, + State: idpConfigStateFromModel(idp.State), + IdpConfig: idpConfigFromModel(idp), + } +} + +func idpViewFromModel(idp *iam_model.IDPConfigView) *management.IdpView { + creationDate, err := ptypes.TimestampProto(idp.CreationDate) + logging.Log("GRPC-8dju8").OnError(err).Debug("date parse failed") + + changeDate, err := ptypes.TimestampProto(idp.ChangeDate) + logging.Log("GRPC-Dsj8i").OnError(err).Debug("date parse failed") + + return &management.IdpView{ + Id: idp.IDPConfigID, + CreationDate: creationDate, + ChangeDate: changeDate, + Sequence: idp.Sequence, + ProviderType: idpProviderTypeFromModel(idp.IDPProviderType), + Name: idp.Name, + LogoSrc: idp.LogoSrc, + State: idpConfigStateFromModel(idp.State), + IdpConfigView: idpConfigViewFromModel(idp), + } +} + +func idpConfigFromModel(idp *iam_model.IDPConfig) *management.Idp_OidcConfig { + if idp.Type == iam_model.IDPConfigTypeOIDC { + return &management.Idp_OidcConfig{ + OidcConfig: oidcIdpConfigFromModel(idp.OIDCConfig), + } + } + return nil +} + +func oidcIdpConfigFromModel(idp *iam_model.OIDCIDPConfig) *management.OidcIdpConfig { + return &management.OidcIdpConfig{ + ClientId: idp.ClientID, + Issuer: idp.Issuer, + Scopes: idp.Scopes, + } +} + +func idpConfigViewFromModel(idp *iam_model.IDPConfigView) *management.IdpView_OidcConfig { + if idp.IsOIDC { + return &management.IdpView_OidcConfig{ + OidcConfig: oidcIdpConfigViewFromModel(idp), + } + } + return nil +} + +func oidcIdpConfigViewFromModel(idp *iam_model.IDPConfigView) *management.OidcIdpConfigView { + return &management.OidcIdpConfigView{ + ClientId: idp.OIDCClientID, + Issuer: idp.OIDCIssuer, + Scopes: idp.OIDCScopes, + } +} + +func idpConfigStateFromModel(state iam_model.IDPConfigState) management.IdpState { + switch state { + case iam_model.IDPConfigStateActive: + return management.IdpState_IDPCONFIGSTATE_ACTIVE + case iam_model.IDPConfigStateInactive: + return management.IdpState_IDPCONFIGSTATE_INACTIVE + default: + return management.IdpState_IDPCONFIGSTATE_UNSPECIFIED + } +} + +func idpConfigSearchRequestToModel(request *management.IdpSearchRequest) *iam_model.IDPConfigSearchRequest { + return &iam_model.IDPConfigSearchRequest{ + Limit: request.Limit, + Offset: request.Offset, + Queries: idpConfigSearchQueriesToModel(request.Queries), + } +} + +func idpConfigSearchQueriesToModel(queries []*management.IdpSearchQuery) []*iam_model.IDPConfigSearchQuery { + modelQueries := make([]*iam_model.IDPConfigSearchQuery, len(queries)) + for i, query := range queries { + modelQueries[i] = idpConfigSearchQueryToModel(query) + } + + return modelQueries +} + +func idpConfigSearchQueryToModel(query *management.IdpSearchQuery) *iam_model.IDPConfigSearchQuery { + return &iam_model.IDPConfigSearchQuery{ + Key: idpConfigSearchKeyToModel(query.Key), + Method: searchMethodToModel(query.Method), + Value: query.Value, + } +} + +func idpConfigSearchKeyToModel(key management.IdpSearchKey) iam_model.IDPConfigSearchKey { + switch key { + case management.IdpSearchKey_IDPSEARCHKEY_IDP_CONFIG_ID: + return iam_model.IDPConfigSearchKeyIdpConfigID + case management.IdpSearchKey_IDPSEARCHKEY_NAME: + return iam_model.IDPConfigSearchKeyName + case management.IdpSearchKey_IDPSEARCHKEY_PROVIDER_TYPE: + return iam_model.IDPConfigSearchKeyIdpProviderType + default: + return iam_model.IDPConfigSearchKeyUnspecified + } +} + +func idpConfigSearchResponseFromModel(resp *iam_model.IDPConfigSearchResponse) *management.IdpSearchResponse { + timestamp, err := ptypes.TimestampProto(resp.Timestamp) + logging.Log("GRPC-KSi8c").OnError(err).Debug("date parse failed") + return &management.IdpSearchResponse{ + Limit: resp.Limit, + Offset: resp.Offset, + TotalResult: resp.TotalResult, + Result: idpConfigsFromView(resp.Result), + ProcessedSequence: resp.Sequence, + ViewTimestamp: timestamp, + } +} + +func idpConfigsFromView(viewIdps []*iam_model.IDPConfigView) []*management.IdpView { + idps := make([]*management.IdpView, len(viewIdps)) + for i, idp := range viewIdps { + idps[i] = idpViewFromModel(idp) + } + return idps +} diff --git a/internal/api/grpc/management/login_policy.go b/internal/api/grpc/management/login_policy.go new file mode 100644 index 000000000..159580b46 --- /dev/null +++ b/internal/api/grpc/management/login_policy.go @@ -0,0 +1,57 @@ +package management + +import ( + "context" + "github.com/caos/zitadel/pkg/grpc/management" + "github.com/golang/protobuf/ptypes/empty" +) + +func (s *Server) GetLoginPolicy(ctx context.Context, _ *empty.Empty) (*management.LoginPolicyView, error) { + result, err := s.org.GetLoginPolicy(ctx) + if err != nil { + return nil, err + } + return loginPolicyViewFromModel(result), nil +} + +func (s *Server) CreateLoginPolicy(ctx context.Context, policy *management.LoginPolicyAdd) (*management.LoginPolicy, error) { + result, err := s.org.AddLoginPolicy(ctx, loginPolicyAddToModel(policy)) + if err != nil { + return nil, err + } + return loginPolicyFromModel(result), nil +} + +func (s *Server) UpdateLoginPolicy(ctx context.Context, policy *management.LoginPolicy) (*management.LoginPolicy, error) { + result, err := s.org.ChangeLoginPolicy(ctx, loginPolicyToModel(policy)) + if err != nil { + return nil, err + } + return loginPolicyFromModel(result), nil +} + +func (s *Server) RemoveLoginPolicy(ctx context.Context, _ *empty.Empty) (*empty.Empty, error) { + err := s.org.RemoveLoginPolicy(ctx) + return &empty.Empty{}, err +} + +func (s *Server) GetLoginPolicyIdpProviders(ctx context.Context, request *management.IdpProviderSearchRequest) (*management.IdpProviderSearchResponse, error) { + result, err := s.org.SearchIDPProviders(ctx, idpProviderSearchRequestToModel(request)) + if err != nil { + return nil, err + } + return idpProviderSearchResponseFromModel(result), nil +} + +func (s *Server) AddIdpProviderToLoginPolicy(ctx context.Context, provider *management.IdpProviderAdd) (*management.IdpProvider, error) { + result, err := s.org.AddIDPProviderToLoginPolicy(ctx, idpProviderAddToModel(provider)) + if err != nil { + return nil, err + } + return idpProviderFromModel(result), nil +} + +func (s *Server) RemoveIdpProviderFromLoginPolicy(ctx context.Context, provider *management.IdpProviderID) (*empty.Empty, error) { + err := s.org.RemoveIDPProviderFromLoginPolicy(ctx, idpProviderToModel(provider)) + return &empty.Empty{}, err +} diff --git a/internal/api/grpc/management/login_policy_converter.go b/internal/api/grpc/management/login_policy_converter.go new file mode 100644 index 000000000..8bff22872 --- /dev/null +++ b/internal/api/grpc/management/login_policy_converter.go @@ -0,0 +1,131 @@ +package management + +import ( + iam_model "github.com/caos/zitadel/internal/iam/model" + "github.com/caos/zitadel/pkg/grpc/management" +) + +func loginPolicyAddToModel(policy *management.LoginPolicyAdd) *iam_model.LoginPolicy { + return &iam_model.LoginPolicy{ + AllowUsernamePassword: policy.AllowUsernamePassword, + AllowExternalIdp: policy.AllowExternalIdp, + AllowRegister: policy.AllowRegister, + } +} +func loginPolicyToModel(policy *management.LoginPolicy) *iam_model.LoginPolicy { + return &iam_model.LoginPolicy{ + AllowUsernamePassword: policy.AllowUsernamePassword, + AllowExternalIdp: policy.AllowExternalIdp, + AllowRegister: policy.AllowRegister, + } +} + +func loginPolicyFromModel(policy *iam_model.LoginPolicy) *management.LoginPolicy { + return &management.LoginPolicy{ + AllowUsernamePassword: policy.AllowUsernamePassword, + AllowExternalIdp: policy.AllowExternalIdp, + AllowRegister: policy.AllowRegister, + } +} + +func loginPolicyViewFromModel(policy *iam_model.LoginPolicyView) *management.LoginPolicyView { + return &management.LoginPolicyView{ + Default: policy.Default, + AllowUsernamePassword: policy.AllowUsernamePassword, + AllowExternalIdp: policy.AllowExternalIDP, + AllowRegister: policy.AllowRegister, + } +} + +func idpProviderSearchRequestToModel(request *management.IdpProviderSearchRequest) *iam_model.IDPProviderSearchRequest { + return &iam_model.IDPProviderSearchRequest{ + Limit: request.Limit, + Offset: request.Offset, + } +} + +func idpProviderSearchResponseFromModel(response *iam_model.IDPProviderSearchResponse) *management.IdpProviderSearchResponse { + return &management.IdpProviderSearchResponse{ + Limit: response.Limit, + Offset: response.Offset, + TotalResult: response.TotalResult, + Result: idpProviderViewsFromModel(response.Result), + } +} + +func idpProviderToModel(provider *management.IdpProviderID) *iam_model.IDPProvider { + return &iam_model.IDPProvider{ + IdpConfigID: provider.IdpConfigId, + Type: iam_model.IDPProviderTypeSystem, + } +} + +func idpProviderAddToModel(provider *management.IdpProviderAdd) *iam_model.IDPProvider { + return &iam_model.IDPProvider{ + IdpConfigID: provider.IdpConfigId, + Type: idpProviderTypeToModel(provider.IdpProviderType), + } +} + +func idpProviderIDFromModel(provider *iam_model.IDPProvider) *management.IdpProviderID { + return &management.IdpProviderID{ + IdpConfigId: provider.IdpConfigID, + } +} + +func idpProviderFromModel(provider *iam_model.IDPProvider) *management.IdpProvider { + return &management.IdpProvider{ + IdpConfigId: provider.IdpConfigID, + IdpProvider_Type: idpProviderTypeFromModel(provider.Type), + } +} + +func idpProviderViewsFromModel(providers []*iam_model.IDPProviderView) []*management.IdpProviderView { + converted := make([]*management.IdpProviderView, len(providers)) + for i, provider := range providers { + converted[i] = idpProviderViewFromModel(provider) + } + + return converted +} + +func idpProviderViewFromModel(provider *iam_model.IDPProviderView) *management.IdpProviderView { + return &management.IdpProviderView{ + IdpConfigId: provider.IDPConfigID, + Name: provider.Name, + Type: idpConfigTypeToModel(provider.IDPConfigType), + } +} + +func idpConfigTypeToModel(providerType iam_model.IdpConfigType) management.IdpType { + switch providerType { + case iam_model.IDPConfigTypeOIDC: + return management.IdpType_IDPTYPE_OIDC + case iam_model.IDPConfigTypeSAML: + return management.IdpType_IDPTYPE_SAML + default: + return management.IdpType_IDPTYPE_UNSPECIFIED + } +} + +func idpProviderTypeToModel(providerType management.IdpProviderType) iam_model.IDPProviderType { + switch providerType { + case management.IdpProviderType_IDPPROVIDERTYPE_SYSTEM: + return iam_model.IDPProviderTypeSystem + case management.IdpProviderType_IDPPROVIDERTYPE_ORG: + return iam_model.IDPProviderTypeOrg + default: + return iam_model.IDPProviderTypeSystem + } +} + +func idpProviderTypeFromModel(providerType iam_model.IDPProviderType) management.IdpProviderType { + switch providerType { + case iam_model.IDPProviderTypeSystem: + return management.IdpProviderType_IDPPROVIDERTYPE_SYSTEM + case iam_model.IDPProviderTypeOrg: + return management.IdpProviderType_IDPPROVIDERTYPE_ORG + default: + return management.IdpProviderType_IDPPROVIDERTYPE_UNSPECIFIED + } +} diff --git a/internal/api/grpc/management/org_converter.go b/internal/api/grpc/management/org_converter.go index eeff7edbc..d9b903ba8 100644 --- a/internal/api/grpc/management/org_converter.go +++ b/internal/api/grpc/management/org_converter.go @@ -227,7 +227,7 @@ func orgChangesToMgtAPI(changes *org_model.OrgChanges) (_ []*management.Change) return result } -func orgIamPolicyFromModel(policy *org_model.OrgIamPolicy) *management.OrgIamPolicy { +func orgIamPolicyFromModel(policy *org_model.OrgIAMPolicy) *management.OrgIamPolicy { return &management.OrgIamPolicy{ OrgId: policy.AggregateID, Description: policy.Description, diff --git a/internal/auth/repository/eventsourcing/eventstore/iam.go b/internal/auth/repository/eventsourcing/eventstore/iam.go index e27c6a92f..f281310dc 100644 --- a/internal/auth/repository/eventsourcing/eventstore/iam.go +++ b/internal/auth/repository/eventsourcing/eventstore/iam.go @@ -6,11 +6,11 @@ import ( iam_event "github.com/caos/zitadel/internal/iam/repository/eventsourcing" ) -type IamRepository struct { - IamID string - IamEvents *iam_event.IamEventstore +type IAMRepository struct { + IAMID string + IAMEvents *iam_event.IAMEventstore } -func (repo *IamRepository) GetIam(ctx context.Context) (*model.Iam, error) { - return repo.IamEvents.IamByID(ctx, repo.IamID) +func (repo *IAMRepository) GetIAM(ctx context.Context) (*model.IAM, error) { + return repo.IAMEvents.IAMByID(ctx, repo.IAMID) } diff --git a/internal/auth/repository/eventsourcing/eventstore/org.go b/internal/auth/repository/eventsourcing/eventstore/org.go index 3beb78aa7..28f4df949 100644 --- a/internal/auth/repository/eventsourcing/eventstore/org.go +++ b/internal/auth/repository/eventsourcing/eventstore/org.go @@ -56,7 +56,7 @@ func (repo *OrgRepository) RegisterOrg(ctx context.Context, register *auth_model if err != nil { return nil, err } - orgPolicy, err := repo.OrgEventstore.GetOrgIamPolicy(ctx, policy_model.DefaultPolicy) + orgPolicy, err := repo.OrgEventstore.GetOrgIAMPolicy(ctx, policy_model.DefaultPolicy) if err != nil { return nil, err } @@ -94,6 +94,6 @@ 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) GetOrgIamPolicy(ctx context.Context, orgID string) (*org_model.OrgIAMPolicy, error) { + return repo.OrgEventstore.GetOrgIAMPolicy(ctx, policy_model.DefaultPolicy) } diff --git a/internal/auth/repository/eventsourcing/eventstore/user.go b/internal/auth/repository/eventsourcing/eventstore/user.go index 7e772686d..998dba85c 100644 --- a/internal/auth/repository/eventsourcing/eventstore/user.go +++ b/internal/auth/repository/eventsourcing/eventstore/user.go @@ -41,7 +41,7 @@ func (repo *UserRepo) Register(ctx context.Context, registerUser *model.User, or if err != nil { return nil, err } - orgPolicy, err := repo.OrgEvents.GetOrgIamPolicy(ctx, policyResourceOwner) + orgPolicy, err := repo.OrgEvents.GetOrgIAMPolicy(ctx, policyResourceOwner) if err != nil { return nil, err } diff --git a/internal/auth/repository/eventsourcing/handler/handler.go b/internal/auth/repository/eventsourcing/handler/handler.go index 148aa8b5e..2fd4a45d5 100644 --- a/internal/auth/repository/eventsourcing/handler/handler.go +++ b/internal/auth/repository/eventsourcing/handler/handler.go @@ -32,7 +32,7 @@ type EventstoreRepos struct { UserEvents *usr_event.UserEventstore ProjectEvents *proj_event.ProjectEventstore OrgEvents *org_events.OrgEventstore - IamEvents *iam_events.IamEventstore + IamEvents *iam_events.IAMEventstore } func Register(configs Configs, bulkLimit, errorCount uint64, view *view.View, eventstore eventstore.Eventstore, repos EventstoreRepos, systemDefaults sd.SystemDefaults) []query.Handler { diff --git a/internal/auth/repository/eventsourcing/handler/user.go b/internal/auth/repository/eventsourcing/handler/user.go index 5ea20fb15..f49f92d88 100644 --- a/internal/auth/repository/eventsourcing/handler/user.go +++ b/internal/auth/repository/eventsourcing/handler/user.go @@ -109,7 +109,7 @@ func (u *User) fillLoginNames(user *view_model.UserView) (err error) { if err != nil { return err } - policy, err := u.orgEvents.GetOrgIamPolicy(context.Background(), user.ResourceOwner) + policy, err := u.orgEvents.GetOrgIAMPolicy(context.Background(), user.ResourceOwner) if err != nil { return err } @@ -122,9 +122,9 @@ func (u *User) ProcessOrg(event *models.Event) (err error) { switch event.Type { case org_es_model.OrgDomainVerified, org_es_model.OrgDomainRemoved, - org_es_model.OrgIamPolicyAdded, - org_es_model.OrgIamPolicyChanged, - org_es_model.OrgIamPolicyRemoved: + org_es_model.OrgIAMPolicyAdded, + org_es_model.OrgIAMPolicyChanged, + org_es_model.OrgIAMPolicyRemoved: return u.fillLoginNamesOnOrgUsers(event) case org_es_model.OrgDomainPrimarySet: return u.fillPreferredLoginNamesOnOrgUsers(event) @@ -138,7 +138,7 @@ func (u *User) fillLoginNamesOnOrgUsers(event *models.Event) error { if err != nil { return err } - policy, err := u.orgEvents.GetOrgIamPolicy(context.Background(), event.ResourceOwner) + policy, err := u.orgEvents.GetOrgIAMPolicy(context.Background(), event.ResourceOwner) if err != nil { return err } @@ -161,7 +161,7 @@ func (u *User) fillPreferredLoginNamesOnOrgUsers(event *models.Event) error { if err != nil { return err } - policy, err := u.orgEvents.GetOrgIamPolicy(context.Background(), event.ResourceOwner) + policy, err := u.orgEvents.GetOrgIAMPolicy(context.Background(), event.ResourceOwner) if err != nil { return err } diff --git a/internal/auth/repository/eventsourcing/handler/user_grant.go b/internal/auth/repository/eventsourcing/handler/user_grant.go index 1370c9512..d58c45286 100644 --- a/internal/auth/repository/eventsourcing/handler/user_grant.go +++ b/internal/auth/repository/eventsourcing/handler/user_grant.go @@ -33,7 +33,7 @@ type UserGrant struct { projectEvents *proj_event.ProjectEventstore userEvents *usr_events.UserEventstore orgEvents *org_events.OrgEventstore - iamEvents *iam_events.IamEventstore + iamEvents *iam_events.IAMEventstore iamID string iamProjectID string } @@ -58,7 +58,7 @@ func (u *UserGrant) EventQuery() (*models.SearchQuery, error) { return nil, err } return es_models.NewSearchQuery(). - AggregateTypeFilter(grant_es_model.UserGrantAggregate, iam_es_model.IamAggregate, org_es_model.OrgAggregate, usr_es_model.UserAggregate, proj_es_model.ProjectAggregate). + AggregateTypeFilter(grant_es_model.UserGrantAggregate, iam_es_model.IAMAggregate, org_es_model.OrgAggregate, usr_es_model.UserAggregate, proj_es_model.ProjectAggregate). LatestSequenceFilter(sequence.CurrentSequence), nil } @@ -70,7 +70,7 @@ func (u *UserGrant) Reduce(event *models.Event) (err error) { err = u.processUser(event) case proj_es_model.ProjectAggregate: err = u.processProject(event) - case iam_es_model.IamAggregate: + case iam_es_model.IAMAggregate: err = u.processIamMember(event, "IAM", false) case org_es_model.OrgAggregate: return u.processOrg(event) @@ -176,10 +176,10 @@ func (u *UserGrant) processOrg(event *models.Event) (err error) { } func (u *UserGrant) processIamMember(event *models.Event, rolePrefix string, suffix bool) error { - member := new(iam_es_model.IamMember) + member := new(iam_es_model.IAMMember) switch event.Type { - case iam_es_model.IamMemberAdded, iam_es_model.IamMemberChanged: + case iam_es_model.IAMMemberAdded, iam_es_model.IAMMemberChanged: member.SetData(event) grant, err := u.view.UserGrantByIDs(u.iamID, u.iamProjectID, member.UserID) @@ -210,7 +210,7 @@ func (u *UserGrant) processIamMember(event *models.Event, rolePrefix string, suf grant.Sequence = event.Sequence grant.ChangeDate = event.CreationDate return u.view.PutUserGrant(grant, grant.Sequence) - case iam_es_model.IamMemberRemoved: + case iam_es_model.IAMMemberRemoved: member.SetData(event) grant, err := u.view.UserGrantByIDs(u.iamID, u.iamProjectID, member.UserID) if err != nil { @@ -295,14 +295,14 @@ func (u *UserGrant) setIamProjectID() error { if u.iamProjectID != "" { return nil } - iam, err := u.iamEvents.IamByID(context.Background(), u.iamID) + iam, err := u.iamEvents.IAMByID(context.Background(), u.iamID) if err != nil { return err } if !iam.SetUpDone { return caos_errs.ThrowPreconditionFailed(nil, "HANDL-s5DTs", "Setup not done") } - u.iamProjectID = iam.IamProjectID + u.iamProjectID = iam.IAMProjectID return nil } diff --git a/internal/auth/repository/eventsourcing/repository.go b/internal/auth/repository/eventsourcing/repository.go index 99eeb395a..1642cc718 100644 --- a/internal/auth/repository/eventsourcing/repository.go +++ b/internal/auth/repository/eventsourcing/repository.go @@ -44,7 +44,7 @@ type EsRepository struct { eventstore.UserSessionRepo eventstore.UserGrantRepo eventstore.OrgRepository - eventstore.IamRepository + eventstore.IAMRepository eventstore.PolicyRepo } @@ -109,8 +109,8 @@ func Start(conf Config, authZ authz.Config, systemDefaults sd.SystemDefaults, au if err != nil { return nil, err } - iam, err := es_iam.StartIam( - es_iam.IamConfig{ + iam, err := es_iam.StartIAM( + es_iam.IAMConfig{ Eventstore: es, Cache: conf.Eventstore.Cache, }, @@ -174,9 +174,9 @@ func Start(conf Config, authZ authz.Config, systemDefaults sd.SystemDefaults, au PolicyEventstore: policy, UserEventstore: user, }, - eventstore.IamRepository{ - IamEvents: iam, - IamID: systemDefaults.IamID, + eventstore.IAMRepository{ + IAMEvents: iam, + IAMID: systemDefaults.IamID, }, eventstore.PolicyRepo{ PolicyEvents: policy, diff --git a/internal/auth/repository/iam.go b/internal/auth/repository/iam.go index 3e17aa097..6d7e9efd6 100644 --- a/internal/auth/repository/iam.go +++ b/internal/auth/repository/iam.go @@ -6,6 +6,6 @@ import ( "github.com/caos/zitadel/internal/iam/model" ) -type IamRepository interface { - GetIam(ctx context.Context) (*model.Iam, error) +type IAMRepository interface { + GetIAM(ctx context.Context) (*model.IAM, error) } diff --git a/internal/auth/repository/org.go b/internal/auth/repository/org.go index a1280a1a7..2c9f4cfad 100644 --- a/internal/auth/repository/org.go +++ b/internal/auth/repository/org.go @@ -8,5 +8,5 @@ import ( type OrgRepository interface { RegisterOrg(context.Context, *auth_model.RegisterOrg) (*auth_model.RegisterOrg, error) - GetOrgIamPolicy(ctx context.Context, orgID string) (*org_model.OrgIamPolicy, error) + GetOrgIamPolicy(ctx context.Context, orgID string) (*org_model.OrgIAMPolicy, error) } diff --git a/internal/authz/repository/eventsourcing/eventstore/iam.go b/internal/authz/repository/eventsourcing/eventstore/iam.go index d0fee2efb..48c532e60 100644 --- a/internal/authz/repository/eventsourcing/eventstore/iam.go +++ b/internal/authz/repository/eventsourcing/eventstore/iam.go @@ -7,14 +7,14 @@ import ( ) type IamRepo struct { - IamID string - IamEvents *iam_event.IamEventstore + IAMID string + IAMEvents *iam_event.IAMEventstore } func (repo *IamRepo) Health(ctx context.Context) error { - return repo.IamEvents.Health(ctx) + return repo.IAMEvents.Health(ctx) } -func (repo *IamRepo) IamByID(ctx context.Context) (*model.Iam, error) { - return repo.IamEvents.IamByID(ctx, repo.IamID) +func (repo *IamRepo) IamByID(ctx context.Context) (*model.IAM, error) { + return repo.IAMEvents.IAMByID(ctx, repo.IAMID) } diff --git a/internal/authz/repository/eventsourcing/eventstore/token_verifier.go b/internal/authz/repository/eventsourcing/eventstore/token_verifier.go index ad7750f95..7cfed3ab7 100644 --- a/internal/authz/repository/eventsourcing/eventstore/token_verifier.go +++ b/internal/authz/repository/eventsourcing/eventstore/token_verifier.go @@ -13,8 +13,8 @@ import ( type TokenVerifierRepo struct { TokenVerificationKey [32]byte - IamID string - IamEvents *iam_event.IamEventstore + IAMID string + IAMEvents *iam_event.IAMEventstore ProjectEvents *proj_event.ProjectEventstore View *view.View } @@ -55,11 +55,11 @@ func (repo *TokenVerifierRepo) ExistsOrg(ctx context.Context, orgID string) erro } func (repo *TokenVerifierRepo) VerifierClientID(ctx context.Context, appName string) (string, error) { - iam, err := repo.IamEvents.IamByID(ctx, repo.IamID) + iam, err := repo.IAMEvents.IAMByID(ctx, repo.IAMID) if err != nil { return "", err } - app, err := repo.View.ApplicationByProjecIDAndAppName(iam.IamProjectID, appName) + app, err := repo.View.ApplicationByProjecIDAndAppName(iam.IAMProjectID, appName) if err != nil { return "", err } diff --git a/internal/authz/repository/eventsourcing/eventstore/user_grant.go b/internal/authz/repository/eventsourcing/eventstore/user_grant.go index 3a20958d6..f1007d68c 100644 --- a/internal/authz/repository/eventsourcing/eventstore/user_grant.go +++ b/internal/authz/repository/eventsourcing/eventstore/user_grant.go @@ -16,7 +16,7 @@ type UserGrantRepo struct { IamID string IamProjectID string Auth authz.Config - IamEvents *iam_event.IamEventstore + IamEvents *iam_event.IAMEventstore } func (repo *UserGrantRepo) Health() error { @@ -67,14 +67,14 @@ func (repo *UserGrantRepo) FillIamProjectID(ctx context.Context) error { if repo.IamProjectID != "" { return nil } - iam, err := repo.IamEvents.IamByID(ctx, repo.IamID) + iam, err := repo.IamEvents.IAMByID(ctx, repo.IamID) if err != nil { return err } if !iam.SetUpDone { return caos_errs.ThrowPreconditionFailed(nil, "EVENT-skiwS", "Setup not done") } - repo.IamProjectID = iam.IamProjectID + repo.IamProjectID = iam.IAMProjectID return nil } diff --git a/internal/authz/repository/eventsourcing/handler/handler.go b/internal/authz/repository/eventsourcing/handler/handler.go index 9cc6d0689..31274d77a 100644 --- a/internal/authz/repository/eventsourcing/handler/handler.go +++ b/internal/authz/repository/eventsourcing/handler/handler.go @@ -26,7 +26,7 @@ type handler struct { } type EventstoreRepos struct { - IamEvents *iam_events.IamEventstore + IamEvents *iam_events.IAMEventstore } func Register(configs Configs, bulkLimit, errorCount uint64, view *view.View, eventstore eventstore.Eventstore, repos EventstoreRepos, systemDefaults sd.SystemDefaults) []query.Handler { diff --git a/internal/authz/repository/eventsourcing/handler/user_grant.go b/internal/authz/repository/eventsourcing/handler/user_grant.go index 5bead7da1..7f8b9afde 100644 --- a/internal/authz/repository/eventsourcing/handler/user_grant.go +++ b/internal/authz/repository/eventsourcing/handler/user_grant.go @@ -22,7 +22,7 @@ import ( type UserGrant struct { handler eventstore eventstore.Eventstore - iamEvents *iam_events.IamEventstore + iamEvents *iam_events.IAMEventstore iamID string iamProjectID string } @@ -47,7 +47,7 @@ func (u *UserGrant) EventQuery() (*models.SearchQuery, error) { return nil, err } return es_models.NewSearchQuery(). - AggregateTypeFilter(iam_es_model.IamAggregate, org_es_model.OrgAggregate, proj_es_model.ProjectAggregate). + AggregateTypeFilter(iam_es_model.IAMAggregate, org_es_model.OrgAggregate, proj_es_model.ProjectAggregate). LatestSequenceFilter(sequence.CurrentSequence), nil } @@ -55,7 +55,7 @@ func (u *UserGrant) Reduce(event *models.Event) (err error) { switch event.AggregateType { case proj_es_model.ProjectAggregate: err = u.processProject(event) - case iam_es_model.IamAggregate: + case iam_es_model.IAMAggregate: err = u.processIamMember(event, "IAM", false) case org_es_model.OrgAggregate: return u.processOrg(event) @@ -92,10 +92,10 @@ func (u *UserGrant) processOrg(event *models.Event) (err error) { } func (u *UserGrant) processIamMember(event *models.Event, rolePrefix string, suffix bool) error { - member := new(iam_es_model.IamMember) + member := new(iam_es_model.IAMMember) switch event.Type { - case iam_es_model.IamMemberAdded, iam_es_model.IamMemberChanged: + case iam_es_model.IAMMemberAdded, iam_es_model.IAMMemberChanged: member.SetData(event) grant, err := u.view.UserGrantByIDs(u.iamID, u.iamProjectID, member.UserID) @@ -126,7 +126,7 @@ func (u *UserGrant) processIamMember(event *models.Event, rolePrefix string, suf grant.Sequence = event.Sequence grant.ChangeDate = event.CreationDate return u.view.PutUserGrant(grant, grant.Sequence) - case iam_es_model.IamMemberRemoved: + case iam_es_model.IAMMemberRemoved: member.SetData(event) grant, err := u.view.UserGrantByIDs(u.iamID, u.iamProjectID, member.UserID) if err != nil { @@ -210,14 +210,14 @@ func (u *UserGrant) setIamProjectID() error { if u.iamProjectID != "" { return nil } - iam, err := u.iamEvents.IamByID(context.Background(), u.iamID) + iam, err := u.iamEvents.IAMByID(context.Background(), u.iamID) if err != nil { return err } if !iam.SetUpDone { return caos_errs.ThrowPreconditionFailed(nil, "HANDL-s5DTs", "Setup not done") } - u.iamProjectID = iam.IamProjectID + u.iamProjectID = iam.IAMProjectID return nil } diff --git a/internal/authz/repository/eventsourcing/repository.go b/internal/authz/repository/eventsourcing/repository.go index 8803039e5..2116f9d5a 100644 --- a/internal/authz/repository/eventsourcing/repository.go +++ b/internal/authz/repository/eventsourcing/repository.go @@ -51,7 +51,7 @@ func Start(conf Config, authZ authz.Config, systemDefaults sd.SystemDefaults) (* return nil, err } - iam, err := es_iam.StartIam(es_iam.IamConfig{ + iam, err := es_iam.StartIAM(es_iam.IAMConfig{ Eventstore: es, Cache: conf.Eventstore.Cache, }, systemDefaults) @@ -77,13 +77,13 @@ func Start(conf Config, authZ authz.Config, systemDefaults sd.SystemDefaults) (* IamEvents: iam, }, eventstore.IamRepo{ - IamID: systemDefaults.IamID, - IamEvents: iam, + IAMID: systemDefaults.IamID, + IAMEvents: iam, }, eventstore.TokenVerifierRepo{ //TODO: Add Token Verification Key - IamID: systemDefaults.IamID, - IamEvents: iam, + IAMID: systemDefaults.IamID, + IAMEvents: iam, ProjectEvents: project, View: view, }, diff --git a/internal/authz/repository/iam.go b/internal/authz/repository/iam.go index 0197c163c..5434807d2 100644 --- a/internal/authz/repository/iam.go +++ b/internal/authz/repository/iam.go @@ -5,7 +5,7 @@ import ( "github.com/caos/zitadel/internal/iam/model" ) -type IamRepository interface { +type IAMRepository interface { Health(ctx context.Context) error - IamByID(ctx context.Context, id string) (*model.Iam, error) + IAMByID(ctx context.Context, id string) (*model.IAM, error) } diff --git a/internal/authz/repository/repository.go b/internal/authz/repository/repository.go index 4b54764fd..e5324b85c 100644 --- a/internal/authz/repository/repository.go +++ b/internal/authz/repository/repository.go @@ -7,5 +7,5 @@ import ( type Repository interface { Health(context.Context) error UserGrantRepository - IamRepository + IAMRepository } diff --git a/internal/config/systemdefaults/system_defaults.go b/internal/config/systemdefaults/system_defaults.go index 89a5b5679..93408c86c 100644 --- a/internal/config/systemdefaults/system_defaults.go +++ b/internal/config/systemdefaults/system_defaults.go @@ -14,17 +14,18 @@ import ( ) type SystemDefaults struct { - DefaultLanguage language.Tag - Domain string - ZitadelDocs ZitadelDocs - SecretGenerators SecretGenerators - UserVerificationKey *crypto.KeyConfig - Multifactors MultifactorConfig - VerificationLifetimes VerificationLifetimes - DefaultPolicies DefaultPolicies - DomainVerification DomainVerification - IamID string - Notifications Notifications + DefaultLanguage language.Tag + Domain string + ZitadelDocs ZitadelDocs + SecretGenerators SecretGenerators + UserVerificationKey *crypto.KeyConfig + IDPConfigVerificationKey *crypto.KeyConfig + Multifactors MultifactorConfig + VerificationLifetimes VerificationLifetimes + DefaultPolicies DefaultPolicies + DomainVerification DomainVerification + IamID string + Notifications Notifications } type ZitadelDocs struct { @@ -61,7 +62,7 @@ type DefaultPolicies struct { Age pol.PasswordAgePolicyDefault Complexity pol.PasswordComplexityPolicyDefault Lockout pol.PasswordLockoutPolicyDefault - OrgIam org_model.OrgIamPolicy + OrgIam org_model.OrgIAMPolicy } type DomainVerification struct { diff --git a/internal/iam/model/iam.go b/internal/iam/model/iam.go index 651b53646..746071549 100644 --- a/internal/iam/model/iam.go +++ b/internal/iam/model/iam.go @@ -4,16 +4,18 @@ import ( es_models "github.com/caos/zitadel/internal/eventstore/models" ) -type Iam struct { +type IAM struct { es_models.ObjectRoot - GlobalOrgID string - IamProjectID string - SetUpDone bool - SetUpStarted bool - Members []*IamMember + GlobalOrgID string + IAMProjectID string + SetUpDone bool + SetUpStarted bool + Members []*IAMMember + IDPs []*IDPConfig + DefaultLoginPolicy *LoginPolicy } -func (iam *Iam) GetMember(userID string) (int, *IamMember) { +func (iam *IAM) GetMember(userID string) (int, *IAMMember) { for i, m := range iam.Members { if m.UserID == userID { return i, m @@ -21,3 +23,12 @@ func (iam *Iam) GetMember(userID string) (int, *IamMember) { } return -1, nil } + +func (iam *IAM) GetIDP(idpID string) (int, *IDPConfig) { + for i, idp := range iam.IDPs { + if idp.IDPConfigID == idpID { + return i, idp + } + } + return -1, nil +} diff --git a/internal/iam/model/iam_member.go b/internal/iam/model/iam_member.go index 2fe0b08b6..f2531f46e 100644 --- a/internal/iam/model/iam_member.go +++ b/internal/iam/model/iam_member.go @@ -2,17 +2,17 @@ package model import es_models "github.com/caos/zitadel/internal/eventstore/models" -type IamMember struct { +type IAMMember struct { es_models.ObjectRoot UserID string Roles []string } -func NewIamMember(iamID, userID string) *IamMember { - return &IamMember{ObjectRoot: es_models.ObjectRoot{AggregateID: iamID}, UserID: userID} +func NewIAMMember(iamID, userID string) *IAMMember { + return &IAMMember{ObjectRoot: es_models.ObjectRoot{AggregateID: iamID}, UserID: userID} } -func (i *IamMember) IsValid() bool { +func (i *IAMMember) IsValid() bool { return i.AggregateID != "" && i.UserID != "" && len(i.Roles) != 0 } diff --git a/internal/iam/model/iam_member_view.go b/internal/iam/model/iam_member_view.go index e7e16d55b..a260f288b 100644 --- a/internal/iam/model/iam_member_view.go +++ b/internal/iam/model/iam_member_view.go @@ -5,9 +5,9 @@ import ( "time" ) -type IamMemberView struct { +type IAMMemberView struct { UserID string - IamID string + IAMID string UserName string Email string FirstName string @@ -19,42 +19,42 @@ type IamMemberView struct { Sequence uint64 } -type IamMemberSearchRequest struct { +type IAMMemberSearchRequest struct { Offset uint64 Limit uint64 - SortingColumn IamMemberSearchKey + SortingColumn IAMMemberSearchKey Asc bool - Queries []*IamMemberSearchQuery + Queries []*IAMMemberSearchQuery } -type IamMemberSearchKey int32 +type IAMMemberSearchKey int32 const ( - IamMemberSearchKeyUnspecified IamMemberSearchKey = iota - IamMemberSearchKeyUserName - IamMemberSearchKeyEmail - IamMemberSearchKeyFirstName - IamMemberSearchKeyLastName - IamMemberSearchKeyIamID - IamMemberSearchKeyUserID + IAMMemberSearchKeyUnspecified IAMMemberSearchKey = iota + IAMMemberSearchKeyUserName + IAMMemberSearchKeyEmail + IAMMemberSearchKeyFirstName + IAMMemberSearchKeyLastName + IAMMemberSearchKeyIamID + IAMMemberSearchKeyUserID ) -type IamMemberSearchQuery struct { - Key IamMemberSearchKey +type IAMMemberSearchQuery struct { + Key IAMMemberSearchKey Method model.SearchMethod Value interface{} } -type IamMemberSearchResponse struct { +type IAMMemberSearchResponse struct { Offset uint64 Limit uint64 TotalResult uint64 - Result []*IamMemberView + Result []*IAMMemberView Sequence uint64 Timestamp time.Time } -func (r *IamMemberSearchRequest) EnsureLimit(limit uint64) { +func (r *IAMMemberSearchRequest) EnsureLimit(limit uint64) { if r.Limit == 0 || r.Limit > limit { r.Limit = limit } diff --git a/internal/iam/model/idp_config.go b/internal/iam/model/idp_config.go new file mode 100644 index 000000000..fbc6c510b --- /dev/null +++ b/internal/iam/model/idp_config.go @@ -0,0 +1,74 @@ +package model + +import ( + "github.com/caos/zitadel/internal/crypto" + es_models "github.com/caos/zitadel/internal/eventstore/models" +) + +type IDPConfig struct { + es_models.ObjectRoot + IDPConfigID string + Type IdpConfigType + Name string + LogoSrc []byte + State IDPConfigState + OIDCConfig *OIDCIDPConfig +} + +type OIDCIDPConfig struct { + es_models.ObjectRoot + IDPConfigID string + ClientID string + ClientSecret *crypto.CryptoValue + ClientSecretString string + Issuer string + Scopes []string +} + +type IdpConfigType int32 + +const ( + IDPConfigTypeOIDC IdpConfigType = iota + IDPConfigTypeSAML +) + +type IDPConfigState int32 + +const ( + IDPConfigStateActive IDPConfigState = iota + IDPConfigStateInactive + IDPConfigStateRemoved +) + +func NewIDPConfig(iamID, idpID string) *IDPConfig { + return &IDPConfig{ObjectRoot: es_models.ObjectRoot{AggregateID: iamID}, IDPConfigID: idpID} +} + +func (idp *IDPConfig) IsValid(includeConfig bool) bool { + if idp.Name == "" || idp.AggregateID == "" { + return false + } + if !includeConfig { + return true + } + if idp.Type == IDPConfigTypeOIDC && !idp.OIDCConfig.IsValid(true) { + return false + } + return true +} + +func (oi *OIDCIDPConfig) IsValid(withSecret bool) bool { + if withSecret { + return oi.ClientID != "" && oi.Issuer != "" && oi.ClientSecretString != "" + } + return oi.ClientID != "" && oi.Issuer != "" +} + +func (oi *OIDCIDPConfig) CryptSecret(crypt crypto.Crypto) error { + cryptedSecret, err := crypto.Crypt([]byte(oi.ClientSecretString), crypt) + if err != nil { + return err + } + oi.ClientSecret = cryptedSecret + return nil +} diff --git a/internal/iam/model/idp_config_view.go b/internal/iam/model/idp_config_view.go new file mode 100644 index 000000000..18dba650f --- /dev/null +++ b/internal/iam/model/idp_config_view.go @@ -0,0 +1,68 @@ +package model + +import ( + "github.com/caos/zitadel/internal/crypto" + "github.com/caos/zitadel/internal/model" + "time" +) + +type IDPConfigView struct { + AggregateID string + IDPConfigID string + Name string + LogoSrc []byte + State IDPConfigState + CreationDate time.Time + ChangeDate time.Time + Sequence uint64 + IDPProviderType IDPProviderType + + IsOIDC bool + OIDCClientID string + OIDCClientSecret *crypto.CryptoValue + OIDCIssuer string + OIDCScopes []string +} + +type IDPConfigSearchRequest struct { + Offset uint64 + Limit uint64 + SortingColumn IDPConfigSearchKey + Asc bool + Queries []*IDPConfigSearchQuery +} + +type IDPConfigSearchKey int32 + +const ( + IDPConfigSearchKeyUnspecified IDPConfigSearchKey = iota + IDPConfigSearchKeyName + IDPConfigSearchKeyAggregateID + IDPConfigSearchKeyIdpConfigID + IDPConfigSearchKeyIdpProviderType +) + +type IDPConfigSearchQuery struct { + Key IDPConfigSearchKey + Method model.SearchMethod + Value interface{} +} + +type IDPConfigSearchResponse struct { + Offset uint64 + Limit uint64 + TotalResult uint64 + Result []*IDPConfigView + Sequence uint64 + Timestamp time.Time +} + +func (r *IDPConfigSearchRequest) EnsureLimit(limit uint64) { + if r.Limit == 0 || r.Limit > limit { + r.Limit = limit + } +} + +func (r *IDPConfigSearchRequest) AppendMyOrgQuery(orgID, iamID string) { + r.Queries = append(r.Queries, &IDPConfigSearchQuery{Key: IDPConfigSearchKeyAggregateID, Method: model.SearchMethodIsOneOf, Value: []string{orgID, iamID}}) +} diff --git a/internal/iam/model/idp_provider_view.go b/internal/iam/model/idp_provider_view.go new file mode 100644 index 000000000..2ab575855 --- /dev/null +++ b/internal/iam/model/idp_provider_view.go @@ -0,0 +1,59 @@ +package model + +import ( + "github.com/caos/zitadel/internal/model" + "time" +) + +type IDPProviderView struct { + AggregateID string + IDPConfigID string + IDPProviderType IDPProviderType + Name string + IDPConfigType IdpConfigType + + CreationDate time.Time + ChangeDate time.Time + Sequence uint64 +} + +type IDPProviderSearchRequest struct { + Offset uint64 + Limit uint64 + SortingColumn IDPProviderSearchKey + Asc bool + Queries []*IDPProviderSearchQuery +} + +type IDPProviderSearchKey int32 + +const ( + IDPProviderSearchKeyUnspecified IDPProviderSearchKey = iota + IDPProviderSearchKeyAggregateID + IDPProviderSearchKeyIdpConfigID +) + +type IDPProviderSearchQuery struct { + Key IDPProviderSearchKey + Method model.SearchMethod + Value interface{} +} + +type IDPProviderSearchResponse struct { + Offset uint64 + Limit uint64 + TotalResult uint64 + Result []*IDPProviderView + Sequence uint64 + Timestamp time.Time +} + +func (r *IDPProviderSearchRequest) EnsureLimit(limit uint64) { + if r.Limit == 0 || r.Limit > limit { + r.Limit = limit + } +} + +func (r *IDPProviderSearchRequest) AppendAggregateIDQuery(aggregateID string) { + r.Queries = append(r.Queries, &IDPProviderSearchQuery{Key: IDPProviderSearchKeyAggregateID, Method: model.SearchMethodEquals, Value: aggregateID}) +} diff --git a/internal/iam/model/login_policy.go b/internal/iam/model/login_policy.go new file mode 100644 index 000000000..6cb989106 --- /dev/null +++ b/internal/iam/model/login_policy.go @@ -0,0 +1,53 @@ +package model + +import ( + "github.com/caos/zitadel/internal/eventstore/models" +) + +type LoginPolicy struct { + models.ObjectRoot + + State PolicyState + Default bool + AllowUsernamePassword bool + AllowRegister bool + AllowExternalIdp bool + IDPProviders []*IDPProvider +} + +type IDPProvider struct { + models.ObjectRoot + Type IDPProviderType + IdpConfigID string +} + +type PolicyState int32 + +const ( + PolicyStateActive PolicyState = iota + PolicyStateRemoved +) + +type IDPProviderType int32 + +const ( + IDPProviderTypeSystem IDPProviderType = iota + IDPProviderTypeOrg +) + +func (p *LoginPolicy) IsValid() bool { + return p.ObjectRoot.AggregateID != "" +} + +func (p *IDPProvider) IsValid() bool { + return p.ObjectRoot.AggregateID != "" && p.IdpConfigID != "" +} + +func (p *LoginPolicy) GetIdpProvider(id string) (int, *IDPProvider) { + for i, m := range p.IDPProviders { + if m.IdpConfigID == id { + return i, m + } + } + return -1, nil +} diff --git a/internal/iam/model/login_policy_view.go b/internal/iam/model/login_policy_view.go new file mode 100644 index 000000000..93bdc1cab --- /dev/null +++ b/internal/iam/model/login_policy_view.go @@ -0,0 +1,48 @@ +package model + +import ( + "github.com/caos/zitadel/internal/model" + "time" +) + +type LoginPolicyView struct { + AggregateID string + AllowUsernamePassword bool + AllowRegister bool + AllowExternalIDP bool + Default bool + + CreationDate time.Time + ChangeDate time.Time + Sequence uint64 +} + +type LoginPolicySearchRequest struct { + Offset uint64 + Limit uint64 + SortingColumn LoginPolicySearchKey + Asc bool + Queries []*LoginPolicySearchQuery +} + +type LoginPolicySearchKey int32 + +const ( + LoginPolicySearchKeyUnspecified LoginPolicySearchKey = iota + LoginPolicySearchKeyAggregateID +) + +type LoginPolicySearchQuery struct { + Key LoginPolicySearchKey + Method model.SearchMethod + Value interface{} +} + +type LoginPolicySearchResponse struct { + Offset uint64 + Limit uint64 + TotalResult uint64 + Result []*LoginPolicyView + Sequence uint64 + Timestamp time.Time +} diff --git a/internal/iam/repository/eventsourcing/cache.go b/internal/iam/repository/eventsourcing/cache.go index e1e5257af..0c66e52f4 100644 --- a/internal/iam/repository/eventsourcing/cache.go +++ b/internal/iam/repository/eventsourcing/cache.go @@ -8,26 +8,26 @@ import ( "github.com/caos/zitadel/internal/iam/repository/eventsourcing/model" ) -type IamCache struct { +type IAMCache struct { iamCache cache.Cache } -func StartCache(conf *config.CacheConfig) (*IamCache, error) { +func StartCache(conf *config.CacheConfig) (*IAMCache, error) { iamCache, err := conf.Config.NewCache() logging.Log("EVENT-9siew").OnError(err).Panic("unable to create iam cache") - return &IamCache{iamCache: iamCache}, nil + return &IAMCache{iamCache: iamCache}, nil } -func (c *IamCache) getIam(ID string) *model.Iam { - user := &model.Iam{ObjectRoot: models.ObjectRoot{AggregateID: ID}} +func (c *IAMCache) getIAM(ID string) *model.IAM { + user := &model.IAM{ObjectRoot: models.ObjectRoot{AggregateID: ID}} if err := c.iamCache.Get(ID, user); err != nil { logging.Log("EVENT-slo9x").WithError(err).Debug("error in getting cache") } return user } -func (c *IamCache) cacheIam(iam *model.Iam) { +func (c *IAMCache) cacheIAM(iam *model.IAM) { err := c.iamCache.Set(iam.AggregateID, iam) if err != nil { logging.Log("EVENT-os03w").WithError(err).Debug("error in setting iam cache") diff --git a/internal/iam/repository/eventsourcing/eventstore.go b/internal/iam/repository/eventsourcing/eventstore.go index e6ce832bd..ccaf60960 100644 --- a/internal/iam/repository/eventsourcing/eventstore.go +++ b/internal/iam/repository/eventsourcing/eventstore.go @@ -4,40 +4,50 @@ import ( "context" "github.com/caos/zitadel/internal/cache/config" sd "github.com/caos/zitadel/internal/config/systemdefaults" + "github.com/caos/zitadel/internal/crypto" caos_errs "github.com/caos/zitadel/internal/errors" es_int "github.com/caos/zitadel/internal/eventstore" "github.com/caos/zitadel/internal/eventstore/models" es_sdk "github.com/caos/zitadel/internal/eventstore/sdk" iam_model "github.com/caos/zitadel/internal/iam/model" "github.com/caos/zitadel/internal/iam/repository/eventsourcing/model" + "github.com/caos/zitadel/internal/id" ) -type IamEventstore struct { +type IAMEventstore struct { es_int.Eventstore - iamCache *IamCache + iamCache *IAMCache + idGenerator id.Generator + secretCrypto crypto.Crypto } -type IamConfig struct { +type IAMConfig struct { es_int.Eventstore Cache *config.CacheConfig } -func StartIam(conf IamConfig, systemDefaults sd.SystemDefaults) (*IamEventstore, error) { +func StartIAM(conf IAMConfig, systemDefaults sd.SystemDefaults) (*IAMEventstore, error) { iamCache, err := StartCache(conf.Cache) if err != nil { return nil, err } - return &IamEventstore{ - Eventstore: conf.Eventstore, - iamCache: iamCache, + aesCrypto, err := crypto.NewAESCrypto(systemDefaults.IDPConfigVerificationKey) + if err != nil { + return nil, err + } + return &IAMEventstore{ + Eventstore: conf.Eventstore, + iamCache: iamCache, + idGenerator: id.SonyFlakeGenerator, + secretCrypto: aesCrypto, }, nil } -func (es *IamEventstore) IamByID(ctx context.Context, id string) (*iam_model.Iam, error) { - iam := es.iamCache.getIam(id) +func (es *IAMEventstore) IAMByID(ctx context.Context, id string) (*iam_model.IAM, error) { + iam := es.iamCache.getIAM(id) - query, err := IamByIDQuery(iam.AggregateID, iam.Sequence) + query, err := IAMByIDQuery(iam.AggregateID, iam.Sequence) if err != nil { return nil, err } @@ -45,12 +55,12 @@ func (es *IamEventstore) IamByID(ctx context.Context, id string) (*iam_model.Iam if err != nil && caos_errs.IsNotFound(err) && iam.Sequence == 0 { return nil, err } - es.iamCache.cacheIam(iam) - return model.IamToModel(iam), nil + es.iamCache.cacheIAM(iam) + return model.IAMToModel(iam), nil } -func (es *IamEventstore) StartSetup(ctx context.Context, iamID string) (*iam_model.Iam, error) { - iam, err := es.IamByID(ctx, iamID) +func (es *IAMEventstore) StartSetup(ctx context.Context, iamID string) (*iam_model.IAM, error) { + iam, err := es.IAMByID(ctx, iamID) if err != nil && !caos_errs.IsNotFound(err) { return nil, err } @@ -59,132 +69,420 @@ func (es *IamEventstore) StartSetup(ctx context.Context, iamID string) (*iam_mod return nil, caos_errs.ThrowPreconditionFailed(nil, "EVENT-9so34", "Setup already started") } - repoIam := &model.Iam{ObjectRoot: models.ObjectRoot{AggregateID: iamID}} - createAggregate := IamSetupStartedAggregate(es.AggregateCreator(), repoIam) + repoIam := &model.IAM{ObjectRoot: models.ObjectRoot{AggregateID: iamID}} + createAggregate := IAMSetupStartedAggregate(es.AggregateCreator(), repoIam) err = es_sdk.Push(ctx, es.PushAggregates, repoIam.AppendEvents, createAggregate) if err != nil { return nil, err } - es.iamCache.cacheIam(repoIam) - return model.IamToModel(repoIam), nil + es.iamCache.cacheIAM(repoIam) + return model.IAMToModel(repoIam), nil } -func (es *IamEventstore) SetupDone(ctx context.Context, iamID string) (*iam_model.Iam, error) { - iam, err := es.IamByID(ctx, iamID) +func (es *IAMEventstore) SetupDone(ctx context.Context, iamID string) (*iam_model.IAM, error) { + iam, err := es.IAMByID(ctx, iamID) if err != nil { return nil, err } - repoIam := model.IamFromModel(iam) - createAggregate := IamSetupDoneAggregate(es.AggregateCreator(), repoIam) + repoIam := model.IAMFromModel(iam) + createAggregate := IAMSetupDoneAggregate(es.AggregateCreator(), repoIam) err = es_sdk.Push(ctx, es.PushAggregates, repoIam.AppendEvents, createAggregate) if err != nil { return nil, err } - es.iamCache.cacheIam(repoIam) - return model.IamToModel(repoIam), nil + es.iamCache.cacheIAM(repoIam) + return model.IAMToModel(repoIam), nil } -func (es *IamEventstore) SetGlobalOrg(ctx context.Context, iamID, globalOrg string) (*iam_model.Iam, error) { - iam, err := es.IamByID(ctx, iamID) +func (es *IAMEventstore) SetGlobalOrg(ctx context.Context, iamID, globalOrg string) (*iam_model.IAM, error) { + iam, err := es.IAMByID(ctx, iamID) if err != nil { return nil, err } - repoIam := model.IamFromModel(iam) - createAggregate := IamSetGlobalOrgAggregate(es.AggregateCreator(), repoIam, globalOrg) + repoIam := model.IAMFromModel(iam) + createAggregate := IAMSetGlobalOrgAggregate(es.AggregateCreator(), repoIam, globalOrg) err = es_sdk.Push(ctx, es.PushAggregates, repoIam.AppendEvents, createAggregate) if err != nil { return nil, err } - es.iamCache.cacheIam(repoIam) - return model.IamToModel(repoIam), nil + es.iamCache.cacheIAM(repoIam) + return model.IAMToModel(repoIam), nil } -func (es *IamEventstore) SetIamProject(ctx context.Context, iamID, iamProjectID string) (*iam_model.Iam, error) { - iam, err := es.IamByID(ctx, iamID) +func (es *IAMEventstore) SetIAMProject(ctx context.Context, iamID, iamProjectID string) (*iam_model.IAM, error) { + iam, err := es.IAMByID(ctx, iamID) if err != nil { return nil, err } - repoIam := model.IamFromModel(iam) - createAggregate := IamSetIamProjectAggregate(es.AggregateCreator(), repoIam, iamProjectID) + repoIam := model.IAMFromModel(iam) + createAggregate := IAMSetIamProjectAggregate(es.AggregateCreator(), repoIam, iamProjectID) err = es_sdk.Push(ctx, es.PushAggregates, repoIam.AppendEvents, createAggregate) if err != nil { return nil, err } - es.iamCache.cacheIam(repoIam) - return model.IamToModel(repoIam), nil + es.iamCache.cacheIAM(repoIam) + return model.IAMToModel(repoIam), nil } -func (es *IamEventstore) AddIamMember(ctx context.Context, member *iam_model.IamMember) (*iam_model.IamMember, error) { +func (es *IAMEventstore) AddIAMMember(ctx context.Context, member *iam_model.IAMMember) (*iam_model.IAMMember, error) { if !member.IsValid() { - return nil, caos_errs.ThrowPreconditionFailed(nil, "EVENT-89osr", "Errors.Iam.MemberInvalid") + return nil, caos_errs.ThrowPreconditionFailed(nil, "EVENT-89osr", "Errors.IAM.MemberInvalid") } - existing, err := es.IamByID(ctx, member.AggregateID) + existing, err := es.IAMByID(ctx, member.AggregateID) if err != nil { return nil, err } if _, m := existing.GetMember(member.UserID); m != nil { - return nil, caos_errs.ThrowAlreadyExists(nil, "EVENT-idke6", "Errors.Iam.MemberAlreadyExisting") + return nil, caos_errs.ThrowAlreadyExists(nil, "EVENT-idke6", "Errors.IAM.MemberAlreadyExisting") } - repoIam := model.IamFromModel(existing) - repoMember := model.IamMemberFromModel(member) + repoIam := model.IAMFromModel(existing) + repoMember := model.IAMMemberFromModel(member) - addAggregate := IamMemberAddedAggregate(es.Eventstore.AggregateCreator(), repoIam, repoMember) + addAggregate := IAMMemberAddedAggregate(es.Eventstore.AggregateCreator(), repoIam, repoMember) err = es_sdk.Push(ctx, es.PushAggregates, repoIam.AppendEvents, addAggregate) if err != nil { return nil, err } - es.iamCache.cacheIam(repoIam) + es.iamCache.cacheIAM(repoIam) - if _, m := model.GetIamMember(repoIam.Members, member.UserID); m != nil { - return model.IamMemberToModel(m), nil + if _, m := model.GetIAMMember(repoIam.Members, member.UserID); m != nil { + return model.IAMMemberToModel(m), nil } return nil, caos_errs.ThrowInternal(nil, "EVENT-s90pw", "Errors.Internal") } -func (es *IamEventstore) ChangeIamMember(ctx context.Context, member *iam_model.IamMember) (*iam_model.IamMember, error) { +func (es *IAMEventstore) ChangeIAMMember(ctx context.Context, member *iam_model.IAMMember) (*iam_model.IAMMember, error) { if !member.IsValid() { - return nil, caos_errs.ThrowPreconditionFailed(nil, "EVENT-s9ipe", "Errors.Iam.MemberInvalid") + return nil, caos_errs.ThrowPreconditionFailed(nil, "EVENT-s9ipe", "Errors.IAM.MemberInvalid") } - existing, err := es.IamByID(ctx, member.AggregateID) + existing, err := es.IAMByID(ctx, member.AggregateID) if err != nil { return nil, err } if _, m := existing.GetMember(member.UserID); m == nil { - return nil, caos_errs.ThrowPreconditionFailed(nil, "EVENT-s7ucs", "Errors.Iam.MemberNotExisting") + return nil, caos_errs.ThrowPreconditionFailed(nil, "EVENT-s7ucs", "Errors.IAM.MemberNotExisting") } - repoIam := model.IamFromModel(existing) - repoMember := model.IamMemberFromModel(member) + repoIam := model.IAMFromModel(existing) + repoMember := model.IAMMemberFromModel(member) - projectAggregate := IamMemberChangedAggregate(es.Eventstore.AggregateCreator(), repoIam, repoMember) + projectAggregate := IAMMemberChangedAggregate(es.Eventstore.AggregateCreator(), repoIam, repoMember) err = es_sdk.Push(ctx, es.PushAggregates, repoIam.AppendEvents, projectAggregate) - es.iamCache.cacheIam(repoIam) + es.iamCache.cacheIAM(repoIam) - if _, m := model.GetIamMember(repoIam.Members, member.UserID); m != nil { - return model.IamMemberToModel(m), nil + if _, m := model.GetIAMMember(repoIam.Members, member.UserID); m != nil { + return model.IAMMemberToModel(m), nil } return nil, caos_errs.ThrowInternal(nil, "EVENT-29cws", "Errors.Internal") } -func (es *IamEventstore) RemoveIamMember(ctx context.Context, member *iam_model.IamMember) error { +func (es *IAMEventstore) RemoveIAMMember(ctx context.Context, member *iam_model.IAMMember) error { if member.UserID == "" { - return caos_errs.ThrowPreconditionFailed(nil, "EVENT-0pors", "Errors.Iam.MemberInvalid") + return caos_errs.ThrowPreconditionFailed(nil, "EVENT-0pors", "Errors.IAM.MemberInvalid") } - existing, err := es.IamByID(ctx, member.AggregateID) + existing, err := es.IAMByID(ctx, member.AggregateID) if err != nil { return err } if _, m := existing.GetMember(member.UserID); m == nil { - return caos_errs.ThrowPreconditionFailed(nil, "EVENT-29skr", "Errors.Iam.MemberNotExisting") + return caos_errs.ThrowPreconditionFailed(nil, "EVENT-29skr", "Errors.IAM.MemberNotExisting") } - repoIam := model.IamFromModel(existing) - repoMember := model.IamMemberFromModel(member) + repoIam := model.IAMFromModel(existing) + repoMember := model.IAMMemberFromModel(member) - projectAggregate := IamMemberRemovedAggregate(es.Eventstore.AggregateCreator(), repoIam, repoMember) + projectAggregate := IAMMemberRemovedAggregate(es.Eventstore.AggregateCreator(), repoIam, repoMember) err = es_sdk.Push(ctx, es.PushAggregates, repoIam.AppendEvents, projectAggregate) - es.iamCache.cacheIam(repoIam) + es.iamCache.cacheIAM(repoIam) return err } + +func (es *IAMEventstore) GetIDPConfig(ctx context.Context, aggregateID, idpConfigID string) (*iam_model.IDPConfig, error) { + existing, err := es.IAMByID(ctx, aggregateID) + if err != nil { + return nil, err + } + if _, existingIDP := existing.GetIDP(idpConfigID); existingIDP != nil { + return existingIDP, nil + } + return nil, caos_errs.ThrowNotFound(nil, "EVENT-Scj8s", "Errors.IAM.IdpNotExisting") +} + +func (es *IAMEventstore) AddIDPConfig(ctx context.Context, idp *iam_model.IDPConfig) (*iam_model.IDPConfig, error) { + if idp == nil || !idp.IsValid(true) { + return nil, caos_errs.ThrowPreconditionFailed(nil, "EVENT-Ms89d", "Errors.IAM.IdpInvalid") + } + existing, err := es.IAMByID(ctx, idp.AggregateID) + if err != nil { + return nil, err + } + id, err := es.idGenerator.Next() + if err != nil { + return nil, err + } + idp.IDPConfigID = id + + if idp.OIDCConfig != nil { + idp.OIDCConfig.IDPConfigID = id + err = idp.OIDCConfig.CryptSecret(es.secretCrypto) + if err != nil { + return nil, err + } + } + repoIam := model.IAMFromModel(existing) + repoIdp := model.IDPConfigFromModel(idp) + + addAggregate := IDPConfigAddedAggregate(es.Eventstore.AggregateCreator(), repoIam, repoIdp) + err = es_sdk.Push(ctx, es.PushAggregates, repoIam.AppendEvents, addAggregate) + if err != nil { + return nil, err + } + es.iamCache.cacheIAM(repoIam) + if _, idpConfig := model.GetIDPConfig(repoIam.IDPs, idp.IDPConfigID); idpConfig != nil { + return model.IDPConfigToModel(idpConfig), nil + } + return nil, caos_errs.ThrowInternal(nil, "EVENT-Scj8s", "Errors.Internal") +} + +func (es *IAMEventstore) ChangeIDPConfig(ctx context.Context, idp *iam_model.IDPConfig) (*iam_model.IDPConfig, error) { + if idp == nil || !idp.IsValid(false) { + return nil, caos_errs.ThrowPreconditionFailed(nil, "EVENT-Cms8o", "Errors.IAM.IdpInvalid") + } + existing, err := es.IAMByID(ctx, idp.AggregateID) + if err != nil { + return nil, err + } + if _, existingIDP := existing.GetIDP(idp.IDPConfigID); existingIDP == nil { + return nil, caos_errs.ThrowPreconditionFailed(nil, "EVENT-Cmlos", "Errors.IAM.IdpNotExisting") + } + repoIam := model.IAMFromModel(existing) + repoIdp := model.IDPConfigFromModel(idp) + + iamAggregate := IDPConfigChangedAggregate(es.Eventstore.AggregateCreator(), repoIam, repoIdp) + err = es_sdk.Push(ctx, es.PushAggregates, repoIam.AppendEvents, iamAggregate) + if err != nil { + return nil, err + } + es.iamCache.cacheIAM(repoIam) + if _, idpConfig := model.GetIDPConfig(repoIam.IDPs, idp.IDPConfigID); idpConfig != nil { + return model.IDPConfigToModel(idpConfig), nil + } + return nil, caos_errs.ThrowInternal(nil, "EVENT-Xmlo0", "Errors.Internal") +} + +func (es *IAMEventstore) PrepareRemoveIDPConfig(ctx context.Context, idp *iam_model.IDPConfig) (*model.IAM, *models.Aggregate, error) { + if idp == nil || idp.IDPConfigID == "" { + return nil, nil, caos_errs.ThrowPreconditionFailed(nil, "EVENT-Wz7sD", "Errors.IAM.IDMissing") + } + existing, err := es.IAMByID(ctx, idp.AggregateID) + if err != nil { + return nil, nil, err + } + if _, existingIDP := existing.GetIDP(idp.IDPConfigID); existingIDP == nil { + return nil, nil, caos_errs.ThrowPreconditionFailed(nil, "EVENT-Smiu8", "Errors.IAM.IdpNotExisting") + } + repoIam := model.IAMFromModel(existing) + repoIdp := model.IDPConfigFromModel(idp) + provider := new(model.IDPProvider) + if repoIam.DefaultLoginPolicy != nil { + _, provider = model.GetIDPProvider(repoIam.DefaultLoginPolicy.IDPProviders, idp.IDPConfigID) + } + agg, err := IDPConfigRemovedAggregate(ctx, es.Eventstore.AggregateCreator(), repoIam, repoIdp, provider) + if err != nil { + return nil, nil, err + } + return repoIam, agg, nil +} + +func (es *IAMEventstore) RemoveIDPConfig(ctx context.Context, idp *iam_model.IDPConfig) error { + repoIam, agg, err := es.PrepareRemoveIDPConfig(ctx, idp) + if err != nil { + return err + } + err = es_sdk.PushAggregates(ctx, es.PushAggregates, repoIam.AppendEvents, agg) + if err != nil { + return err + } + es.iamCache.cacheIAM(repoIam) + return nil +} + +func (es *IAMEventstore) DeactivateIDPConfig(ctx context.Context, iamID, idpID string) (*iam_model.IDPConfig, error) { + if idpID == "" { + return nil, caos_errs.ThrowPreconditionFailed(nil, "EVENT-Fbs8o", "Errors.IAM.IDMissing") + } + existing, err := es.IAMByID(ctx, iamID) + if err != nil { + return nil, err + } + idp := &iam_model.IDPConfig{IDPConfigID: idpID} + if _, existingIDP := existing.GetIDP(idp.IDPConfigID); existingIDP == nil { + return nil, caos_errs.ThrowPreconditionFailed(nil, "EVENT-Mci32", "Errors.IAM.IdpNotExisting") + } + repoIam := model.IAMFromModel(existing) + repoIdp := model.IDPConfigFromModel(idp) + + iamAggregate := IDPConfigDeactivatedAggregate(es.Eventstore.AggregateCreator(), repoIam, repoIdp) + err = es_sdk.Push(ctx, es.PushAggregates, repoIam.AppendEvents, iamAggregate) + if err != nil { + return nil, err + } + es.iamCache.cacheIAM(repoIam) + if _, idpConfig := model.GetIDPConfig(repoIam.IDPs, idp.IDPConfigID); idpConfig != nil { + return model.IDPConfigToModel(idpConfig), nil + } + return nil, caos_errs.ThrowInternal(nil, "EVENT-Xnc8d", "Errors.Internal") +} + +func (es *IAMEventstore) ReactivateIDPConfig(ctx context.Context, iamID, idpID string) (*iam_model.IDPConfig, error) { + if idpID == "" { + return nil, caos_errs.ThrowPreconditionFailed(nil, "EVENT-Wkjsf", "Errors.IAM.IDMissing") + } + iam, err := es.IAMByID(ctx, iamID) + if err != nil { + return nil, err + } + idp := &iam_model.IDPConfig{IDPConfigID: idpID} + if _, existingIDP := iam.GetIDP(idp.IDPConfigID); existingIDP == nil { + return nil, caos_errs.ThrowPreconditionFailed(nil, "EVENT-Sjc78", "Errors.IAM.IdpNotExisting") + } + repoIam := model.IAMFromModel(iam) + repoIdp := model.IDPConfigFromModel(idp) + + iamAggregate := IDPConfigReactivatedAggregate(es.Eventstore.AggregateCreator(), repoIam, repoIdp) + err = es_sdk.Push(ctx, es.PushAggregates, repoIam.AppendEvents, iamAggregate) + if err != nil { + return nil, err + } + es.iamCache.cacheIAM(repoIam) + if _, idpConfig := model.GetIDPConfig(repoIam.IDPs, idp.IDPConfigID); idpConfig != nil { + return model.IDPConfigToModel(idpConfig), nil + } + return nil, caos_errs.ThrowInternal(nil, "EVENT-Snd4f", "Errors.Internal") +} + +func (es *IAMEventstore) ChangeIDPOIDCConfig(ctx context.Context, config *iam_model.OIDCIDPConfig) (*iam_model.OIDCIDPConfig, error) { + if config == nil || !config.IsValid(false) { + return nil, caos_errs.ThrowPreconditionFailed(nil, "EVENT-*5ki8", "Errors.IAM.OIDCConfigInvalid") + } + iam, err := es.IAMByID(ctx, config.AggregateID) + if err != nil { + return nil, err + } + var idp *iam_model.IDPConfig + if _, idp = iam.GetIDP(config.IDPConfigID); idp == nil { + return nil, caos_errs.ThrowPreconditionFailed(nil, "EVENT-pso0s", "Errors.IAM.IdpNoExisting") + } + if idp.Type != iam_model.IDPConfigTypeOIDC { + return nil, caos_errs.ThrowPreconditionFailed(nil, "EVENT-Fms8w", "Errors.IAM.IdpIsNotOIDC") + } + if config.ClientSecretString != "" { + err = idp.OIDCConfig.CryptSecret(es.secretCrypto) + } else { + config.ClientSecret = nil + } + repoIam := model.IAMFromModel(iam) + repoConfig := model.OIDCIDPConfigFromModel(config) + + iamAggregate := OIDCIDPConfigChangedAggregate(es.Eventstore.AggregateCreator(), repoIam, repoConfig) + err = es_sdk.Push(ctx, es.PushAggregates, repoIam.AppendEvents, iamAggregate) + if err != nil { + return nil, err + } + es.iamCache.cacheIAM(repoIam) + if _, idpConfig := model.GetIDPConfig(repoIam.IDPs, idp.IDPConfigID); idpConfig != nil { + return model.OIDCIDPConfigToModel(idpConfig.OIDCIDPConfig), nil + } + return nil, caos_errs.ThrowInternal(nil, "EVENT-Sldk8", "Errors.Internal") +} + +func (es *IAMEventstore) AddLoginPolicy(ctx context.Context, policy *iam_model.LoginPolicy) (*iam_model.LoginPolicy, error) { + if policy == nil || !policy.IsValid() { + return nil, caos_errs.ThrowPreconditionFailed(nil, "EVENT-Lso02", "Errors.IAM.LoginPolicyInvalid") + } + iam, err := es.IAMByID(ctx, policy.AggregateID) + if err != nil { + return nil, err + } + + repoIam := model.IAMFromModel(iam) + repoLoginPolicy := model.LoginPolicyFromModel(policy) + + addAggregate := LoginPolicyAddedAggregate(es.Eventstore.AggregateCreator(), repoIam, repoLoginPolicy) + err = es_sdk.Push(ctx, es.PushAggregates, repoIam.AppendEvents, addAggregate) + if err != nil { + return nil, err + } + es.iamCache.cacheIAM(repoIam) + return model.LoginPolicyToModel(repoIam.DefaultLoginPolicy), nil +} + +func (es *IAMEventstore) ChangeLoginPolicy(ctx context.Context, policy *iam_model.LoginPolicy) (*iam_model.LoginPolicy, error) { + if policy == nil || !policy.IsValid() { + return nil, caos_errs.ThrowPreconditionFailed(nil, "EVENT-Lso02", "Errors.IAM.LoginPolicyInvalid") + } + iam, err := es.IAMByID(ctx, policy.AggregateID) + if err != nil { + return nil, err + } + + repoIam := model.IAMFromModel(iam) + repoLoginPolicy := model.LoginPolicyFromModel(policy) + + addAggregate := LoginPolicyChangedAggregate(es.Eventstore.AggregateCreator(), repoIam, repoLoginPolicy) + err = es_sdk.Push(ctx, es.PushAggregates, repoIam.AppendEvents, addAggregate) + if err != nil { + return nil, err + } + es.iamCache.cacheIAM(repoIam) + return model.LoginPolicyToModel(repoIam.DefaultLoginPolicy), nil +} + +func (es *IAMEventstore) AddIDPProviderToLoginPolicy(ctx context.Context, provider *iam_model.IDPProvider) (*iam_model.IDPProvider, error) { + if provider == nil || !provider.IsValid() { + return nil, caos_errs.ThrowPreconditionFailed(nil, "EVENT-Lso02", "Errors.IdpProviderInvalid") + } + iam, err := es.IAMByID(ctx, provider.AggregateID) + if err != nil { + return nil, err + } + if _, m := iam.DefaultLoginPolicy.GetIdpProvider(provider.IdpConfigID); m != nil { + return nil, caos_errs.ThrowAlreadyExists(nil, "EVENT-idke6", "Errors.IAM.LoginPolicy.IdpProviderAlreadyExisting") + } + repoIam := model.IAMFromModel(iam) + repoProvider := model.IDPProviderFromModel(provider) + + addAggregate := LoginPolicyIDPProviderAddedAggregate(es.Eventstore.AggregateCreator(), repoIam, repoProvider) + err = es_sdk.Push(ctx, es.PushAggregates, repoIam.AppendEvents, addAggregate) + if err != nil { + return nil, err + } + es.iamCache.cacheIAM(repoIam) + if _, m := model.GetIDPProvider(repoIam.DefaultLoginPolicy.IDPProviders, provider.IdpConfigID); m != nil { + return model.IDPProviderToModel(m), nil + } + return nil, caos_errs.ThrowInternal(nil, "EVENT-Slf9s", "Errors.Internal") +} + +func (es *IAMEventstore) RemoveIDPProviderFromLoginPolicy(ctx context.Context, provider *iam_model.IDPProvider) error { + if provider == nil || !provider.IsValid() { + return caos_errs.ThrowPreconditionFailed(nil, "EVENT-Esi8c", "Errors.IdpProviderInvalid") + } + iam, err := es.IAMByID(ctx, provider.AggregateID) + if err != nil { + return err + } + if _, m := iam.DefaultLoginPolicy.GetIdpProvider(provider.IdpConfigID); m == nil { + return 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) + if err != nil { + return err + } + es.iamCache.cacheIAM(repoIam) + return nil +} diff --git a/internal/iam/repository/eventsourcing/eventstore_mock_test.go b/internal/iam/repository/eventsourcing/eventstore_mock_test.go index 00941412a..021a37ded 100644 --- a/internal/iam/repository/eventsourcing/eventstore_mock_test.go +++ b/internal/iam/repository/eventsourcing/eventstore_mock_test.go @@ -2,6 +2,8 @@ package eventsourcing import ( "encoding/json" + "github.com/caos/zitadel/internal/crypto" + "github.com/caos/zitadel/internal/id" mock_cache "github.com/caos/zitadel/internal/cache/mock" "github.com/caos/zitadel/internal/eventstore/mock" @@ -10,24 +12,37 @@ import ( "github.com/golang/mock/gomock" ) -func GetMockedEventstore(ctrl *gomock.Controller, mockEs *mock.MockEventstore) *IamEventstore { - return &IamEventstore{ - Eventstore: mockEs, - iamCache: GetMockCache(ctrl), +func GetMockedEventstore(ctrl *gomock.Controller, mockEs *mock.MockEventstore) *IAMEventstore { + return &IAMEventstore{ + Eventstore: mockEs, + iamCache: GetMockCache(ctrl), + idGenerator: GetSonyFlacke(), } } -func GetMockCache(ctrl *gomock.Controller) *IamCache { +func GetMockedEventstoreWithCrypto(ctrl *gomock.Controller, mockEs *mock.MockEventstore) *IAMEventstore { + return &IAMEventstore{ + Eventstore: mockEs, + iamCache: GetMockCache(ctrl), + idGenerator: GetSonyFlacke(), + secretCrypto: crypto.NewBCrypt(10), + } +} +func GetMockCache(ctrl *gomock.Controller) *IAMCache { mockCache := mock_cache.NewMockCache(ctrl) mockCache.EXPECT().Get(gomock.Any(), gomock.Any()).Return(nil).AnyTimes() mockCache.EXPECT().Set(gomock.Any(), gomock.Any()).Return(nil).AnyTimes() - return &IamCache{iamCache: mockCache} + return &IAMCache{iamCache: mockCache} } -func GetMockIamByIDOK(ctrl *gomock.Controller) *IamEventstore { - data, _ := json.Marshal(model.Iam{GlobalOrgID: "GlobalOrgID"}) +func GetSonyFlacke() id.Generator { + return id.SonyFlakeGenerator +} + +func GetMockIamByIDOK(ctrl *gomock.Controller) *IAMEventstore { + data, _ := json.Marshal(model.IAM{GlobalOrgID: "GlobalOrgID"}) events := []*es_models.Event{ - &es_models.Event{AggregateID: "AggregateID", Sequence: 1, Type: model.IamSetupStarted}, + &es_models.Event{AggregateID: "AggregateID", Sequence: 1, Type: model.IAMSetupStarted}, &es_models.Event{AggregateID: "AggregateID", Sequence: 1, Type: model.GlobalOrgSet, Data: data}, } mockEs := mock.NewMockEventstore(ctrl) @@ -35,16 +50,16 @@ func GetMockIamByIDOK(ctrl *gomock.Controller) *IamEventstore { return GetMockedEventstore(ctrl, mockEs) } -func GetMockIamByIDNoEvents(ctrl *gomock.Controller) *IamEventstore { +func GetMockIamByIDNoEvents(ctrl *gomock.Controller) *IAMEventstore { events := []*es_models.Event{} mockEs := mock.NewMockEventstore(ctrl) mockEs.EXPECT().FilterEvents(gomock.Any(), gomock.Any()).Return(events, nil) return GetMockedEventstore(ctrl, mockEs) } -func GetMockManipulateIam(ctrl *gomock.Controller) *IamEventstore { +func GetMockManipulateIam(ctrl *gomock.Controller) *IAMEventstore { events := []*es_models.Event{ - &es_models.Event{AggregateID: "AggregateID", Sequence: 1, Type: model.IamSetupStarted}, + &es_models.Event{AggregateID: "AggregateID", Sequence: 1, Type: model.IAMSetupStarted}, } mockEs := mock.NewMockEventstore(ctrl) mockEs.EXPECT().FilterEvents(gomock.Any(), gomock.Any()).Return(events, nil) @@ -53,11 +68,22 @@ func GetMockManipulateIam(ctrl *gomock.Controller) *IamEventstore { return GetMockedEventstore(ctrl, mockEs) } -func GetMockManipulateIamWithMember(ctrl *gomock.Controller) *IamEventstore { - memberData, _ := json.Marshal(model.IamMember{UserID: "UserID", Roles: []string{"Role"}}) +func GetMockManipulateIamWithCrypto(ctrl *gomock.Controller) *IAMEventstore { events := []*es_models.Event{ - &es_models.Event{AggregateID: "AggregateID", Sequence: 1, Type: model.IamSetupStarted}, - &es_models.Event{AggregateID: "AggregateID", Sequence: 1, Type: model.IamMemberAdded, Data: memberData}, + &es_models.Event{AggregateID: "AggregateID", Sequence: 1, Type: model.IAMSetupStarted}, + } + 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 GetMockedEventstoreWithCrypto(ctrl, mockEs) +} + +func GetMockManipulateIamWithMember(ctrl *gomock.Controller) *IAMEventstore { + memberData, _ := json.Marshal(model.IAMMember{UserID: "UserID", Roles: []string{"Role"}}) + events := []*es_models.Event{ + &es_models.Event{AggregateID: "AggregateID", Sequence: 1, Type: model.IAMSetupStarted}, + &es_models.Event{AggregateID: "AggregateID", Sequence: 1, Type: model.IAMMemberAdded, Data: memberData}, } mockEs := mock.NewMockEventstore(ctrl) mockEs.EXPECT().FilterEvents(gomock.Any(), gomock.Any()).Return(events, nil) @@ -65,7 +91,38 @@ func GetMockManipulateIamWithMember(ctrl *gomock.Controller) *IamEventstore { mockEs.EXPECT().PushAggregates(gomock.Any(), gomock.Any()).Return(nil) return GetMockedEventstore(ctrl, mockEs) } -func GetMockManipulateIamNotExisting(ctrl *gomock.Controller) *IamEventstore { + +func GetMockManipulateIamWithOIDCIdp(ctrl *gomock.Controller) *IAMEventstore { + idpData, _ := json.Marshal(model.IDPConfig{IDPConfigID: "IDPConfigID", Name: "Name"}) + oidcData, _ := json.Marshal(model.OIDCIDPConfig{IDPConfigID: "IDPConfigID", ClientID: "ClientID"}) + events := []*es_models.Event{ + &es_models.Event{AggregateID: "AggregateID", Sequence: 1, Type: model.IAMSetupStarted}, + &es_models.Event{AggregateID: "AggregateID", Sequence: 1, Type: model.IDPConfigAdded, Data: idpData}, + &es_models.Event{AggregateID: "AggregateID", Sequence: 1, Type: model.OIDCIDPConfigAdded, Data: oidcData}, + } + 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 GetMockManipulateIamWithLoginPolicy(ctrl *gomock.Controller) *IAMEventstore { + policyData, _ := json.Marshal(model.LoginPolicy{AllowRegister: true, AllowUsernamePassword: true, AllowExternalIdp: true}) + idpProviderData, _ := json.Marshal(model.IDPProvider{IDPConfigID: "IDPConfigID", Type: 1}) + events := []*es_models.Event{ + &es_models.Event{AggregateID: "AggregateID", Sequence: 1, Type: model.IAMSetupStarted}, + &es_models.Event{AggregateID: "AggregateID", Sequence: 1, Type: model.LoginPolicyAdded, Data: policyData}, + &es_models.Event{AggregateID: "AggregateID", Sequence: 1, Type: model.LoginPolicyIDPProviderAdded, Data: idpProviderData}, + } + 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 GetMockManipulateIamNotExisting(ctrl *gomock.Controller) *IAMEventstore { events := []*es_models.Event{} mockEs := mock.NewMockEventstore(ctrl) mockEs.EXPECT().FilterEvents(gomock.Any(), gomock.Any()).Return(events, nil) diff --git a/internal/iam/repository/eventsourcing/eventstore_test.go b/internal/iam/repository/eventsourcing/eventstore_test.go index b149479c0..759ca7119 100644 --- a/internal/iam/repository/eventsourcing/eventstore_test.go +++ b/internal/iam/repository/eventsourcing/eventstore_test.go @@ -16,11 +16,11 @@ import ( func TestIamByID(t *testing.T) { ctrl := gomock.NewController(t) type args struct { - es *IamEventstore - iam *model.Iam + es *IAMEventstore + iam *model.IAM } type res struct { - iam *model.Iam + iam *model.IAM errFunc func(err error) bool } tests := []struct { @@ -32,17 +32,17 @@ func TestIamByID(t *testing.T) { name: "iam from events, ok", args: args{ es: GetMockIamByIDOK(ctrl), - iam: &model.Iam{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}}, + iam: &model.IAM{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}}, }, res: res{ - iam: &model.Iam{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}}, + iam: &model.IAM{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}}, }, }, { name: "iam from events, no events", args: args{ es: GetMockIamByIDNoEvents(ctrl), - iam: &model.Iam{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}}, + iam: &model.IAM{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}}, }, res: res{ errFunc: caos_errs.IsNotFound, @@ -52,7 +52,7 @@ func TestIamByID(t *testing.T) { name: "iam from events, no id", args: args{ es: GetMockIamByIDNoEvents(ctrl), - iam: &model.Iam{ObjectRoot: es_models.ObjectRoot{AggregateID: "", Sequence: 1}}, + iam: &model.IAM{ObjectRoot: es_models.ObjectRoot{AggregateID: "", Sequence: 1}}, }, res: res{ errFunc: caos_errs.IsPreconditionFailed, @@ -61,7 +61,7 @@ func TestIamByID(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - result, err := tt.args.es.IamByID(nil, tt.args.iam.AggregateID) + result, err := tt.args.es.IAMByID(nil, tt.args.iam.AggregateID) if tt.res.errFunc == nil && result.AggregateID != tt.res.iam.AggregateID { t.Errorf("got wrong result name: expected: %v, actual: %v ", tt.res.iam.AggregateID, result.AggregateID) @@ -76,12 +76,12 @@ func TestIamByID(t *testing.T) { func TestSetUpStarted(t *testing.T) { ctrl := gomock.NewController(t) type args struct { - es *IamEventstore + es *IAMEventstore ctx context.Context iamID string } type res struct { - iam *model.Iam + iam *model.IAM errFunc func(err error) bool } tests := []struct { @@ -97,7 +97,7 @@ func TestSetUpStarted(t *testing.T) { iamID: "iamID", }, res: res{ - iam: &model.Iam{ObjectRoot: es_models.ObjectRoot{AggregateID: "iamID", Sequence: 1}, SetUpStarted: true}, + iam: &model.IAM{ObjectRoot: es_models.ObjectRoot{AggregateID: "iamID", Sequence: 1}, SetUpStarted: true}, }, }, { @@ -142,12 +142,12 @@ func TestSetUpStarted(t *testing.T) { func TestSetUpDone(t *testing.T) { ctrl := gomock.NewController(t) type args struct { - es *IamEventstore + es *IAMEventstore ctx context.Context iamID string } type res struct { - iam *model.Iam + iam *model.IAM errFunc func(err error) bool } tests := []struct { @@ -163,7 +163,7 @@ func TestSetUpDone(t *testing.T) { iamID: "iamID", }, res: res{ - iam: &model.Iam{ObjectRoot: es_models.ObjectRoot{AggregateID: "iamID", Sequence: 1}, SetUpStarted: true, SetUpDone: true}, + iam: &model.IAM{ObjectRoot: es_models.ObjectRoot{AggregateID: "iamID", Sequence: 1}, SetUpStarted: true, SetUpDone: true}, }, }, { @@ -208,13 +208,13 @@ func TestSetUpDone(t *testing.T) { func TestSetGlobalOrg(t *testing.T) { ctrl := gomock.NewController(t) type args struct { - es *IamEventstore + es *IAMEventstore ctx context.Context iamID string globalOrg string } type res struct { - iam *model.Iam + iam *model.IAM errFunc func(err error) bool } tests := []struct { @@ -231,7 +231,7 @@ func TestSetGlobalOrg(t *testing.T) { globalOrg: "globalOrg", }, res: res{ - iam: &model.Iam{ObjectRoot: es_models.ObjectRoot{AggregateID: "iamID", Sequence: 1}, SetUpStarted: true, GlobalOrgID: "globalOrg"}, + iam: &model.IAM{ObjectRoot: es_models.ObjectRoot{AggregateID: "iamID", Sequence: 1}, SetUpStarted: true, GlobalOrgID: "globalOrg"}, }, }, { @@ -289,13 +289,13 @@ func TestSetGlobalOrg(t *testing.T) { func TestSetIamProjectID(t *testing.T) { ctrl := gomock.NewController(t) type args struct { - es *IamEventstore + es *IAMEventstore ctx context.Context iamID string iamProjectID string } type res struct { - iam *model.Iam + iam *model.IAM errFunc func(err error) bool } tests := []struct { @@ -312,7 +312,7 @@ func TestSetIamProjectID(t *testing.T) { iamProjectID: "iamProjectID", }, res: res{ - iam: &model.Iam{ObjectRoot: es_models.ObjectRoot{AggregateID: "iamID", Sequence: 1}, SetUpStarted: true, IamProjectID: "iamProjectID"}, + iam: &model.IAM{ObjectRoot: es_models.ObjectRoot{AggregateID: "iamID", Sequence: 1}, SetUpStarted: true, IAMProjectID: "iamProjectID"}, }, }, { @@ -352,13 +352,13 @@ func TestSetIamProjectID(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - result, err := tt.args.es.SetIamProject(tt.args.ctx, tt.args.iamID, tt.args.iamProjectID) + result, err := tt.args.es.SetIAMProject(tt.args.ctx, tt.args.iamID, tt.args.iamProjectID) if tt.res.errFunc == nil && result.AggregateID == "" { t.Errorf("result has no id") } - if tt.res.errFunc == nil && result.IamProjectID != tt.res.iam.IamProjectID { - t.Errorf("got wrong result IamProjectID: expected: %v, actual: %v ", tt.res.iam.IamProjectID, result.IamProjectID) + if tt.res.errFunc == nil && result.IAMProjectID != tt.res.iam.IAMProjectID { + t.Errorf("got wrong result IAMProjectID: expected: %v, actual: %v ", tt.res.iam.IAMProjectID, result.IAMProjectID) } if tt.res.errFunc != nil && !tt.res.errFunc(err) { t.Errorf("got wrong err: %v ", err) @@ -370,12 +370,12 @@ func TestSetIamProjectID(t *testing.T) { func TestAddIamMember(t *testing.T) { ctrl := gomock.NewController(t) type args struct { - es *IamEventstore + es *IAMEventstore ctx context.Context - member *iam_model.IamMember + member *iam_model.IAMMember } type res struct { - result *iam_model.IamMember + result *iam_model.IAMMember errFunc func(err error) bool } tests := []struct { @@ -388,10 +388,10 @@ func TestAddIamMember(t *testing.T) { args: args{ es: GetMockManipulateIam(ctrl), ctx: authz.NewMockContext("orgID", "userID"), - member: &iam_model.IamMember{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, UserID: "UserID", Roles: []string{"Roles"}}, + member: &iam_model.IAMMember{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, UserID: "UserID", Roles: []string{"Roles"}}, }, res: res{ - result: &iam_model.IamMember{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, UserID: "UserID", Roles: []string{"Roles"}}, + result: &iam_model.IAMMember{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, UserID: "UserID", Roles: []string{"Roles"}}, }, }, { @@ -399,7 +399,7 @@ func TestAddIamMember(t *testing.T) { args: args{ es: GetMockManipulateIam(ctrl), ctx: authz.NewMockContext("orgID", "userID"), - member: &iam_model.IamMember{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, Roles: []string{"Roles"}}, + member: &iam_model.IAMMember{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, Roles: []string{"Roles"}}, }, res: res{ errFunc: caos_errs.IsPreconditionFailed, @@ -410,7 +410,7 @@ func TestAddIamMember(t *testing.T) { args: args{ es: GetMockManipulateIam(ctrl), ctx: authz.NewMockContext("orgID", "userID"), - member: &iam_model.IamMember{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, UserID: "UserID"}, + member: &iam_model.IAMMember{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, UserID: "UserID"}, }, res: res{ errFunc: caos_errs.IsPreconditionFailed, @@ -421,7 +421,7 @@ func TestAddIamMember(t *testing.T) { args: args{ es: GetMockManipulateIamWithMember(ctrl), ctx: authz.NewMockContext("orgID", "userID"), - member: &iam_model.IamMember{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, UserID: "UserID", Roles: []string{"Roles"}}, + member: &iam_model.IAMMember{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, UserID: "UserID", Roles: []string{"Roles"}}, }, res: res{ errFunc: caos_errs.IsErrorAlreadyExists, @@ -432,7 +432,7 @@ func TestAddIamMember(t *testing.T) { args: args{ es: GetMockManipulateIamNotExisting(ctrl), ctx: authz.NewMockContext("orgID", "userID"), - member: &iam_model.IamMember{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, UserID: "UserID", Roles: []string{"Roles"}}, + member: &iam_model.IAMMember{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, UserID: "UserID", Roles: []string{"Roles"}}, }, res: res{ errFunc: caos_errs.IsNotFound, @@ -441,7 +441,7 @@ func TestAddIamMember(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - result, err := tt.args.es.AddIamMember(tt.args.ctx, tt.args.member) + result, err := tt.args.es.AddIAMMember(tt.args.ctx, tt.args.member) if tt.res.errFunc == nil && result.AggregateID == "" { t.Errorf("result has no id") @@ -462,12 +462,12 @@ func TestAddIamMember(t *testing.T) { func TestChangeIamMember(t *testing.T) { ctrl := gomock.NewController(t) type args struct { - es *IamEventstore + es *IAMEventstore ctx context.Context - member *iam_model.IamMember + member *iam_model.IAMMember } type res struct { - result *iam_model.IamMember + result *iam_model.IAMMember errFunc func(err error) bool } tests := []struct { @@ -480,10 +480,10 @@ func TestChangeIamMember(t *testing.T) { args: args{ es: GetMockManipulateIamWithMember(ctrl), ctx: authz.NewMockContext("orgID", "userID"), - member: &iam_model.IamMember{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, UserID: "UserID", Roles: []string{"ChangeRoles"}}, + member: &iam_model.IAMMember{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, UserID: "UserID", Roles: []string{"ChangeRoles"}}, }, res: res{ - result: &iam_model.IamMember{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, UserID: "UserID", Roles: []string{"Roles"}}, + result: &iam_model.IAMMember{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, UserID: "UserID", Roles: []string{"Roles"}}, }, }, { @@ -491,7 +491,7 @@ func TestChangeIamMember(t *testing.T) { args: args{ es: GetMockManipulateIam(ctrl), ctx: authz.NewMockContext("orgID", "userID"), - member: &iam_model.IamMember{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, Roles: []string{"ChangeRoles"}}, + member: &iam_model.IAMMember{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, Roles: []string{"ChangeRoles"}}, }, res: res{ errFunc: caos_errs.IsPreconditionFailed, @@ -502,7 +502,7 @@ func TestChangeIamMember(t *testing.T) { args: args{ es: GetMockManipulateIam(ctrl), ctx: authz.NewMockContext("orgID", "userID"), - member: &iam_model.IamMember{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, UserID: "UserID"}, + member: &iam_model.IAMMember{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, UserID: "UserID"}, }, res: res{ errFunc: caos_errs.IsPreconditionFailed, @@ -513,7 +513,7 @@ func TestChangeIamMember(t *testing.T) { args: args{ es: GetMockManipulateIam(ctrl), ctx: authz.NewMockContext("orgID", "userID"), - member: &iam_model.IamMember{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, UserID: "UserID", Roles: []string{"Roles"}}, + member: &iam_model.IAMMember{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, UserID: "UserID", Roles: []string{"Roles"}}, }, res: res{ errFunc: caos_errs.IsPreconditionFailed, @@ -524,7 +524,7 @@ func TestChangeIamMember(t *testing.T) { args: args{ es: GetMockManipulateIamNotExisting(ctrl), ctx: authz.NewMockContext("orgID", "userID"), - member: &iam_model.IamMember{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, UserID: "UserID", Roles: []string{"ChangeRoles"}}, + member: &iam_model.IAMMember{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, UserID: "UserID", Roles: []string{"ChangeRoles"}}, }, res: res{ errFunc: caos_errs.IsNotFound, @@ -533,7 +533,7 @@ func TestChangeIamMember(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - result, err := tt.args.es.ChangeIamMember(tt.args.ctx, tt.args.member) + result, err := tt.args.es.ChangeIAMMember(tt.args.ctx, tt.args.member) if tt.res.errFunc == nil && result.AggregateID == "" { t.Errorf("result has no id") @@ -554,13 +554,13 @@ func TestChangeIamMember(t *testing.T) { func TestRemoveIamMember(t *testing.T) { ctrl := gomock.NewController(t) type args struct { - es *IamEventstore + es *IAMEventstore ctx context.Context - existing *model.Iam - member *iam_model.IamMember + existing *model.IAM + member *iam_model.IAMMember } type res struct { - result *iam_model.IamMember + result *iam_model.IAMMember errFunc func(err error) bool } tests := []struct { @@ -573,14 +573,14 @@ func TestRemoveIamMember(t *testing.T) { args: args{ es: GetMockManipulateIamWithMember(ctrl), ctx: authz.NewMockContext("orgID", "userID"), - existing: &model.Iam{ + existing: &model.IAM{ ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, - Members: []*model.IamMember{{UserID: "UserID", Roles: []string{"Roles"}}}, + Members: []*model.IAMMember{{UserID: "UserID", Roles: []string{"Roles"}}}, }, - member: &iam_model.IamMember{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, UserID: "UserID"}, + member: &iam_model.IAMMember{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, UserID: "UserID"}, }, res: res{ - result: &iam_model.IamMember{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, UserID: "UserID", Roles: []string{"Roles"}}, + result: &iam_model.IAMMember{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, UserID: "UserID", Roles: []string{"Roles"}}, }, }, { @@ -588,11 +588,11 @@ func TestRemoveIamMember(t *testing.T) { args: args{ es: GetMockManipulateIam(ctrl), ctx: authz.NewMockContext("orgID", "userID"), - existing: &model.Iam{ + existing: &model.IAM{ ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, - Members: []*model.IamMember{{UserID: "UserID", Roles: []string{"Roles"}}}, + Members: []*model.IAMMember{{UserID: "UserID", Roles: []string{"Roles"}}}, }, - member: &iam_model.IamMember{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, Roles: []string{"ChangeRoles"}}, + member: &iam_model.IAMMember{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, Roles: []string{"ChangeRoles"}}, }, res: res{ errFunc: caos_errs.IsPreconditionFailed, @@ -603,10 +603,10 @@ func TestRemoveIamMember(t *testing.T) { args: args{ es: GetMockManipulateIam(ctrl), ctx: authz.NewMockContext("orgID", "userID"), - existing: &model.Iam{ + existing: &model.IAM{ ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, }, - member: &iam_model.IamMember{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, UserID: "UserID", Roles: []string{"Roles"}}, + member: &iam_model.IAMMember{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, UserID: "UserID", Roles: []string{"Roles"}}, }, res: res{ errFunc: caos_errs.IsPreconditionFailed, @@ -617,7 +617,7 @@ func TestRemoveIamMember(t *testing.T) { args: args{ es: GetMockManipulateIamNotExisting(ctrl), ctx: authz.NewMockContext("orgID", "userID"), - member: &iam_model.IamMember{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, UserID: "UserID", Roles: []string{"ChangeRoles"}}, + member: &iam_model.IAMMember{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, UserID: "UserID", Roles: []string{"ChangeRoles"}}, }, res: res{ errFunc: caos_errs.IsNotFound, @@ -626,7 +626,7 @@ func TestRemoveIamMember(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - err := tt.args.es.RemoveIamMember(tt.args.ctx, tt.args.member) + err := tt.args.es.RemoveIAMMember(tt.args.ctx, tt.args.member) if tt.res.errFunc == nil && err != nil { t.Errorf("should not get err") @@ -637,3 +637,969 @@ func TestRemoveIamMember(t *testing.T) { }) } } + +func TestAddIdpConfiguration(t *testing.T) { + ctrl := gomock.NewController(t) + type args struct { + es *IAMEventstore + ctx context.Context + idp *iam_model.IDPConfig + } + type res struct { + result *iam_model.IDPConfig + wantErr bool + errFunc func(err error) bool + } + tests := []struct { + name string + args args + res res + }{ + { + name: "add idp, ok", + args: args{ + es: GetMockManipulateIamWithCrypto(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + idp: &iam_model.IDPConfig{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, + IDPConfigID: "IDPConfigID", + Name: "Name", + Type: iam_model.IDPConfigTypeOIDC, + OIDCConfig: &iam_model.OIDCIDPConfig{ + ClientID: "ClientID", + ClientSecretString: "ClientSecret", + Issuer: "Issuer", + Scopes: []string{"scope"}, + }, + }, + }, + res: res{ + result: &iam_model.IDPConfig{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, + Name: "Name", + Type: iam_model.IDPConfigTypeOIDC, + OIDCConfig: &iam_model.OIDCIDPConfig{ + ClientID: "ClientID", + Issuer: "Issuer", + Scopes: []string{"scope"}, + }, + }, + }, + }, + { + name: "invalid idp config", + args: args{ + es: GetMockManipulateIam(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + idp: &iam_model.IDPConfig{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}}, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "existing iam not found", + args: args{ + es: GetMockManipulateIamNotExisting(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + idp: &iam_model.IDPConfig{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, + IDPConfigID: "IDPConfigID", + Name: "Name", + OIDCConfig: &iam_model.OIDCIDPConfig{ + ClientID: "ClientID", + ClientSecretString: "ClientSecret", + Issuer: "Issuer", + Scopes: []string{"scope"}, + }, + }, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsNotFound, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + result, err := tt.args.es.AddIDPConfig(tt.args.ctx, tt.args.idp) + + if !tt.res.wantErr && result.IDPConfigID == "" { + t.Errorf("result has no id") + } + if !tt.res.wantErr && result.OIDCConfig.IDPConfigID == "" { + t.Errorf("result has no id") + } + if !tt.res.wantErr && result.OIDCConfig == nil && result.OIDCConfig.ClientSecret == nil { + t.Errorf("result has no client secret") + } + if !tt.res.wantErr && result.Name != tt.res.result.Name { + t.Errorf("got wrong result key: expected: %v, actual: %v ", tt.res.result.Name, result.Name) + } + if !tt.res.wantErr && result.OIDCConfig.ClientID != tt.res.result.OIDCConfig.ClientID { + t.Errorf("got wrong result key: expected: %v, actual: %v ", tt.res.result.OIDCConfig.ClientID, result.OIDCConfig.ClientID) + } + if tt.res.wantErr && !tt.res.errFunc(err) { + t.Errorf("got wrong err: %v ", err) + } + }) + } +} + +func TestChangeIdpConfiguration(t *testing.T) { + ctrl := gomock.NewController(t) + type args struct { + es *IAMEventstore + ctx context.Context + idp *iam_model.IDPConfig + } + type res struct { + result *iam_model.IDPConfig + wantErr bool + errFunc func(err error) bool + } + tests := []struct { + name string + args args + res res + }{ + { + name: "change idp, ok", + args: args{ + es: GetMockManipulateIamWithOIDCIdp(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + idp: &iam_model.IDPConfig{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, + IDPConfigID: "IDPConfigID", + Name: "NameChanged", + }, + }, + res: res{ + result: &iam_model.IDPConfig{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, + IDPConfigID: "IDPConfigID", + Name: "NameChanged", + OIDCConfig: &iam_model.OIDCIDPConfig{ + ClientID: "ClientID", + }, + }, + }, + }, + { + name: "invalid idp", + args: args{ + es: GetMockManipulateIam(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + idp: &iam_model.IDPConfig{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, + IDPConfigID: "IDPConfigID", + }, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "idp not existing", + args: args{ + es: GetMockManipulateIam(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + idp: &iam_model.IDPConfig{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, + IDPConfigID: "IDPConfigID", + Name: "Name", + OIDCConfig: &iam_model.OIDCIDPConfig{ + ClientID: "ClientID", + }, + }, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "existing project not found", + args: args{ + es: GetMockManipulateIamNotExisting(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + idp: &iam_model.IDPConfig{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, + IDPConfigID: "IDPConfigID", + Name: "Name", + OIDCConfig: &iam_model.OIDCIDPConfig{ + ClientID: "ClientID", + }, + }, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsNotFound, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + result, err := tt.args.es.ChangeIDPConfig(tt.args.ctx, tt.args.idp) + + if !tt.res.wantErr && result.AggregateID == "" { + t.Errorf("result has no id") + } + if !tt.res.wantErr && result.IDPConfigID != tt.res.result.IDPConfigID { + t.Errorf("got wrong result AppID: expected: %v, actual: %v ", tt.res.result.IDPConfigID, result.IDPConfigID) + } + if !tt.res.wantErr && result.Name != tt.res.result.Name { + t.Errorf("got wrong result name: expected: %v, actual: %v ", tt.res.result.Name, result.Name) + } + if tt.res.wantErr && !tt.res.errFunc(err) { + t.Errorf("got wrong err: %v ", err) + } + }) + } +} + +func TestRemoveIdpConfiguration(t *testing.T) { + ctrl := gomock.NewController(t) + type args struct { + es *IAMEventstore + ctx context.Context + idp *iam_model.IDPConfig + } + type res struct { + wantErr bool + errFunc func(err error) bool + } + tests := []struct { + name string + args args + res res + }{ + { + name: "remove idp, ok", + args: args{ + es: GetMockManipulateIamWithOIDCIdp(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + idp: &iam_model.IDPConfig{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, + IDPConfigID: "IDPConfigID", + }, + }, + }, + { + name: "no IDPConfigID", + args: args{ + es: GetMockManipulateIam(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + idp: &iam_model.IDPConfig{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}}, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "idp not existing", + args: args{ + es: GetMockManipulateIam(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + idp: &iam_model.IDPConfig{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, + IDPConfigID: "IDPConfigID", + }, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "existing idp not found", + args: args{ + es: GetMockManipulateIamNotExisting(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + idp: &iam_model.IDPConfig{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, + IDPConfigID: "IDPConfigID", + }, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsNotFound, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + err := tt.args.es.RemoveIDPConfig(tt.args.ctx, tt.args.idp) + + if !tt.res.wantErr && err != nil { + t.Errorf("should not get err") + } + if tt.res.wantErr && !tt.res.errFunc(err) { + t.Errorf("got wrong err: %v ", err) + } + }) + } +} +func TestDeactivateIdpConfiguration(t *testing.T) { + ctrl := gomock.NewController(t) + type args struct { + es *IAMEventstore + ctx context.Context + idp *iam_model.IDPConfig + } + type res struct { + result *iam_model.IDPConfig + wantErr bool + errFunc func(err error) bool + } + tests := []struct { + name string + args args + res res + }{ + { + name: "deactivate, ok", + args: args{ + es: GetMockManipulateIamWithOIDCIdp(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + idp: &iam_model.IDPConfig{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, + IDPConfigID: "IDPConfigID", + Name: "Name", + }, + }, + res: res{ + result: &iam_model.IDPConfig{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, + IDPConfigID: "IDPConfigID", + Name: "Name", + State: iam_model.IDPConfigStateInactive, + OIDCConfig: &iam_model.OIDCIDPConfig{ + ClientID: "ClientID", + }, + }, + }, + }, + { + name: "no idp id", + args: args{ + es: GetMockManipulateIam(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + idp: &iam_model.IDPConfig{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}}, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "idp not existing", + args: args{ + es: GetMockManipulateIam(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + idp: &iam_model.IDPConfig{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, + IDPConfigID: "IDPConfigID", + Name: "Name", + OIDCConfig: &iam_model.OIDCIDPConfig{ + ClientID: "ClientID", + }, + }, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "existing iam not found", + args: args{ + es: GetMockManipulateIamNotExisting(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + idp: &iam_model.IDPConfig{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, + IDPConfigID: "IDPConfigID", + Name: "Name", + OIDCConfig: &iam_model.OIDCIDPConfig{ + ClientID: "ClientID", + }, + }, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsNotFound, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + result, err := tt.args.es.DeactivateIDPConfig(tt.args.ctx, tt.args.idp.AggregateID, tt.args.idp.IDPConfigID) + + if !tt.res.wantErr && result.AggregateID == "" { + t.Errorf("result has no id") + } + if !tt.res.wantErr && result.IDPConfigID != tt.res.result.IDPConfigID { + t.Errorf("got wrong result IDPConfigID: expected: %v, actual: %v ", tt.res.result.IDPConfigID, result.IDPConfigID) + } + if !tt.res.wantErr && result.State != tt.res.result.State { + t.Errorf("got wrong result state: expected: %v, actual: %v ", tt.res.result.State, result.State) + } + if tt.res.wantErr && !tt.res.errFunc(err) { + t.Errorf("got wrong err: %v ", err) + } + }) + } +} + +func TestReactivateIdpConfiguration(t *testing.T) { + ctrl := gomock.NewController(t) + type args struct { + es *IAMEventstore + ctx context.Context + idp *iam_model.IDPConfig + } + type res struct { + result *iam_model.IDPConfig + wantErr bool + errFunc func(err error) bool + } + tests := []struct { + name string + args args + res res + }{ + { + name: "reactivate, ok", + args: args{ + es: GetMockManipulateIamWithOIDCIdp(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + idp: &iam_model.IDPConfig{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, + IDPConfigID: "IDPConfigID", + Name: "Name", + }, + }, + res: res{ + result: &iam_model.IDPConfig{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, + IDPConfigID: "IDPConfigID", + Name: "Name", + State: iam_model.IDPConfigStateActive, + OIDCConfig: &iam_model.OIDCIDPConfig{ + ClientID: "ClientID", + }, + }, + }, + }, + { + name: "no idp id", + args: args{ + es: GetMockManipulateIam(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + idp: &iam_model.IDPConfig{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}}, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "idp not existing", + args: args{ + es: GetMockManipulateIam(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + idp: &iam_model.IDPConfig{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, + IDPConfigID: "IDPConfigID", + Name: "Name", + OIDCConfig: &iam_model.OIDCIDPConfig{ + ClientID: "ClientID", + }, + }, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "existing iam not found", + args: args{ + es: GetMockManipulateIamNotExisting(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + idp: &iam_model.IDPConfig{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, + IDPConfigID: "IDPConfigID", + Name: "Name", + OIDCConfig: &iam_model.OIDCIDPConfig{ + ClientID: "ClientID", + }, + }, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsNotFound, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + result, err := tt.args.es.ReactivateIDPConfig(tt.args.ctx, tt.args.idp.AggregateID, tt.args.idp.IDPConfigID) + + if !tt.res.wantErr && result.AggregateID == "" { + t.Errorf("result has no id") + } + if !tt.res.wantErr && result.IDPConfigID != tt.res.result.IDPConfigID { + t.Errorf("got wrong result IDPConfigID: expected: %v, actual: %v ", tt.res.result.IDPConfigID, result.IDPConfigID) + } + if !tt.res.wantErr && result.State != tt.res.result.State { + t.Errorf("got wrong result state: expected: %v, actual: %v ", tt.res.result.State, result.State) + } + if tt.res.wantErr && !tt.res.errFunc(err) { + t.Errorf("got wrong err: %v ", err) + } + }) + } +} + +func TestChangeOIDCIDPConfig(t *testing.T) { + ctrl := gomock.NewController(t) + type args struct { + es *IAMEventstore + ctx context.Context + config *iam_model.OIDCIDPConfig + } + type res struct { + result *iam_model.OIDCIDPConfig + wantErr bool + errFunc func(err error) bool + } + tests := []struct { + name string + args args + res res + }{ + { + name: "change oidc config, ok", + args: args{ + es: GetMockManipulateIamWithOIDCIdp(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + config: &iam_model.OIDCIDPConfig{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 0}, + IDPConfigID: "IDPConfigID", + ClientID: "ClientIDChange", + Issuer: "Issuer", + Scopes: []string{"scope"}, + }, + }, + res: res{ + result: &iam_model.OIDCIDPConfig{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 0}, + IDPConfigID: "IDPConfigID", + ClientID: "ClientIDChange", + }, + }, + }, + { + name: "invalid config", + args: args{ + es: GetMockManipulateIam(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + config: &iam_model.OIDCIDPConfig{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 0}, + IDPConfigID: "IDPConfigID", + }, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "idp not existing", + args: args{ + es: GetMockManipulateIam(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + config: &iam_model.OIDCIDPConfig{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 0}, + IDPConfigID: "IDPConfigID", + ClientID: "ClientID", + Issuer: "Issuer", + Scopes: []string{"scope"}, + }, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "existing iam not found", + args: args{ + es: GetMockManipulateIamNotExisting(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + config: &iam_model.OIDCIDPConfig{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 0}, + IDPConfigID: "IDPConfigID", + ClientID: "ClientID", + Issuer: "Issuer", + Scopes: []string{"scope"}, + }, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsNotFound, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + result, err := tt.args.es.ChangeIDPOIDCConfig(tt.args.ctx, tt.args.config) + + if !tt.res.wantErr && result.AggregateID == "" { + t.Errorf("result has no id") + } + if !tt.res.wantErr && result.IDPConfigID != tt.res.result.IDPConfigID { + t.Errorf("got wrong result AppID: expected: %v, actual: %v ", tt.res.result.IDPConfigID, result.IDPConfigID) + } + if !tt.res.wantErr && result.ClientID != tt.res.result.ClientID { + t.Errorf("got wrong result responsetype: expected: %v, actual: %v ", tt.res.result.ClientID, result.ClientID) + } + if tt.res.wantErr && !tt.res.errFunc(err) { + t.Errorf("got wrong err: %v ", err) + } + }) + } +} + +func TestAddLoginPolicy(t *testing.T) { + ctrl := gomock.NewController(t) + type args struct { + es *IAMEventstore + ctx context.Context + policy *iam_model.LoginPolicy + } + type res struct { + result *iam_model.LoginPolicy + wantErr bool + errFunc func(err error) bool + } + tests := []struct { + name string + args args + res res + }{ + { + name: "add login policy, ok", + args: args{ + es: GetMockManipulateIam(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + policy: &iam_model.LoginPolicy{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 0}, + AllowRegister: true, + }, + }, + res: res{ + result: &iam_model.LoginPolicy{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 0}, + AllowRegister: true, + }, + }, + }, + { + name: "invalid policy", + args: args{ + es: GetMockManipulateIam(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + policy: &iam_model.LoginPolicy{ + ObjectRoot: es_models.ObjectRoot{Sequence: 0}, + }, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "existing iam not found", + args: args{ + es: GetMockManipulateIamNotExisting(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + policy: &iam_model.LoginPolicy{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 0}, + }, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsNotFound, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + result, err := tt.args.es.AddLoginPolicy(tt.args.ctx, tt.args.policy) + + if !tt.res.wantErr && result.AllowRegister != tt.res.result.AllowRegister { + t.Errorf("got wrong result AllowRegister: expected: %v, actual: %v ", tt.res.result.AllowRegister, result.AllowRegister) + } + if tt.res.wantErr && !tt.res.errFunc(err) { + t.Errorf("got wrong err: %v ", err) + } + }) + } +} + +func TestChangeLoginPolicy(t *testing.T) { + ctrl := gomock.NewController(t) + type args struct { + es *IAMEventstore + ctx context.Context + policy *iam_model.LoginPolicy + } + type res struct { + result *iam_model.LoginPolicy + wantErr bool + errFunc func(err error) bool + } + tests := []struct { + name string + args args + res res + }{ + { + name: "add login policy, ok", + args: args{ + es: GetMockManipulateIamWithLoginPolicy(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + policy: &iam_model.LoginPolicy{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 0}, + AllowRegister: true, + AllowExternalIdp: false, + AllowUsernamePassword: false, + }, + }, + res: res{ + result: &iam_model.LoginPolicy{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 0}, + AllowRegister: true, + AllowExternalIdp: false, + AllowUsernamePassword: false, + }, + }, + }, + { + name: "invalid policy", + args: args{ + es: GetMockManipulateIam(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + policy: &iam_model.LoginPolicy{ + ObjectRoot: es_models.ObjectRoot{Sequence: 0}, + }, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "existing iam not found", + args: args{ + es: GetMockManipulateIamNotExisting(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + policy: &iam_model.LoginPolicy{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 0}, + }, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsNotFound, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + result, err := tt.args.es.ChangeLoginPolicy(tt.args.ctx, tt.args.policy) + + if !tt.res.wantErr && result.AllowRegister != tt.res.result.AllowRegister { + t.Errorf("got wrong result AllowRegister: expected: %v, actual: %v ", tt.res.result.AllowRegister, result.AllowRegister) + } + if !tt.res.wantErr && result.AllowUsernamePassword != tt.res.result.AllowUsernamePassword { + t.Errorf("got wrong result AllowUsernamePassword: expected: %v, actual: %v ", tt.res.result.AllowUsernamePassword, result.AllowUsernamePassword) + } + if !tt.res.wantErr && result.AllowExternalIdp != tt.res.result.AllowExternalIdp { + t.Errorf("got wrong result AllowExternalIDP: expected: %v, actual: %v ", tt.res.result.AllowExternalIdp, result.AllowExternalIdp) + } + if tt.res.wantErr && !tt.res.errFunc(err) { + t.Errorf("got wrong err: %v ", err) + } + }) + } +} + +func TestAddIdpProviderToLoginPolicy(t *testing.T) { + ctrl := gomock.NewController(t) + type args struct { + es *IAMEventstore + ctx context.Context + provider *iam_model.IDPProvider + } + type res struct { + result *iam_model.IDPProvider + wantErr bool + errFunc func(err error) bool + } + tests := []struct { + name string + args args + res res + }{ + { + name: "add idp to login policy, ok", + args: args{ + es: GetMockManipulateIamWithLoginPolicy(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + provider: &iam_model.IDPProvider{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 0}, + IdpConfigID: "IdpConfigID2", + Type: iam_model.IDPProviderTypeSystem, + }, + }, + res: res{ + result: &iam_model.IDPProvider{IdpConfigID: "IdpConfigID2"}, + }, + }, + { + name: "add idp to login policy, already existing", + args: args{ + es: GetMockManipulateIamWithLoginPolicy(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + provider: &iam_model.IDPProvider{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 0}, + IdpConfigID: "IDPConfigID", + Type: iam_model.IDPProviderTypeSystem, + }, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsErrorAlreadyExists, + }, + }, + { + name: "invalid provider", + args: args{ + es: GetMockManipulateIam(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + provider: &iam_model.IDPProvider{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 0}, + }, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "existing iam not found", + args: args{ + es: GetMockManipulateIamNotExisting(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + provider: &iam_model.IDPProvider{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 0}, + IdpConfigID: "IdpConfigID2", + }, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsNotFound, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + result, err := tt.args.es.AddIDPProviderToLoginPolicy(tt.args.ctx, tt.args.provider) + + if !tt.res.wantErr && result.IdpConfigID != tt.res.result.IdpConfigID { + t.Errorf("got wrong result IDPConfigID: expected: %v, actual: %v ", tt.res.result.IdpConfigID, result.IdpConfigID) + } + if !tt.res.wantErr && result.Type != tt.res.result.Type { + t.Errorf("got wrong result Type: expected: %v, actual: %v ", tt.res.result.Type, result.Type) + } + if tt.res.wantErr && !tt.res.errFunc(err) { + t.Errorf("got wrong err: %v ", err) + } + }) + } +} + +func TestRemoveIdpProviderFromLoginPolicy(t *testing.T) { + ctrl := gomock.NewController(t) + type args struct { + es *IAMEventstore + ctx context.Context + provider *iam_model.IDPProvider + } + type res struct { + wantErr bool + errFunc func(err error) bool + } + tests := []struct { + name string + args args + res res + }{ + { + name: "remove idp to login policy, ok", + args: args{ + es: GetMockManipulateIamWithLoginPolicy(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + provider: &iam_model.IDPProvider{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 0}, + IdpConfigID: "IDPConfigID", + Type: iam_model.IDPProviderTypeSystem, + }, + }, + res: res{}, + }, + { + name: "remove idp to login policy, not existing", + args: args{ + es: GetMockManipulateIamWithLoginPolicy(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + provider: &iam_model.IDPProvider{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 0}, + IdpConfigID: "IdpConfigID2", + Type: iam_model.IDPProviderTypeSystem, + }, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "invalid provider", + args: args{ + es: GetMockManipulateIam(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + provider: &iam_model.IDPProvider{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 0}, + }, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "existing iam not found", + args: args{ + es: GetMockManipulateIamNotExisting(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + provider: &iam_model.IDPProvider{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 0}, + IdpConfigID: "IdpConfigID2", + }, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsNotFound, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + err := tt.args.es.RemoveIDPProviderFromLoginPolicy(tt.args.ctx, tt.args.provider) + + if !tt.res.wantErr && err != nil { + t.Errorf("should not get err: %v ", err) + } + if tt.res.wantErr && !tt.res.errFunc(err) { + t.Errorf("got wrong err: %v ", err) + } + }) + } +} diff --git a/internal/iam/repository/eventsourcing/iam.go b/internal/iam/repository/eventsourcing/iam.go index 8a4de59d2..8aed9dfc0 100644 --- a/internal/iam/repository/eventsourcing/iam.go +++ b/internal/iam/repository/eventsourcing/iam.go @@ -7,118 +7,358 @@ import ( "github.com/caos/zitadel/internal/iam/repository/eventsourcing/model" ) -func IamByIDQuery(id string, latestSequence uint64) (*es_models.SearchQuery, error) { +func IAMByIDQuery(id string, latestSequence uint64) (*es_models.SearchQuery, error) { if id == "" { - return nil, errors.ThrowPreconditionFailed(nil, "EVENT-0soe4", "Errors.Iam.IDMissing") + return nil, errors.ThrowPreconditionFailed(nil, "EVENT-0soe4", "Errors.IAM.IDMissing") } - return IamQuery(latestSequence). + return IAMQuery(latestSequence). AggregateIDFilter(id), nil } -func IamQuery(latestSequence uint64) *es_models.SearchQuery { +func IAMQuery(latestSequence uint64) *es_models.SearchQuery { return es_models.NewSearchQuery(). - AggregateTypeFilter(model.IamAggregate). + AggregateTypeFilter(model.IAMAggregate). LatestSequenceFilter(latestSequence) } -func IamAggregate(ctx context.Context, aggCreator *es_models.AggregateCreator, iam *model.Iam) (*es_models.Aggregate, error) { +func IAMAggregate(ctx context.Context, aggCreator *es_models.AggregateCreator, iam *model.IAM) (*es_models.Aggregate, error) { if iam == nil { return nil, errors.ThrowPreconditionFailed(nil, "EVENT-lo04e", "Errors.Internal") } - return aggCreator.NewAggregate(ctx, iam.AggregateID, model.IamAggregate, model.IamVersion, iam.Sequence) + return aggCreator.NewAggregate(ctx, iam.AggregateID, model.IAMAggregate, model.IAMVersion, iam.Sequence) } -func IamAggregateOverwriteContext(ctx context.Context, aggCreator *es_models.AggregateCreator, iam *model.Iam, resourceOwnerID string, userID string) (*es_models.Aggregate, error) { +func IAMAggregateOverwriteContext(ctx context.Context, aggCreator *es_models.AggregateCreator, iam *model.IAM, resourceOwnerID string, userID string) (*es_models.Aggregate, error) { if iam == nil { return nil, errors.ThrowPreconditionFailed(nil, "EVENT-dis83", "Errors.Internal") } - return aggCreator.NewAggregate(ctx, iam.AggregateID, model.IamAggregate, model.IamVersion, iam.Sequence, es_models.OverwriteResourceOwner(resourceOwnerID), es_models.OverwriteEditorUser(userID)) + return aggCreator.NewAggregate(ctx, iam.AggregateID, model.IAMAggregate, model.IAMVersion, iam.Sequence, es_models.OverwriteResourceOwner(resourceOwnerID), es_models.OverwriteEditorUser(userID)) } -func IamSetupStartedAggregate(aggCreator *es_models.AggregateCreator, iam *model.Iam) func(ctx context.Context) (*es_models.Aggregate, error) { +func IAMSetupStartedAggregate(aggCreator *es_models.AggregateCreator, iam *model.IAM) func(ctx context.Context) (*es_models.Aggregate, error) { return func(ctx context.Context) (*es_models.Aggregate, error) { - agg, err := IamAggregate(ctx, aggCreator, iam) + agg, err := IAMAggregate(ctx, aggCreator, iam) if err != nil { return nil, err } - return agg.AppendEvent(model.IamSetupStarted, nil) + return agg.AppendEvent(model.IAMSetupStarted, nil) } } -func IamSetupDoneAggregate(aggCreator *es_models.AggregateCreator, iam *model.Iam) func(ctx context.Context) (*es_models.Aggregate, error) { +func IAMSetupDoneAggregate(aggCreator *es_models.AggregateCreator, iam *model.IAM) func(ctx context.Context) (*es_models.Aggregate, error) { return func(ctx context.Context) (*es_models.Aggregate, error) { - agg, err := IamAggregate(ctx, aggCreator, iam) + agg, err := IAMAggregate(ctx, aggCreator, iam) if err != nil { return nil, err } - return agg.AppendEvent(model.IamSetupDone, nil) + return agg.AppendEvent(model.IAMSetupDone, nil) } } -func IamSetGlobalOrgAggregate(aggCreator *es_models.AggregateCreator, iam *model.Iam, globalOrg string) func(ctx context.Context) (*es_models.Aggregate, error) { +func IAMSetGlobalOrgAggregate(aggCreator *es_models.AggregateCreator, iam *model.IAM, globalOrg string) func(ctx context.Context) (*es_models.Aggregate, error) { return func(ctx context.Context) (*es_models.Aggregate, error) { if globalOrg == "" { - return nil, errors.ThrowPreconditionFailed(nil, "EVENT-8siwa", "Errors.Iam.GlobalOrgMissing") + return nil, errors.ThrowPreconditionFailed(nil, "EVENT-8siwa", "Errors.IAM.GlobalOrgMissing") } - agg, err := IamAggregate(ctx, aggCreator, iam) + agg, err := IAMAggregate(ctx, aggCreator, iam) if err != nil { return nil, err } - return agg.AppendEvent(model.GlobalOrgSet, &model.Iam{GlobalOrgID: globalOrg}) + return agg.AppendEvent(model.GlobalOrgSet, &model.IAM{GlobalOrgID: globalOrg}) } } -func IamSetIamProjectAggregate(aggCreator *es_models.AggregateCreator, iam *model.Iam, projectID string) func(ctx context.Context) (*es_models.Aggregate, error) { +func IAMSetIamProjectAggregate(aggCreator *es_models.AggregateCreator, iam *model.IAM, projectID string) func(ctx context.Context) (*es_models.Aggregate, error) { return func(ctx context.Context) (*es_models.Aggregate, error) { if projectID == "" { - return nil, errors.ThrowPreconditionFailed(nil, "EVENT-sjuw3", "Errors.Iam.IamProjectIDMisisng") + return nil, errors.ThrowPreconditionFailed(nil, "EVENT-sjuw3", "Errors.IAM.IamProjectIDMisisng") } - agg, err := IamAggregate(ctx, aggCreator, iam) + agg, err := IAMAggregate(ctx, aggCreator, iam) if err != nil { return nil, err } - return agg.AppendEvent(model.IamProjectSet, &model.Iam{IamProjectID: projectID}) + return agg.AppendEvent(model.IAMProjectSet, &model.IAM{IAMProjectID: projectID}) } } -func IamMemberAddedAggregate(aggCreator *es_models.AggregateCreator, existing *model.Iam, member *model.IamMember) func(ctx context.Context) (*es_models.Aggregate, error) { +func IAMMemberAddedAggregate(aggCreator *es_models.AggregateCreator, existing *model.IAM, member *model.IAMMember) func(ctx context.Context) (*es_models.Aggregate, error) { return func(ctx context.Context) (*es_models.Aggregate, error) { if member == nil { return nil, errors.ThrowPreconditionFailed(nil, "EVENT-9sope", "Errors.Internal") } - agg, err := IamAggregate(ctx, aggCreator, existing) + agg, err := IAMAggregate(ctx, aggCreator, existing) if err != nil { return nil, err } - return agg.AppendEvent(model.IamMemberAdded, member) + return agg.AppendEvent(model.IAMMemberAdded, member) } } -func IamMemberChangedAggregate(aggCreator *es_models.AggregateCreator, existing *model.Iam, member *model.IamMember) func(ctx context.Context) (*es_models.Aggregate, error) { +func IAMMemberChangedAggregate(aggCreator *es_models.AggregateCreator, existing *model.IAM, member *model.IAMMember) func(ctx context.Context) (*es_models.Aggregate, error) { return func(ctx context.Context) (*es_models.Aggregate, error) { if member == nil { return nil, errors.ThrowPreconditionFailed(nil, "EVENT-38skf", "Errors.Internal") } - agg, err := IamAggregate(ctx, aggCreator, existing) + agg, err := IAMAggregate(ctx, aggCreator, existing) if err != nil { return nil, err } - return agg.AppendEvent(model.IamMemberChanged, member) + return agg.AppendEvent(model.IAMMemberChanged, member) } } -func IamMemberRemovedAggregate(aggCreator *es_models.AggregateCreator, existing *model.Iam, member *model.IamMember) func(ctx context.Context) (*es_models.Aggregate, error) { +func IAMMemberRemovedAggregate(aggCreator *es_models.AggregateCreator, existing *model.IAM, member *model.IAMMember) func(ctx context.Context) (*es_models.Aggregate, error) { return func(ctx context.Context) (*es_models.Aggregate, error) { if member == nil { return nil, errors.ThrowPreconditionFailed(nil, "EVENT-90lsw", "Errors.Internal") } - agg, err := IamAggregate(ctx, aggCreator, existing) + agg, err := IAMAggregate(ctx, aggCreator, existing) if err != nil { return nil, err } - return agg.AppendEvent(model.IamMemberRemoved, member) + return agg.AppendEvent(model.IAMMemberRemoved, member) + } +} + +func IDPConfigAddedAggregate(aggCreator *es_models.AggregateCreator, existing *model.IAM, idp *model.IDPConfig) func(ctx context.Context) (*es_models.Aggregate, error) { + return func(ctx context.Context) (*es_models.Aggregate, error) { + if idp == nil { + return nil, errors.ThrowPreconditionFailed(nil, "EVENT-MSn7d", "Errors.Internal") + } + agg, err := IAMAggregate(ctx, aggCreator, existing) + if err != nil { + return nil, err + } + agg, err = agg.AppendEvent(model.IDPConfigAdded, idp) + if err != nil { + return nil, err + } + if idp.OIDCIDPConfig != nil { + return agg.AppendEvent(model.OIDCIDPConfigAdded, idp.OIDCIDPConfig) + } + return agg, nil + } +} + +func IDPConfigChangedAggregate(aggCreator *es_models.AggregateCreator, existing *model.IAM, idp *model.IDPConfig) func(ctx context.Context) (*es_models.Aggregate, error) { + return func(ctx context.Context) (*es_models.Aggregate, error) { + if idp == nil { + return nil, errors.ThrowPreconditionFailed(nil, "EVENT-Amc7s", "Errors.Internal") + } + agg, err := IAMAggregate(ctx, aggCreator, existing) + if err != nil { + return nil, err + } + var changes map[string]interface{} + for _, i := range existing.IDPs { + if i.IDPConfigID == idp.IDPConfigID { + changes = i.Changes(idp) + } + } + return agg.AppendEvent(model.IDPConfigChanged, changes) + } +} + +func IDPConfigRemovedAggregate(ctx context.Context, aggCreator *es_models.AggregateCreator, existing *model.IAM, idp *model.IDPConfig, provider *model.IDPProvider) (*es_models.Aggregate, error) { + if idp == nil { + return nil, errors.ThrowPreconditionFailed(nil, "EVENT-se23g", "Errors.Internal") + } + agg, err := IAMAggregate(ctx, aggCreator, existing) + if err != nil { + return nil, err + } + agg, err = agg.AppendEvent(model.IDPConfigRemoved, &model.IDPConfigID{IDPConfigID: idp.IDPConfigID}) + if err != nil { + return nil, err + } + if provider != nil { + return agg.AppendEvent(model.LoginPolicyIDPProviderCascadeRemoved, &model.IDPConfigID{IDPConfigID: idp.IDPConfigID}) + } + return agg, nil +} + +func IDPConfigDeactivatedAggregate(aggCreator *es_models.AggregateCreator, existing *model.IAM, idp *model.IDPConfig) func(ctx context.Context) (*es_models.Aggregate, error) { + return func(ctx context.Context) (*es_models.Aggregate, error) { + if idp == nil { + return nil, errors.ThrowPreconditionFailed(nil, "EVENT-slfi3", "Errors.Internal") + } + agg, err := IAMAggregate(ctx, aggCreator, existing) + if err != nil { + return nil, err + } + return agg.AppendEvent(model.IDPConfigDeactivated, &model.IDPConfigID{IDPConfigID: idp.IDPConfigID}) + } +} + +func IDPConfigReactivatedAggregate(aggCreator *es_models.AggregateCreator, existing *model.IAM, idp *model.IDPConfig) func(ctx context.Context) (*es_models.Aggregate, error) { + return func(ctx context.Context) (*es_models.Aggregate, error) { + if idp == nil { + return nil, errors.ThrowPreconditionFailed(nil, "EVENT-slf32", "Errors.Internal") + } + agg, err := IAMAggregate(ctx, aggCreator, existing) + if err != nil { + return nil, err + } + return agg.AppendEvent(model.IDPConfigReactivated, &model.IDPConfigID{IDPConfigID: idp.IDPConfigID}) + } +} + +func OIDCIDPConfigChangedAggregate(aggCreator *es_models.AggregateCreator, existing *model.IAM, config *model.OIDCIDPConfig) func(ctx context.Context) (*es_models.Aggregate, error) { + return func(ctx context.Context) (*es_models.Aggregate, error) { + if config == nil { + return nil, errors.ThrowPreconditionFailed(nil, "EVENT-slf32", "Errors.Internal") + } + agg, err := IAMAggregate(ctx, aggCreator, existing) + if err != nil { + return nil, err + } + var changes map[string]interface{} + for _, idp := range existing.IDPs { + if idp.IDPConfigID == config.IDPConfigID && idp.OIDCIDPConfig != nil { + changes = idp.OIDCIDPConfig.Changes(config) + } + } + if len(changes) <= 1 { + return nil, errors.ThrowPreconditionFailedf(nil, "EVENT-Cml9s", "Errors.NoChangesFound") + } + return agg.AppendEvent(model.OIDCIDPConfigChanged, changes) + } +} + +func LoginPolicyAddedAggregate(aggCreator *es_models.AggregateCreator, existing *model.IAM, policy *model.LoginPolicy) func(ctx context.Context) (*es_models.Aggregate, error) { + return func(ctx context.Context) (*es_models.Aggregate, error) { + if policy == nil { + return nil, errors.ThrowPreconditionFailed(nil, "EVENT-Smla8", "Errors.Internal") + } + agg, err := IAMAggregate(ctx, aggCreator, existing) + if err != nil { + return nil, err + } + validationQuery := es_models.NewSearchQuery(). + AggregateTypeFilter(model.IAMAggregate). + EventTypesFilter(model.LoginPolicyAdded). + AggregateIDFilter(existing.AggregateID) + + validation := checkExistingLoginPolicyValidation() + agg.SetPrecondition(validationQuery, validation) + return agg.AppendEvent(model.LoginPolicyAdded, policy) + } +} + +func LoginPolicyChangedAggregate(aggCreator *es_models.AggregateCreator, existing *model.IAM, policy *model.LoginPolicy) func(ctx context.Context) (*es_models.Aggregate, error) { + return func(ctx context.Context) (*es_models.Aggregate, error) { + if policy == nil { + return nil, errors.ThrowPreconditionFailed(nil, "EVENT-Mlco9", "Errors.Internal") + } + agg, err := IAMAggregate(ctx, aggCreator, existing) + if err != nil { + return nil, err + } + changes := existing.DefaultLoginPolicy.Changes(policy) + if len(changes) == 0 { + return nil, errors.ThrowPreconditionFailed(nil, "EVENT-Smk8d", "Errors.NoChangesFound") + } + return agg.AppendEvent(model.LoginPolicyChanged, changes) + } +} + +func LoginPolicyIDPProviderAddedAggregate(aggCreator *es_models.AggregateCreator, existing *model.IAM, provider *model.IDPProvider) func(ctx context.Context) (*es_models.Aggregate, error) { + return func(ctx context.Context) (*es_models.Aggregate, error) { + if provider == nil { + return nil, errors.ThrowPreconditionFailed(nil, "EVENT-Sml9d", "Errors.Internal") + } + agg, err := IAMAggregate(ctx, aggCreator, existing) + if err != nil { + return nil, err + } + validationQuery := es_models.NewSearchQuery(). + AggregateTypeFilter(model.IAMAggregate). + AggregateIDFilter(existing.AggregateID) + + validation := checkExistingLoginPolicyIDPProviderValidation(provider.IDPConfigID) + agg.SetPrecondition(validationQuery, validation) + return agg.AppendEvent(model.LoginPolicyIDPProviderAdded, provider) + } +} + +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 checkExistingLoginPolicyValidation() func(...*es_models.Event) error { + return func(events ...*es_models.Event) error { + for _, event := range events { + switch event.Type { + case model.LoginPolicyAdded: + return errors.ThrowPreconditionFailed(nil, "EVENT-Ski9d", "Errors.IAM.LoginPolicy.AlreadyExists") + } + } + return nil + } +} + +func checkExistingLoginPolicyIDPProviderValidation(idpConfigID string) func(...*es_models.Event) error { + return func(events ...*es_models.Event) error { + idpConfigs := make([]*model.IDPConfig, 0) + idps := make([]*model.IDPProvider, 0) + for _, event := range events { + switch event.Type { + case model.IDPConfigAdded: + config := new(model.IDPConfig) + config.SetData(event) + idpConfigs = append(idpConfigs, config) + case model.IDPConfigRemoved: + config := new(model.IDPConfig) + config.SetData(event) + for i, p := range idpConfigs { + if p.IDPConfigID == config.IDPConfigID { + idpConfigs[i] = idpConfigs[len(idpConfigs)-1] + idpConfigs[len(idpConfigs)-1] = nil + idpConfigs = idpConfigs[:len(idpConfigs)-1] + } + } + case model.LoginPolicyIDPProviderAdded: + idp := new(model.IDPProvider) + idp.SetData(event) + idps = append(idps, idp) + case model.LoginPolicyIDPProviderRemoved: + idp := new(model.IDPProvider) + idp.SetData(event) + for i, p := range idps { + if p.IDPConfigID == idp.IDPConfigID { + idps[i] = idps[len(idps)-1] + idps[len(idps)-1] = nil + idps = idps[:len(idps)-1] + } + } + } + } + exists := false + for _, p := range idpConfigs { + if p.IDPConfigID == idpConfigID { + exists = true + } + } + if !exists { + return errors.ThrowPreconditionFailed(nil, "EVENT-Djlo9", "Errors.IAM.IdpNotExisting") + } + for _, p := range idps { + if p.IDPConfigID == idpConfigID { + return errors.ThrowPreconditionFailed(nil, "EVENT-us5Zw", "Errors.IAM.LoginPolicy.IdpProviderAlreadyExisting") + } + } + return nil } } diff --git a/internal/iam/repository/eventsourcing/iam_test.go b/internal/iam/repository/eventsourcing/iam_test.go index 5d214396a..8dbfad9bb 100644 --- a/internal/iam/repository/eventsourcing/iam_test.go +++ b/internal/iam/repository/eventsourcing/iam_test.go @@ -2,6 +2,7 @@ package eventsourcing import ( "context" + iam_model "github.com/caos/zitadel/internal/iam/model" "testing" "github.com/caos/zitadel/internal/api/authz" @@ -13,7 +14,7 @@ import ( func TestSetUpStartedAggregate(t *testing.T) { type args struct { ctx context.Context - iam *model.Iam + iam *model.IAM aggCreator *models.AggregateCreator } type res struct { @@ -30,12 +31,12 @@ func TestSetUpStartedAggregate(t *testing.T) { name: "setupstarted aggregate ok", args: args{ ctx: authz.NewMockContext("orgID", "userID"), - iam: &model.Iam{ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}}, + iam: &model.IAM{ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}}, aggCreator: models.NewAggregateCreator("Test"), }, res: res{ eventLen: 1, - eventType: model.IamSetupStarted, + eventType: model.IAMSetupStarted, }, }, { @@ -47,14 +48,14 @@ func TestSetUpStartedAggregate(t *testing.T) { }, res: res{ eventLen: 1, - eventType: model.IamSetupStarted, + eventType: model.IAMSetupStarted, errFunc: caos_errs.IsPreconditionFailed, }, }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - agg, err := IamSetupStartedAggregate(tt.args.aggCreator, tt.args.iam)(tt.args.ctx) + agg, err := IAMSetupStartedAggregate(tt.args.aggCreator, tt.args.iam)(tt.args.ctx) if tt.res.errFunc == nil && len(agg.Events) != tt.res.eventLen { t.Errorf("got wrong event len: expected: %v, actual: %v ", tt.res.eventLen, len(agg.Events)) @@ -72,7 +73,7 @@ func TestSetUpStartedAggregate(t *testing.T) { func TestSetUpDoneAggregate(t *testing.T) { type args struct { ctx context.Context - existing *model.Iam + existing *model.IAM aggCreator *models.AggregateCreator } type res struct { @@ -89,12 +90,12 @@ func TestSetUpDoneAggregate(t *testing.T) { name: "setup done aggregate ok", args: args{ ctx: authz.NewMockContext("orgID", "userID"), - existing: &model.Iam{ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}}, + existing: &model.IAM{ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}}, aggCreator: models.NewAggregateCreator("Test"), }, res: res{ eventLen: 1, - eventType: model.IamSetupDone, + eventType: model.IAMSetupDone, }, }, { @@ -106,14 +107,14 @@ func TestSetUpDoneAggregate(t *testing.T) { }, res: res{ eventLen: 1, - eventType: model.IamSetupDone, + eventType: model.IAMSetupDone, errFunc: caos_errs.IsPreconditionFailed, }, }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - agg, err := IamSetupDoneAggregate(tt.args.aggCreator, tt.args.existing)(tt.args.ctx) + agg, err := IAMSetupDoneAggregate(tt.args.aggCreator, tt.args.existing)(tt.args.ctx) if tt.res.errFunc == nil && len(agg.Events) != tt.res.eventLen { t.Errorf("got wrong event len: expected: %v, actual: %v ", tt.res.eventLen, len(agg.Events)) @@ -131,7 +132,7 @@ func TestSetUpDoneAggregate(t *testing.T) { func TestGlobalOrgAggregate(t *testing.T) { type args struct { ctx context.Context - existing *model.Iam + existing *model.IAM orgID string aggCreator *models.AggregateCreator } @@ -149,7 +150,7 @@ func TestGlobalOrgAggregate(t *testing.T) { name: "global org set aggregate ok", args: args{ ctx: authz.NewMockContext("orgID", "userID"), - existing: &model.Iam{ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}}, + existing: &model.IAM{ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}}, orgID: "orgID", aggCreator: models.NewAggregateCreator("Test"), }, @@ -174,7 +175,7 @@ func TestGlobalOrgAggregate(t *testing.T) { name: "global org empty", args: args{ ctx: authz.NewMockContext("orgID", "userID"), - existing: &model.Iam{ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}}, + existing: &model.IAM{ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}}, aggCreator: models.NewAggregateCreator("Test"), }, res: res{ @@ -184,7 +185,7 @@ func TestGlobalOrgAggregate(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - agg, err := IamSetGlobalOrgAggregate(tt.args.aggCreator, tt.args.existing, tt.args.orgID)(tt.args.ctx) + agg, err := IAMSetGlobalOrgAggregate(tt.args.aggCreator, tt.args.existing, tt.args.orgID)(tt.args.ctx) if tt.res.errFunc == nil && len(agg.Events) != tt.res.eventLen { t.Errorf("got wrong event len: expected: %v, actual: %v ", tt.res.eventLen, len(agg.Events)) @@ -202,7 +203,7 @@ func TestGlobalOrgAggregate(t *testing.T) { func TestIamProjectAggregate(t *testing.T) { type args struct { ctx context.Context - existing *model.Iam + existing *model.IAM projectID string aggCreator *models.AggregateCreator } @@ -220,13 +221,13 @@ func TestIamProjectAggregate(t *testing.T) { name: "iam project id set aggregate ok", args: args{ ctx: authz.NewMockContext("orgID", "userID"), - existing: &model.Iam{ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}}, + existing: &model.IAM{ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}}, projectID: "projectID", aggCreator: models.NewAggregateCreator("Test"), }, res: res{ eventLen: 1, - eventType: model.IamProjectSet, + eventType: model.IAMProjectSet, }, }, { @@ -245,7 +246,7 @@ func TestIamProjectAggregate(t *testing.T) { name: "project id empty", args: args{ ctx: authz.NewMockContext("orgID", "userID"), - existing: &model.Iam{ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}}, + existing: &model.IAM{ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}}, aggCreator: models.NewAggregateCreator("Test"), }, res: res{ @@ -255,7 +256,7 @@ func TestIamProjectAggregate(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - agg, err := IamSetIamProjectAggregate(tt.args.aggCreator, tt.args.existing, tt.args.projectID)(tt.args.ctx) + agg, err := IAMSetIamProjectAggregate(tt.args.aggCreator, tt.args.existing, tt.args.projectID)(tt.args.ctx) if tt.res.errFunc == nil && len(agg.Events) != tt.res.eventLen { t.Errorf("got wrong event len: expected: %v, actual: %v ", tt.res.eventLen, len(agg.Events)) @@ -273,8 +274,8 @@ func TestIamProjectAggregate(t *testing.T) { func TestIamMemberAddedAggregate(t *testing.T) { type args struct { ctx context.Context - existing *model.Iam - new *model.IamMember + existing *model.IAM + new *model.IAMMember aggCreator *models.AggregateCreator } type res struct { @@ -291,13 +292,13 @@ func TestIamMemberAddedAggregate(t *testing.T) { name: "iammember added ok", args: args{ ctx: authz.NewMockContext("orgID", "userID"), - existing: &model.Iam{ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}}, - new: &model.IamMember{ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, UserID: "UserID", Roles: []string{"Roles"}}, + existing: &model.IAM{ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}}, + new: &model.IAMMember{ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, UserID: "UserID", Roles: []string{"Roles"}}, aggCreator: models.NewAggregateCreator("Test"), }, res: res{ eventLen: 1, - eventType: model.IamMemberAdded, + eventType: model.IAMMemberAdded, }, }, { @@ -309,7 +310,7 @@ func TestIamMemberAddedAggregate(t *testing.T) { }, res: res{ eventLen: 1, - eventType: model.IamMemberAdded, + eventType: model.IAMMemberAdded, errFunc: caos_errs.IsPreconditionFailed, }, }, @@ -317,20 +318,20 @@ func TestIamMemberAddedAggregate(t *testing.T) { name: "member nil", args: args{ ctx: authz.NewMockContext("orgID", "userID"), - existing: &model.Iam{ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}}, + existing: &model.IAM{ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}}, new: nil, aggCreator: models.NewAggregateCreator("Test"), }, res: res{ eventLen: 1, - eventType: model.IamMemberAdded, + eventType: model.IAMMemberAdded, errFunc: caos_errs.IsPreconditionFailed, }, }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - agg, err := IamMemberAddedAggregate(tt.args.aggCreator, tt.args.existing, tt.args.new)(tt.args.ctx) + agg, err := IAMMemberAddedAggregate(tt.args.aggCreator, tt.args.existing, tt.args.new)(tt.args.ctx) if tt.res.errFunc == nil && len(agg.Events) != tt.res.eventLen { t.Errorf("got wrong event len: expected: %v, actual: %v ", tt.res.eventLen, len(agg.Events)) @@ -351,8 +352,8 @@ func TestIamMemberAddedAggregate(t *testing.T) { func TestIamMemberChangedAggregate(t *testing.T) { type args struct { ctx context.Context - existing *model.Iam - new *model.IamMember + existing *model.IAM + new *model.IAMMember aggCreator *models.AggregateCreator } type res struct { @@ -370,13 +371,13 @@ func TestIamMemberChangedAggregate(t *testing.T) { name: "iammember changed ok", args: args{ ctx: authz.NewMockContext("orgID", "userID"), - existing: &model.Iam{ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}}, - new: &model.IamMember{ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, UserID: "UserID", Roles: []string{"Roles"}}, + existing: &model.IAM{ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}}, + new: &model.IAMMember{ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, UserID: "UserID", Roles: []string{"Roles"}}, aggCreator: models.NewAggregateCreator("Test"), }, res: res{ eventLen: 1, - eventType: model.IamMemberChanged, + eventType: model.IAMMemberChanged, }, }, { @@ -388,7 +389,7 @@ func TestIamMemberChangedAggregate(t *testing.T) { }, res: res{ eventLen: 1, - eventType: model.IamMemberChanged, + eventType: model.IAMMemberChanged, wantErr: true, errFunc: caos_errs.IsPreconditionFailed, }, @@ -397,13 +398,13 @@ func TestIamMemberChangedAggregate(t *testing.T) { name: "member nil", args: args{ ctx: authz.NewMockContext("orgID", "userID"), - existing: &model.Iam{ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}}, + existing: &model.IAM{ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}}, new: nil, aggCreator: models.NewAggregateCreator("Test"), }, res: res{ eventLen: 1, - eventType: model.IamMemberChanged, + eventType: model.IAMMemberChanged, wantErr: true, errFunc: caos_errs.IsPreconditionFailed, }, @@ -411,7 +412,7 @@ func TestIamMemberChangedAggregate(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - agg, err := IamMemberChangedAggregate(tt.args.aggCreator, tt.args.existing, tt.args.new)(tt.args.ctx) + agg, err := IAMMemberChangedAggregate(tt.args.aggCreator, tt.args.existing, tt.args.new)(tt.args.ctx) 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)) @@ -432,8 +433,8 @@ func TestIamMemberChangedAggregate(t *testing.T) { func TestIamMemberRemovedAggregate(t *testing.T) { type args struct { ctx context.Context - existing *model.Iam - new *model.IamMember + existing *model.IAM + new *model.IAMMember aggCreator *models.AggregateCreator } type res struct { @@ -451,13 +452,13 @@ func TestIamMemberRemovedAggregate(t *testing.T) { name: "iammember removed ok", args: args{ ctx: authz.NewMockContext("orgID", "userID"), - existing: &model.Iam{ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}}, - new: &model.IamMember{ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, UserID: "UserID", Roles: []string{"Roles"}}, + existing: &model.IAM{ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}}, + new: &model.IAMMember{ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, UserID: "UserID", Roles: []string{"Roles"}}, aggCreator: models.NewAggregateCreator("Test"), }, res: res{ eventLen: 1, - eventType: model.IamMemberRemoved, + eventType: model.IAMMemberRemoved, }, }, { @@ -469,7 +470,7 @@ func TestIamMemberRemovedAggregate(t *testing.T) { }, res: res{ eventLen: 1, - eventType: model.IamMemberRemoved, + eventType: model.IAMMemberRemoved, wantErr: true, errFunc: caos_errs.IsPreconditionFailed, }, @@ -478,13 +479,13 @@ func TestIamMemberRemovedAggregate(t *testing.T) { name: "member nil", args: args{ ctx: authz.NewMockContext("orgID", "userID"), - existing: &model.Iam{ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}}, + existing: &model.IAM{ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}}, new: nil, aggCreator: models.NewAggregateCreator("Test"), }, res: res{ eventLen: 1, - eventType: model.IamMemberRemoved, + eventType: model.IAMMemberRemoved, wantErr: true, errFunc: caos_errs.IsPreconditionFailed, }, @@ -492,7 +493,7 @@ func TestIamMemberRemovedAggregate(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - agg, err := IamMemberRemovedAggregate(tt.args.aggCreator, tt.args.existing, tt.args.new)(tt.args.ctx) + agg, err := IAMMemberRemovedAggregate(tt.args.aggCreator, tt.args.existing, tt.args.new)(tt.args.ctx) 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)) @@ -509,3 +510,960 @@ func TestIamMemberRemovedAggregate(t *testing.T) { }) } } + +func TestIdpConfigAddedAggregate(t *testing.T) { + type args struct { + ctx context.Context + existing *model.IAM + new *model.IDPConfig + aggCreator *models.AggregateCreator + } + type res struct { + eventLen int + eventTypes []models.EventType + wantErr bool + errFunc func(err error) bool + } + tests := []struct { + name string + args args + res res + }{ + { + name: "add oidc idp configuration", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: &model.IAM{ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, IAMProjectID: "IAMProjectID"}, + new: &model.IDPConfig{ + ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, + IDPConfigID: "IDPConfigID", + Name: "Name", + OIDCIDPConfig: &model.OIDCIDPConfig{IDPConfigID: "IDPConfigID", ClientID: "ClientID"}, + }, + aggCreator: models.NewAggregateCreator("Test"), + }, + res: res{ + eventLen: 2, + eventTypes: []models.EventType{model.IDPConfigAdded, model.OIDCIDPConfigAdded}, + }, + }, + { + name: "existing iam nil", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: nil, + aggCreator: models.NewAggregateCreator("Test"), + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "idp config nil", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: &model.IAM{ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, IAMProjectID: "IAMProjectID"}, + new: nil, + aggCreator: models.NewAggregateCreator("Test"), + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + agg, err := IDPConfigAddedAggregate(tt.args.aggCreator, tt.args.existing, tt.args.new)(tt.args.ctx) + + 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)) + } + for i := 0; i < tt.res.eventLen; i++ { + if !tt.res.wantErr && agg.Events[i].Type != tt.res.eventTypes[i] { + t.Errorf("got wrong event type: expected: %v, actual: %v ", tt.res.eventTypes[i], agg.Events[i].Type.String()) + } + if !tt.res.wantErr && agg.Events[i].Data == nil { + t.Errorf("should have data in event") + } + if !tt.res.wantErr && agg.Events[i].Data == nil { + t.Errorf("should have data in event") + } + } + if tt.res.wantErr && !tt.res.errFunc(err) { + t.Errorf("got wrong err: %v ", err) + } + }) + } +} + +func TestIdpConfigurationChangedAggregate(t *testing.T) { + type args struct { + ctx context.Context + existing *model.IAM + new *model.IDPConfig + aggCreator *models.AggregateCreator + } + type res struct { + eventLen int + eventTypes []models.EventType + wantErr bool + errFunc func(err error) bool + } + tests := []struct { + name string + args args + res res + }{ + { + name: "change idp configuration", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: &model.IAM{ + ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, + IAMProjectID: "IAMProjectID", + IDPs: []*model.IDPConfig{ + {IDPConfigID: "IDPConfigID", Name: "IDPName"}, + }}, + new: &model.IDPConfig{ + ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, + IDPConfigID: "IDPConfigID", + Name: "NameChanged", + }, + aggCreator: models.NewAggregateCreator("Test"), + }, + res: res{ + eventLen: 1, + eventTypes: []models.EventType{model.IDPConfigChanged}, + }, + }, + { + name: "existing iam nil", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: nil, + aggCreator: models.NewAggregateCreator("Test"), + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "idp config nil", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: &model.IAM{ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, IAMProjectID: "IAMProjectID"}, + new: nil, + aggCreator: models.NewAggregateCreator("Test"), + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + agg, err := IDPConfigChangedAggregate(tt.args.aggCreator, tt.args.existing, tt.args.new)(tt.args.ctx) + + 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)) + } + for i := 0; i < tt.res.eventLen; i++ { + if !tt.res.wantErr && agg.Events[i].Type != tt.res.eventTypes[i] { + t.Errorf("got wrong event type: expected: %v, actual: %v ", tt.res.eventTypes[i], agg.Events[i].Type.String()) + } + if !tt.res.wantErr && agg.Events[i].Data == nil { + t.Errorf("should have data in event") + } + } + + if tt.res.wantErr && !tt.res.errFunc(err) { + t.Errorf("got wrong err: %v ", err) + } + }) + } +} + +func TestIdpConfigurationRemovedAggregate(t *testing.T) { + type args struct { + ctx context.Context + existing *model.IAM + new *model.IDPConfig + provider *model.IDPProvider + aggCreator *models.AggregateCreator + } + type res struct { + eventLen int + eventTypes []models.EventType + wantErr bool + errFunc func(err error) bool + } + tests := []struct { + name string + args args + res res + }{ + { + name: "remove idp config", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: &model.IAM{ + ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, + IAMProjectID: "IAMProjectID", + IDPs: []*model.IDPConfig{ + {IDPConfigID: "IDPConfigID", Name: "Name"}, + }}, + new: &model.IDPConfig{ + ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, + IDPConfigID: "IDPConfigID", + Name: "Name", + }, + aggCreator: models.NewAggregateCreator("Test"), + }, + res: res{ + eventLen: 1, + eventTypes: []models.EventType{model.IDPConfigRemoved}, + }, + }, + { + name: "remove idp config with provider", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: &model.IAM{ + ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, + IAMProjectID: "IAMProjectID", + IDPs: []*model.IDPConfig{ + {IDPConfigID: "IDPConfigID", Name: "Name"}, + }}, + new: &model.IDPConfig{ + ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, + IDPConfigID: "IDPConfigID", + Name: "Name", + }, + provider: &model.IDPProvider{ + IDPConfigID: "IDPConfigID", + }, + aggCreator: models.NewAggregateCreator("Test"), + }, + res: res{ + eventLen: 2, + eventTypes: []models.EventType{model.IDPConfigRemoved, model.LoginPolicyIDPProviderCascadeRemoved}, + }, + }, + { + name: "existing iam nil", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: nil, + aggCreator: models.NewAggregateCreator("Test"), + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "idp config nil", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: &model.IAM{ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, IAMProjectID: "IAMProjectID"}, + new: nil, + aggCreator: models.NewAggregateCreator("Test"), + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + agg, err := IDPConfigRemovedAggregate(tt.args.ctx, tt.args.aggCreator, tt.args.existing, tt.args.new, tt.args.provider) + + 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)) + } + for i := 0; i < tt.res.eventLen; i++ { + if !tt.res.wantErr && agg.Events[i].Type != tt.res.eventTypes[i] { + t.Errorf("got wrong event type: expected: %v, actual: %v ", tt.res.eventTypes[i], agg.Events[i].Type.String()) + } + if !tt.res.wantErr && agg.Events[i].Data == nil { + t.Errorf("should have data in event") + } + } + + if tt.res.wantErr && !tt.res.errFunc(err) { + t.Errorf("got wrong err: %v ", err) + } + }) + } +} + +func TestIdpConfigurationDeactivatedAggregate(t *testing.T) { + type args struct { + ctx context.Context + existing *model.IAM + new *model.IDPConfig + aggCreator *models.AggregateCreator + } + type res struct { + eventLen int + eventTypes []models.EventType + wantErr bool + errFunc func(err error) bool + } + tests := []struct { + name string + args args + res res + }{ + { + name: "deactivate idp config", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: &model.IAM{ + ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, + IAMProjectID: "IAMProjectID", + IDPs: []*model.IDPConfig{ + {IDPConfigID: "IDPConfigID", Name: "Name"}, + }}, + new: &model.IDPConfig{ + ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, + IDPConfigID: "IDPConfigID", + Name: "Name", + }, + aggCreator: models.NewAggregateCreator("Test"), + }, + res: res{ + eventLen: 1, + eventTypes: []models.EventType{model.IDPConfigDeactivated}, + }, + }, + { + name: "existing iam nil", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: nil, + aggCreator: models.NewAggregateCreator("Test"), + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "idp config nil", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: &model.IAM{ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, IAMProjectID: "IAMProjectID"}, + new: nil, + aggCreator: models.NewAggregateCreator("Test"), + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + agg, err := IDPConfigDeactivatedAggregate(tt.args.aggCreator, tt.args.existing, tt.args.new)(tt.args.ctx) + + 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)) + } + for i := 0; i < tt.res.eventLen; i++ { + if !tt.res.wantErr && agg.Events[i].Type != tt.res.eventTypes[i] { + t.Errorf("got wrong event type: expected: %v, actual: %v ", tt.res.eventTypes[i], agg.Events[i].Type.String()) + } + if !tt.res.wantErr && agg.Events[i].Data == nil { + t.Errorf("should have data in event") + } + } + + if tt.res.wantErr && !tt.res.errFunc(err) { + t.Errorf("got wrong err: %v ", err) + } + }) + } +} + +func TestIdpConfigurationReactivatedAggregate(t *testing.T) { + type args struct { + ctx context.Context + existing *model.IAM + new *model.IDPConfig + aggCreator *models.AggregateCreator + } + type res struct { + eventLen int + eventTypes []models.EventType + wantErr bool + errFunc func(err error) bool + } + tests := []struct { + name string + args args + res res + }{ + { + name: "deactivate app", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: &model.IAM{ + ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, + IAMProjectID: "IAMProjectID", + IDPs: []*model.IDPConfig{ + {IDPConfigID: "IDPConfigID", Name: "Name"}, + }}, + new: &model.IDPConfig{ + ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, + IDPConfigID: "IDPConfigID", + Name: "Name", + }, + aggCreator: models.NewAggregateCreator("Test"), + }, + res: res{ + eventLen: 1, + eventTypes: []models.EventType{model.IDPConfigReactivated}, + }, + }, + { + name: "existing iam nil", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: nil, + aggCreator: models.NewAggregateCreator("Test"), + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "idp config nil", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: &model.IAM{ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, IAMProjectID: "IAMProjectID"}, + new: nil, + aggCreator: models.NewAggregateCreator("Test"), + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + agg, err := IDPConfigReactivatedAggregate(tt.args.aggCreator, tt.args.existing, tt.args.new)(tt.args.ctx) + + 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)) + } + for i := 0; i < tt.res.eventLen; i++ { + if !tt.res.wantErr && agg.Events[i].Type != tt.res.eventTypes[i] { + t.Errorf("got wrong event type: expected: %v, actual: %v ", tt.res.eventTypes[i], agg.Events[i].Type.String()) + } + if !tt.res.wantErr && agg.Events[i].Data == nil { + t.Errorf("should have data in event") + } + } + + if tt.res.wantErr && !tt.res.errFunc(err) { + t.Errorf("got wrong err: %v ", err) + } + }) + } +} + +func TestOIDCConfigChangedAggregate(t *testing.T) { + type args struct { + ctx context.Context + existing *model.IAM + new *model.OIDCIDPConfig + aggCreator *models.AggregateCreator + } + type res struct { + eventLen int + eventTypes []models.EventType + wantErr bool + errFunc func(err error) bool + } + tests := []struct { + name string + args args + res res + }{ + { + name: "change oidc config", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: &model.IAM{ + ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, + IAMProjectID: "IAMProjectID", + IDPs: []*model.IDPConfig{ + {IDPConfigID: "IDPConfigID", Name: "Name", OIDCIDPConfig: &model.OIDCIDPConfig{IDPConfigID: "IDPConfigID", ClientID: "ClientID"}}, + }}, + new: &model.OIDCIDPConfig{ + ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, + IDPConfigID: "IDPConfigID", + ClientID: "ClientIDChanged", + }, + aggCreator: models.NewAggregateCreator("Test"), + }, + res: res{ + eventLen: 1, + eventTypes: []models.EventType{model.OIDCIDPConfigChanged}, + }, + }, + { + name: "no changes", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: &model.IAM{ + ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, + IAMProjectID: "IAMProjectID", + IDPs: []*model.IDPConfig{ + {IDPConfigID: "IDPConfigID", Name: "Name", OIDCIDPConfig: &model.OIDCIDPConfig{IDPConfigID: "IDPConfigID", ClientID: "ClientID"}}, + }}, + new: &model.OIDCIDPConfig{ + ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, + IDPConfigID: "IDPConfigID", + ClientID: "ClientID", + }, + aggCreator: models.NewAggregateCreator("Test"), + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "existing iam nil", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: nil, + aggCreator: models.NewAggregateCreator("Test"), + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "oidc config nil", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: &model.IAM{ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, IAMProjectID: "IAMProjectID"}, + new: nil, + aggCreator: models.NewAggregateCreator("Test"), + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + agg, err := OIDCIDPConfigChangedAggregate(tt.args.aggCreator, tt.args.existing, tt.args.new)(tt.args.ctx) + + 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)) + } + for i := 0; i < tt.res.eventLen; i++ { + if !tt.res.wantErr && agg.Events[i].Type != tt.res.eventTypes[i] { + t.Errorf("got wrong event type: expected: %v, actual: %v ", tt.res.eventTypes[i], agg.Events[i].Type.String()) + } + if !tt.res.wantErr && agg.Events[i].Data == nil { + t.Errorf("should have data in event") + } + } + + if tt.res.wantErr && !tt.res.errFunc(err) { + t.Errorf("got wrong err: %v ", err) + } + }) + } +} + +func TestLoginPolicyAddedAggregate(t *testing.T) { + type args struct { + ctx context.Context + existing *model.IAM + new *model.LoginPolicy + aggCreator *models.AggregateCreator + } + type res struct { + eventLen int + eventTypes []models.EventType + wantErr bool + errFunc func(err error) bool + } + tests := []struct { + name string + args args + res res + }{ + { + name: "add login polciy", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: &model.IAM{ + ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, + IAMProjectID: "IAMProjectID", + IDPs: []*model.IDPConfig{ + {IDPConfigID: "IDPConfigID", Name: "Name", OIDCIDPConfig: &model.OIDCIDPConfig{IDPConfigID: "IDPConfigID", ClientID: "ClientID"}}, + }}, + new: &model.LoginPolicy{ + ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, + AllowUsernamePassword: true, + }, + aggCreator: models.NewAggregateCreator("Test"), + }, + res: res{ + eventLen: 1, + eventTypes: []models.EventType{model.LoginPolicyAdded}, + }, + }, + { + name: "existing iam nil", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: nil, + aggCreator: models.NewAggregateCreator("Test"), + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "login policy config nil", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: &model.IAM{ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, IAMProjectID: "IAMProjectID"}, + new: nil, + aggCreator: models.NewAggregateCreator("Test"), + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + agg, err := LoginPolicyAddedAggregate(tt.args.aggCreator, tt.args.existing, tt.args.new)(tt.args.ctx) + + 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)) + } + for i := 0; i < tt.res.eventLen; i++ { + if !tt.res.wantErr && agg.Events[i].Type != tt.res.eventTypes[i] { + t.Errorf("got wrong event type: expected: %v, actual: %v ", tt.res.eventTypes[i], agg.Events[i].Type.String()) + } + if !tt.res.wantErr && agg.Events[i].Data == nil { + t.Errorf("should have data in event") + } + } + + if tt.res.wantErr && !tt.res.errFunc(err) { + t.Errorf("got wrong err: %v ", err) + } + }) + } +} + +func TestLoginPolicyChangedAggregate(t *testing.T) { + type args struct { + ctx context.Context + existing *model.IAM + new *model.LoginPolicy + aggCreator *models.AggregateCreator + } + type res struct { + eventLen int + eventTypes []models.EventType + wantErr bool + errFunc func(err error) bool + } + tests := []struct { + name string + args args + res res + }{ + { + name: "change login policy", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: &model.IAM{ + ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, + IAMProjectID: "IAMProjectID", + DefaultLoginPolicy: &model.LoginPolicy{ + AllowUsernamePassword: true, + }}, + new: &model.LoginPolicy{ + ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, + AllowUsernamePassword: true, + AllowRegister: true, + }, + aggCreator: models.NewAggregateCreator("Test"), + }, + res: res{ + eventLen: 1, + eventTypes: []models.EventType{model.LoginPolicyChanged}, + }, + }, + { + name: "no changes", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: &model.IAM{ + ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, + IAMProjectID: "IAMProjectID", + DefaultLoginPolicy: &model.LoginPolicy{ + AllowUsernamePassword: true, + }}, + new: &model.LoginPolicy{ + ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, + AllowUsernamePassword: true, + }, + aggCreator: models.NewAggregateCreator("Test"), + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "existing iam nil", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: nil, + aggCreator: models.NewAggregateCreator("Test"), + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "login policy config nil", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: &model.IAM{ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, IAMProjectID: "IAMProjectID"}, + new: nil, + aggCreator: models.NewAggregateCreator("Test"), + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + agg, err := LoginPolicyChangedAggregate(tt.args.aggCreator, tt.args.existing, tt.args.new)(tt.args.ctx) + + 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)) + } + for i := 0; i < tt.res.eventLen; i++ { + if !tt.res.wantErr && agg.Events[i].Type != tt.res.eventTypes[i] { + t.Errorf("got wrong event type: expected: %v, actual: %v ", tt.res.eventTypes[i], agg.Events[i].Type.String()) + } + if !tt.res.wantErr && agg.Events[i].Data == nil { + t.Errorf("should have data in event") + } + } + + if tt.res.wantErr && !tt.res.errFunc(err) { + t.Errorf("got wrong err: %v ", err) + } + }) + } +} + +func TestLoginPolicyIdpProviderAddedAggregate(t *testing.T) { + type args struct { + ctx context.Context + existing *model.IAM + new *model.IDPProvider + aggCreator *models.AggregateCreator + } + type res struct { + eventLen int + eventTypes []models.EventType + wantErr bool + errFunc func(err error) bool + } + tests := []struct { + name string + args args + res res + }{ + { + name: "add idp provider to login policy", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: &model.IAM{ + ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, + IAMProjectID: "IAMProjectID", + DefaultLoginPolicy: &model.LoginPolicy{ + AllowUsernamePassword: true, + }}, + new: &model.IDPProvider{ + ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, + Type: int32(iam_model.IDPProviderTypeSystem), + IDPConfigID: "IDPConfigID", + }, + aggCreator: models.NewAggregateCreator("Test"), + }, + res: res{ + eventLen: 1, + eventTypes: []models.EventType{model.LoginPolicyIDPProviderAdded}, + }, + }, + { + name: "existing iam nil", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: nil, + aggCreator: models.NewAggregateCreator("Test"), + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "idp config config nil", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: &model.IAM{ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, IAMProjectID: "IAMProjectID"}, + new: nil, + aggCreator: models.NewAggregateCreator("Test"), + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + agg, err := LoginPolicyIDPProviderAddedAggregate(tt.args.aggCreator, tt.args.existing, tt.args.new)(tt.args.ctx) + + 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)) + } + for i := 0; i < tt.res.eventLen; i++ { + if !tt.res.wantErr && agg.Events[i].Type != tt.res.eventTypes[i] { + t.Errorf("got wrong event type: expected: %v, actual: %v ", tt.res.eventTypes[i], agg.Events[i].Type.String()) + } + if !tt.res.wantErr && agg.Events[i].Data == nil { + t.Errorf("should have data in event") + } + } + + if tt.res.wantErr && !tt.res.errFunc(err) { + t.Errorf("got wrong err: %v ", err) + } + }) + } +} + +func TestLoginPolicyIdpProviderRemovedAggregate(t *testing.T) { + type args struct { + ctx context.Context + existing *model.IAM + new *model.IDPProviderID + aggCreator *models.AggregateCreator + } + type res struct { + eventLen int + eventTypes []models.EventType + wantErr bool + errFunc func(err error) bool + } + tests := []struct { + name string + args args + res res + }{ + { + name: "remove idp provider to login policy", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: &model.IAM{ + ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, + IAMProjectID: "IAMProjectID", + DefaultLoginPolicy: &model.LoginPolicy{ + AllowUsernamePassword: true, + IDPProviders: []*model.IDPProvider{ + {IDPConfigID: "IDPConfigID", Type: int32(iam_model.IDPProviderTypeSystem)}, + }, + }}, + new: &model.IDPProviderID{ + IDPConfigID: "IDPConfigID", + }, + aggCreator: models.NewAggregateCreator("Test"), + }, + res: res{ + eventLen: 1, + eventTypes: []models.EventType{model.LoginPolicyIDPProviderRemoved}, + }, + }, + { + name: "existing iam nil", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: nil, + aggCreator: models.NewAggregateCreator("Test"), + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "idp config config nil", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: &model.IAM{ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, IAMProjectID: "IAMProjectID"}, + new: nil, + aggCreator: models.NewAggregateCreator("Test"), + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + agg, err := LoginPolicyIDPProviderRemovedAggregate(tt.args.aggCreator, tt.args.existing, tt.args.new)(tt.args.ctx) + + 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)) + } + for i := 0; i < tt.res.eventLen; i++ { + if !tt.res.wantErr && agg.Events[i].Type != tt.res.eventTypes[i] { + t.Errorf("got wrong event type: expected: %v, actual: %v ", tt.res.eventTypes[i], agg.Events[i].Type.String()) + } + if !tt.res.wantErr && agg.Events[i].Data == nil { + t.Errorf("should have data in event") + } + } + + if tt.res.wantErr && !tt.res.errFunc(err) { + t.Errorf("got wrong err: %v ", err) + } + }) + } +} diff --git a/internal/iam/repository/eventsourcing/model/iam.go b/internal/iam/repository/eventsourcing/model/iam.go index bc0226a20..e4b0fb40c 100644 --- a/internal/iam/repository/eventsourcing/model/iam.go +++ b/internal/iam/repository/eventsourcing/model/iam.go @@ -9,45 +9,57 @@ import ( ) const ( - IamVersion = "v1" + IAMVersion = "v1" ) -type Iam struct { +type IAM struct { es_models.ObjectRoot - SetUpStarted bool `json:"-"` - SetUpDone bool `json:"-"` - GlobalOrgID string `json:"globalOrgId,omitempty"` - IamProjectID string `json:"iamProjectId,omitempty"` - Members []*IamMember `json:"-"` + SetUpStarted bool `json:"-"` + SetUpDone bool `json:"-"` + GlobalOrgID string `json:"globalOrgId,omitempty"` + IAMProjectID string `json:"iamProjectId,omitempty"` + Members []*IAMMember `json:"-"` + IDPs []*IDPConfig `json:"-"` + DefaultLoginPolicy *LoginPolicy `json:"-"` } -func IamFromModel(iam *model.Iam) *Iam { - members := IamMembersFromModel(iam.Members) - converted := &Iam{ +func IAMFromModel(iam *model.IAM) *IAM { + members := IAMMembersFromModel(iam.Members) + idps := IDPConfigsFromModel(iam.IDPs) + converted := &IAM{ ObjectRoot: iam.ObjectRoot, SetUpStarted: iam.SetUpStarted, SetUpDone: iam.SetUpDone, GlobalOrgID: iam.GlobalOrgID, - IamProjectID: iam.IamProjectID, + IAMProjectID: iam.IAMProjectID, Members: members, + IDPs: idps, + } + if iam.DefaultLoginPolicy != nil { + converted.DefaultLoginPolicy = LoginPolicyFromModel(iam.DefaultLoginPolicy) } return converted } -func IamToModel(iam *Iam) *model.Iam { - members := IamMembersToModel(iam.Members) - converted := &model.Iam{ +func IAMToModel(iam *IAM) *model.IAM { + members := IAMMembersToModel(iam.Members) + idps := IDPConfigsToModel(iam.IDPs) + converted := &model.IAM{ ObjectRoot: iam.ObjectRoot, SetUpStarted: iam.SetUpStarted, SetUpDone: iam.SetUpDone, GlobalOrgID: iam.GlobalOrgID, - IamProjectID: iam.IamProjectID, + IAMProjectID: iam.IAMProjectID, Members: members, + IDPs: idps, + } + if iam.DefaultLoginPolicy != nil { + converted.DefaultLoginPolicy = LoginPolicyToModel(iam.DefaultLoginPolicy) } return converted } -func (i *Iam) AppendEvents(events ...*es_models.Event) error { +func (i *IAM) AppendEvents(events ...*es_models.Event) error { for _, event := range events { if err := i.AppendEvent(event); err != nil { return err @@ -56,27 +68,50 @@ func (i *Iam) AppendEvents(events ...*es_models.Event) error { return nil } -func (i *Iam) AppendEvent(event *es_models.Event) (err error) { +func (i *IAM) AppendEvent(event *es_models.Event) (err error) { i.ObjectRoot.AppendEvent(event) switch event.Type { - case IamSetupStarted: + case IAMSetupStarted: i.SetUpStarted = true - case IamSetupDone: + case IAMSetupDone: i.SetUpDone = true - case IamProjectSet, + case IAMProjectSet, GlobalOrgSet: err = i.SetData(event) - case IamMemberAdded: + case IAMMemberAdded: err = i.appendAddMemberEvent(event) - case IamMemberChanged: + case IAMMemberChanged: err = i.appendChangeMemberEvent(event) - case IamMemberRemoved: + case IAMMemberRemoved: err = i.appendRemoveMemberEvent(event) + case IDPConfigAdded: + return i.appendAddIDPConfigEvent(event) + case IDPConfigChanged: + return i.appendChangeIDPConfigEvent(event) + case IDPConfigRemoved: + return i.appendRemoveIDPConfigEvent(event) + case IDPConfigDeactivated: + return i.appendIDPConfigStateEvent(event, model.IDPConfigStateInactive) + case IDPConfigReactivated: + return i.appendIDPConfigStateEvent(event, model.IDPConfigStateActive) + case OIDCIDPConfigAdded: + return i.appendAddOIDCIDPConfigEvent(event) + case OIDCIDPConfigChanged: + return i.appendChangeOIDCIDPConfigEvent(event) + case LoginPolicyAdded: + return i.appendAddLoginPolicyEvent(event) + case LoginPolicyChanged: + return i.appendChangeLoginPolicyEvent(event) + case LoginPolicyIDPProviderAdded: + return i.appendAddIDPProviderToLoginPolicyEvent(event) + case LoginPolicyIDPProviderRemoved: + return i.appendRemoveIDPProviderFromLoginPolicyEvent(event) } + return err } -func (i *Iam) SetData(event *es_models.Event) error { +func (i *IAM) SetData(event *es_models.Event) error { i.ObjectRoot.AppendEvent(event) if err := json.Unmarshal(event.Data, i); err != nil { logging.Log("EVEN-9sie4").WithError(err).Error("could not unmarshal event data") diff --git a/internal/iam/repository/eventsourcing/model/iam_member.go b/internal/iam/repository/eventsourcing/model/iam_member.go index 7fc23d2b1..1bd718ffb 100644 --- a/internal/iam/repository/eventsourcing/model/iam_member.go +++ b/internal/iam/repository/eventsourcing/model/iam_member.go @@ -7,13 +7,13 @@ import ( "github.com/caos/zitadel/internal/iam/model" ) -type IamMember struct { +type IAMMember struct { es_models.ObjectRoot UserID string `json:"userId,omitempty"` Roles []string `json:"roles,omitempty"` } -func GetIamMember(members []*IamMember, id string) (int, *IamMember) { +func GetIAMMember(members []*IAMMember, id string) (int, *IAMMember) { for i, m := range members { if m.UserID == id { return i, m @@ -22,40 +22,40 @@ func GetIamMember(members []*IamMember, id string) (int, *IamMember) { return -1, nil } -func IamMembersToModel(members []*IamMember) []*model.IamMember { - convertedMembers := make([]*model.IamMember, len(members)) +func IAMMembersToModel(members []*IAMMember) []*model.IAMMember { + convertedMembers := make([]*model.IAMMember, len(members)) for i, m := range members { - convertedMembers[i] = IamMemberToModel(m) + convertedMembers[i] = IAMMemberToModel(m) } return convertedMembers } -func IamMembersFromModel(members []*model.IamMember) []*IamMember { - convertedMembers := make([]*IamMember, len(members)) +func IAMMembersFromModel(members []*model.IAMMember) []*IAMMember { + convertedMembers := make([]*IAMMember, len(members)) for i, m := range members { - convertedMembers[i] = IamMemberFromModel(m) + convertedMembers[i] = IAMMemberFromModel(m) } return convertedMembers } -func IamMemberFromModel(member *model.IamMember) *IamMember { - return &IamMember{ +func IAMMemberFromModel(member *model.IAMMember) *IAMMember { + return &IAMMember{ ObjectRoot: member.ObjectRoot, UserID: member.UserID, Roles: member.Roles, } } -func IamMemberToModel(member *IamMember) *model.IamMember { - return &model.IamMember{ +func IAMMemberToModel(member *IAMMember) *model.IAMMember { + return &model.IAMMember{ ObjectRoot: member.ObjectRoot, UserID: member.UserID, Roles: member.Roles, } } -func (iam *Iam) appendAddMemberEvent(event *es_models.Event) error { - member := &IamMember{} +func (iam *IAM) appendAddMemberEvent(event *es_models.Event) error { + member := &IAMMember{} err := member.SetData(event) if err != nil { return err @@ -65,25 +65,25 @@ func (iam *Iam) appendAddMemberEvent(event *es_models.Event) error { return nil } -func (iam *Iam) appendChangeMemberEvent(event *es_models.Event) error { - member := &IamMember{} +func (iam *IAM) appendChangeMemberEvent(event *es_models.Event) error { + member := &IAMMember{} err := member.SetData(event) if err != nil { return err } - if i, m := GetIamMember(iam.Members, member.UserID); m != nil { + if i, m := GetIAMMember(iam.Members, member.UserID); m != nil { iam.Members[i] = member } return nil } -func (iam *Iam) appendRemoveMemberEvent(event *es_models.Event) error { - member := &IamMember{} +func (iam *IAM) appendRemoveMemberEvent(event *es_models.Event) error { + member := &IAMMember{} err := member.SetData(event) if err != nil { return err } - if i, m := GetIamMember(iam.Members, member.UserID); m != nil { + if i, m := GetIAMMember(iam.Members, member.UserID); m != nil { iam.Members[i] = iam.Members[len(iam.Members)-1] iam.Members[len(iam.Members)-1] = nil iam.Members = iam.Members[:len(iam.Members)-1] @@ -91,7 +91,7 @@ func (iam *Iam) appendRemoveMemberEvent(event *es_models.Event) error { return nil } -func (m *IamMember) SetData(event *es_models.Event) error { +func (m *IAMMember) SetData(event *es_models.Event) error { m.ObjectRoot.AppendEvent(event) if err := json.Unmarshal(event.Data, m); err != nil { logging.Log("EVEN-e4dkp").WithError(err).Error("could not unmarshal event data") diff --git a/internal/iam/repository/eventsourcing/model/iam_member_test.go b/internal/iam/repository/eventsourcing/model/iam_member_test.go index b1f815212..0ddae421d 100644 --- a/internal/iam/repository/eventsourcing/model/iam_member_test.go +++ b/internal/iam/repository/eventsourcing/model/iam_member_test.go @@ -8,23 +8,23 @@ import ( func TestAppendAddMemberEvent(t *testing.T) { type args struct { - iam *Iam - member *IamMember + iam *IAM + member *IAMMember event *es_models.Event } tests := []struct { name string args args - result *Iam + result *IAM }{ { name: "append add member event", args: args{ - iam: &Iam{}, - member: &IamMember{UserID: "UserID", Roles: []string{"Role"}}, + iam: &IAM{}, + member: &IAMMember{UserID: "UserID", Roles: []string{"Role"}}, event: &es_models.Event{}, }, - result: &Iam{Members: []*IamMember{&IamMember{UserID: "UserID", Roles: []string{"Role"}}}}, + result: &IAM{Members: []*IAMMember{&IAMMember{UserID: "UserID", Roles: []string{"Role"}}}}, }, } for _, tt := range tests { @@ -46,23 +46,23 @@ func TestAppendAddMemberEvent(t *testing.T) { func TestAppendChangeMemberEvent(t *testing.T) { type args struct { - iam *Iam - member *IamMember + iam *IAM + member *IAMMember event *es_models.Event } tests := []struct { name string args args - result *Iam + result *IAM }{ { name: "append change member event", args: args{ - iam: &Iam{Members: []*IamMember{&IamMember{UserID: "UserID", Roles: []string{"Role"}}}}, - member: &IamMember{UserID: "UserID", Roles: []string{"ChangedRole"}}, + iam: &IAM{Members: []*IAMMember{&IAMMember{UserID: "UserID", Roles: []string{"Role"}}}}, + member: &IAMMember{UserID: "UserID", Roles: []string{"ChangedRole"}}, event: &es_models.Event{}, }, - result: &Iam{Members: []*IamMember{&IamMember{UserID: "UserID", Roles: []string{"ChangedRole"}}}}, + result: &IAM{Members: []*IAMMember{&IAMMember{UserID: "UserID", Roles: []string{"ChangedRole"}}}}, }, } for _, tt := range tests { @@ -84,23 +84,23 @@ func TestAppendChangeMemberEvent(t *testing.T) { func TestAppendRemoveMemberEvent(t *testing.T) { type args struct { - iam *Iam - member *IamMember + iam *IAM + member *IAMMember event *es_models.Event } tests := []struct { name string args args - result *Iam + result *IAM }{ { name: "append remove member event", args: args{ - iam: &Iam{Members: []*IamMember{&IamMember{UserID: "UserID", Roles: []string{"Role"}}}}, - member: &IamMember{UserID: "UserID"}, + iam: &IAM{Members: []*IAMMember{&IAMMember{UserID: "UserID", Roles: []string{"Role"}}}}, + member: &IAMMember{UserID: "UserID"}, event: &es_models.Event{}, }, - result: &Iam{Members: []*IamMember{}}, + result: &IAM{Members: []*IAMMember{}}, }, } for _, tt := range tests { diff --git a/internal/iam/repository/eventsourcing/model/iam_test.go b/internal/iam/repository/eventsourcing/model/iam_test.go index 4a3a36f97..e41823568 100644 --- a/internal/iam/repository/eventsourcing/model/iam_test.go +++ b/internal/iam/repository/eventsourcing/model/iam_test.go @@ -6,7 +6,7 @@ import ( "testing" ) -func mockIamData(iam *Iam) []byte { +func mockIamData(iam *IAM) []byte { data, _ := json.Marshal(iam) return data } @@ -14,44 +14,44 @@ func mockIamData(iam *Iam) []byte { func TestProjectRoleAppendEvent(t *testing.T) { type args struct { event *es_models.Event - iam *Iam + iam *IAM } tests := []struct { name string args args - result *Iam + result *IAM }{ { name: "append set up start event", args: args{ - event: &es_models.Event{AggregateID: "AggregateID", Sequence: 1, Type: IamSetupStarted, ResourceOwner: "OrgID"}, - iam: &Iam{}, + event: &es_models.Event{AggregateID: "AggregateID", Sequence: 1, Type: IAMSetupStarted, ResourceOwner: "OrgID"}, + iam: &IAM{}, }, - result: &Iam{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID"}, SetUpStarted: true}, + result: &IAM{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID"}, SetUpStarted: true}, }, { name: "append set up done event", args: args{ - event: &es_models.Event{AggregateID: "AggregateID", Sequence: 1, Type: IamSetupDone, ResourceOwner: "OrgID"}, - iam: &Iam{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID"}, SetUpStarted: true}, + event: &es_models.Event{AggregateID: "AggregateID", Sequence: 1, Type: IAMSetupDone, ResourceOwner: "OrgID"}, + iam: &IAM{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID"}, SetUpStarted: true}, }, - result: &Iam{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID"}, SetUpStarted: true, SetUpDone: true}, + result: &IAM{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID"}, SetUpStarted: true, SetUpDone: true}, }, { name: "append globalorg event", args: args{ - event: &es_models.Event{AggregateID: "AggregateID", Sequence: 1, Type: GlobalOrgSet, ResourceOwner: "OrgID", Data: mockIamData(&Iam{GlobalOrgID: "GlobalOrg"})}, - iam: &Iam{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID"}, SetUpStarted: true}, + event: &es_models.Event{AggregateID: "AggregateID", Sequence: 1, Type: GlobalOrgSet, ResourceOwner: "OrgID", Data: mockIamData(&IAM{GlobalOrgID: "GlobalOrg"})}, + iam: &IAM{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID"}, SetUpStarted: true}, }, - result: &Iam{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID"}, SetUpStarted: true, GlobalOrgID: "GlobalOrg"}, + result: &IAM{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID"}, SetUpStarted: true, GlobalOrgID: "GlobalOrg"}, }, { name: "append iamproject event", args: args{ - event: &es_models.Event{AggregateID: "AggregateID", Sequence: 1, Type: IamProjectSet, ResourceOwner: "OrgID", Data: mockIamData(&Iam{IamProjectID: "IamProject"})}, - iam: &Iam{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID"}, SetUpStarted: true}, + event: &es_models.Event{AggregateID: "AggregateID", Sequence: 1, Type: IAMProjectSet, ResourceOwner: "OrgID", Data: mockIamData(&IAM{IAMProjectID: "IamProject"})}, + iam: &IAM{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID"}, SetUpStarted: true}, }, - result: &Iam{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID"}, SetUpStarted: true, IamProjectID: "IamProject"}, + result: &IAM{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID"}, SetUpStarted: true, IAMProjectID: "IamProject"}, }, } for _, tt := range tests { @@ -66,8 +66,8 @@ func TestProjectRoleAppendEvent(t *testing.T) { if tt.args.iam.GlobalOrgID != tt.result.GlobalOrgID { t.Errorf("got wrong result GlobalOrgID: expected: %v, actual: %v ", tt.result.GlobalOrgID, tt.args.iam.GlobalOrgID) } - if tt.args.iam.IamProjectID != tt.result.IamProjectID { - t.Errorf("got wrong result IamProjectID: expected: %v, actual: %v ", tt.result.IamProjectID, tt.args.iam.IamProjectID) + if tt.args.iam.IAMProjectID != tt.result.IAMProjectID { + t.Errorf("got wrong result IAMProjectID: expected: %v, actual: %v ", tt.result.IAMProjectID, tt.args.iam.IAMProjectID) } }) } diff --git a/internal/iam/repository/eventsourcing/model/idp_config.go b/internal/iam/repository/eventsourcing/model/idp_config.go new file mode 100644 index 000000000..96c7425c3 --- /dev/null +++ b/internal/iam/repository/eventsourcing/model/idp_config.go @@ -0,0 +1,151 @@ +package model + +import ( + "bytes" + "encoding/json" + "github.com/caos/logging" + es_models "github.com/caos/zitadel/internal/eventstore/models" + "github.com/caos/zitadel/internal/iam/model" +) + +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"` + OIDCIDPConfig *OIDCIDPConfig `json:"-"` +} + +type IDPConfigID struct { + es_models.ObjectRoot + IDPConfigID string `json:"idpConfigId"` +} + +func GetIDPConfig(idps []*IDPConfig, id string) (int, *IDPConfig) { + for i, idp := range idps { + if idp.IDPConfigID == id { + return i, idp + } + } + return -1, nil +} + +func (c *IDPConfig) Changes(changed *IDPConfig) map[string]interface{} { + changes := make(map[string]interface{}, 1) + changes["idpConfigId"] = c.IDPConfigID + if changed.Name != "" && c.Name != changed.Name { + changes["name"] = changed.Name + } + if changed.LogoSrc != nil && bytes.Equal(c.LogoSrc, changed.LogoSrc) { + changes["logoSrc"] = changed.LogoSrc + } + return changes +} + +func IDPConfigsToModel(idps []*IDPConfig) []*model.IDPConfig { + convertedIDPConfigs := make([]*model.IDPConfig, len(idps)) + for i, idp := range idps { + convertedIDPConfigs[i] = IDPConfigToModel(idp) + } + return convertedIDPConfigs +} + +func IDPConfigsFromModel(idps []*model.IDPConfig) []*IDPConfig { + convertedIDPConfigs := make([]*IDPConfig, len(idps)) + for i, idp := range idps { + convertedIDPConfigs[i] = IDPConfigFromModel(idp) + } + return convertedIDPConfigs +} + +func IDPConfigFromModel(idp *model.IDPConfig) *IDPConfig { + converted := &IDPConfig{ + ObjectRoot: idp.ObjectRoot, + IDPConfigID: idp.IDPConfigID, + Name: idp.Name, + State: int32(idp.State), + Type: int32(idp.Type), + LogoSrc: idp.LogoSrc, + } + if idp.OIDCConfig != nil { + converted.OIDCIDPConfig = OIDCIDPConfigFromModel(idp.OIDCConfig) + } + return converted +} + +func IDPConfigToModel(idp *IDPConfig) *model.IDPConfig { + converted := &model.IDPConfig{ + ObjectRoot: idp.ObjectRoot, + IDPConfigID: idp.IDPConfigID, + Name: idp.Name, + LogoSrc: idp.LogoSrc, + State: model.IDPConfigState(idp.State), + Type: model.IdpConfigType(idp.Type), + } + if idp.OIDCIDPConfig != nil { + converted.OIDCConfig = OIDCIDPConfigToModel(idp.OIDCIDPConfig) + } + return converted +} + +func (iam *IAM) appendAddIDPConfigEvent(event *es_models.Event) error { + idp := new(IDPConfig) + err := idp.SetData(event) + if err != nil { + return err + } + idp.ObjectRoot.CreationDate = event.CreationDate + iam.IDPs = append(iam.IDPs, idp) + return nil +} + +func (iam *IAM) appendChangeIDPConfigEvent(event *es_models.Event) error { + idp := new(IDPConfig) + err := idp.SetData(event) + if err != nil { + return err + } + if i, idpConfig := GetIDPConfig(iam.IDPs, idp.IDPConfigID); idpConfig != nil { + iam.IDPs[i].SetData(event) + } + return nil +} + +func (iam *IAM) appendRemoveIDPConfigEvent(event *es_models.Event) error { + idp := new(IDPConfig) + err := idp.SetData(event) + if err != nil { + return err + } + if i, idpConfig := GetIDPConfig(iam.IDPs, idp.IDPConfigID); idpConfig != nil { + iam.IDPs[i] = iam.IDPs[len(iam.IDPs)-1] + iam.IDPs[len(iam.IDPs)-1] = nil + iam.IDPs = iam.IDPs[:len(iam.IDPs)-1] + } + return nil +} + +func (iam *IAM) appendIDPConfigStateEvent(event *es_models.Event, state model.IDPConfigState) error { + idp := new(IDPConfig) + err := idp.SetData(event) + if err != nil { + return err + } + + if i, idpConfig := GetIDPConfig(iam.IDPs, idp.IDPConfigID); idpConfig != nil { + idpConfig.State = int32(state) + iam.IDPs[i] = idpConfig + } + return nil +} + +func (c *IDPConfig) SetData(event *es_models.Event) error { + c.ObjectRoot.AppendEvent(event) + if err := json.Unmarshal(event.Data, c); err != nil { + logging.Log("EVEN-Msj9w").WithError(err).Error("could not unmarshal event data") + return err + } + return nil +} diff --git a/internal/iam/repository/eventsourcing/model/idp_config_test.go b/internal/iam/repository/eventsourcing/model/idp_config_test.go new file mode 100644 index 000000000..f042e6ed7 --- /dev/null +++ b/internal/iam/repository/eventsourcing/model/idp_config_test.go @@ -0,0 +1,213 @@ +package model + +import ( + "encoding/json" + es_models "github.com/caos/zitadel/internal/eventstore/models" + "github.com/caos/zitadel/internal/iam/model" + "testing" +) + +func TestIdpConfigChanges(t *testing.T) { + type args struct { + existing *IDPConfig + new *IDPConfig + } + type res struct { + changesLen int + } + tests := []struct { + name string + args args + res res + }{ + { + name: "idp config name changes", + args: args{ + existing: &IDPConfig{IDPConfigID: "IDPConfigID", Name: "Name"}, + new: &IDPConfig{IDPConfigID: "IDPConfigID", Name: "NameChanged"}, + }, + res: res{ + changesLen: 2, + }, + }, + { + name: "no changes", + args: args{ + existing: &IDPConfig{IDPConfigID: "IDPConfigID", Name: "Name"}, + new: &IDPConfig{IDPConfigID: "IDPConfigID", Name: "Name"}, + }, + res: res{ + changesLen: 1, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + changes := tt.args.existing.Changes(tt.args.new) + if len(changes) != tt.res.changesLen { + t.Errorf("got wrong changes len: expected: %v, actual: %v ", tt.res.changesLen, len(changes)) + } + }) + } +} + +func TestAppendAddIdpConfigEvent(t *testing.T) { + type args struct { + iam *IAM + idp *IDPConfig + event *es_models.Event + } + tests := []struct { + name string + args args + result *IAM + }{ + { + name: "append add idp config event", + args: args{ + iam: &IAM{}, + idp: &IDPConfig{Name: "IDPConfig"}, + event: &es_models.Event{}, + }, + result: &IAM{IDPs: []*IDPConfig{&IDPConfig{Name: "IDPConfig"}}}, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if tt.args.idp != nil { + data, _ := json.Marshal(tt.args.idp) + tt.args.event.Data = data + } + tt.args.iam.appendAddIDPConfigEvent(tt.args.event) + if len(tt.args.iam.IDPs) != 1 { + t.Errorf("got wrong result should have one idpConfig actual: %v ", len(tt.args.iam.IDPs)) + } + if tt.args.iam.IDPs[0] == tt.result.IDPs[0] { + t.Errorf("got wrong result: expected: %v, actual: %v ", tt.result.IDPs[0], tt.args.iam.IDPs[0]) + } + }) + } +} + +func TestAppendChangeIdpConfigEvent(t *testing.T) { + type args struct { + iam *IAM + idpConfig *IDPConfig + event *es_models.Event + } + tests := []struct { + name string + args args + result *IAM + }{ + { + name: "append change idp config event", + args: args{ + iam: &IAM{IDPs: []*IDPConfig{&IDPConfig{Name: "IDPConfig"}}}, + idpConfig: &IDPConfig{Name: "IDPConfig Change"}, + event: &es_models.Event{}, + }, + result: &IAM{IDPs: []*IDPConfig{&IDPConfig{Name: "IDPConfig Change"}}}, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if tt.args.idpConfig != nil { + data, _ := json.Marshal(tt.args.idpConfig) + tt.args.event.Data = data + } + tt.args.iam.appendChangeIDPConfigEvent(tt.args.event) + if len(tt.args.iam.IDPs) != 1 { + t.Errorf("got wrong result should have one idpConfig actual: %v ", len(tt.args.iam.IDPs)) + } + if tt.args.iam.IDPs[0] == tt.result.IDPs[0] { + t.Errorf("got wrong result: expected: %v, actual: %v ", tt.result.IDPs[0], tt.args.iam.IDPs[0]) + } + }) + } +} + +func TestAppendRemoveIDPEvent(t *testing.T) { + type args struct { + iam *IAM + idp *IDPConfig + event *es_models.Event + } + tests := []struct { + name string + args args + result *IAM + }{ + { + name: "append remove idp config event", + args: args{ + iam: &IAM{IDPs: []*IDPConfig{&IDPConfig{IDPConfigID: "IDPConfigID", Name: "IDPConfig"}}}, + idp: &IDPConfig{IDPConfigID: "IDPConfigID", Name: "IDPConfig"}, + event: &es_models.Event{}, + }, + result: &IAM{IDPs: []*IDPConfig{}}, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if tt.args.idp != nil { + data, _ := json.Marshal(tt.args.idp) + tt.args.event.Data = data + } + tt.args.iam.appendRemoveIDPConfigEvent(tt.args.event) + if len(tt.args.iam.IDPs) != 0 { + t.Errorf("got wrong result should have no apps actual: %v ", len(tt.args.iam.IDPs)) + } + }) + } +} + +func TestAppendAppStateEvent(t *testing.T) { + type args struct { + iam *IAM + idp *IDPConfig + event *es_models.Event + state model.IDPConfigState + } + tests := []struct { + name string + args args + result *IAM + }{ + { + name: "append deactivate application event", + args: args{ + iam: &IAM{IDPs: []*IDPConfig{&IDPConfig{IDPConfigID: "IDPConfigID", Name: "IDPConfig", State: int32(model.IDPConfigStateActive)}}}, + idp: &IDPConfig{IDPConfigID: "IDPConfigID"}, + event: &es_models.Event{}, + state: model.IDPConfigStateInactive, + }, + result: &IAM{IDPs: []*IDPConfig{&IDPConfig{IDPConfigID: "IDPConfigID", Name: "IDPConfig", State: int32(model.IDPConfigStateInactive)}}}, + }, + { + name: "append reactivate application event", + args: args{ + iam: &IAM{IDPs: []*IDPConfig{&IDPConfig{IDPConfigID: "IDPConfigID", Name: "IDPConfig", State: int32(model.IDPConfigStateInactive)}}}, + idp: &IDPConfig{IDPConfigID: "IDPConfigID"}, + event: &es_models.Event{}, + state: model.IDPConfigStateActive, + }, + result: &IAM{IDPs: []*IDPConfig{&IDPConfig{IDPConfigID: "IDPConfigID", Name: "IDPConfig", State: int32(model.IDPConfigStateActive)}}}, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if tt.args.idp != nil { + data, _ := json.Marshal(tt.args.idp) + tt.args.event.Data = data + } + tt.args.iam.appendIDPConfigStateEvent(tt.args.event, tt.args.state) + if len(tt.args.iam.IDPs) != 1 { + t.Errorf("got wrong result should have one idpConfig actual: %v ", len(tt.args.iam.IDPs)) + } + if tt.args.iam.IDPs[0] == tt.result.IDPs[0] { + t.Errorf("got wrong result: expected: %v, actual: %v ", tt.result.IDPs[0], tt.args.iam.IDPs[0]) + } + }) + } +} diff --git a/internal/iam/repository/eventsourcing/model/login_policy.go b/internal/iam/repository/eventsourcing/model/login_policy.go new file mode 100644 index 000000000..2496385d6 --- /dev/null +++ b/internal/iam/repository/eventsourcing/model/login_policy.go @@ -0,0 +1,164 @@ +package model + +import ( + "encoding/json" + "github.com/caos/zitadel/internal/errors" + "github.com/caos/zitadel/internal/eventstore/models" + es_models "github.com/caos/zitadel/internal/eventstore/models" + iam_model "github.com/caos/zitadel/internal/iam/model" +) + +type LoginPolicy struct { + models.ObjectRoot + State int32 `json:"-"` + AllowUsernamePassword bool `json:"allowUsernamePassword"` + AllowRegister bool `json:"allowRegister"` + AllowExternalIdp bool `json:"allowExternalIdp"` + IDPProviders []*IDPProvider `json:"-"` +} + +type IDPProvider struct { + models.ObjectRoot + Type int32 `json:"idpProviderType"` + IDPConfigID string `json:"idpConfigId"` +} + +type IDPProviderID struct { + IDPConfigID string `json:"idpConfigId"` +} + +func GetIDPProvider(providers []*IDPProvider, id string) (int, *IDPProvider) { + for i, p := range providers { + if p.IDPConfigID == id { + return i, p + } + } + return -1, nil +} + +func LoginPolicyToModel(policy *LoginPolicy) *iam_model.LoginPolicy { + idps := IDPProvidersToModel(policy.IDPProviders) + return &iam_model.LoginPolicy{ + ObjectRoot: policy.ObjectRoot, + State: iam_model.PolicyState(policy.State), + AllowUsernamePassword: policy.AllowUsernamePassword, + AllowRegister: policy.AllowRegister, + AllowExternalIdp: policy.AllowExternalIdp, + IDPProviders: idps, + } +} + +func LoginPolicyFromModel(policy *iam_model.LoginPolicy) *LoginPolicy { + idps := IDOProvidersFromModel(policy.IDPProviders) + return &LoginPolicy{ + ObjectRoot: policy.ObjectRoot, + State: int32(policy.State), + AllowUsernamePassword: policy.AllowUsernamePassword, + AllowRegister: policy.AllowRegister, + AllowExternalIdp: policy.AllowExternalIdp, + IDPProviders: idps, + } +} + +func IDPProvidersToModel(members []*IDPProvider) []*iam_model.IDPProvider { + convertedProviders := make([]*iam_model.IDPProvider, len(members)) + for i, m := range members { + convertedProviders[i] = IDPProviderToModel(m) + } + return convertedProviders +} + +func IDOProvidersFromModel(members []*iam_model.IDPProvider) []*IDPProvider { + convertedProviders := make([]*IDPProvider, len(members)) + for i, m := range members { + convertedProviders[i] = IDPProviderFromModel(m) + } + return convertedProviders +} + +func IDPProviderToModel(provider *IDPProvider) *iam_model.IDPProvider { + return &iam_model.IDPProvider{ + ObjectRoot: provider.ObjectRoot, + Type: iam_model.IDPProviderType(provider.Type), + IdpConfigID: provider.IDPConfigID, + } +} + +func IDPProviderFromModel(provider *iam_model.IDPProvider) *IDPProvider { + return &IDPProvider{ + ObjectRoot: provider.ObjectRoot, + Type: int32(provider.Type), + IDPConfigID: provider.IdpConfigID, + } +} + +func (p *LoginPolicy) Changes(changed *LoginPolicy) map[string]interface{} { + changes := make(map[string]interface{}, 2) + + if changed.AllowUsernamePassword != p.AllowUsernamePassword { + changes["allowUsernamePassword"] = changed.AllowUsernamePassword + } + if changed.AllowRegister != p.AllowRegister { + changes["allowRegister"] = changed.AllowRegister + } + if changed.AllowExternalIdp != p.AllowExternalIdp { + changes["allowExternalIdp"] = changed.AllowExternalIdp + } + + return changes +} + +func (i *IAM) appendAddLoginPolicyEvent(event *es_models.Event) error { + i.DefaultLoginPolicy = new(LoginPolicy) + err := i.DefaultLoginPolicy.SetData(event) + if err != nil { + return err + } + i.DefaultLoginPolicy.ObjectRoot.CreationDate = event.CreationDate + return nil +} + +func (i *IAM) appendChangeLoginPolicyEvent(event *es_models.Event) error { + return i.DefaultLoginPolicy.SetData(event) +} + +func (iam *IAM) appendAddIDPProviderToLoginPolicyEvent(event *es_models.Event) error { + provider := new(IDPProvider) + err := provider.SetData(event) + if err != nil { + return err + } + provider.ObjectRoot.CreationDate = event.CreationDate + iam.DefaultLoginPolicy.IDPProviders = append(iam.DefaultLoginPolicy.IDPProviders, provider) + return nil +} + +func (iam *IAM) appendRemoveIDPProviderFromLoginPolicyEvent(event *es_models.Event) error { + provider := new(IDPProvider) + err := provider.SetData(event) + if err != nil { + return err + } + if i, m := GetIDPProvider(iam.DefaultLoginPolicy.IDPProviders, provider.IDPConfigID); m != nil { + iam.DefaultLoginPolicy.IDPProviders[i] = iam.DefaultLoginPolicy.IDPProviders[len(iam.DefaultLoginPolicy.IDPProviders)-1] + iam.DefaultLoginPolicy.IDPProviders[len(iam.DefaultLoginPolicy.IDPProviders)-1] = nil + iam.DefaultLoginPolicy.IDPProviders = iam.DefaultLoginPolicy.IDPProviders[:len(iam.DefaultLoginPolicy.IDPProviders)-1] + } + return nil +} + +func (p *LoginPolicy) SetData(event *es_models.Event) error { + err := json.Unmarshal(event.Data, p) + if err != nil { + return errors.ThrowInternal(err, "EVENT-7JS9d", "unable to unmarshal data") + } + return nil +} + +func (p *IDPProvider) SetData(event *es_models.Event) error { + err := json.Unmarshal(event.Data, p) + if err != nil { + return errors.ThrowInternal(err, "EVENT-ldos9", "unable to unmarshal data") + } + return nil +} diff --git a/internal/iam/repository/eventsourcing/model/login_policy_test.go b/internal/iam/repository/eventsourcing/model/login_policy_test.go new file mode 100644 index 000000000..79983af1e --- /dev/null +++ b/internal/iam/repository/eventsourcing/model/login_policy_test.go @@ -0,0 +1,253 @@ +package model + +import ( + "encoding/json" + es_models "github.com/caos/zitadel/internal/eventstore/models" + "github.com/caos/zitadel/internal/iam/model" + "testing" +) + +func TestLoginPolicyChanges(t *testing.T) { + type args struct { + existing *LoginPolicy + new *LoginPolicy + } + type res struct { + changesLen int + } + tests := []struct { + name string + args args + res res + }{ + { + name: "loginpolicy all attributes change", + args: args{ + existing: &LoginPolicy{AllowUsernamePassword: false, AllowRegister: false, AllowExternalIdp: false}, + new: &LoginPolicy{AllowUsernamePassword: true, AllowRegister: true, AllowExternalIdp: true}, + }, + res: res{ + changesLen: 3, + }, + }, + { + name: "no changes", + args: args{ + existing: &LoginPolicy{AllowUsernamePassword: false, AllowRegister: false, AllowExternalIdp: false}, + new: &LoginPolicy{AllowUsernamePassword: false, AllowRegister: false, AllowExternalIdp: false}, + }, + res: res{ + changesLen: 0, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + changes := tt.args.existing.Changes(tt.args.new) + if len(changes) != tt.res.changesLen { + t.Errorf("got wrong changes len: expected: %v, actual: %v ", tt.res.changesLen, len(changes)) + } + }) + } +} + +func TestAppendAddLoginPolicyEvent(t *testing.T) { + type args struct { + iam *IAM + policy *LoginPolicy + event *es_models.Event + } + tests := []struct { + name string + args args + result *IAM + }{ + { + name: "append add login policy event", + args: args{ + iam: new(IAM), + policy: &LoginPolicy{AllowUsernamePassword: true, AllowRegister: true, AllowExternalIdp: true}, + event: new(es_models.Event), + }, + result: &IAM{DefaultLoginPolicy: &LoginPolicy{AllowUsernamePassword: true, AllowRegister: true, AllowExternalIdp: true}}, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if tt.args.policy != nil { + data, _ := json.Marshal(tt.args.policy) + tt.args.event.Data = data + } + tt.args.iam.appendAddLoginPolicyEvent(tt.args.event) + if tt.result.DefaultLoginPolicy.AllowUsernamePassword != tt.args.iam.DefaultLoginPolicy.AllowUsernamePassword { + t.Errorf("got wrong result: expected: %v, actual: %v ", tt.result.DefaultLoginPolicy.AllowUsernamePassword, tt.args.iam.DefaultLoginPolicy.AllowUsernamePassword) + } + if tt.result.DefaultLoginPolicy.AllowRegister != tt.args.iam.DefaultLoginPolicy.AllowRegister { + t.Errorf("got wrong result: expected: %v, actual: %v ", tt.result.DefaultLoginPolicy.AllowRegister, tt.args.iam.DefaultLoginPolicy.AllowRegister) + } + if tt.result.DefaultLoginPolicy.AllowExternalIdp != tt.args.iam.DefaultLoginPolicy.AllowExternalIdp { + t.Errorf("got wrong result: expected: %v, actual: %v ", tt.result.DefaultLoginPolicy.AllowExternalIdp, tt.args.iam.DefaultLoginPolicy.AllowExternalIdp) + } + }) + } +} + +func TestAppendChangeLoginPolicyEvent(t *testing.T) { + type args struct { + iam *IAM + policy *LoginPolicy + event *es_models.Event + } + tests := []struct { + name string + args args + result *IAM + }{ + { + name: "append change login policy event", + args: args{ + iam: &IAM{DefaultLoginPolicy: &LoginPolicy{ + AllowExternalIdp: false, + AllowRegister: false, + AllowUsernamePassword: false, + }}, + policy: &LoginPolicy{AllowUsernamePassword: true, AllowRegister: true, AllowExternalIdp: true}, + event: &es_models.Event{}, + }, + result: &IAM{DefaultLoginPolicy: &LoginPolicy{ + AllowExternalIdp: true, + AllowRegister: true, + AllowUsernamePassword: true, + }}, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if tt.args.policy != nil { + data, _ := json.Marshal(tt.args.policy) + tt.args.event.Data = data + } + tt.args.iam.appendChangeLoginPolicyEvent(tt.args.event) + if tt.result.DefaultLoginPolicy.AllowUsernamePassword != tt.args.iam.DefaultLoginPolicy.AllowUsernamePassword { + t.Errorf("got wrong result: expected: %v, actual: %v ", tt.result.DefaultLoginPolicy.AllowUsernamePassword, tt.args.iam.DefaultLoginPolicy.AllowUsernamePassword) + } + if tt.result.DefaultLoginPolicy.AllowRegister != tt.args.iam.DefaultLoginPolicy.AllowRegister { + t.Errorf("got wrong result: expected: %v, actual: %v ", tt.result.DefaultLoginPolicy.AllowRegister, tt.args.iam.DefaultLoginPolicy.AllowRegister) + } + if tt.result.DefaultLoginPolicy.AllowExternalIdp != tt.args.iam.DefaultLoginPolicy.AllowExternalIdp { + t.Errorf("got wrong result: expected: %v, actual: %v ", tt.result.DefaultLoginPolicy.AllowExternalIdp, tt.args.iam.DefaultLoginPolicy.AllowExternalIdp) + } + }) + } +} + +func TestAppendAddIdpToPolicyEvent(t *testing.T) { + type args struct { + iam *IAM + provider *IDPProvider + event *es_models.Event + } + tests := []struct { + name string + args args + result *IAM + }{ + { + name: "append add idp to login policy event", + args: args{ + iam: &IAM{DefaultLoginPolicy: &LoginPolicy{AllowExternalIdp: true, AllowRegister: true, AllowUsernamePassword: true}}, + provider: &IDPProvider{Type: int32(model.IDPProviderTypeSystem), IDPConfigID: "IDPConfigID"}, + event: &es_models.Event{}, + }, + result: &IAM{DefaultLoginPolicy: &LoginPolicy{ + AllowExternalIdp: true, + AllowRegister: true, + AllowUsernamePassword: true, + IDPProviders: []*IDPProvider{ + {IDPConfigID: "IDPConfigID", Type: int32(model.IDPProviderTypeSystem)}, + }}}, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if tt.args.provider != nil { + data, _ := json.Marshal(tt.args.provider) + tt.args.event.Data = data + } + tt.args.iam.appendAddIDPProviderToLoginPolicyEvent(tt.args.event) + if tt.result.DefaultLoginPolicy.AllowUsernamePassword != tt.args.iam.DefaultLoginPolicy.AllowUsernamePassword { + t.Errorf("got wrong result AllowUsernamePassword: expected: %v, actual: %v ", tt.result.DefaultLoginPolicy.AllowUsernamePassword, tt.args.iam.DefaultLoginPolicy.AllowUsernamePassword) + } + if tt.result.DefaultLoginPolicy.AllowRegister != tt.args.iam.DefaultLoginPolicy.AllowRegister { + t.Errorf("got wrong result AllowRegister: expected: %v, actual: %v ", tt.result.DefaultLoginPolicy.AllowRegister, tt.args.iam.DefaultLoginPolicy.AllowRegister) + } + if tt.result.DefaultLoginPolicy.AllowExternalIdp != tt.args.iam.DefaultLoginPolicy.AllowExternalIdp { + t.Errorf("got wrong result AllowExternalIDP: expected: %v, actual: %v ", tt.result.DefaultLoginPolicy.AllowExternalIdp, tt.args.iam.DefaultLoginPolicy.AllowExternalIdp) + } + if len(tt.result.DefaultLoginPolicy.IDPProviders) != len(tt.args.iam.DefaultLoginPolicy.IDPProviders) { + t.Errorf("got wrong idp provider len: expected: %v, actual: %v ", len(tt.result.DefaultLoginPolicy.IDPProviders), len(tt.args.iam.DefaultLoginPolicy.IDPProviders)) + } + if tt.result.DefaultLoginPolicy.IDPProviders[0].Type != tt.args.provider.Type { + t.Errorf("got wrong idp provider type: expected: %v, actual: %v ", tt.result.DefaultLoginPolicy.IDPProviders[0].Type, tt.args.provider.Type) + } + if tt.result.DefaultLoginPolicy.IDPProviders[0].IDPConfigID != tt.args.provider.IDPConfigID { + t.Errorf("got wrong idp provider idpconfigid: expected: %v, actual: %v ", tt.result.DefaultLoginPolicy.IDPProviders[0].IDPConfigID, tt.args.provider.IDPConfigID) + } + }) + } +} + +func TestRemoveAddIdpToPolicyEvent(t *testing.T) { + type args struct { + iam *IAM + provider *IDPProvider + event *es_models.Event + } + tests := []struct { + name string + args args + result *IAM + }{ + { + name: "append add idp to login policy event", + args: args{ + iam: &IAM{ + DefaultLoginPolicy: &LoginPolicy{ + AllowExternalIdp: true, + AllowRegister: true, + AllowUsernamePassword: true, + IDPProviders: []*IDPProvider{ + {IDPConfigID: "IDPConfigID", Type: int32(model.IDPProviderTypeSystem)}, + }}}, + provider: &IDPProvider{Type: int32(model.IDPProviderTypeSystem), IDPConfigID: "IDPConfigID"}, + event: &es_models.Event{}, + }, + result: &IAM{DefaultLoginPolicy: &LoginPolicy{ + AllowExternalIdp: true, + AllowRegister: true, + AllowUsernamePassword: true, + IDPProviders: []*IDPProvider{}}}, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if tt.args.provider != nil { + data, _ := json.Marshal(tt.args.provider) + tt.args.event.Data = data + } + tt.args.iam.appendRemoveIDPProviderFromLoginPolicyEvent(tt.args.event) + if tt.result.DefaultLoginPolicy.AllowUsernamePassword != tt.args.iam.DefaultLoginPolicy.AllowUsernamePassword { + t.Errorf("got wrong result AllowUsernamePassword: expected: %v, actual: %v ", tt.result.DefaultLoginPolicy.AllowUsernamePassword, tt.args.iam.DefaultLoginPolicy.AllowUsernamePassword) + } + if tt.result.DefaultLoginPolicy.AllowRegister != tt.args.iam.DefaultLoginPolicy.AllowRegister { + t.Errorf("got wrong result AllowRegister: expected: %v, actual: %v ", tt.result.DefaultLoginPolicy.AllowRegister, tt.args.iam.DefaultLoginPolicy.AllowRegister) + } + if tt.result.DefaultLoginPolicy.AllowExternalIdp != tt.args.iam.DefaultLoginPolicy.AllowExternalIdp { + t.Errorf("got wrong result AllowExternalIDP: expected: %v, actual: %v ", tt.result.DefaultLoginPolicy.AllowExternalIdp, tt.args.iam.DefaultLoginPolicy.AllowExternalIdp) + } + if len(tt.result.DefaultLoginPolicy.IDPProviders) != len(tt.args.iam.DefaultLoginPolicy.IDPProviders) { + t.Errorf("got wrong idp provider len: expected: %v, actual: %v ", len(tt.result.DefaultLoginPolicy.IDPProviders), len(tt.args.iam.DefaultLoginPolicy.IDPProviders)) + } + }) + } +} diff --git a/internal/iam/repository/eventsourcing/model/oidc_idp_config.go b/internal/iam/repository/eventsourcing/model/oidc_idp_config.go new file mode 100644 index 000000000..d334ba41b --- /dev/null +++ b/internal/iam/repository/eventsourcing/model/oidc_idp_config.go @@ -0,0 +1,96 @@ +package model + +import ( + "encoding/json" + "github.com/caos/logging" + "github.com/caos/zitadel/internal/crypto" + es_models "github.com/caos/zitadel/internal/eventstore/models" + "github.com/caos/zitadel/internal/iam/model" + "github.com/lib/pq" + "reflect" +) + +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"` +} + +func (c *OIDCIDPConfig) Changes(changed *OIDCIDPConfig) map[string]interface{} { + changes := make(map[string]interface{}, 1) + changes["idpConfigId"] = c.IDPConfigID + if c.ClientID != changed.ClientID { + changes["clientId"] = changed.ClientID + } + if c.ClientSecret != nil { + changes["clientSecret"] = changed.ClientSecret + } + if c.Issuer != changed.Issuer { + changes["issuer"] = changed.Issuer + } + if !reflect.DeepEqual(c.Scopes, changed.Scopes) { + changes["scopes"] = changed.Scopes + } + 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, + } +} + +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, + } +} + +func (iam *IAM) appendAddOIDCIDPConfigEvent(event *es_models.Event) error { + config := new(OIDCIDPConfig) + err := config.SetData(event) + if err != nil { + return err + } + config.ObjectRoot.CreationDate = event.CreationDate + if i, idpConfig := GetIDPConfig(iam.IDPs, config.IDPConfigID); idpConfig != nil { + iam.IDPs[i].Type = int32(model.IDPConfigTypeOIDC) + iam.IDPs[i].OIDCIDPConfig = config + } + return nil +} + +func (iam *IAM) appendChangeOIDCIDPConfigEvent(event *es_models.Event) error { + config := new(OIDCIDPConfig) + err := config.SetData(event) + if err != nil { + return err + } + + if i, idpConfig := GetIDPConfig(iam.IDPs, config.IDPConfigID); idpConfig != nil { + iam.IDPs[i].OIDCIDPConfig.SetData(event) + } + return nil +} + +func (o *OIDCIDPConfig) SetData(event *es_models.Event) error { + o.ObjectRoot.AppendEvent(event) + if err := json.Unmarshal(event.Data, o); err != nil { + logging.Log("EVEN-Msh8s").WithError(err).Error("could not unmarshal event data") + return err + } + return nil +} diff --git a/internal/iam/repository/eventsourcing/model/oidc_idp_config_test.go b/internal/iam/repository/eventsourcing/model/oidc_idp_config_test.go new file mode 100644 index 000000000..df7e56922 --- /dev/null +++ b/internal/iam/repository/eventsourcing/model/oidc_idp_config_test.go @@ -0,0 +1,156 @@ +package model + +import ( + "encoding/json" + "github.com/caos/zitadel/internal/crypto" + es_models "github.com/caos/zitadel/internal/eventstore/models" + "testing" +) + +func TestOIDCIdpConfigChanges(t *testing.T) { + type args struct { + existing *OIDCIDPConfig + new *OIDCIDPConfig + } + type res struct { + changesLen int + } + tests := []struct { + name string + args args + res res + }{ + { + name: "all possible values change", + args: args{ + existing: &OIDCIDPConfig{ + IDPConfigID: "IDPConfigID", + ClientID: "ClientID", + ClientSecret: &crypto.CryptoValue{KeyID: "KeyID"}, + Issuer: "Issuer", + Scopes: []string{"scope1"}, + }, + new: &OIDCIDPConfig{ + IDPConfigID: "IDPConfigID", + ClientID: "ClientID2", + ClientSecret: &crypto.CryptoValue{KeyID: "KeyID2"}, + Issuer: "Issuer2", + Scopes: []string{"scope1", "scope2"}, + }, + }, + res: res{ + changesLen: 5, + }, + }, + { + name: "no changes", + args: args{ + existing: &OIDCIDPConfig{ + IDPConfigID: "IDPConfigID", + ClientID: "ClientID", + Issuer: "Issuer", + Scopes: []string{"scope1"}, + }, + new: &OIDCIDPConfig{ + IDPConfigID: "IDPConfigID", + ClientID: "ClientID", + Issuer: "Issuer", + Scopes: []string{"scope1"}, + }, + }, + res: res{ + changesLen: 1, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + changes := tt.args.existing.Changes(tt.args.new) + if len(changes) != tt.res.changesLen { + t.Errorf("got wrong changes len: expected: %v, actual: %v ", tt.res.changesLen, len(changes)) + } + }) + } +} + +func TestAppendAddOIDCIdpConfigEvent(t *testing.T) { + type args struct { + iam *IAM + config *OIDCIDPConfig + event *es_models.Event + } + tests := []struct { + name string + args args + result *IAM + }{ + { + name: "append add oidc idp config event", + args: args{ + iam: &IAM{IDPs: []*IDPConfig{&IDPConfig{IDPConfigID: "IDPConfigID"}}}, + config: &OIDCIDPConfig{IDPConfigID: "IDPConfigID", ClientID: "ClientID"}, + event: &es_models.Event{}, + }, + result: &IAM{IDPs: []*IDPConfig{&IDPConfig{IDPConfigID: "IDPConfigID", OIDCIDPConfig: &OIDCIDPConfig{IDPConfigID: "IDPConfigID", ClientID: "ClientID"}}}}, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if tt.args.config != nil { + data, _ := json.Marshal(tt.args.config) + tt.args.event.Data = data + } + tt.args.iam.appendAddOIDCIDPConfigEvent(tt.args.event) + if len(tt.args.iam.IDPs) != 1 { + t.Errorf("got wrong result should have one idpConfig actual: %v ", len(tt.args.iam.IDPs)) + } + if tt.args.iam.IDPs[0].OIDCIDPConfig == nil { + t.Errorf("got wrong result should have oidc config actual: %v ", tt.args.iam.IDPs[0].OIDCIDPConfig) + } + if tt.args.iam.IDPs[0] == tt.result.IDPs[0] { + t.Errorf("got wrong result: expected: %v, actual: %v ", tt.result.IDPs[0], tt.args.iam.IDPs[0]) + } + }) + } +} + +func TestAppendChangeOIDCIdpConfigEvent(t *testing.T) { + type args struct { + iam *IAM + config *OIDCIDPConfig + event *es_models.Event + } + tests := []struct { + name string + args args + result *IAM + }{ + { + name: "append change oidc idp config event", + args: args{ + iam: &IAM{IDPs: []*IDPConfig{&IDPConfig{IDPConfigID: "IDPConfigID", OIDCIDPConfig: &OIDCIDPConfig{IDPConfigID: "IDPConfigID", ClientID: "ClientID"}}}}, + config: &OIDCIDPConfig{IDPConfigID: "IDPConfigID", ClientID: "ClientID Changed"}, + event: &es_models.Event{}, + }, + result: &IAM{IDPs: []*IDPConfig{&IDPConfig{IDPConfigID: "IDPConfigID", OIDCIDPConfig: &OIDCIDPConfig{IDPConfigID: "IDPConfigID", ClientID: "ClientID Changed"}}}}, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if tt.args.config != nil { + data, _ := json.Marshal(tt.args.config) + tt.args.event.Data = data + } + tt.args.iam.appendChangeOIDCIDPConfigEvent(tt.args.event) + if len(tt.args.iam.IDPs) != 1 { + t.Errorf("got wrong result should have one idpConfig actual: %v ", len(tt.args.iam.IDPs)) + } + if tt.args.iam.IDPs[0].OIDCIDPConfig == nil { + t.Errorf("got wrong result should have oidc config actual: %v ", tt.args.iam.IDPs[0].OIDCIDPConfig) + } + if tt.args.iam.IDPs[0] == tt.result.IDPs[0] { + t.Errorf("got wrong result: expected: %v, actual: %v ", tt.result.IDPs[0], tt.args.iam.IDPs[0]) + } + }) + } +} diff --git a/internal/iam/repository/eventsourcing/model/types.go b/internal/iam/repository/eventsourcing/model/types.go index 08f008db8..94a26b417 100644 --- a/internal/iam/repository/eventsourcing/model/types.go +++ b/internal/iam/repository/eventsourcing/model/types.go @@ -3,13 +3,31 @@ package model import "github.com/caos/zitadel/internal/eventstore/models" const ( - IamAggregate models.AggregateType = "iam" + IAMAggregate models.AggregateType = "iam" - IamSetupStarted models.EventType = "iam.setup.started" - IamSetupDone models.EventType = "iam.setup.done" + IAMSetupStarted models.EventType = "iam.setup.started" + IAMSetupDone models.EventType = "iam.setup.done" GlobalOrgSet models.EventType = "iam.global.org.set" - IamProjectSet models.EventType = "iam.project.iam.set" - IamMemberAdded models.EventType = "iam.member.added" - IamMemberChanged models.EventType = "iam.member.changed" - IamMemberRemoved models.EventType = "iam.member.removed" + IAMProjectSet models.EventType = "iam.project.iam.set" + IAMMemberAdded models.EventType = "iam.member.added" + IAMMemberChanged models.EventType = "iam.member.changed" + IAMMemberRemoved models.EventType = "iam.member.removed" + + IDPConfigAdded models.EventType = "iam.idp.config.added" + IDPConfigChanged models.EventType = "iam.idp.config.changed" + IDPConfigRemoved models.EventType = "iam.idp.config.removed" + IDPConfigDeactivated models.EventType = "iam.idp.config.deactivated" + IDPConfigReactivated models.EventType = "iam.idp.config.reactivated" + + OIDCIDPConfigAdded models.EventType = "iam.idp.oidc.config.added" + OIDCIDPConfigChanged models.EventType = "iam.idp.oidc.config.changed" + + SAMLIDPConfigAdded models.EventType = "iam.idp.saml.config.added" + SAMLIDPConfigChanged models.EventType = "iam.idp.saml.config.changed" + + LoginPolicyAdded models.EventType = "iam.policy.login.added" + LoginPolicyChanged models.EventType = "iam.policy.login.changed" + LoginPolicyIDPProviderAdded models.EventType = "iam.policy.login.idpprovider.added" + LoginPolicyIDPProviderRemoved models.EventType = "iam.policy.login.idpprovider.removed" + LoginPolicyIDPProviderCascadeRemoved models.EventType = "iam.policy.login.idpprovider.cascade.removed" ) diff --git a/internal/iam/repository/view/iam_member_view.go b/internal/iam/repository/view/iam_member_view.go index 5c4f12a85..87438610f 100644 --- a/internal/iam/repository/view/iam_member_view.go +++ b/internal/iam/repository/view/iam_member_view.go @@ -9,38 +9,38 @@ import ( "github.com/jinzhu/gorm" ) -func IamMemberByIDs(db *gorm.DB, table, orgID, userID string) (*model.IamMemberView, error) { - member := new(model.IamMemberView) +func IAMMemberByIDs(db *gorm.DB, table, orgID, userID string) (*model.IAMMemberView, error) { + member := new(model.IAMMemberView) - iamIDQuery := &model.IamMemberSearchQuery{Key: iam_model.IamMemberSearchKeyIamID, Value: orgID, Method: global_model.SearchMethodEquals} - userIDQuery := &model.IamMemberSearchQuery{Key: iam_model.IamMemberSearchKeyUserID, Value: userID, Method: global_model.SearchMethodEquals} + iamIDQuery := &model.IAMMemberSearchQuery{Key: iam_model.IAMMemberSearchKeyIamID, Value: orgID, Method: global_model.SearchMethodEquals} + userIDQuery := &model.IAMMemberSearchQuery{Key: iam_model.IAMMemberSearchKeyUserID, Value: userID, Method: global_model.SearchMethodEquals} query := repository.PrepareGetByQuery(table, iamIDQuery, userIDQuery) err := query(db, member) if caos_errs.IsNotFound(err) { - return nil, caos_errs.ThrowNotFound(nil, "VIEW-Ahq2s", "Errors.Iam.MemberNotExisting") + return nil, caos_errs.ThrowNotFound(nil, "VIEW-Ahq2s", "Errors.IAM.MemberNotExisting") } return member, err } -func SearchIamMembers(db *gorm.DB, table string, req *iam_model.IamMemberSearchRequest) ([]*model.IamMemberView, uint64, error) { - members := make([]*model.IamMemberView, 0) - query := repository.PrepareSearchQuery(table, model.IamMemberSearchRequest{Limit: req.Limit, Offset: req.Offset, Queries: req.Queries}) +func SearchIAMMembers(db *gorm.DB, table string, req *iam_model.IAMMemberSearchRequest) ([]*model.IAMMemberView, uint64, error) { + members := make([]*model.IAMMemberView, 0) + query := repository.PrepareSearchQuery(table, model.IAMMemberSearchRequest{Limit: req.Limit, Offset: req.Offset, Queries: req.Queries}) count, err := query(db, &members) if err != nil { return nil, 0, err } return members, count, nil } -func IamMembersByUserID(db *gorm.DB, table string, userID string) ([]*model.IamMemberView, error) { - members := make([]*model.IamMemberView, 0) - queries := []*iam_model.IamMemberSearchQuery{ +func IAMMembersByUserID(db *gorm.DB, table string, userID string) ([]*model.IAMMemberView, error) { + members := make([]*model.IAMMemberView, 0) + queries := []*iam_model.IAMMemberSearchQuery{ { - Key: iam_model.IamMemberSearchKeyUserID, + Key: iam_model.IAMMemberSearchKeyUserID, Value: userID, Method: global_model.SearchMethodEquals, }, } - query := repository.PrepareSearchQuery(table, model.IamMemberSearchRequest{Queries: queries}) + query := repository.PrepareSearchQuery(table, model.IAMMemberSearchRequest{Queries: queries}) _, err := query(db, &members) if err != nil { return nil, err @@ -48,13 +48,13 @@ func IamMembersByUserID(db *gorm.DB, table string, userID string) ([]*model.IamM return members, nil } -func PutIamMember(db *gorm.DB, table string, role *model.IamMemberView) error { +func PutIAMMember(db *gorm.DB, table string, role *model.IAMMemberView) error { save := repository.PrepareSave(table) return save(db, role) } -func DeleteIamMember(db *gorm.DB, table, orgID, userID string) error { - member, err := IamMemberByIDs(db, table, orgID, userID) +func DeleteIAMMember(db *gorm.DB, table, orgID, userID string) error { + member, err := IAMMemberByIDs(db, table, orgID, userID) if err != nil { return err } diff --git a/internal/iam/repository/view/idp_provider_view.go b/internal/iam/repository/view/idp_provider_view.go new file mode 100644 index 000000000..b7a4bff02 --- /dev/null +++ b/internal/iam/repository/view/idp_provider_view.go @@ -0,0 +1,78 @@ +package view + +import ( + caos_errs "github.com/caos/zitadel/internal/errors" + iam_model "github.com/caos/zitadel/internal/iam/model" + "github.com/caos/zitadel/internal/iam/repository/view/model" + global_model "github.com/caos/zitadel/internal/model" + "github.com/caos/zitadel/internal/view/repository" + "github.com/jinzhu/gorm" +) + +func GetIDPProviderByAggregateIDAndConfigID(db *gorm.DB, table, aggregateID, idpConfigID string) (*model.IDPProviderView, error) { + policy := new(model.IDPProviderView) + aggIDQuery := &model.IDPProviderSearchQuery{Key: iam_model.IDPProviderSearchKeyAggregateID, Value: aggregateID, Method: global_model.SearchMethodEquals} + idpConfigIDQuery := &model.IDPProviderSearchQuery{Key: iam_model.IDPProviderSearchKeyIdpConfigID, Value: idpConfigID, Method: global_model.SearchMethodEquals} + query := repository.PrepareGetByQuery(table, aggIDQuery, idpConfigIDQuery) + err := query(db, policy) + if caos_errs.IsNotFound(err) { + return nil, caos_errs.ThrowNotFound(nil, "VIEW-Skvi8", "Errors.IAM.LoginPolicy.IdpProviderNotExisting") + } + return policy, err +} + +func IDPProvidersByIdpConfigID(db *gorm.DB, table string, idpConfigID string) ([]*model.IDPProviderView, error) { + members := make([]*model.IDPProviderView, 0) + queries := []*iam_model.IDPProviderSearchQuery{ + { + Key: iam_model.IDPProviderSearchKeyIdpConfigID, + Value: idpConfigID, + Method: global_model.SearchMethodEquals, + }, + } + query := repository.PrepareSearchQuery(table, model.IDPProviderSearchRequest{Queries: queries}) + _, err := query(db, &members) + if err != nil { + return nil, err + } + return members, nil +} + +func SearchIDPProviders(db *gorm.DB, table string, req *iam_model.IDPProviderSearchRequest) ([]*model.IDPProviderView, uint64, error) { + providers := make([]*model.IDPProviderView, 0) + query := repository.PrepareSearchQuery(table, model.IDPProviderSearchRequest{Limit: req.Limit, Offset: req.Offset, Queries: req.Queries}) + count, err := query(db, &providers) + if err != nil { + return nil, 0, err + } + return providers, count, nil +} + +func PutIDPProvider(db *gorm.DB, table string, provider *model.IDPProviderView) error { + save := repository.PrepareSave(table) + return save(db, provider) +} + +func PutIDPProviders(db *gorm.DB, table string, providers ...*model.IDPProviderView) error { + save := repository.PrepareBulkSave(table) + p := make([]interface{}, len(providers)) + for i, provider := range providers { + p[i] = provider + } + return save(db, p...) +} + +func DeleteIDPProvider(db *gorm.DB, table, aggregateID, idpConfigID string) error { + delete := repository.PrepareDeleteByKeys(table, + repository.Key{Key: model.IDPProviderSearchKey(iam_model.IDPProviderSearchKeyAggregateID), Value: aggregateID}, + repository.Key{Key: model.IDPProviderSearchKey(iam_model.IDPProviderSearchKeyIdpConfigID), Value: idpConfigID}, + ) + return delete(db) +} + +func DeleteIDPProvidersByAggregateID(db *gorm.DB, table, aggregateID string) error { + delete := repository.PrepareDeleteByKeys(table, + repository.Key{Key: model.IDPProviderSearchKey(iam_model.IDPProviderSearchKeyAggregateID), Value: aggregateID}, + ) + return delete(db) +} diff --git a/internal/iam/repository/view/idp_view.go b/internal/iam/repository/view/idp_view.go new file mode 100644 index 000000000..dc6fd7342 --- /dev/null +++ b/internal/iam/repository/view/idp_view.go @@ -0,0 +1,42 @@ +package view + +import ( + caos_errs "github.com/caos/zitadel/internal/errors" + iam_model "github.com/caos/zitadel/internal/iam/model" + "github.com/caos/zitadel/internal/iam/repository/view/model" + global_model "github.com/caos/zitadel/internal/model" + "github.com/caos/zitadel/internal/view/repository" + "github.com/jinzhu/gorm" +) + +func IDPByID(db *gorm.DB, table, idpID string) (*model.IDPConfigView, error) { + idp := new(model.IDPConfigView) + userIDQuery := &model.IDPConfigSearchQuery{Key: iam_model.IDPConfigSearchKeyIdpConfigID, Value: idpID, Method: global_model.SearchMethodEquals} + query := repository.PrepareGetByQuery(table, userIDQuery) + err := query(db, idp) + if caos_errs.IsNotFound(err) { + return nil, caos_errs.ThrowNotFound(nil, "VIEW-Ahq2s", "Errors.IAM.IdpNotExisting") + } + return idp, err +} + +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}) + count, err := query(db, &idps) + if err != nil { + return nil, 0, err + } + return idps, count, nil +} + +func PutIDP(db *gorm.DB, table string, idp *model.IDPConfigView) error { + save := repository.PrepareSave(table) + return save(db, idp) +} + +func DeleteIDP(db *gorm.DB, table, idpID string) error { + delete := repository.PrepareDeleteByKey(table, model.IDPConfigSearchKey(iam_model.IDPConfigSearchKeyIdpConfigID), idpID) + + return delete(db) +} diff --git a/internal/iam/repository/view/login_policy_view.go b/internal/iam/repository/view/login_policy_view.go new file mode 100644 index 000000000..cbcd3beac --- /dev/null +++ b/internal/iam/repository/view/login_policy_view.go @@ -0,0 +1,32 @@ +package view + +import ( + caos_errs "github.com/caos/zitadel/internal/errors" + iam_model "github.com/caos/zitadel/internal/iam/model" + "github.com/caos/zitadel/internal/iam/repository/view/model" + global_model "github.com/caos/zitadel/internal/model" + "github.com/caos/zitadel/internal/view/repository" + "github.com/jinzhu/gorm" +) + +func GetLoginPolicyByAggregateID(db *gorm.DB, table, aggregateID string) (*model.LoginPolicyView, error) { + policy := new(model.LoginPolicyView) + userIDQuery := &model.LoginPolicySearchQuery{Key: iam_model.LoginPolicySearchKeyAggregateID, Value: aggregateID, Method: global_model.SearchMethodEquals} + query := repository.PrepareGetByQuery(table, userIDQuery) + err := query(db, policy) + if caos_errs.IsNotFound(err) { + return nil, caos_errs.ThrowNotFound(nil, "VIEW-Lso0cs", "Errors.IAM.LoginPolicy.NotExisting") + } + return policy, err +} + +func PutLoginPolicy(db *gorm.DB, table string, policy *model.LoginPolicyView) error { + save := repository.PrepareSave(table) + return save(db, policy) +} + +func DeleteLoginPolicy(db *gorm.DB, table, aggregateID string) error { + delete := repository.PrepareDeleteByKey(table, model.LoginPolicySearchKey(iam_model.LoginPolicySearchKeyAggregateID), aggregateID) + + return delete(db) +} diff --git a/internal/iam/repository/view/model/iam_member.go b/internal/iam/repository/view/model/iam_member.go index 271dc72a3..574e765d9 100644 --- a/internal/iam/repository/view/model/iam_member.go +++ b/internal/iam/repository/view/model/iam_member.go @@ -14,17 +14,17 @@ import ( ) const ( - IamMemberKeyUserID = "user_id" - IamMemberKeyIamID = "iam_id" - IamMemberKeyUserName = "user_name" - IamMemberKeyEmail = "email" - IamMemberKeyFirstName = "first_name" - IamMemberKeyLastName = "last_name" + IAMMemberKeyUserID = "user_id" + IAMMemberKeyIamID = "iam_id" + IAMMemberKeyUserName = "user_name" + IAMMemberKeyEmail = "email" + IAMMemberKeyFirstName = "first_name" + IAMMemberKeyLastName = "last_name" ) -type IamMemberView struct { +type IAMMemberView struct { UserID string `json:"userId" gorm:"column:user_id;primary_key"` - IamID string `json:"-" gorm:"column:iam_id"` + IAMID string `json:"-" gorm:"column:iam_id"` UserName string `json:"-" gorm:"column:user_name"` Email string `json:"-" gorm:"column:email_address"` FirstName string `json:"-" gorm:"column:first_name"` @@ -37,10 +37,10 @@ type IamMemberView struct { ChangeDate time.Time `json:"-" gorm:"column:change_date"` } -func IamMemberViewFromModel(member *model.IamMemberView) *IamMemberView { - return &IamMemberView{ +func IAMMemberViewFromModel(member *model.IAMMemberView) *IAMMemberView { + return &IAMMemberView{ UserID: member.UserID, - IamID: member.IamID, + IAMID: member.IAMID, UserName: member.UserName, Email: member.Email, FirstName: member.FirstName, @@ -53,10 +53,10 @@ func IamMemberViewFromModel(member *model.IamMemberView) *IamMemberView { } } -func IamMemberToModel(member *IamMemberView) *model.IamMemberView { - return &model.IamMemberView{ +func IAMMemberToModel(member *IAMMemberView) *model.IAMMemberView { + return &model.IAMMemberView{ UserID: member.UserID, - IamID: member.IamID, + IAMID: member.IAMID, UserName: member.UserName, Email: member.Email, FirstName: member.FirstName, @@ -69,33 +69,33 @@ func IamMemberToModel(member *IamMemberView) *model.IamMemberView { } } -func IamMembersToModel(roles []*IamMemberView) []*model.IamMemberView { - result := make([]*model.IamMemberView, len(roles)) +func IAMMembersToModel(roles []*IAMMemberView) []*model.IAMMemberView { + result := make([]*model.IAMMemberView, len(roles)) for i, r := range roles { - result[i] = IamMemberToModel(r) + result[i] = IAMMemberToModel(r) } return result } -func (r *IamMemberView) AppendEvent(event *models.Event) (err error) { +func (r *IAMMemberView) AppendEvent(event *models.Event) (err error) { r.Sequence = event.Sequence r.ChangeDate = event.CreationDate switch event.Type { - case es_model.IamMemberAdded: + case es_model.IAMMemberAdded: r.setRootData(event) r.CreationDate = event.CreationDate err = r.SetData(event) - case es_model.IamMemberChanged: + case es_model.IAMMemberChanged: err = r.SetData(event) } return err } -func (r *IamMemberView) setRootData(event *models.Event) { - r.IamID = event.AggregateID +func (r *IAMMemberView) setRootData(event *models.Event) { + r.IAMID = event.AggregateID } -func (r *IamMemberView) SetData(event *models.Event) error { +func (r *IAMMemberView) SetData(event *models.Event) error { if err := json.Unmarshal(event.Data, r); err != nil { logging.Log("EVEN-Psl89").WithError(err).Error("could not unmarshal event data") return caos_errs.ThrowInternal(err, "MODEL-lub6s", "Could not unmarshal data") diff --git a/internal/iam/repository/view/model/iam_member_query.go b/internal/iam/repository/view/model/iam_member_query.go index 30d0fc15b..8a512f64d 100644 --- a/internal/iam/repository/view/model/iam_member_query.go +++ b/internal/iam/repository/view/model/iam_member_query.go @@ -6,63 +6,63 @@ import ( "github.com/caos/zitadel/internal/view/repository" ) -type IamMemberSearchRequest iam_model.IamMemberSearchRequest -type IamMemberSearchQuery iam_model.IamMemberSearchQuery -type IamMemberSearchKey iam_model.IamMemberSearchKey +type IAMMemberSearchRequest iam_model.IAMMemberSearchRequest +type IAMMemberSearchQuery iam_model.IAMMemberSearchQuery +type IAMMemberSearchKey iam_model.IAMMemberSearchKey -func (req IamMemberSearchRequest) GetLimit() uint64 { +func (req IAMMemberSearchRequest) GetLimit() uint64 { return req.Limit } -func (req IamMemberSearchRequest) GetOffset() uint64 { +func (req IAMMemberSearchRequest) GetOffset() uint64 { return req.Offset } -func (req IamMemberSearchRequest) GetSortingColumn() repository.ColumnKey { - if req.SortingColumn == iam_model.IamMemberSearchKeyUnspecified { +func (req IAMMemberSearchRequest) GetSortingColumn() repository.ColumnKey { + if req.SortingColumn == iam_model.IAMMemberSearchKeyUnspecified { return nil } - return IamMemberSearchKey(req.SortingColumn) + return IAMMemberSearchKey(req.SortingColumn) } -func (req IamMemberSearchRequest) GetAsc() bool { +func (req IAMMemberSearchRequest) GetAsc() bool { return req.Asc } -func (req IamMemberSearchRequest) GetQueries() []repository.SearchQuery { +func (req IAMMemberSearchRequest) GetQueries() []repository.SearchQuery { result := make([]repository.SearchQuery, len(req.Queries)) for i, q := range req.Queries { - result[i] = IamMemberSearchQuery{Key: q.Key, Value: q.Value, Method: q.Method} + result[i] = IAMMemberSearchQuery{Key: q.Key, Value: q.Value, Method: q.Method} } return result } -func (req IamMemberSearchQuery) GetKey() repository.ColumnKey { - return IamMemberSearchKey(req.Key) +func (req IAMMemberSearchQuery) GetKey() repository.ColumnKey { + return IAMMemberSearchKey(req.Key) } -func (req IamMemberSearchQuery) GetMethod() global_model.SearchMethod { +func (req IAMMemberSearchQuery) GetMethod() global_model.SearchMethod { return req.Method } -func (req IamMemberSearchQuery) GetValue() interface{} { +func (req IAMMemberSearchQuery) GetValue() interface{} { return req.Value } -func (key IamMemberSearchKey) ToColumnName() string { - switch iam_model.IamMemberSearchKey(key) { - case iam_model.IamMemberSearchKeyEmail: - return IamMemberKeyEmail - case iam_model.IamMemberSearchKeyFirstName: - return IamMemberKeyFirstName - case iam_model.IamMemberSearchKeyLastName: - return IamMemberKeyLastName - case iam_model.IamMemberSearchKeyUserName: - return IamMemberKeyUserName - case iam_model.IamMemberSearchKeyUserID: - return IamMemberKeyUserID - case iam_model.IamMemberSearchKeyIamID: - return IamMemberKeyIamID +func (key IAMMemberSearchKey) ToColumnName() string { + switch iam_model.IAMMemberSearchKey(key) { + case iam_model.IAMMemberSearchKeyEmail: + return IAMMemberKeyEmail + case iam_model.IAMMemberSearchKeyFirstName: + return IAMMemberKeyFirstName + case iam_model.IAMMemberSearchKeyLastName: + return IAMMemberKeyLastName + case iam_model.IAMMemberSearchKeyUserName: + return IAMMemberKeyUserName + case iam_model.IAMMemberSearchKeyUserID: + return IAMMemberKeyUserID + case iam_model.IAMMemberSearchKeyIamID: + return IAMMemberKeyIamID default: return "" } diff --git a/internal/iam/repository/view/model/idp_config.go b/internal/iam/repository/view/model/idp_config.go new file mode 100644 index 000000000..d85181a04 --- /dev/null +++ b/internal/iam/repository/view/model/idp_config.go @@ -0,0 +1,121 @@ +package model + +import ( + "encoding/json" + "github.com/caos/zitadel/internal/crypto" + "time" + + es_model "github.com/caos/zitadel/internal/iam/repository/eventsourcing/model" + org_es_model "github.com/caos/zitadel/internal/org/repository/eventsourcing/model" + + "github.com/caos/logging" + caos_errs "github.com/caos/zitadel/internal/errors" + "github.com/caos/zitadel/internal/eventstore/models" + "github.com/caos/zitadel/internal/iam/model" + "github.com/lib/pq" +) + +const ( + IDPConfigKeyIdpConfigID = "idp_config_id" + IDPConfigKeyAggregateID = "aggregate_id" + IDPConfigKeyName = "name" + IDPConfigKeyProviderType = "idp_provider_type" +) + +type IDPConfigView struct { + IDPConfigID string `json:"idpConfigId" gorm:"column:idp_config_id;primary_key"` + AggregateID string `json:"-" gorm:"column:aggregate_id"` + Name string `json:"name" gorm:"column:name"` + LogoSrc []byte `json:"logoSrc" gorm:"column:logo_src"` + CreationDate time.Time `json:"-" gorm:"column:creation_date"` + ChangeDate time.Time `json:"-" gorm:"column:change_date"` + 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"` + + 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, + } +} + +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, + } +} + +func IdpConfigViewsToModel(idps []*IDPConfigView) []*model.IDPConfigView { + result := make([]*model.IDPConfigView, len(idps)) + for i, idp := range idps { + result[i] = IdpConfigViewToModel(idp) + } + return result +} + +func (i *IDPConfigView) AppendEvent(providerType model.IDPProviderType, event *models.Event) (err error) { + i.Sequence = event.Sequence + i.ChangeDate = event.CreationDate + switch event.Type { + case es_model.IDPConfigAdded, org_es_model.IDPConfigAdded: + i.setRootData(event) + i.CreationDate = event.CreationDate + i.IDPProviderType = int32(providerType) + err = i.SetData(event) + case es_model.OIDCIDPConfigAdded, org_es_model.OIDCIDPConfigAdded: + i.IsOIDC = true + err = i.SetData(event) + case es_model.OIDCIDPConfigChanged, org_es_model.OIDCIDPConfigChanged, + es_model.IDPConfigChanged, org_es_model.IDPConfigChanged: + err = i.SetData(event) + case es_model.IDPConfigDeactivated, org_es_model.IDPConfigDeactivated: + i.IDPState = int32(model.IDPConfigStateInactive) + case es_model.IDPConfigReactivated, org_es_model.IDPConfigReactivated: + i.IDPState = int32(model.IDPConfigStateActive) + } + return err +} + +func (r *IDPConfigView) setRootData(event *models.Event) { + r.AggregateID = event.AggregateID +} + +func (r *IDPConfigView) SetData(event *models.Event) error { + if err := json.Unmarshal(event.Data, r); err != nil { + logging.Log("EVEN-Smkld").WithError(err).Error("could not unmarshal event data") + return caos_errs.ThrowInternal(err, "MODEL-lub6s", "Could not unmarshal data") + } + return nil +} diff --git a/internal/iam/repository/view/model/idp_config_query.go b/internal/iam/repository/view/model/idp_config_query.go new file mode 100644 index 000000000..03c41b555 --- /dev/null +++ b/internal/iam/repository/view/model/idp_config_query.go @@ -0,0 +1,65 @@ +package model + +import ( + iam_model "github.com/caos/zitadel/internal/iam/model" + global_model "github.com/caos/zitadel/internal/model" + "github.com/caos/zitadel/internal/view/repository" +) + +type IDPConfigSearchRequest iam_model.IDPConfigSearchRequest +type IDPConfigSearchQuery iam_model.IDPConfigSearchQuery +type IDPConfigSearchKey iam_model.IDPConfigSearchKey + +func (req IDPConfigSearchRequest) GetLimit() uint64 { + return req.Limit +} + +func (req IDPConfigSearchRequest) GetOffset() uint64 { + return req.Offset +} + +func (req IDPConfigSearchRequest) GetSortingColumn() repository.ColumnKey { + if req.SortingColumn == iam_model.IDPConfigSearchKeyUnspecified { + return nil + } + return IDPConfigSearchKey(req.SortingColumn) +} + +func (req IDPConfigSearchRequest) GetAsc() bool { + return req.Asc +} + +func (req IDPConfigSearchRequest) GetQueries() []repository.SearchQuery { + result := make([]repository.SearchQuery, len(req.Queries)) + for i, q := range req.Queries { + result[i] = IDPConfigSearchQuery{Key: q.Key, Value: q.Value, Method: q.Method} + } + return result +} + +func (req IDPConfigSearchQuery) GetKey() repository.ColumnKey { + return IDPConfigSearchKey(req.Key) +} + +func (req IDPConfigSearchQuery) GetMethod() global_model.SearchMethod { + return req.Method +} + +func (req IDPConfigSearchQuery) GetValue() interface{} { + return req.Value +} + +func (key IDPConfigSearchKey) ToColumnName() string { + switch iam_model.IDPConfigSearchKey(key) { + case iam_model.IDPConfigSearchKeyAggregateID: + return IDPConfigKeyAggregateID + case iam_model.IDPConfigSearchKeyIdpConfigID: + return IDPConfigKeyIdpConfigID + case iam_model.IDPConfigSearchKeyName: + return IDPConfigKeyName + case iam_model.IDPConfigSearchKeyIdpProviderType: + return IDPConfigKeyProviderType + default: + return "" + } +} diff --git a/internal/iam/repository/view/model/idp_provider.go b/internal/iam/repository/view/model/idp_provider.go new file mode 100644 index 000000000..c6b5fe280 --- /dev/null +++ b/internal/iam/repository/view/model/idp_provider.go @@ -0,0 +1,89 @@ +package model + +import ( + "encoding/json" + org_es_model "github.com/caos/zitadel/internal/org/repository/eventsourcing/model" + "time" + + es_model "github.com/caos/zitadel/internal/iam/repository/eventsourcing/model" + + "github.com/caos/logging" + caos_errs "github.com/caos/zitadel/internal/errors" + "github.com/caos/zitadel/internal/eventstore/models" + "github.com/caos/zitadel/internal/iam/model" +) + +const ( + IDPProviderKeyAggregateID = "aggregate_id" + IDPProviderKeyIdpConfigID = "idp_config_id" +) + +type IDPProviderView struct { + AggregateID string `json:"-" gorm:"column:aggregate_id;primary_key"` + IDPConfigID string `json:"idpConfigID" gorm:"column:idp_config_id;primary_key"` + + CreationDate time.Time `json:"-" gorm:"column:creation_date"` + ChangeDate time.Time `json:"-" gorm:"column:change_date"` + + Name string `json:"-" gorm:"column:name"` + IDPConfigType int32 `json:"-" gorm:"column:idp_config_type"` + IDPProviderType int32 `json:"idpProviderType" gorm:"column:idp_provider_type"` + + Sequence uint64 `json:"-" gorm:"column:sequence"` +} + +func IDPProviderViewFromModel(policy *model.IDPProviderView) *IDPProviderView { + return &IDPProviderView{ + AggregateID: policy.AggregateID, + Sequence: policy.Sequence, + CreationDate: policy.CreationDate, + ChangeDate: policy.ChangeDate, + Name: policy.Name, + IDPConfigType: int32(policy.IDPConfigType), + IDPProviderType: int32(policy.IDPProviderType), + } +} + +func IDPProviderViewToModel(policy *IDPProviderView) *model.IDPProviderView { + return &model.IDPProviderView{ + AggregateID: policy.AggregateID, + Sequence: policy.Sequence, + CreationDate: policy.CreationDate, + ChangeDate: policy.ChangeDate, + Name: policy.Name, + IDPConfigType: model.IdpConfigType(policy.IDPConfigType), + IDPProviderType: model.IDPProviderType(policy.IDPProviderType), + } +} + +func IDPProviderViewsToModel(providers []*IDPProviderView) []*model.IDPProviderView { + result := make([]*model.IDPProviderView, len(providers)) + for i, r := range providers { + result[i] = IDPProviderViewToModel(r) + } + return result +} + +func (i *IDPProviderView) AppendEvent(event *models.Event) (err error) { + i.Sequence = event.Sequence + i.ChangeDate = event.CreationDate + switch event.Type { + case es_model.LoginPolicyIDPProviderAdded, org_es_model.LoginPolicyIDPProviderAdded: + i.setRootData(event) + i.CreationDate = event.CreationDate + err = i.SetData(event) + } + return err +} + +func (r *IDPProviderView) setRootData(event *models.Event) { + r.AggregateID = event.AggregateID +} + +func (r *IDPProviderView) SetData(event *models.Event) error { + if err := json.Unmarshal(event.Data, r); err != nil { + logging.Log("EVEN-Lso0d").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/iam/repository/view/model/idp_provider_query.go b/internal/iam/repository/view/model/idp_provider_query.go new file mode 100644 index 000000000..d88e64c06 --- /dev/null +++ b/internal/iam/repository/view/model/idp_provider_query.go @@ -0,0 +1,61 @@ +package model + +import ( + iam_model "github.com/caos/zitadel/internal/iam/model" + global_model "github.com/caos/zitadel/internal/model" + "github.com/caos/zitadel/internal/view/repository" +) + +type IDPProviderSearchRequest iam_model.IDPProviderSearchRequest +type IDPProviderSearchQuery iam_model.IDPProviderSearchQuery +type IDPProviderSearchKey iam_model.IDPProviderSearchKey + +func (req IDPProviderSearchRequest) GetLimit() uint64 { + return req.Limit +} + +func (req IDPProviderSearchRequest) GetOffset() uint64 { + return req.Offset +} + +func (req IDPProviderSearchRequest) GetSortingColumn() repository.ColumnKey { + if req.SortingColumn == iam_model.IDPProviderSearchKeyUnspecified { + return nil + } + return IDPProviderSearchKey(req.SortingColumn) +} + +func (req IDPProviderSearchRequest) GetAsc() bool { + return req.Asc +} + +func (req IDPProviderSearchRequest) GetQueries() []repository.SearchQuery { + result := make([]repository.SearchQuery, len(req.Queries)) + for i, q := range req.Queries { + result[i] = IDPProviderSearchQuery{Key: q.Key, Value: q.Value, Method: q.Method} + } + return result +} + +func (req IDPProviderSearchQuery) GetKey() repository.ColumnKey { + return IDPProviderSearchKey(req.Key) +} + +func (req IDPProviderSearchQuery) GetMethod() global_model.SearchMethod { + return req.Method +} + +func (req IDPProviderSearchQuery) GetValue() interface{} { + return req.Value +} + +func (key IDPProviderSearchKey) ToColumnName() string { + switch iam_model.IDPProviderSearchKey(key) { + case iam_model.IDPProviderSearchKeyAggregateID: + return IDPProviderKeyAggregateID + case iam_model.IDPProviderSearchKeyIdpConfigID: + return IDPProviderKeyIdpConfigID + default: + return "" + } +} diff --git a/internal/iam/repository/view/model/login_policy.go b/internal/iam/repository/view/model/login_policy.go new file mode 100644 index 000000000..a6207e31d --- /dev/null +++ b/internal/iam/repository/view/model/login_policy.go @@ -0,0 +1,84 @@ +package model + +import ( + "encoding/json" + org_es_model "github.com/caos/zitadel/internal/org/repository/eventsourcing/model" + "time" + + es_model "github.com/caos/zitadel/internal/iam/repository/eventsourcing/model" + + "github.com/caos/logging" + caos_errs "github.com/caos/zitadel/internal/errors" + "github.com/caos/zitadel/internal/eventstore/models" + "github.com/caos/zitadel/internal/iam/model" +) + +const ( + LoginPolicyKeyAggregateID = "aggregate_id" +) + +type LoginPolicyView struct { + AggregateID string `json:"-" gorm:"column:aggregate_id;primary_key"` + CreationDate time.Time `json:"-" gorm:"column:creation_date"` + ChangeDate time.Time `json:"-" gorm:"column:change_date"` + State int32 `json:"-" gorm:"column:login_policy_state"` + + AllowRegister bool `json:"allowRegister" gorm:"column:allow_register"` + AllowUsernamePassword bool `json:"allowUsernamePassword" gorm:"column:allow_username_password"` + AllowExternalIDP bool `json:"allowExternalIdp" gorm:"column:allow_external_idp"` + Default bool `json:"-" gorm:"-"` + + Sequence uint64 `json:"-" gorm:"column:sequence"` +} + +func LoginPolicyViewFromModel(policy *model.LoginPolicyView) *LoginPolicyView { + return &LoginPolicyView{ + AggregateID: policy.AggregateID, + Sequence: policy.Sequence, + CreationDate: policy.CreationDate, + ChangeDate: policy.ChangeDate, + AllowRegister: policy.AllowRegister, + AllowExternalIDP: policy.AllowExternalIDP, + AllowUsernamePassword: policy.AllowUsernamePassword, + Default: policy.Default, + } +} + +func LoginPolicyViewToModel(policy *LoginPolicyView) *model.LoginPolicyView { + return &model.LoginPolicyView{ + AggregateID: policy.AggregateID, + Sequence: policy.Sequence, + CreationDate: policy.CreationDate, + ChangeDate: policy.ChangeDate, + AllowRegister: policy.AllowRegister, + AllowExternalIDP: policy.AllowExternalIDP, + AllowUsernamePassword: policy.AllowUsernamePassword, + Default: policy.Default, + } +} + +func (i *LoginPolicyView) AppendEvent(event *models.Event) (err error) { + i.Sequence = event.Sequence + i.ChangeDate = event.CreationDate + switch event.Type { + case es_model.LoginPolicyAdded, org_es_model.LoginPolicyAdded: + i.setRootData(event) + i.CreationDate = event.CreationDate + err = i.SetData(event) + case es_model.LoginPolicyChanged, org_es_model.LoginPolicyChanged: + err = i.SetData(event) + } + return err +} + +func (r *LoginPolicyView) setRootData(event *models.Event) { + r.AggregateID = event.AggregateID +} + +func (r *LoginPolicyView) SetData(event *models.Event) error { + if err := json.Unmarshal(event.Data, r); err != nil { + logging.Log("EVEN-Kn7ds").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/iam/repository/view/model/login_policy_query.go b/internal/iam/repository/view/model/login_policy_query.go new file mode 100644 index 000000000..dde343184 --- /dev/null +++ b/internal/iam/repository/view/model/login_policy_query.go @@ -0,0 +1,59 @@ +package model + +import ( + iam_model "github.com/caos/zitadel/internal/iam/model" + global_model "github.com/caos/zitadel/internal/model" + "github.com/caos/zitadel/internal/view/repository" +) + +type LoginPolicySearchRequest iam_model.LoginPolicySearchRequest +type LoginPolicySearchQuery iam_model.LoginPolicySearchQuery +type LoginPolicySearchKey iam_model.LoginPolicySearchKey + +func (req LoginPolicySearchRequest) GetLimit() uint64 { + return req.Limit +} + +func (req LoginPolicySearchRequest) GetOffset() uint64 { + return req.Offset +} + +func (req LoginPolicySearchRequest) GetSortingColumn() repository.ColumnKey { + if req.SortingColumn == iam_model.LoginPolicySearchKeyUnspecified { + return nil + } + return LoginPolicySearchKey(req.SortingColumn) +} + +func (req LoginPolicySearchRequest) GetAsc() bool { + return req.Asc +} + +func (req LoginPolicySearchRequest) GetQueries() []repository.SearchQuery { + result := make([]repository.SearchQuery, len(req.Queries)) + for i, q := range req.Queries { + result[i] = LoginPolicySearchQuery{Key: q.Key, Value: q.Value, Method: q.Method} + } + return result +} + +func (req LoginPolicySearchQuery) GetKey() repository.ColumnKey { + return LoginPolicySearchKey(req.Key) +} + +func (req LoginPolicySearchQuery) GetMethod() global_model.SearchMethod { + return req.Method +} + +func (req LoginPolicySearchQuery) GetValue() interface{} { + return req.Value +} + +func (key LoginPolicySearchKey) ToColumnName() string { + switch iam_model.LoginPolicySearchKey(key) { + case iam_model.LoginPolicySearchKeyAggregateID: + return LoginPolicyKeyAggregateID + default: + return "" + } +} diff --git a/internal/management/repository/eventsourcing/eventstore/iam.go b/internal/management/repository/eventsourcing/eventstore/iam.go index d5fc14a5e..165d33df2 100644 --- a/internal/management/repository/eventsourcing/eventstore/iam.go +++ b/internal/management/repository/eventsourcing/eventstore/iam.go @@ -6,10 +6,10 @@ import ( "github.com/caos/zitadel/internal/iam/repository/eventsourcing" ) -type IamRepository struct { - IamEvents *eventsourcing.IamEventstore +type IAMRepository struct { + IAMEvents *eventsourcing.IAMEventstore } -func (repo *IamRepository) IamByID(ctx context.Context, id string) (*iam_model.Iam, error) { - return repo.IamEvents.IamByID(ctx, id) +func (repo *IAMRepository) IAMByID(ctx context.Context, id string) (*iam_model.IAM, error) { + return repo.IAMEvents.IAMByID(ctx, id) } diff --git a/internal/management/repository/eventsourcing/eventstore/org.go b/internal/management/repository/eventsourcing/eventstore/org.go index 43123ece7..462d5724b 100644 --- a/internal/management/repository/eventsourcing/eventstore/org.go +++ b/internal/management/repository/eventsourcing/eventstore/org.go @@ -3,6 +3,11 @@ package eventstore import ( "context" "github.com/caos/logging" + "github.com/caos/zitadel/internal/config/systemdefaults" + "github.com/caos/zitadel/internal/eventstore/models" + 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" "strings" "github.com/caos/zitadel/internal/api/authz" @@ -25,9 +30,10 @@ const ( type OrgRepository struct { SearchLimit uint64 *org_es.OrgEventstore - UserEvents *usr_es.UserEventstore - View *mgmt_view.View - Roles []string + UserEvents *usr_es.UserEventstore + View *mgmt_view.View + Roles []string + SystemDefaults systemdefaults.SystemDefaults } func (repo *OrgRepository) OrgByID(ctx context.Context, id string) (*org_model.OrgView, error) { @@ -79,15 +85,15 @@ func (repo *OrgRepository) ReactivateOrg(ctx context.Context, id string) (*org_m return repo.OrgEventstore.ReactivateOrg(ctx, id) } -func (repo *OrgRepository) GetMyOrgIamPolicy(ctx context.Context) (*org_model.OrgIamPolicy, error) { - return repo.OrgEventstore.GetOrgIamPolicy(ctx, authz.GetCtxData(ctx).OrgID) +func (repo *OrgRepository) GetMyOrgIamPolicy(ctx context.Context) (*org_model.OrgIAMPolicy, error) { + return repo.OrgEventstore.GetOrgIAMPolicy(ctx, authz.GetCtxData(ctx).OrgID) } func (repo *OrgRepository) SearchMyOrgDomains(ctx context.Context, request *org_model.OrgDomainSearchRequest) (*org_model.OrgDomainSearchResponse, error) { request.EnsureLimit(repo.SearchLimit) request.Queries = append(request.Queries, &org_model.OrgDomainSearchQuery{Key: org_model.OrgDomainSearchKeyOrgID, Method: global_model.SearchMethodEquals, Value: authz.GetCtxData(ctx).OrgID}) - sequence, err := repo.View.GetLatestOrgDomainSequence() - logging.Log("EVENT-SLowp").OnError(err).Warn("could not read latest org domain sequence") + sequence, sequenceErr := repo.View.GetLatestOrgDomainSequence() + logging.Log("EVENT-SLowp").OnError(sequenceErr).Warn("could not read latest org domain sequence") domains, count, err := repo.View.SearchOrgDomains(request) if err != nil { return nil, err @@ -98,7 +104,7 @@ func (repo *OrgRepository) SearchMyOrgDomains(ctx context.Context, request *org_ TotalResult: uint64(count), Result: model.OrgDomainsToModel(domains), } - if err == nil { + if sequenceErr == nil { result.Sequence = sequence.CurrentSequence result.Timestamp = sequence.CurrentTimestamp } @@ -178,8 +184,8 @@ func (repo *OrgRepository) RemoveMyOrgMember(ctx context.Context, userID string) func (repo *OrgRepository) SearchMyOrgMembers(ctx context.Context, request *org_model.OrgMemberSearchRequest) (*org_model.OrgMemberSearchResponse, error) { request.EnsureLimit(repo.SearchLimit) request.Queries[len(request.Queries)-1] = &org_model.OrgMemberSearchQuery{Key: org_model.OrgMemberSearchKeyOrgID, Method: global_model.SearchMethodEquals, Value: authz.GetCtxData(ctx).OrgID} - sequence, err := repo.View.GetLatestOrgMemberSequence() - logging.Log("EVENT-Smu3d").OnError(err).Warn("could not read latest org member sequence") + sequence, sequenceErr := repo.View.GetLatestOrgMemberSequence() + logging.Log("EVENT-Smu3d").OnError(sequenceErr).Warn("could not read latest org member sequence") members, count, err := repo.View.SearchOrgMembers(request) if err != nil { return nil, err @@ -187,10 +193,10 @@ func (repo *OrgRepository) SearchMyOrgMembers(ctx context.Context, request *org_ result := &org_model.OrgMemberSearchResponse{ Offset: request.Offset, Limit: request.Limit, - TotalResult: uint64(count), + TotalResult: count, Result: model.OrgMembersToModel(members), } - if err == nil { + if sequenceErr == nil { result.Sequence = sequence.CurrentSequence result.Timestamp = sequence.CurrentTimestamp } @@ -206,3 +212,132 @@ func (repo *OrgRepository) GetOrgMemberRoles() []string { } return roles } + +func (repo *OrgRepository) IDPConfigByID(ctx context.Context, idpConfigID string) (*iam_model.IDPConfigView, error) { + idp, err := repo.View.IDPConfigByID(idpConfigID) + if err != nil { + return nil, err + } + 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 + return repo.OrgEventstore.AddIDPConfig(ctx, idp) +} + +func (repo *OrgRepository) ChangeIDPConfig(ctx context.Context, idp *iam_model.IDPConfig) (*iam_model.IDPConfig, error) { + idp.AggregateID = authz.GetCtxData(ctx).OrgID + return repo.OrgEventstore.ChangeIDPConfig(ctx, idp) +} + +func (repo *OrgRepository) DeactivateIDPConfig(ctx context.Context, idpConfigID string) (*iam_model.IDPConfig, error) { + return repo.OrgEventstore.DeactivateIDPConfig(ctx, authz.GetCtxData(ctx).OrgID, idpConfigID) +} + +func (repo *OrgRepository) ReactivateIDPConfig(ctx context.Context, idpConfigID string) (*iam_model.IDPConfig, error) { + return repo.OrgEventstore.ReactivateIDPConfig(ctx, authz.GetCtxData(ctx).OrgID, idpConfigID) +} + +func (repo *OrgRepository) RemoveIDPConfig(ctx context.Context, idpConfigID string) error { + idp := iam_model.NewIDPConfig(authz.GetCtxData(ctx).OrgID, idpConfigID) + return repo.OrgEventstore.RemoveIDPConfig(ctx, idp) +} + +func (repo *OrgRepository) ChangeOIDCIDPConfig(ctx context.Context, oidcConfig *iam_model.OIDCIDPConfig) (*iam_model.OIDCIDPConfig, error) { + oidcConfig.AggregateID = authz.GetCtxData(ctx).OrgID + return repo.OrgEventstore.ChangeIDPOIDCConfig(ctx, oidcConfig) +} + +func (repo *OrgRepository) SearchIDPConfigs(ctx context.Context, request *iam_model.IDPConfigSearchRequest) (*iam_model.IDPConfigSearchResponse, error) { + request.EnsureLimit(repo.SearchLimit) + request.AppendMyOrgQuery(authz.GetCtxData(ctx).OrgID, repo.SystemDefaults.IamID) + + sequence, sequenceErr := repo.View.GetLatestIDPConfigSequence() + logging.Log("EVENT-Dk8si").OnError(sequenceErr).Warn("could not read latest idp config sequence") + idps, count, err := repo.View.SearchIDPConfigs(request) + if err != nil { + return nil, err + } + result := &iam_model.IDPConfigSearchResponse{ + Offset: request.Offset, + Limit: request.Limit, + TotalResult: count, + Result: iam_view_model.IdpConfigViewsToModel(idps), + } + if sequenceErr == nil { + result.Sequence = sequence.CurrentSequence + result.Timestamp = sequence.CurrentTimestamp + } + return result, nil +} + +func (repo *OrgRepository) GetLoginPolicy(ctx context.Context) (*iam_model.LoginPolicyView, error) { + policy, err := repo.View.LoginPolicyByAggregateID(authz.GetCtxData(ctx).OrgID) + if errors.IsNotFound(err) { + policy, err = repo.View.LoginPolicyByAggregateID(repo.SystemDefaults.IamID) + if err != nil { + return nil, err + } + policy.Default = true + } + if err != nil { + return nil, err + } + return iam_es_model.LoginPolicyViewToModel(policy), err +} + +func (repo *OrgRepository) AddLoginPolicy(ctx context.Context, policy *iam_model.LoginPolicy) (*iam_model.LoginPolicy, error) { + policy.AggregateID = authz.GetCtxData(ctx).OrgID + return repo.OrgEventstore.AddLoginPolicy(ctx, policy) +} + +func (repo *OrgRepository) ChangeLoginPolicy(ctx context.Context, policy *iam_model.LoginPolicy) (*iam_model.LoginPolicy, error) { + policy.AggregateID = authz.GetCtxData(ctx).OrgID + return repo.OrgEventstore.ChangeLoginPolicy(ctx, policy) +} + +func (repo *OrgRepository) RemoveLoginPolicy(ctx context.Context) error { + policy := &iam_model.LoginPolicy{ObjectRoot: models.ObjectRoot{ + AggregateID: authz.GetCtxData(ctx).OrgID, + }} + return repo.OrgEventstore.RemoveLoginPolicy(ctx, policy) +} + +func (repo *OrgRepository) SearchIDPProviders(ctx context.Context, request *iam_model.IDPProviderSearchRequest) (*iam_model.IDPProviderSearchResponse, error) { + _, err := repo.View.LoginPolicyByAggregateID(authz.GetCtxData(ctx).OrgID) + if err != nil { + if errors.IsNotFound(err) { + request.AppendAggregateIDQuery(repo.SystemDefaults.IamID) + } + } else { + request.AppendAggregateIDQuery(authz.GetCtxData(ctx).OrgID) + } + request.EnsureLimit(repo.SearchLimit) + sequence, sequenceErr := repo.View.GetLatestIdpProviderSequence() + logging.Log("EVENT-Tuiks").OnError(sequenceErr).Warn("could not read latest iam sequence") + providers, count, err := repo.View.SearchIdpProviders(request) + if err != nil { + return nil, err + } + result := &iam_model.IDPProviderSearchResponse{ + Offset: request.Offset, + Limit: request.Limit, + TotalResult: count, + Result: iam_es_model.IDPProviderViewsToModel(providers), + } + if sequenceErr == nil { + result.Sequence = sequence.CurrentSequence + result.Timestamp = sequence.CurrentTimestamp + } + return result, nil +} + +func (repo *OrgRepository) AddIDPProviderToLoginPolicy(ctx context.Context, provider *iam_model.IDPProvider) (*iam_model.IDPProvider, error) { + provider.AggregateID = authz.GetCtxData(ctx).OrgID + return repo.OrgEventstore.AddIDPProviderToLoginPolicy(ctx, provider) +} + +func (repo *OrgRepository) RemoveIDPProviderFromIdpProvider(ctx context.Context, provider *iam_model.IDPProvider) error { + provider.AggregateID = authz.GetCtxData(ctx).OrgID + return repo.OrgEventstore.RemoveIDPProviderFromLoginPolicy(ctx, provider) +} diff --git a/internal/management/repository/eventsourcing/eventstore/project.go b/internal/management/repository/eventsourcing/eventstore/project.go index 3e67c5245..b9b1b6868 100644 --- a/internal/management/repository/eventsourcing/eventstore/project.go +++ b/internal/management/repository/eventsourcing/eventstore/project.go @@ -109,8 +109,8 @@ func (repo *ProjectRepo) RemoveProject(ctx context.Context, projectID string) er func (repo *ProjectRepo) SearchProjects(ctx context.Context, request *proj_model.ProjectViewSearchRequest) (*proj_model.ProjectViewSearchResponse, error) { request.EnsureLimit(repo.SearchLimit) - sequence, err := repo.View.GetLatestProjectSequence() - logging.Log("EVENT-Edc56").OnError(err).Warn("could not read latest project sequence") + sequence, sequenceErr := repo.View.GetLatestProjectSequence() + logging.Log("EVENT-Edc56").OnError(sequenceErr).Warn("could not read latest project sequence") permissions := authz.GetRequestPermissionsFromCtx(ctx) if !authz.HasGlobalPermission(permissions) { @@ -130,7 +130,7 @@ func (repo *ProjectRepo) SearchProjects(ctx context.Context, request *proj_model TotalResult: uint64(0), Result: []*proj_model.ProjectView{}, } - if err == nil { + if sequenceErr == nil { result.Sequence = sequence.CurrentSequence result.Timestamp = sequence.CurrentTimestamp } @@ -151,7 +151,7 @@ func (repo *ProjectRepo) SearchProjects(ctx context.Context, request *proj_model TotalResult: uint64(count), Result: model.ProjectsToModel(projects), } - if err == nil { + if sequenceErr == nil { result.Sequence = sequence.CurrentSequence result.Timestamp = sequence.CurrentTimestamp } @@ -189,8 +189,8 @@ func (repo *ProjectRepo) RemoveProjectMember(ctx context.Context, projectID, use func (repo *ProjectRepo) SearchProjectMembers(ctx context.Context, request *proj_model.ProjectMemberSearchRequest) (*proj_model.ProjectMemberSearchResponse, error) { request.EnsureLimit(repo.SearchLimit) - sequence, err := repo.View.GetLatestProjectMemberSequence() - logging.Log("EVENT-3dgt6").OnError(err).Warn("could not read latest project member sequence") + sequence, sequenceErr := repo.View.GetLatestProjectMemberSequence() + logging.Log("EVENT-3dgt6").OnError(sequenceErr).Warn("could not read latest project member sequence") members, count, err := repo.View.SearchProjectMembers(request) if err != nil { return nil, err @@ -201,7 +201,7 @@ func (repo *ProjectRepo) SearchProjectMembers(ctx context.Context, request *proj TotalResult: uint64(count), Result: model.ProjectMembersToModel(members), } - if err == nil { + if sequenceErr == nil { result.Sequence = sequence.CurrentSequence result.Timestamp = sequence.CurrentTimestamp } @@ -261,8 +261,8 @@ func (repo *ProjectRepo) RemoveProjectRole(ctx context.Context, projectID, key s func (repo *ProjectRepo) SearchProjectRoles(ctx context.Context, projectID string, request *proj_model.ProjectRoleSearchRequest) (*proj_model.ProjectRoleSearchResponse, error) { request.EnsureLimit(repo.SearchLimit) request.AppendProjectQuery(projectID) - sequence, err := repo.View.GetLatestProjectRoleSequence() - logging.Log("LSp0d-47suf").OnError(err).Warn("could not read latest project role sequence") + sequence, sequenceErr := repo.View.GetLatestProjectRoleSequence() + logging.Log("LSp0d-47suf").OnError(sequenceErr).Warn("could not read latest project role sequence") roles, count, err := repo.View.SearchProjectRoles(request) if err != nil { return nil, err @@ -271,10 +271,10 @@ func (repo *ProjectRepo) SearchProjectRoles(ctx context.Context, projectID strin result := &proj_model.ProjectRoleSearchResponse{ Offset: request.Offset, Limit: request.Limit, - TotalResult: uint64(count), + TotalResult: count, Result: model.ProjectRolesToModel(roles), } - if err == nil { + if sequenceErr == nil { result.Sequence = sequence.CurrentSequence result.Timestamp = sequence.CurrentTimestamp } @@ -352,8 +352,8 @@ func (repo *ProjectRepo) RemoveApplication(ctx context.Context, projectID, appID func (repo *ProjectRepo) SearchApplications(ctx context.Context, request *proj_model.ApplicationSearchRequest) (*proj_model.ApplicationSearchResponse, error) { request.EnsureLimit(repo.SearchLimit) - sequence, err := repo.View.GetLatestApplicationSequence() - logging.Log("EVENT-SKe8s").OnError(err).Warn("could not read latest application sequence") + sequence, sequenceErr := repo.View.GetLatestApplicationSequence() + logging.Log("EVENT-SKe8s").OnError(sequenceErr).Warn("could not read latest application sequence") apps, count, err := repo.View.SearchApplications(request) if err != nil { return nil, err @@ -361,10 +361,10 @@ func (repo *ProjectRepo) SearchApplications(ctx context.Context, request *proj_m result := &proj_model.ApplicationSearchResponse{ Offset: request.Offset, Limit: request.Limit, - TotalResult: uint64(count), + TotalResult: count, Result: model.ApplicationViewsToModel(apps), } - if err == nil { + if sequenceErr == nil { result.Sequence = sequence.CurrentSequence result.Timestamp = sequence.CurrentTimestamp } @@ -404,8 +404,8 @@ func (repo *ProjectRepo) ProjectGrantByID(ctx context.Context, grantID string) ( func (repo *ProjectRepo) SearchProjectGrants(ctx context.Context, request *proj_model.ProjectGrantViewSearchRequest) (*proj_model.ProjectGrantViewSearchResponse, error) { request.EnsureLimit(repo.SearchLimit) - sequence, err := repo.View.GetLatestProjectGrantSequence() - logging.Log("EVENT-Skw9f").OnError(err).Warn("could not read latest project grant sequence") + sequence, sequenceErr := repo.View.GetLatestProjectGrantSequence() + logging.Log("EVENT-Skw9f").OnError(sequenceErr).Warn("could not read latest project grant sequence") projects, count, err := repo.View.SearchProjectGrants(request) if err != nil { return nil, err @@ -413,10 +413,10 @@ func (repo *ProjectRepo) SearchProjectGrants(ctx context.Context, request *proj_ result := &proj_model.ProjectGrantViewSearchResponse{ Offset: request.Offset, Limit: request.Limit, - TotalResult: uint64(count), + TotalResult: count, Result: model.ProjectGrantsToModel(projects), } - if err == nil { + if sequenceErr == nil { result.Sequence = sequence.CurrentSequence result.Timestamp = sequence.CurrentTimestamp } @@ -425,8 +425,8 @@ func (repo *ProjectRepo) SearchProjectGrants(ctx context.Context, request *proj_ func (repo *ProjectRepo) SearchGrantedProjects(ctx context.Context, request *proj_model.ProjectGrantViewSearchRequest) (*proj_model.ProjectGrantViewSearchResponse, error) { request.EnsureLimit(repo.SearchLimit) - sequence, err := repo.View.GetLatestProjectGrantSequence() - logging.Log("EVENT-Skw9f").OnError(err).Warn("could not read latest project grant sequence") + sequence, sequenceErr := repo.View.GetLatestProjectGrantSequence() + logging.Log("EVENT-Skw9f").OnError(sequenceErr).Warn("could not read latest project grant sequence") permissions := authz.GetRequestPermissionsFromCtx(ctx) if !authz.HasGlobalPermission(permissions) { @@ -446,7 +446,7 @@ func (repo *ProjectRepo) SearchGrantedProjects(ctx context.Context, request *pro TotalResult: uint64(0), Result: []*proj_model.ProjectGrantView{}, } - if err == nil { + if sequenceErr == nil { result.Sequence = sequence.CurrentSequence result.Timestamp = sequence.CurrentTimestamp } @@ -464,10 +464,10 @@ func (repo *ProjectRepo) SearchGrantedProjects(ctx context.Context, request *pro result := &proj_model.ProjectGrantViewSearchResponse{ Offset: request.Offset, Limit: request.Limit, - TotalResult: uint64(count), + TotalResult: count, Result: model.ProjectGrantsToModel(projects), } - if err == nil { + if sequenceErr == nil { result.Sequence = sequence.CurrentSequence result.Timestamp = sequence.CurrentTimestamp } @@ -593,8 +593,8 @@ func (repo *ProjectRepo) RemoveProjectGrantMember(ctx context.Context, projectID func (repo *ProjectRepo) SearchProjectGrantMembers(ctx context.Context, request *proj_model.ProjectGrantMemberSearchRequest) (*proj_model.ProjectGrantMemberSearchResponse, error) { request.EnsureLimit(repo.SearchLimit) - sequence, err := repo.View.GetLatestProjectGrantMemberSequence() - logging.Log("EVENT-Du8sk").OnError(err).Warn("could not read latest project grant sequence") + sequence, sequenceErr := repo.View.GetLatestProjectGrantMemberSequence() + logging.Log("EVENT-Du8sk").OnError(sequenceErr).Warn("could not read latest project grant sequence") members, count, err := repo.View.SearchProjectGrantMembers(request) if err != nil { return nil, err @@ -605,7 +605,7 @@ func (repo *ProjectRepo) SearchProjectGrantMembers(ctx context.Context, request TotalResult: uint64(count), Result: model.ProjectGrantMembersToModel(members), } - if err == nil { + if sequenceErr == nil { result.Sequence = sequence.CurrentSequence result.Timestamp = sequence.CurrentTimestamp } diff --git a/internal/management/repository/eventsourcing/eventstore/user.go b/internal/management/repository/eventsourcing/eventstore/user.go index 765444888..b774ba63f 100644 --- a/internal/management/repository/eventsourcing/eventstore/user.go +++ b/internal/management/repository/eventsourcing/eventstore/user.go @@ -57,7 +57,7 @@ func (repo *UserRepo) CreateUser(ctx context.Context, user *usr_model.User) (*us if err != nil { return nil, err } - orgPolicy, err := repo.OrgEvents.GetOrgIamPolicy(ctx, authz.GetCtxData(ctx).OrgID) + orgPolicy, err := repo.OrgEvents.GetOrgIAMPolicy(ctx, authz.GetCtxData(ctx).OrgID) if err != nil { return nil, err } @@ -73,7 +73,7 @@ func (repo *UserRepo) RegisterUser(ctx context.Context, user *usr_model.User, re if err != nil { return nil, err } - orgPolicy, err := repo.OrgEvents.GetOrgIamPolicy(ctx, authz.GetCtxData(ctx).OrgID) + orgPolicy, err := repo.OrgEvents.GetOrgIAMPolicy(ctx, authz.GetCtxData(ctx).OrgID) if err != nil { return nil, err } @@ -98,8 +98,8 @@ func (repo *UserRepo) UnlockUser(ctx context.Context, id string) (*usr_model.Use func (repo *UserRepo) SearchUsers(ctx context.Context, request *usr_model.UserSearchRequest) (*usr_model.UserSearchResponse, error) { request.EnsureLimit(repo.SearchLimit) - sequence, err := repo.View.GetLatestUserSequence() - logging.Log("EVENT-Lcn7d").OnError(err).Warn("could not read latest user sequence") + sequence, sequenceErr := repo.View.GetLatestUserSequence() + logging.Log("EVENT-Lcn7d").OnError(sequenceErr).Warn("could not read latest user sequence") users, count, err := repo.View.SearchUsers(request) if err != nil { return nil, err @@ -110,7 +110,7 @@ func (repo *UserRepo) SearchUsers(ctx context.Context, request *usr_model.UserSe TotalResult: uint64(count), Result: model.UsersToModel(users), } - if err == nil { + if sequenceErr == nil { result.Sequence = sequence.CurrentSequence result.Timestamp = sequence.CurrentTimestamp } @@ -222,9 +222,8 @@ func (repo *UserRepo) ChangeAddress(ctx context.Context, address *usr_model.Addr func (repo *UserRepo) SearchUserMemberships(ctx context.Context, request *usr_model.UserMembershipSearchRequest) (*usr_model.UserMembershipSearchResponse, error) { request.EnsureLimit(repo.SearchLimit) - request.AppendResourceOwnerAndIamQuery(authz.GetCtxData(ctx).OrgID, repo.SystemDefaults.IamID) - sequence, err := repo.View.GetLatestUserMembershipSequence() - logging.Log("EVENT-Dn7sf").OnError(err).Warn("could not read latest user sequence") + sequence, sequenceErr := repo.View.GetLatestUserMembershipSequence() + logging.Log("EVENT-Dn7sf").OnError(sequenceErr).Warn("could not read latest user sequence") result := handleSearchUserMembershipsPermissions(ctx, request, sequence) if result != nil { @@ -241,7 +240,7 @@ func (repo *UserRepo) SearchUserMemberships(ctx context.Context, request *usr_mo TotalResult: count, Result: model.UserMembershipsToModel(memberships), } - if err == nil { + if sequenceErr == nil { result.Sequence = sequence.CurrentSequence result.Timestamp = sequence.CurrentTimestamp } diff --git a/internal/management/repository/eventsourcing/eventstore/user_grant.go b/internal/management/repository/eventsourcing/eventstore/user_grant.go index a6ef7c23a..09af7e177 100644 --- a/internal/management/repository/eventsourcing/eventstore/user_grant.go +++ b/internal/management/repository/eventsourcing/eventstore/user_grant.go @@ -115,8 +115,8 @@ func (repo *UserGrantRepo) BulkRemoveUserGrant(ctx context.Context, grantIDs ... func (repo *UserGrantRepo) SearchUserGrants(ctx context.Context, request *grant_model.UserGrantSearchRequest) (*grant_model.UserGrantSearchResponse, error) { request.EnsureLimit(repo.SearchLimit) - sequence, err := repo.View.GetLatestUserGrantSequence() - logging.Log("EVENT-5Viwf").OnError(err).Warn("could not read latest user grant sequence") + sequence, sequenceErr := repo.View.GetLatestUserGrantSequence() + logging.Log("EVENT-5Viwf").OnError(sequenceErr).Warn("could not read latest user grant sequence") result := handleSearchUserGrantPermissions(ctx, request, sequence) if result != nil { @@ -134,7 +134,7 @@ func (repo *UserGrantRepo) SearchUserGrants(ctx context.Context, request *grant_ TotalResult: uint64(count), Result: model.UserGrantsToModel(grants), } - if err == nil { + if sequenceErr == nil { result.Sequence = sequence.CurrentSequence result.Timestamp = sequence.CurrentTimestamp } diff --git a/internal/management/repository/eventsourcing/handler/handler.go b/internal/management/repository/eventsourcing/handler/handler.go index 5d93bd5e7..c86a7dfd9 100644 --- a/internal/management/repository/eventsourcing/handler/handler.go +++ b/internal/management/repository/eventsourcing/handler/handler.go @@ -1,6 +1,8 @@ package handler import ( + "github.com/caos/zitadel/internal/config/systemdefaults" + iam_event "github.com/caos/zitadel/internal/iam/repository/eventsourcing" "time" "github.com/caos/zitadel/internal/config/types" @@ -29,9 +31,10 @@ type EventstoreRepos struct { ProjectEvents *proj_event.ProjectEventstore UserEvents *usr_event.UserEventstore OrgEvents *org_event.OrgEventstore + IamEvents *iam_event.IAMEventstore } -func Register(configs Configs, bulkLimit, errorCount uint64, view *view.View, eventstore eventstore.Eventstore, repos EventstoreRepos) []query.Handler { +func Register(configs Configs, bulkLimit, errorCount uint64, view *view.View, eventstore eventstore.Eventstore, repos EventstoreRepos, defaults systemdefaults.SystemDefaults) []query.Handler { return []query.Handler{ &Project{handler: handler{view, bulkLimit, configs.cycleDuration("Project"), errorCount}, eventstore: eventstore}, &ProjectGrant{handler: handler{view, bulkLimit, configs.cycleDuration("ProjectGrant"), errorCount}, eventstore: eventstore, projectEvents: repos.ProjectEvents, orgEvents: repos.OrgEvents}, @@ -45,6 +48,9 @@ func Register(configs Configs, bulkLimit, errorCount uint64, view *view.View, ev &OrgMember{handler: handler{view, bulkLimit, configs.cycleDuration("OrgMember"), errorCount}, userEvents: repos.UserEvents}, &OrgDomain{handler: handler{view, bulkLimit, configs.cycleDuration("OrgDomain"), errorCount}}, &UserMembership{handler: handler{view, bulkLimit, configs.cycleDuration("UserMembership"), errorCount}, orgEvents: repos.OrgEvents, projectEvents: repos.ProjectEvents}, + &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}, } } diff --git a/internal/management/repository/eventsourcing/handler/idp_config.go b/internal/management/repository/eventsourcing/handler/idp_config.go new file mode 100644 index 000000000..7ce0e6c48 --- /dev/null +++ b/internal/management/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 = "management.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-Nxu8s", "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/management/repository/eventsourcing/handler/idp_providers.go b/internal/management/repository/eventsourcing/handler/idp_providers.go new file mode 100644 index 000000000..69450d2a3 --- /dev/null +++ b/internal/management/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 = "management.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(event.AggregateID, 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-Msj8c", "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/management/repository/eventsourcing/handler/login_policy.go b/internal/management/repository/eventsourcing/handler/login_policy.go new file mode 100644 index 000000000..6a2ae339e --- /dev/null +++ b/internal/management/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 = "management.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-4Djo9", "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/management/repository/eventsourcing/handler/user.go b/internal/management/repository/eventsourcing/handler/user.go index 37c065ba0..82a07598a 100644 --- a/internal/management/repository/eventsourcing/handler/user.go +++ b/internal/management/repository/eventsourcing/handler/user.go @@ -105,9 +105,9 @@ func (u *User) ProcessOrg(event *models.Event) (err error) { switch event.Type { case org_es_model.OrgDomainVerified, org_es_model.OrgDomainRemoved, - org_es_model.OrgIamPolicyAdded, - org_es_model.OrgIamPolicyChanged, - org_es_model.OrgIamPolicyRemoved: + org_es_model.OrgIAMPolicyAdded, + org_es_model.OrgIAMPolicyChanged, + org_es_model.OrgIAMPolicyRemoved: return u.fillLoginNamesOnOrgUsers(event) case org_es_model.OrgDomainPrimarySet: return u.fillPreferredLoginNamesOnOrgUsers(event) @@ -121,7 +121,7 @@ func (u *User) fillLoginNamesOnOrgUsers(event *models.Event) error { if err != nil { return err } - policy, err := u.orgEvents.GetOrgIamPolicy(context.Background(), event.ResourceOwner) + policy, err := u.orgEvents.GetOrgIAMPolicy(context.Background(), event.ResourceOwner) if err != nil { return err } @@ -140,7 +140,7 @@ func (u *User) fillPreferredLoginNamesOnOrgUsers(event *models.Event) error { if err != nil { return err } - policy, err := u.orgEvents.GetOrgIamPolicy(context.Background(), event.ResourceOwner) + policy, err := u.orgEvents.GetOrgIAMPolicy(context.Background(), event.ResourceOwner) if err != nil { return err } @@ -162,7 +162,7 @@ func (u *User) fillLoginNames(user *view_model.UserView) (err error) { if err != nil { return err } - policy, err := u.orgEvents.GetOrgIamPolicy(context.Background(), user.ResourceOwner) + policy, err := u.orgEvents.GetOrgIAMPolicy(context.Background(), user.ResourceOwner) if err != nil { return err } diff --git a/internal/management/repository/eventsourcing/handler/user_membership.go b/internal/management/repository/eventsourcing/handler/user_membership.go index dcb127197..7b3e240e1 100644 --- a/internal/management/repository/eventsourcing/handler/user_membership.go +++ b/internal/management/repository/eventsourcing/handler/user_membership.go @@ -38,13 +38,13 @@ func (m *UserMembership) EventQuery() (*models.SearchQuery, error) { return nil, err } return es_models.NewSearchQuery(). - AggregateTypeFilter(iam_es_model.IamAggregate, org_es_model.OrgAggregate, proj_es_model.ProjectAggregate). + AggregateTypeFilter(iam_es_model.IAMAggregate, org_es_model.OrgAggregate, proj_es_model.ProjectAggregate). LatestSequenceFilter(sequence.CurrentSequence), nil } func (m *UserMembership) Reduce(event *models.Event) (err error) { switch event.AggregateType { - case iam_es_model.IamAggregate: + case iam_es_model.IAMAggregate: err = m.processIam(event) case org_es_model.OrgAggregate: err = m.processOrg(event) @@ -61,15 +61,15 @@ func (m *UserMembership) processIam(event *models.Event) (err error) { return err } switch event.Type { - case iam_es_model.IamMemberAdded: + case iam_es_model.IAMMemberAdded: m.fillIamDisplayName(member) - case iam_es_model.IamMemberChanged: + case iam_es_model.IAMMemberChanged: member, err = m.view.UserMembershipByIDs(member.UserID, event.AggregateID, event.AggregateID, usr_model.MemberTypeIam) if err != nil { return err } err = member.AppendEvent(event) - case iam_es_model.IamMemberRemoved: + case iam_es_model.IAMMemberRemoved: return m.view.DeleteUserMembership(member.UserID, event.AggregateID, event.AggregateID, usr_model.MemberTypeIam, event.Sequence) default: return m.view.ProcessedUserMembershipSequence(event.Sequence) diff --git a/internal/management/repository/eventsourcing/repository.go b/internal/management/repository/eventsourcing/repository.go index 36a8fe05d..98b785c91 100644 --- a/internal/management/repository/eventsourcing/repository.go +++ b/internal/management/repository/eventsourcing/repository.go @@ -35,7 +35,7 @@ type EsRepository struct { eventstore.UserRepo eventstore.UserGrantRepo eventstore.PolicyRepo - eventstore.IamRepository + eventstore.IAMRepository } func Start(conf Config, systemDefaults sd.SystemDefaults, roles []string) (*EsRepository, error) { @@ -83,24 +83,24 @@ func Start(conf Config, systemDefaults sd.SystemDefaults, roles []string) (*EsRe } org := es_org.StartOrg(es_org.OrgConfig{Eventstore: es, IAMDomain: conf.Domain}, systemDefaults) - iam, err := es_iam.StartIam(es_iam.IamConfig{ + iam, err := es_iam.StartIAM(es_iam.IAMConfig{ Eventstore: es, Cache: conf.Eventstore.Cache, }, systemDefaults) if err != nil { return nil, err } - eventstoreRepos := handler.EventstoreRepos{ProjectEvents: project, UserEvents: user, OrgEvents: org} - spool := spooler.StartSpooler(conf.Spooler, es, view, sqlClient, eventstoreRepos) + eventstoreRepos := handler.EventstoreRepos{ProjectEvents: project, UserEvents: user, OrgEvents: org, IamEvents: iam} + spool := spooler.StartSpooler(conf.Spooler, es, view, sqlClient, eventstoreRepos, systemDefaults) return &EsRepository{ spooler: spool, - OrgRepository: eventstore.OrgRepository{conf.SearchLimit, org, user, view, roles}, + OrgRepository: eventstore.OrgRepository{conf.SearchLimit, org, user, view, roles, systemDefaults}, ProjectRepo: eventstore.ProjectRepo{es, conf.SearchLimit, project, usergrant, user, view, roles}, UserRepo: eventstore.UserRepo{conf.SearchLimit, user, policy, org, view, systemDefaults}, UserGrantRepo: eventstore.UserGrantRepo{conf.SearchLimit, usergrant, view}, PolicyRepo: eventstore.PolicyRepo{policy}, - IamRepository: eventstore.IamRepository{iam}, + IAMRepository: eventstore.IAMRepository{iam}, }, nil } diff --git a/internal/management/repository/eventsourcing/spooler/spooler.go b/internal/management/repository/eventsourcing/spooler/spooler.go index d4d6241aa..1ffb12538 100644 --- a/internal/management/repository/eventsourcing/spooler/spooler.go +++ b/internal/management/repository/eventsourcing/spooler/spooler.go @@ -2,6 +2,7 @@ package spooler import ( "database/sql" + "github.com/caos/zitadel/internal/config/systemdefaults" "github.com/caos/zitadel/internal/eventstore" "github.com/caos/zitadel/internal/eventstore/spooler" @@ -16,12 +17,12 @@ type SpoolerConfig struct { Handlers handler.Configs } -func StartSpooler(c SpoolerConfig, es eventstore.Eventstore, view *view.View, sql *sql.DB, eventstoreRepos handler.EventstoreRepos) *spooler.Spooler { +func StartSpooler(c SpoolerConfig, es eventstore.Eventstore, view *view.View, sql *sql.DB, eventstoreRepos handler.EventstoreRepos, defaults systemdefaults.SystemDefaults) *spooler.Spooler { spoolerConfig := spooler.Config{ Eventstore: es, Locker: &locker{dbClient: sql}, ConcurrentWorkers: c.ConcurrentWorkers, - ViewHandlers: handler.Register(c.Handlers, c.BulkLimit, c.FailureCountUntilSkip, view, es, eventstoreRepos), + ViewHandlers: handler.Register(c.Handlers, c.BulkLimit, c.FailureCountUntilSkip, view, es, eventstoreRepos, defaults), } spool := spoolerConfig.New() spool.Start() diff --git a/internal/management/repository/eventsourcing/view/idp_configs.go b/internal/management/repository/eventsourcing/view/idp_configs.go new file mode 100644 index 000000000..6a53e228d --- /dev/null +++ b/internal/management/repository/eventsourcing/view/idp_configs.go @@ -0,0 +1,53 @@ +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 = "management.idp_configs" +) + +func (v *View) IDPConfigByID(idpID string) (*iam_es_model.IDPConfigView, error) { + return view.IDPByID(v.Db, idpConfigTable, idpID) +} + +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/management/repository/eventsourcing/view/idp_providers.go b/internal/management/repository/eventsourcing/view/idp_providers.go new file mode 100644 index 000000000..def9aa78c --- /dev/null +++ b/internal/management/repository/eventsourcing/view/idp_providers.go @@ -0,0 +1,73 @@ +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 = "management.idp_providers" +) + +func (v *View) IdpProviderByAggregateAndIdpConfigID(aggregateID, idpConfigID string) (*model.IDPProviderView, error) { + return view.GetIDPProviderByAggregateIDAndConfigID(v.Db, idpProviderTable, aggregateID, idpConfigID) +} + +func (v *View) IdpProvidersByIdpConfigID(aggregateID, idpConfigID string) ([]*model.IDPProviderView, error) { + return view.IDPProvidersByIdpConfigID(v.Db, idpProviderTable, idpConfigID) +} + +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/management/repository/eventsourcing/view/login_policies.go b/internal/management/repository/eventsourcing/view/login_policies.go new file mode 100644 index 000000000..741dbc932 --- /dev/null +++ b/internal/management/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 = "management.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/management/repository/iam.go b/internal/management/repository/iam.go index 2032c7efe..184657520 100644 --- a/internal/management/repository/iam.go +++ b/internal/management/repository/iam.go @@ -6,5 +6,5 @@ import ( ) type IamRepository interface { - IamByID(ctx context.Context, id string) (*iam_model.Iam, error) + IAMByID(ctx context.Context, id string) (*iam_model.IAM, error) } diff --git a/internal/management/repository/org.go b/internal/management/repository/org.go index fff9c6475..e8e8820a7 100644 --- a/internal/management/repository/org.go +++ b/internal/management/repository/org.go @@ -2,6 +2,7 @@ package repository import ( "context" + iam_model "github.com/caos/zitadel/internal/iam/model" org_model "github.com/caos/zitadel/internal/org/model" ) @@ -29,5 +30,22 @@ type OrgRepository interface { GetOrgMemberRoles() []string - GetMyOrgIamPolicy(ctx context.Context) (*org_model.OrgIamPolicy, error) + GetMyOrgIamPolicy(ctx context.Context) (*org_model.OrgIAMPolicy, error) + + SearchIDPConfigs(ctx context.Context, request *iam_model.IDPConfigSearchRequest) (*iam_model.IDPConfigSearchResponse, error) + IDPConfigByID(ctx context.Context, id string) (*iam_model.IDPConfigView, error) + AddOIDCIDPConfig(ctx context.Context, idp *iam_model.IDPConfig) (*iam_model.IDPConfig, error) + ChangeIDPConfig(ctx context.Context, idp *iam_model.IDPConfig) (*iam_model.IDPConfig, error) + DeactivateIDPConfig(ctx context.Context, idpConfigID string) (*iam_model.IDPConfig, error) + ReactivateIDPConfig(ctx context.Context, idpConfigID string) (*iam_model.IDPConfig, error) + RemoveIDPConfig(ctx context.Context, idpConfigID string) error + ChangeOIDCIDPConfig(ctx context.Context, oidcConfig *iam_model.OIDCIDPConfig) (*iam_model.OIDCIDPConfig, error) + + GetLoginPolicy(ctx context.Context) (*iam_model.LoginPolicyView, error) + AddLoginPolicy(ctx context.Context, policy *iam_model.LoginPolicy) (*iam_model.LoginPolicy, error) + ChangeLoginPolicy(ctx context.Context, policy *iam_model.LoginPolicy) (*iam_model.LoginPolicy, error) + RemoveLoginPolicy(ctx context.Context) error + SearchIDPProviders(ctx context.Context, request *iam_model.IDPProviderSearchRequest) (*iam_model.IDPProviderSearchResponse, error) + AddIDPProviderToLoginPolicy(ctx context.Context, provider *iam_model.IDPProvider) (*iam_model.IDPProvider, error) + RemoveIDPProviderFromLoginPolicy(ctx context.Context, provider *iam_model.IDPProvider) error } diff --git a/internal/notification/repository/eventsourcing/handler/notify_user.go b/internal/notification/repository/eventsourcing/handler/notify_user.go index 6053d0d82..1f10a730d 100644 --- a/internal/notification/repository/eventsourcing/handler/notify_user.go +++ b/internal/notification/repository/eventsourcing/handler/notify_user.go @@ -84,9 +84,9 @@ func (u *NotifyUser) ProcessOrg(event *models.Event) (err error) { switch event.Type { case org_es_model.OrgDomainVerified, org_es_model.OrgDomainRemoved, - org_es_model.OrgIamPolicyAdded, - org_es_model.OrgIamPolicyChanged, - org_es_model.OrgIamPolicyRemoved: + org_es_model.OrgIAMPolicyAdded, + org_es_model.OrgIAMPolicyChanged, + org_es_model.OrgIAMPolicyRemoved: return u.fillLoginNamesOnOrgUsers(event) case org_es_model.OrgDomainPrimarySet: return u.fillPreferredLoginNamesOnOrgUsers(event) @@ -104,7 +104,7 @@ func (u *NotifyUser) fillLoginNamesOnOrgUsers(event *models.Event) error { if err != nil { return err } - policy, err := u.orgEvents.GetOrgIamPolicy(context.Background(), event.ResourceOwner) + policy, err := u.orgEvents.GetOrgIAMPolicy(context.Background(), event.ResourceOwner) if err != nil { return err } @@ -127,7 +127,7 @@ func (u *NotifyUser) fillPreferredLoginNamesOnOrgUsers(event *models.Event) erro if err != nil { return err } - policy, err := u.orgEvents.GetOrgIamPolicy(context.Background(), event.ResourceOwner) + policy, err := u.orgEvents.GetOrgIAMPolicy(context.Background(), event.ResourceOwner) if err != nil { return err } @@ -153,7 +153,7 @@ func (u *NotifyUser) fillLoginNames(user *view_model.NotifyUser) (err error) { if err != nil { return err } - policy, err := u.orgEvents.GetOrgIamPolicy(context.Background(), user.ResourceOwner) + policy, err := u.orgEvents.GetOrgIAMPolicy(context.Background(), user.ResourceOwner) if err != nil { return err } diff --git a/internal/org/model/org.go b/internal/org/model/org.go index c38d25859..83f3de800 100644 --- a/internal/org/model/org.go +++ b/internal/org/model/org.go @@ -2,6 +2,7 @@ package model import ( es_models "github.com/caos/zitadel/internal/eventstore/models" + iam_model "github.com/caos/zitadel/internal/iam/model" "github.com/golang/protobuf/ptypes/timestamp" "strings" ) @@ -14,7 +15,10 @@ type Org struct { Domains []*OrgDomain Members []*OrgMember - OrgIamPolicy *OrgIamPolicy + OrgIamPolicy *OrgIAMPolicy + LoginPolicy *iam_model.LoginPolicy + + IDPs []*iam_model.IDPConfig } type OrgChanges struct { Changes []*OrgChange @@ -58,6 +62,15 @@ func (o *Org) GetDomain(domain *OrgDomain) (int, *OrgDomain) { return -1, nil } +func (o *Org) GetIDP(idpID string) (int, *iam_model.IDPConfig) { + for i, idp := range o.IDPs { + if idp.IDPConfigID == idpID { + return i, idp + } + } + return -1, nil +} + func (o *Org) GetPrimaryDomain() *OrgDomain { for _, d := range o.Domains { if d.Primary { diff --git a/internal/org/model/org_iam_policy.go b/internal/org/model/org_iam_policy.go index fc060fc89..20ee51f95 100644 --- a/internal/org/model/org_iam_policy.go +++ b/internal/org/model/org_iam_policy.go @@ -4,7 +4,7 @@ import ( "github.com/caos/zitadel/internal/eventstore/models" ) -type OrgIamPolicy struct { +type OrgIAMPolicy struct { models.ObjectRoot Description string diff --git a/internal/org/repository/eventsourcing/eventstore.go b/internal/org/repository/eventsourcing/eventstore.go index 5464e3c7c..d02a286d3 100644 --- a/internal/org/repository/eventsourcing/eventstore.go +++ b/internal/org/repository/eventsourcing/eventstore.go @@ -3,6 +3,8 @@ package eventsourcing import ( "context" "encoding/json" + iam_model "github.com/caos/zitadel/internal/iam/model" + iam_es_model "github.com/caos/zitadel/internal/iam/repository/eventsourcing/model" "github.com/caos/logging" "github.com/golang/protobuf/ptypes" @@ -22,11 +24,13 @@ import ( type OrgEventstore struct { eventstore.Eventstore IAMDomain string + IamID string idGenerator id.Generator verificationAlgorithm crypto.EncryptionAlgorithm verificationGenerator crypto.Generator - defaultOrgIamPolicy *org_model.OrgIamPolicy + defaultOrgIamPolicy *org_model.OrgIAMPolicy verificationValidator func(domain string, token string, verifier string, checkType http_utils.CheckType) error + secretCrypto crypto.Crypto } type OrgConfig struct { @@ -42,6 +46,10 @@ func StartOrg(conf OrgConfig, defaults systemdefaults.SystemDefaults) *OrgEvents verificationAlg, err := crypto.NewAESCrypto(defaults.DomainVerification.VerificationKey) logging.Log("EVENT-aZ22d").OnError(err).Panic("cannot create verificationAlgorithm for domain verification") verificationGen := crypto.NewEncryptionGenerator(defaults.DomainVerification.VerificationGenerator, verificationAlg) + + aesCrypto, err := crypto.NewAESCrypto(defaults.IDPConfigVerificationKey) + logging.Log("EVENT-Sn8du").OnError(err).Panic("cannot create verificationAlgorithm for idp config verification") + return &OrgEventstore{ Eventstore: conf.Eventstore, idGenerator: id.SonyFlakeGenerator, @@ -49,7 +57,9 @@ func StartOrg(conf OrgConfig, defaults systemdefaults.SystemDefaults) *OrgEvents verificationGenerator: verificationGen, verificationValidator: http_utils.ValidateDomain, IAMDomain: conf.IAMDomain, + IamID: defaults.IamID, defaultOrgIamPolicy: &policy, + secretCrypto: aesCrypto, } } @@ -455,7 +465,7 @@ func (es *OrgEventstore) RemoveOrgMember(ctx context.Context, member *org_model. return es_sdk.Push(ctx, es.PushAggregates, repoMember.AppendEvents, orgAggregate) } -func (es *OrgEventstore) GetOrgIamPolicy(ctx context.Context, orgID string) (*org_model.OrgIamPolicy, error) { +func (es *OrgEventstore) GetOrgIAMPolicy(ctx context.Context, orgID string) (*org_model.OrgIAMPolicy, error) { existing, err := es.OrgByID(ctx, org_model.NewOrg(orgID)) if err != nil && !errors.IsNotFound(err) { return nil, err @@ -466,7 +476,7 @@ func (es *OrgEventstore) GetOrgIamPolicy(ctx context.Context, orgID string) (*or return es.defaultOrgIamPolicy, nil } -func (es *OrgEventstore) AddOrgIamPolicy(ctx context.Context, policy *org_model.OrgIamPolicy) (*org_model.OrgIamPolicy, error) { +func (es *OrgEventstore) AddOrgIAMPolicy(ctx context.Context, policy *org_model.OrgIAMPolicy) (*org_model.OrgIAMPolicy, error) { existing, err := es.OrgByID(ctx, org_model.NewOrg(policy.AggregateID)) if err != nil { return nil, err @@ -475,8 +485,8 @@ func (es *OrgEventstore) AddOrgIamPolicy(ctx context.Context, policy *org_model. return nil, errors.ThrowPreconditionFailed(nil, "EVENT-7Usj3", "Errors.Org.PolicyAlreadyExists") } repoOrg := model.OrgFromModel(existing) - repoPolicy := model.OrgIamPolicyFromModel(policy) - orgAggregate := OrgIamPolicyAddedAggregate(es.Eventstore.AggregateCreator(), repoOrg, repoPolicy) + repoPolicy := model.OrgIAMPolicyFromModel(policy) + orgAggregate := OrgIAMPolicyAddedAggregate(es.Eventstore.AggregateCreator(), repoOrg, repoPolicy) if err != nil { return nil, err } @@ -485,10 +495,10 @@ func (es *OrgEventstore) AddOrgIamPolicy(ctx context.Context, policy *org_model. return nil, err } - return model.OrgIamPolicyToModel(repoOrg.OrgIamPolicy), nil + return model.OrgIAMPolicyToModel(repoOrg.OrgIamPolicy), nil } -func (es *OrgEventstore) ChangeOrgIamPolicy(ctx context.Context, policy *org_model.OrgIamPolicy) (*org_model.OrgIamPolicy, error) { +func (es *OrgEventstore) ChangeOrgIAMPolicy(ctx context.Context, policy *org_model.OrgIAMPolicy) (*org_model.OrgIAMPolicy, error) { existing, err := es.OrgByID(ctx, org_model.NewOrg(policy.AggregateID)) if err != nil { return nil, err @@ -497,8 +507,8 @@ func (es *OrgEventstore) ChangeOrgIamPolicy(ctx context.Context, policy *org_mod return nil, errors.ThrowPreconditionFailed(nil, "EVENT-8juSd", "Errors.Org.PolicyNotExisting") } repoOrg := model.OrgFromModel(existing) - repoPolicy := model.OrgIamPolicyFromModel(policy) - orgAggregate := OrgIamPolicyChangedAggregate(es.Eventstore.AggregateCreator(), repoOrg, repoPolicy) + repoPolicy := model.OrgIAMPolicyFromModel(policy) + orgAggregate := OrgIAMPolicyChangedAggregate(es.Eventstore.AggregateCreator(), repoOrg, repoPolicy) if err != nil { return nil, err } @@ -507,10 +517,10 @@ func (es *OrgEventstore) ChangeOrgIamPolicy(ctx context.Context, policy *org_mod return nil, err } - return model.OrgIamPolicyToModel(repoOrg.OrgIamPolicy), nil + return model.OrgIAMPolicyToModel(repoOrg.OrgIamPolicy), nil } -func (es *OrgEventstore) RemoveOrgIamPolicy(ctx context.Context, orgID string) error { +func (es *OrgEventstore) RemoveOrgIAMPolicy(ctx context.Context, orgID string) error { existing, err := es.OrgByID(ctx, org_model.NewOrg(orgID)) if err != nil { return err @@ -525,3 +535,299 @@ func (es *OrgEventstore) RemoveOrgIamPolicy(ctx context.Context, orgID string) e } return es_sdk.Push(ctx, es.PushAggregates, repoOrg.AppendEvents, orgAggregate) } + +func (es *OrgEventstore) AddIDPConfig(ctx context.Context, idp *iam_model.IDPConfig) (*iam_model.IDPConfig, error) { + if idp == nil || !idp.IsValid(true) { + return nil, errors.ThrowPreconditionFailed(nil, "EVENT-Ms89d", "Errors.Org.IdpInvalid") + } + existing, err := es.OrgByID(ctx, org_model.NewOrg(idp.AggregateID)) + if err != nil { + return nil, err + } + id, err := es.idGenerator.Next() + if err != nil { + return nil, err + } + idp.IDPConfigID = id + + if idp.OIDCConfig != nil { + idp.OIDCConfig.IDPConfigID = id + err = idp.OIDCConfig.CryptSecret(es.secretCrypto) + } + repoOrg := model.OrgFromModel(existing) + repoIdp := iam_es_model.IDPConfigFromModel(idp) + + addAggregate := IDPConfigAddedAggregate(es.Eventstore.AggregateCreator(), repoOrg, repoIdp) + err = es_sdk.Push(ctx, es.PushAggregates, repoOrg.AppendEvents, addAggregate) + if err != nil { + return nil, err + } + if _, idpConfig := iam_es_model.GetIDPConfig(repoOrg.IDPs, idp.IDPConfigID); idpConfig != nil { + return iam_es_model.IDPConfigToModel(idpConfig), nil + } + return nil, errors.ThrowInternal(nil, "EVENT-Cmsj8d", "Errors.Internal") +} + +func (es *OrgEventstore) ChangeIDPConfig(ctx context.Context, idp *iam_model.IDPConfig) (*iam_model.IDPConfig, error) { + if idp == nil || !idp.IsValid(false) { + return nil, errors.ThrowPreconditionFailed(nil, "EVENT-Mslo9", "Errors.Org.IdpInvalid") + } + existing, err := es.OrgByID(ctx, org_model.NewOrg(idp.AggregateID)) + if err != nil { + return nil, err + } + if _, i := existing.GetIDP(idp.IDPConfigID); i == nil { + return nil, errors.ThrowPreconditionFailed(nil, "EVENT-Aji8e", "Errors.Org.IdpNotExisting") + } + repoOrg := model.OrgFromModel(existing) + repoIdp := iam_es_model.IDPConfigFromModel(idp) + + iamAggregate := IDPConfigChangedAggregate(es.Eventstore.AggregateCreator(), repoOrg, repoIdp) + err = es_sdk.Push(ctx, es.PushAggregates, repoOrg.AppendEvents, iamAggregate) + if err != nil { + return nil, err + } + if _, idpConfig := iam_es_model.GetIDPConfig(repoOrg.IDPs, idp.IDPConfigID); idpConfig != nil { + return iam_es_model.IDPConfigToModel(idpConfig), nil + } + return nil, errors.ThrowInternal(nil, "EVENT-Ml9xs", "Errors.Internal") +} + +func (es *OrgEventstore) PrepareRemoveIDPConfig(ctx context.Context, idp *iam_model.IDPConfig) (*model.Org, *es_models.Aggregate, error) { + if idp.IDPConfigID == "" { + return nil, nil, errors.ThrowPreconditionFailed(nil, "EVENT-Wz7sD", "Errors.Org.IDMissing") + } + existing, err := es.OrgByID(ctx, org_model.NewOrg(idp.AggregateID)) + if err != nil { + return nil, nil, err + } + if _, i := existing.GetIDP(idp.IDPConfigID); i == nil { + return nil, nil, errors.ThrowPreconditionFailed(nil, "EVENT-Smiu8", "Errors.Org.IdpNotExisting") + } + repoOrg := model.OrgFromModel(existing) + repoIdp := iam_es_model.IDPConfigFromModel(idp) + provider := new(iam_es_model.IDPProvider) + if repoOrg.LoginPolicy != nil { + _, provider = iam_es_model.GetIDPProvider(repoOrg.LoginPolicy.IDPProviders, idp.IDPConfigID) + } + agg, err := IDPConfigRemovedAggregate(ctx, es.Eventstore.AggregateCreator(), repoOrg, repoIdp, provider) + if err != nil { + return nil, nil, err + } + return repoOrg, agg, nil +} + +func (es *OrgEventstore) RemoveIDPConfig(ctx context.Context, idp *iam_model.IDPConfig) error { + repoOrg, agg, err := es.PrepareRemoveIDPConfig(ctx, idp) + if err != nil { + return err + } + return es_sdk.PushAggregates(ctx, es.PushAggregates, repoOrg.AppendEvents, agg) +} + +func (es *OrgEventstore) DeactivateIDPConfig(ctx context.Context, orgID, idpID string) (*iam_model.IDPConfig, error) { + if idpID == "" { + return nil, errors.ThrowPreconditionFailed(nil, "EVENT-Smk8d", "Errors.Org.IDMissing") + } + existing, err := es.OrgByID(ctx, org_model.NewOrg(orgID)) + if err != nil { + return nil, err + } + idp := &iam_model.IDPConfig{IDPConfigID: idpID} + if _, app := existing.GetIDP(idp.IDPConfigID); app == nil { + return nil, errors.ThrowPreconditionFailed(nil, "EVENT-Amk8d", "Errors.Org.IdpNotExisting") + } + repoOrg := model.OrgFromModel(existing) + repoIdp := iam_es_model.IDPConfigFromModel(idp) + + iamAggregate := IDPConfigDeactivatedAggregate(es.Eventstore.AggregateCreator(), repoOrg, repoIdp) + err = es_sdk.Push(ctx, es.PushAggregates, repoOrg.AppendEvents, iamAggregate) + if err != nil { + return nil, err + } + if _, idpConfig := iam_es_model.GetIDPConfig(repoOrg.IDPs, idp.IDPConfigID); idpConfig != nil { + return iam_es_model.IDPConfigToModel(idpConfig), nil + } + return nil, errors.ThrowInternal(nil, "EVENT-Amk9c", "Errors.Internal") +} + +func (es *OrgEventstore) ReactivateIDPConfig(ctx context.Context, orgID, idpID string) (*iam_model.IDPConfig, error) { + if idpID == "" { + return nil, errors.ThrowPreconditionFailed(nil, "EVENT-Xm8df", "Errors.Org.IDMissing") + } + existing, err := es.OrgByID(ctx, org_model.NewOrg(orgID)) + if err != nil { + return nil, err + } + idp := &iam_model.IDPConfig{IDPConfigID: idpID} + if _, i := existing.GetIDP(idp.IDPConfigID); i == nil { + return nil, errors.ThrowPreconditionFailed(nil, "EVENT-Qls0f", "Errors.Org.IdpNotExisting") + } + repoOrg := model.OrgFromModel(existing) + repoIdp := iam_es_model.IDPConfigFromModel(idp) + + iamAggregate := IDPConfigReactivatedAggregate(es.Eventstore.AggregateCreator(), repoOrg, repoIdp) + err = es_sdk.Push(ctx, es.PushAggregates, repoOrg.AppendEvents, iamAggregate) + if err != nil { + return nil, err + } + if _, idpConfig := iam_es_model.GetIDPConfig(repoOrg.IDPs, idp.IDPConfigID); idpConfig != nil { + return iam_es_model.IDPConfigToModel(idpConfig), nil + } + return nil, errors.ThrowInternal(nil, "EVENT-Al90s", "Errors.Internal") +} + +func (es *OrgEventstore) ChangeIDPOIDCConfig(ctx context.Context, config *iam_model.OIDCIDPConfig) (*iam_model.OIDCIDPConfig, error) { + if config == nil || !config.IsValid(false) { + return nil, errors.ThrowPreconditionFailed(nil, "EVENT-Qs789", "Errors.Org.OIDCConfigInvalid") + } + existing, err := es.OrgByID(ctx, org_model.NewOrg(config.AggregateID)) + if err != nil { + return nil, err + } + var idp *iam_model.IDPConfig + if _, idp = existing.GetIDP(config.IDPConfigID); idp == nil { + return nil, errors.ThrowPreconditionFailed(nil, "EVENT-pso0s", "Errors.Org.IdpNoExisting") + } + if idp.Type != iam_model.IDPConfigTypeOIDC { + return nil, errors.ThrowPreconditionFailed(nil, "EVENT-Fms8w", "Errors.IAM.IdpIsNotOIDC") + } + if config.ClientSecretString != "" { + err = idp.OIDCConfig.CryptSecret(es.secretCrypto) + } else { + config.ClientSecret = nil + } + repoOrg := model.OrgFromModel(existing) + repoConfig := iam_es_model.OIDCIDPConfigFromModel(config) + + iamAggregate := OIDCIDPConfigChangedAggregate(es.Eventstore.AggregateCreator(), repoOrg, repoConfig) + err = es_sdk.Push(ctx, es.PushAggregates, repoOrg.AppendEvents, iamAggregate) + if err != nil { + return nil, err + } + if _, idpConfig := iam_es_model.GetIDPConfig(repoOrg.IDPs, idp.IDPConfigID); idpConfig != nil { + return iam_es_model.OIDCIDPConfigToModel(idpConfig.OIDCIDPConfig), nil + } + return nil, errors.ThrowInternal(nil, "EVENT-Sldk8", "Errors.Internal") +} + +func (es *OrgEventstore) AddLoginPolicy(ctx context.Context, policy *iam_model.LoginPolicy) (*iam_model.LoginPolicy, error) { + if policy == nil || !policy.IsValid() { + return nil, errors.ThrowPreconditionFailed(nil, "EVENT-Sjkl9", "Errors.Org.LoginPolicyInvalid") + } + existing, err := es.OrgByID(ctx, org_model.NewOrg(policy.AggregateID)) + if err != nil { + return nil, err + } + + repoOrg := model.OrgFromModel(existing) + repoLoginPolicy := iam_es_model.LoginPolicyFromModel(policy) + + addAggregate := LoginPolicyAddedAggregate(es.Eventstore.AggregateCreator(), repoOrg, repoLoginPolicy) + err = es_sdk.Push(ctx, es.PushAggregates, repoOrg.AppendEvents, addAggregate) + if err != nil { + return nil, err + } + return iam_es_model.LoginPolicyToModel(repoOrg.LoginPolicy), nil +} + +func (es *OrgEventstore) ChangeLoginPolicy(ctx context.Context, policy *iam_model.LoginPolicy) (*iam_model.LoginPolicy, error) { + if policy == nil || !policy.IsValid() { + return nil, errors.ThrowPreconditionFailed(nil, "EVENT-Lso02", "Errors.Org.LoginPolicyInvalid") + } + existing, err := es.OrgByID(ctx, org_model.NewOrg(policy.AggregateID)) + if err != nil { + return nil, err + } + + repoOrg := model.OrgFromModel(existing) + repoLoginPolicy := iam_es_model.LoginPolicyFromModel(policy) + + addAggregate := LoginPolicyChangedAggregate(es.Eventstore.AggregateCreator(), repoOrg, repoLoginPolicy) + err = es_sdk.Push(ctx, es.PushAggregates, repoOrg.AppendEvents, addAggregate) + if err != nil { + return nil, err + } + return iam_es_model.LoginPolicyToModel(repoOrg.LoginPolicy), nil +} + +func (es *OrgEventstore) RemoveLoginPolicy(ctx context.Context, policy *iam_model.LoginPolicy) error { + if policy == nil || !policy.IsValid() { + return errors.ThrowPreconditionFailed(nil, "EVENT-O0s9e", "Errors.Org.LoginPolicyInvalid") + } + existing, err := es.OrgByID(ctx, org_model.NewOrg(policy.AggregateID)) + if err != nil { + return err + } + repoOrg := model.OrgFromModel(existing) + + addAggregate := LoginPolicyRemovedAggregate(es.Eventstore.AggregateCreator(), repoOrg) + return es_sdk.Push(ctx, es.PushAggregates, repoOrg.AppendEvents, addAggregate) +} + +func (es *OrgEventstore) GetIDPConfig(ctx context.Context, aggregateID, idpConfigID string) (*iam_model.IDPConfig, error) { + existing, err := es.OrgByID(ctx, org_model.NewOrg(aggregateID)) + if err != nil { + return nil, err + } + if _, i := existing.GetIDP(idpConfigID); i != nil { + return i, nil + } + return nil, errors.ThrowNotFound(nil, "EVENT-Qlo0d", "Errors.Org.IdpNotExisting") +} + +func (es *OrgEventstore) AddIDPProviderToLoginPolicy(ctx context.Context, provider *iam_model.IDPProvider) (*iam_model.IDPProvider, error) { + if provider == nil || !provider.IsValid() { + return nil, errors.ThrowPreconditionFailed(nil, "EVENT-Sjd8e", "Errors.Org.IdpProviderInvalid") + } + existing, err := es.OrgByID(ctx, org_model.NewOrg(provider.AggregateID)) + if err != nil { + return nil, err + } + if existing.LoginPolicy == nil { + return nil, errors.ThrowAlreadyExists(nil, "EVENT-sk9fW", "Errors.Org.LoginPolicy.NotExisting") + } + if _, m := existing.LoginPolicy.GetIdpProvider(provider.IdpConfigID); m != nil { + return nil, errors.ThrowAlreadyExists(nil, "EVENT-Lso9f", "Errors.Org.LoginPolicy.IdpProviderAlreadyExisting") + } + repoOrg := model.OrgFromModel(existing) + repoProvider := iam_es_model.IDPProviderFromModel(provider) + + addAggregate := LoginPolicyIDPProviderAddedAggregate(es.Eventstore.AggregateCreator(), repoOrg, repoProvider, es.IamID) + err = es_sdk.Push(ctx, es.PushAggregates, repoOrg.AppendEvents, addAggregate) + if err != nil { + return nil, err + } + if _, m := iam_es_model.GetIDPProvider(repoOrg.LoginPolicy.IDPProviders, provider.IdpConfigID); m != nil { + return iam_es_model.IDPProviderToModel(m), nil + } + return nil, errors.ThrowInternal(nil, "EVENT-Slf9s", "Errors.Internal") +} + +func (es *OrgEventstore) PrepareRemoveIDPProviderFromLoginPolicy(ctx context.Context, provider *iam_model.IDPProvider, cascade bool) (*model.Org, *es_models.Aggregate, error) { + if provider == nil || !provider.IsValid() { + return nil, nil, errors.ThrowPreconditionFailed(nil, "EVENT-Esi8c", "Errors.IdpProviderInvalid") + } + existing, err := es.OrgByID(ctx, org_model.NewOrg(provider.AggregateID)) + if err != nil { + return nil, nil, err + } + if _, m := existing.LoginPolicy.GetIdpProvider(provider.IdpConfigID); m == nil { + return nil, nil, errors.ThrowPreconditionFailed(nil, "EVENT-29skr", "Errors.IAM.LoginPolicy.IdpProviderNotExisting") + } + repoOrg := model.OrgFromModel(existing) + providerID := &iam_es_model.IDPProviderID{provider.IdpConfigID} + providerAggregates, err := LoginPolicyIDPProviderRemovedAggregate(ctx, es.Eventstore.AggregateCreator(), repoOrg, providerID, cascade) + if err != nil { + return nil, nil, err + } + return repoOrg, providerAggregates, nil +} + +func (es *OrgEventstore) RemoveIDPProviderFromLoginPolicy(ctx context.Context, provider *iam_model.IDPProvider) error { + repoOrg, agg, err := es.PrepareRemoveIDPProviderFromLoginPolicy(ctx, provider, false) + if err != nil { + return err + } + return es_sdk.PushAggregates(ctx, es.PushAggregates, repoOrg.AppendEvents, agg) +} diff --git a/internal/org/repository/eventsourcing/eventstore_mock_test.go b/internal/org/repository/eventsourcing/eventstore_mock_test.go index 274b59fa1..a2ab610d1 100644 --- a/internal/org/repository/eventsourcing/eventstore_mock_test.go +++ b/internal/org/repository/eventsourcing/eventstore_mock_test.go @@ -2,6 +2,10 @@ package eventsourcing import ( "encoding/json" + "github.com/caos/zitadel/internal/crypto" + iam_model "github.com/caos/zitadel/internal/iam/model" + iam_es_model "github.com/caos/zitadel/internal/iam/repository/eventsourcing/model" + "github.com/caos/zitadel/internal/id" "github.com/caos/zitadel/internal/eventstore/mock" es_models "github.com/caos/zitadel/internal/eventstore/models" @@ -10,12 +14,24 @@ import ( "github.com/golang/mock/gomock" ) -func GetMockedEventstoreComplexity(ctrl *gomock.Controller, mockEs *mock.MockEventstore) *OrgEventstore { +func GetMockedEventstore(ctrl *gomock.Controller, mockEs *mock.MockEventstore) *OrgEventstore { return &OrgEventstore{ - Eventstore: mockEs, + Eventstore: mockEs, + idGenerator: GetSonyFlake(), } } +func GetMockedEventstoreWithCrypto(ctrl *gomock.Controller, mockEs *mock.MockEventstore) *OrgEventstore { + return &OrgEventstore{ + Eventstore: mockEs, + idGenerator: GetSonyFlake(), + secretCrypto: crypto.NewBCrypt(10), + } +} + +func GetSonyFlake() id.Generator { + return id.SonyFlakeGenerator +} func GetMockChangesOrgOK(ctrl *gomock.Controller) *OrgEventstore { org := model.Org{ Name: "MusterOrg", @@ -29,12 +45,61 @@ func GetMockChangesOrgOK(ctrl *gomock.Controller) *OrgEventstore { } mockEs := mock.NewMockEventstore(ctrl) mockEs.EXPECT().FilterEvents(gomock.Any(), gomock.Any()).Return(events, nil) - return GetMockedEventstoreComplexity(ctrl, mockEs) + mockEs.EXPECT().AggregateCreator().Return(es_models.NewAggregateCreator("TEST")) + mockEs.EXPECT().PushAggregates(gomock.Any(), gomock.Any()).Return(nil) + return GetMockedEventstore(ctrl, mockEs) } func GetMockChangesOrgNoEvents(ctrl *gomock.Controller) *OrgEventstore { events := []*es_models.Event{} mockEs := mock.NewMockEventstore(ctrl) mockEs.EXPECT().FilterEvents(gomock.Any(), gomock.Any()).Return(events, nil) - return GetMockedEventstoreComplexity(ctrl, mockEs) + return GetMockedEventstore(ctrl, mockEs) +} + +func GetMockChangesOrgWithCrypto(ctrl *gomock.Controller) *OrgEventstore { + org := model.Org{ + Name: "MusterOrg", + } + data, _ := json.Marshal(org) + events := []*es_models.Event{ + &es_models.Event{AggregateID: "AggregateID", Sequence: 1, Type: model.OrgAdded, Data: data}, + } + 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 GetMockedEventstoreWithCrypto(ctrl, mockEs) +} + +func GetMockChangesOrgWithOIDCIdp(ctrl *gomock.Controller) *OrgEventstore { + orgData, _ := json.Marshal(model.Org{Name: "MusterOrg"}) + idpData, _ := json.Marshal(iam_es_model.IDPConfig{IDPConfigID: "IDPConfigID", Name: "Name"}) + oidcData, _ := json.Marshal(iam_es_model.OIDCIDPConfig{IDPConfigID: "IDPConfigID", ClientID: "ClientID"}) + events := []*es_models.Event{ + &es_models.Event{AggregateID: "AggregateID", Sequence: 1, Type: model.OrgAdded, Data: orgData}, + &es_models.Event{AggregateID: "AggregateID", Sequence: 1, Type: model.IDPConfigAdded, Data: idpData}, + &es_models.Event{AggregateID: "AggregateID", Sequence: 1, Type: model.OIDCIDPConfigAdded, Data: oidcData}, + } + 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 GetMockChangesOrgWithLoginPolicy(ctrl *gomock.Controller) *OrgEventstore { + orgData, _ := json.Marshal(model.Org{Name: "MusterOrg"}) + loginPolicy, _ := json.Marshal(iam_es_model.LoginPolicy{AllowRegister: true, AllowExternalIdp: true, AllowUsernamePassword: true}) + idpData, _ := json.Marshal(iam_es_model.IDPProvider{IDPConfigID: "IDPConfigID", Type: int32(iam_model.IDPProviderTypeSystem)}) + events := []*es_models.Event{ + &es_models.Event{AggregateID: "AggregateID", Sequence: 1, Type: model.OrgAdded, Data: orgData}, + &es_models.Event{AggregateID: "AggregateID", Sequence: 1, Type: model.LoginPolicyAdded, Data: loginPolicy}, + &es_models.Event{AggregateID: "AggregateID", Sequence: 1, Type: model.LoginPolicyIDPProviderAdded, Data: idpData}, + } + 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) } diff --git a/internal/org/repository/eventsourcing/eventstore_test.go b/internal/org/repository/eventsourcing/eventstore_test.go index e64afaf72..440d585bd 100644 --- a/internal/org/repository/eventsourcing/eventstore_test.go +++ b/internal/org/repository/eventsourcing/eventstore_test.go @@ -3,6 +3,7 @@ package eventsourcing import ( "context" "encoding/json" + iam_model "github.com/caos/zitadel/internal/iam/model" "testing" "time" @@ -1664,3 +1665,1043 @@ func TestChangesOrg(t *testing.T) { }) } } + +func TestAddIdpConfiguration(t *testing.T) { + ctrl := gomock.NewController(t) + type args struct { + es *OrgEventstore + ctx context.Context + idp *iam_model.IDPConfig + } + type res struct { + result *iam_model.IDPConfig + wantErr bool + errFunc func(err error) bool + } + tests := []struct { + name string + args args + res res + }{ + { + name: "add idp, ok", + args: args{ + es: GetMockChangesOrgWithCrypto(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + idp: &iam_model.IDPConfig{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, + IDPConfigID: "IDPConfigID", + Name: "Name", + Type: iam_model.IDPConfigTypeOIDC, + OIDCConfig: &iam_model.OIDCIDPConfig{ + ClientID: "ClientID", + ClientSecretString: "ClientSecret", + Issuer: "Issuer", + Scopes: []string{"scope"}, + }, + }, + }, + res: res{ + result: &iam_model.IDPConfig{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, + Name: "Name", + Type: iam_model.IDPConfigTypeOIDC, + OIDCConfig: &iam_model.OIDCIDPConfig{ + ClientID: "ClientID", + Issuer: "Issuer", + Scopes: []string{"scope"}, + }, + }, + }, + }, + { + name: "invalid idp config", + args: args{ + es: GetMockChangesOrgOK(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + idp: &iam_model.IDPConfig{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}}, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "existing org not found", + args: args{ + es: GetMockChangesOrgNoEvents(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + idp: &iam_model.IDPConfig{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, + IDPConfigID: "IDPConfigID", + Name: "Name", + OIDCConfig: &iam_model.OIDCIDPConfig{ + ClientID: "ClientID", + ClientSecretString: "ClientSecret", + Issuer: "Issuer", + Scopes: []string{"scope"}, + }, + }, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsNotFound, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + result, err := tt.args.es.AddIDPConfig(tt.args.ctx, tt.args.idp) + + if !tt.res.wantErr && result.IDPConfigID == "" { + t.Errorf("result has no id") + } + if !tt.res.wantErr && result.OIDCConfig.IDPConfigID == "" { + t.Errorf("result has no id") + } + if !tt.res.wantErr && result.OIDCConfig == nil && result.OIDCConfig.ClientSecret == nil { + t.Errorf("result has no client secret") + } + if !tt.res.wantErr && result.Name != tt.res.result.Name { + t.Errorf("got wrong result key: expected: %v, actual: %v ", tt.res.result.Name, result.Name) + } + if !tt.res.wantErr && result.OIDCConfig.ClientID != tt.res.result.OIDCConfig.ClientID { + t.Errorf("got wrong result key: expected: %v, actual: %v ", tt.res.result.OIDCConfig.ClientID, result.OIDCConfig.ClientID) + } + if tt.res.wantErr && !tt.res.errFunc(err) { + t.Errorf("got wrong err: %v ", err) + } + }) + } +} + +func TestChangeIdpConfiguration(t *testing.T) { + ctrl := gomock.NewController(t) + type args struct { + es *OrgEventstore + ctx context.Context + idp *iam_model.IDPConfig + } + type res struct { + result *iam_model.IDPConfig + wantErr bool + errFunc func(err error) bool + } + tests := []struct { + name string + args args + res res + }{ + { + name: "change idp, ok", + args: args{ + es: GetMockChangesOrgWithOIDCIdp(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + idp: &iam_model.IDPConfig{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, + IDPConfigID: "IDPConfigID", + Name: "NameChanged", + }, + }, + res: res{ + result: &iam_model.IDPConfig{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, + IDPConfigID: "IDPConfigID", + Name: "NameChanged", + OIDCConfig: &iam_model.OIDCIDPConfig{ + ClientID: "ClientID", + }, + }, + }, + }, + { + name: "invalid idp", + args: args{ + es: GetMockChangesOrgOK(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + idp: &iam_model.IDPConfig{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, + IDPConfigID: "IDPConfigID", + }, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "idp not existing", + args: args{ + es: GetMockChangesOrgOK(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + idp: &iam_model.IDPConfig{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, + IDPConfigID: "IDPConfigID", + Name: "Name", + OIDCConfig: &iam_model.OIDCIDPConfig{ + ClientID: "ClientID", + }, + }, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "existing org not found", + args: args{ + es: GetMockChangesOrgNoEvents(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + idp: &iam_model.IDPConfig{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, + IDPConfigID: "IDPConfigID", + Name: "Name", + OIDCConfig: &iam_model.OIDCIDPConfig{ + ClientID: "ClientID", + }, + }, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsNotFound, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + result, err := tt.args.es.ChangeIDPConfig(tt.args.ctx, tt.args.idp) + + if !tt.res.wantErr && result.AggregateID == "" { + t.Errorf("result has no id") + } + if !tt.res.wantErr && result.IDPConfigID != tt.res.result.IDPConfigID { + t.Errorf("got wrong result IdpConfigID: expected: %v, actual: %v ", tt.res.result.IDPConfigID, result.IDPConfigID) + } + if !tt.res.wantErr && result.Name != tt.res.result.Name { + t.Errorf("got wrong result name: expected: %v, actual: %v ", tt.res.result.Name, result.Name) + } + if tt.res.wantErr && !tt.res.errFunc(err) { + t.Errorf("got wrong err: %v ", err) + } + }) + } +} + +func TestRemoveIdpConfiguration(t *testing.T) { + ctrl := gomock.NewController(t) + type args struct { + es *OrgEventstore + ctx context.Context + idp *iam_model.IDPConfig + } + type res struct { + wantErr bool + errFunc func(err error) bool + } + tests := []struct { + name string + args args + res res + }{ + { + name: "remove idp, ok", + args: args{ + es: GetMockChangesOrgWithOIDCIdp(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + idp: &iam_model.IDPConfig{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, + IDPConfigID: "IDPConfigID", + }, + }, + }, + { + name: "no IDPConfigID", + args: args{ + es: GetMockChangesOrgOK(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + idp: &iam_model.IDPConfig{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}}, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "idp not existing", + args: args{ + es: GetMockChangesOrgOK(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + idp: &iam_model.IDPConfig{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, + IDPConfigID: "IDPConfigID", + }, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "existing idp not found", + args: args{ + es: GetMockChangesOrgNoEvents(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + idp: &iam_model.IDPConfig{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, + IDPConfigID: "IDPConfigID", + }, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsNotFound, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + err := tt.args.es.RemoveIDPConfig(tt.args.ctx, tt.args.idp) + + if !tt.res.wantErr && err != nil { + t.Errorf("should not get err") + } + if tt.res.wantErr && !tt.res.errFunc(err) { + t.Errorf("got wrong err: %v ", err) + } + }) + } +} +func TestDeactivateIdpConfiguration(t *testing.T) { + ctrl := gomock.NewController(t) + type args struct { + es *OrgEventstore + ctx context.Context + idp *iam_model.IDPConfig + } + type res struct { + result *iam_model.IDPConfig + wantErr bool + errFunc func(err error) bool + } + tests := []struct { + name string + args args + res res + }{ + { + name: "deactivate, ok", + args: args{ + es: GetMockChangesOrgWithOIDCIdp(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + idp: &iam_model.IDPConfig{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, + IDPConfigID: "IDPConfigID", + Name: "Name", + }, + }, + res: res{ + result: &iam_model.IDPConfig{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, + IDPConfigID: "IDPConfigID", + Name: "Name", + State: iam_model.IDPConfigStateInactive, + OIDCConfig: &iam_model.OIDCIDPConfig{ + ClientID: "ClientID", + }, + }, + }, + }, + { + name: "no idp id", + args: args{ + es: GetMockChangesOrgOK(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + idp: &iam_model.IDPConfig{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}}, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "idp not existing", + args: args{ + es: GetMockChangesOrgOK(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + idp: &iam_model.IDPConfig{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, + IDPConfigID: "IDPConfigID", + Name: "Name", + OIDCConfig: &iam_model.OIDCIDPConfig{ + ClientID: "ClientID", + }, + }, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "existing org not found", + args: args{ + es: GetMockChangesOrgNoEvents(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + idp: &iam_model.IDPConfig{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, + IDPConfigID: "IDPConfigID", + Name: "Name", + OIDCConfig: &iam_model.OIDCIDPConfig{ + ClientID: "ClientID", + }, + }, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsNotFound, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + result, err := tt.args.es.DeactivateIDPConfig(tt.args.ctx, tt.args.idp.AggregateID, tt.args.idp.IDPConfigID) + + if !tt.res.wantErr && result.AggregateID == "" { + t.Errorf("result has no id") + } + if !tt.res.wantErr && result.IDPConfigID != tt.res.result.IDPConfigID { + t.Errorf("got wrong result IDPConfigID: expected: %v, actual: %v ", tt.res.result.IDPConfigID, result.IDPConfigID) + } + if !tt.res.wantErr && result.State != tt.res.result.State { + t.Errorf("got wrong result state: expected: %v, actual: %v ", tt.res.result.State, result.State) + } + if tt.res.wantErr && !tt.res.errFunc(err) { + t.Errorf("got wrong err: %v ", err) + } + }) + } +} + +func TestReactivateIdpConfiguration(t *testing.T) { + ctrl := gomock.NewController(t) + type args struct { + es *OrgEventstore + ctx context.Context + idp *iam_model.IDPConfig + } + type res struct { + result *iam_model.IDPConfig + wantErr bool + errFunc func(err error) bool + } + tests := []struct { + name string + args args + res res + }{ + { + name: "reactivate, ok", + args: args{ + es: GetMockChangesOrgWithOIDCIdp(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + idp: &iam_model.IDPConfig{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, + IDPConfigID: "IDPConfigID", + Name: "Name", + }, + }, + res: res{ + result: &iam_model.IDPConfig{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, + IDPConfigID: "IDPConfigID", + Name: "Name", + State: iam_model.IDPConfigStateActive, + OIDCConfig: &iam_model.OIDCIDPConfig{ + ClientID: "ClientID", + }, + }, + }, + }, + { + name: "no idp id", + args: args{ + es: GetMockChangesOrgOK(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + idp: &iam_model.IDPConfig{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}}, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "idp not existing", + args: args{ + es: GetMockChangesOrgOK(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + idp: &iam_model.IDPConfig{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, + IDPConfigID: "IDPConfigID", + Name: "Name", + OIDCConfig: &iam_model.OIDCIDPConfig{ + ClientID: "ClientID", + }, + }, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "existing org not found", + args: args{ + es: GetMockChangesOrgNoEvents(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + idp: &iam_model.IDPConfig{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}, + IDPConfigID: "IDPConfigID", + Name: "Name", + OIDCConfig: &iam_model.OIDCIDPConfig{ + ClientID: "ClientID", + }, + }, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsNotFound, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + result, err := tt.args.es.ReactivateIDPConfig(tt.args.ctx, tt.args.idp.AggregateID, tt.args.idp.IDPConfigID) + + if !tt.res.wantErr && result.AggregateID == "" { + t.Errorf("result has no id") + } + if !tt.res.wantErr && result.IDPConfigID != tt.res.result.IDPConfigID { + t.Errorf("got wrong result IDPConfigID: expected: %v, actual: %v ", tt.res.result.IDPConfigID, result.IDPConfigID) + } + if !tt.res.wantErr && result.State != tt.res.result.State { + t.Errorf("got wrong result state: expected: %v, actual: %v ", tt.res.result.State, result.State) + } + if tt.res.wantErr && !tt.res.errFunc(err) { + t.Errorf("got wrong err: %v ", err) + } + }) + } +} + +func TestChangeOIDCIDPConfig(t *testing.T) { + ctrl := gomock.NewController(t) + type args struct { + es *OrgEventstore + ctx context.Context + config *iam_model.OIDCIDPConfig + } + type res struct { + result *iam_model.OIDCIDPConfig + wantErr bool + errFunc func(err error) bool + } + tests := []struct { + name string + args args + res res + }{ + { + name: "change oidc config, ok", + args: args{ + es: GetMockChangesOrgWithOIDCIdp(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + config: &iam_model.OIDCIDPConfig{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 0}, + IDPConfigID: "IDPConfigID", + ClientID: "ClientIDChange", + Issuer: "Issuer", + Scopes: []string{"scope"}, + }, + }, + res: res{ + result: &iam_model.OIDCIDPConfig{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 0}, + IDPConfigID: "IDPConfigID", + ClientID: "ClientIDChange", + }, + }, + }, + { + name: "invalid config", + args: args{ + es: GetMockChangesOrgOK(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + config: &iam_model.OIDCIDPConfig{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 0}, + IDPConfigID: "IDPConfigID", + }, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "idp not existing", + args: args{ + es: GetMockChangesOrgOK(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + config: &iam_model.OIDCIDPConfig{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 0}, + IDPConfigID: "IDPConfigID", + ClientID: "ClientID", + Issuer: "Issuer", + Scopes: []string{"scope"}, + }, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "existing org not found", + args: args{ + es: GetMockChangesOrgNoEvents(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + config: &iam_model.OIDCIDPConfig{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 0}, + IDPConfigID: "IDPConfigID", + ClientID: "ClientID", + Issuer: "Issuer", + Scopes: []string{"scope"}, + }, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsNotFound, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + result, err := tt.args.es.ChangeIDPOIDCConfig(tt.args.ctx, tt.args.config) + + if !tt.res.wantErr && result.AggregateID == "" { + t.Errorf("result has no id") + } + if !tt.res.wantErr && result.IDPConfigID != tt.res.result.IDPConfigID { + t.Errorf("got wrong result AppID: expected: %v, actual: %v ", tt.res.result.IDPConfigID, result.IDPConfigID) + } + if !tt.res.wantErr && result.ClientID != tt.res.result.ClientID { + t.Errorf("got wrong result responsetype: expected: %v, actual: %v ", tt.res.result.ClientID, result.ClientID) + } + if tt.res.wantErr && !tt.res.errFunc(err) { + t.Errorf("got wrong err: %v ", err) + } + }) + } +} + +func TestAddLoginPolicy(t *testing.T) { + ctrl := gomock.NewController(t) + type args struct { + es *OrgEventstore + ctx context.Context + policy *iam_model.LoginPolicy + } + type res struct { + result *iam_model.LoginPolicy + wantErr bool + errFunc func(err error) bool + } + tests := []struct { + name string + args args + res res + }{ + { + name: "add login policy, ok", + args: args{ + es: GetMockChangesOrgOK(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + policy: &iam_model.LoginPolicy{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 0}, + AllowRegister: true, + }, + }, + res: res{ + result: &iam_model.LoginPolicy{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 0}, + AllowRegister: true, + }, + }, + }, + { + name: "invalid policy", + args: args{ + es: GetMockChangesOrgOK(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + policy: &iam_model.LoginPolicy{ + ObjectRoot: es_models.ObjectRoot{Sequence: 0}, + }, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "existing org not found", + args: args{ + es: GetMockChangesOrgNoEvents(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + policy: &iam_model.LoginPolicy{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 0}, + }, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsNotFound, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + result, err := tt.args.es.AddLoginPolicy(tt.args.ctx, tt.args.policy) + + if !tt.res.wantErr && result.AllowRegister != tt.res.result.AllowRegister { + t.Errorf("got wrong result AllowRegister: expected: %v, actual: %v ", tt.res.result.AllowRegister, result.AllowRegister) + } + if tt.res.wantErr && !tt.res.errFunc(err) { + t.Errorf("got wrong err: %v ", err) + } + }) + } +} + +func TestChangeLoginPolicy(t *testing.T) { + ctrl := gomock.NewController(t) + type args struct { + es *OrgEventstore + ctx context.Context + policy *iam_model.LoginPolicy + } + type res struct { + result *iam_model.LoginPolicy + wantErr bool + errFunc func(err error) bool + } + tests := []struct { + name string + args args + res res + }{ + { + name: "add login policy, ok", + args: args{ + es: GetMockChangesOrgWithLoginPolicy(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + policy: &iam_model.LoginPolicy{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 0}, + AllowRegister: true, + AllowExternalIdp: false, + AllowUsernamePassword: false, + }, + }, + res: res{ + result: &iam_model.LoginPolicy{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 0}, + AllowRegister: true, + AllowExternalIdp: false, + AllowUsernamePassword: false, + }, + }, + }, + { + name: "invalid policy", + args: args{ + es: GetMockChangesOrgOK(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + policy: &iam_model.LoginPolicy{ + ObjectRoot: es_models.ObjectRoot{Sequence: 0}, + }, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "existing iam not found", + args: args{ + es: GetMockChangesOrgNoEvents(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + policy: &iam_model.LoginPolicy{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 0}, + }, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsNotFound, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + result, err := tt.args.es.ChangeLoginPolicy(tt.args.ctx, tt.args.policy) + + if !tt.res.wantErr && result.AllowRegister != tt.res.result.AllowRegister { + t.Errorf("got wrong result AllowRegister: expected: %v, actual: %v ", tt.res.result.AllowRegister, result.AllowRegister) + } + if !tt.res.wantErr && result.AllowUsernamePassword != tt.res.result.AllowUsernamePassword { + t.Errorf("got wrong result AllowUsernamePassword: expected: %v, actual: %v ", tt.res.result.AllowUsernamePassword, result.AllowUsernamePassword) + } + if !tt.res.wantErr && result.AllowExternalIdp != tt.res.result.AllowExternalIdp { + t.Errorf("got wrong result AllowExternalIDP: expected: %v, actual: %v ", tt.res.result.AllowExternalIdp, result.AllowExternalIdp) + } + if tt.res.wantErr && !tt.res.errFunc(err) { + t.Errorf("got wrong err: %v ", err) + } + }) + } +} + +func TestRemoveLoginPolicy(t *testing.T) { + ctrl := gomock.NewController(t) + type args struct { + es *OrgEventstore + ctx context.Context + policy *iam_model.LoginPolicy + } + type res struct { + result *iam_model.LoginPolicy + wantErr bool + errFunc func(err error) bool + } + tests := []struct { + name string + args args + res res + }{ + { + name: "remove login policy, ok", + args: args{ + es: GetMockChangesOrgWithLoginPolicy(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + policy: &iam_model.LoginPolicy{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 0}, + AllowRegister: true, + AllowExternalIdp: false, + AllowUsernamePassword: false, + }, + }, + res: res{}, + }, + { + name: "invalid policy", + args: args{ + es: GetMockChangesOrgOK(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + policy: &iam_model.LoginPolicy{ + ObjectRoot: es_models.ObjectRoot{Sequence: 0}, + }, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "existing iam not found", + args: args{ + es: GetMockChangesOrgNoEvents(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + policy: &iam_model.LoginPolicy{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 0}, + }, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsNotFound, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + err := tt.args.es.RemoveLoginPolicy(tt.args.ctx, tt.args.policy) + + if !tt.res.wantErr && err != nil { + t.Errorf("got wrong result should not get err: %v", err) + } + if tt.res.wantErr && !tt.res.errFunc(err) { + t.Errorf("got wrong err: %v ", err) + } + }) + } +} + +func TestAddIdpProviderToLoginPolicy(t *testing.T) { + ctrl := gomock.NewController(t) + type args struct { + es *OrgEventstore + ctx context.Context + provider *iam_model.IDPProvider + } + type res struct { + result *iam_model.IDPProvider + wantErr bool + errFunc func(err error) bool + } + tests := []struct { + name string + args args + res res + }{ + { + name: "add idp to login policy, ok", + args: args{ + es: GetMockChangesOrgWithLoginPolicy(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + provider: &iam_model.IDPProvider{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 0}, + IdpConfigID: "IdpConfigID2", + Type: iam_model.IDPProviderTypeSystem, + }, + }, + res: res{ + result: &iam_model.IDPProvider{IdpConfigID: "IdpConfigID2"}, + }, + }, + { + name: "add idp to login policy, already existing", + args: args{ + es: GetMockChangesOrgWithLoginPolicy(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + provider: &iam_model.IDPProvider{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 0}, + IdpConfigID: "IDPConfigID", + Type: iam_model.IDPProviderTypeSystem, + }, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsErrorAlreadyExists, + }, + }, + { + name: "invalid provider", + args: args{ + es: GetMockChangesOrgOK(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + provider: &iam_model.IDPProvider{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 0}, + }, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "existing iam not found", + args: args{ + es: GetMockChangesOrgNoEvents(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + provider: &iam_model.IDPProvider{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 0}, + IdpConfigID: "IdpConfigID2", + }, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsNotFound, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + result, err := tt.args.es.AddIDPProviderToLoginPolicy(tt.args.ctx, tt.args.provider) + + if !tt.res.wantErr && result.IdpConfigID != tt.res.result.IdpConfigID { + t.Errorf("got wrong result IDPConfigID: expected: %v, actual: %v ", tt.res.result.IdpConfigID, result.IdpConfigID) + } + if !tt.res.wantErr && result.Type != tt.res.result.Type { + t.Errorf("got wrong result Type: expected: %v, actual: %v ", tt.res.result.Type, result.Type) + } + if tt.res.wantErr && !tt.res.errFunc(err) { + t.Errorf("got wrong err: %v ", err) + } + }) + } +} + +func TestRemoveIdpProviderFromLoginPolicy(t *testing.T) { + ctrl := gomock.NewController(t) + type args struct { + es *OrgEventstore + ctx context.Context + provider *iam_model.IDPProvider + } + type res struct { + wantErr bool + errFunc func(err error) bool + } + tests := []struct { + name string + args args + res res + }{ + { + name: "remove idp to login policy, ok", + args: args{ + es: GetMockChangesOrgWithLoginPolicy(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + provider: &iam_model.IDPProvider{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 0}, + IdpConfigID: "IDPConfigID", + Type: iam_model.IDPProviderTypeSystem, + }, + }, + res: res{}, + }, + { + name: "remove idp to login policy, not existing", + args: args{ + es: GetMockChangesOrgWithLoginPolicy(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + provider: &iam_model.IDPProvider{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 0}, + IdpConfigID: "IdpConfigID2", + Type: iam_model.IDPProviderTypeSystem, + }, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "invalid provider", + args: args{ + es: GetMockChangesOrgOK(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + provider: &iam_model.IDPProvider{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 0}, + }, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "existing iam not found", + args: args{ + es: GetMockChangesOrgNoEvents(ctrl), + ctx: authz.NewMockContext("orgID", "userID"), + provider: &iam_model.IDPProvider{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 0}, + IdpConfigID: "IdpConfigID2", + }, + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsNotFound, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + err := tt.args.es.RemoveIDPProviderFromLoginPolicy(tt.args.ctx, tt.args.provider) + + if !tt.res.wantErr && err != nil { + t.Errorf("should not get err: %v ", err) + } + if tt.res.wantErr && !tt.res.errFunc(err) { + t.Errorf("got wrong err: %v ", err) + } + }) + } +} diff --git a/internal/org/repository/eventsourcing/login_policy.go b/internal/org/repository/eventsourcing/login_policy.go new file mode 100644 index 000000000..1a59c08e0 --- /dev/null +++ b/internal/org/repository/eventsourcing/login_policy.go @@ -0,0 +1,169 @@ +package eventsourcing + +import ( + "context" + "github.com/caos/zitadel/internal/errors" + es_models "github.com/caos/zitadel/internal/eventstore/models" + iam_model "github.com/caos/zitadel/internal/iam/model" + iam_es_model "github.com/caos/zitadel/internal/iam/repository/eventsourcing/model" + "github.com/caos/zitadel/internal/org/repository/eventsourcing/model" +) + +func LoginPolicyAddedAggregate(aggCreator *es_models.AggregateCreator, existing *model.Org, policy *iam_es_model.LoginPolicy) func(ctx context.Context) (*es_models.Aggregate, error) { + return func(ctx context.Context) (*es_models.Aggregate, error) { + if policy == nil { + return nil, errors.ThrowPreconditionFailed(nil, "EVENT-Smla8", "Errors.Internal") + } + agg, err := OrgAggregate(ctx, aggCreator, existing.AggregateID, existing.Sequence) + if err != nil { + return nil, err + } + validationQuery := es_models.NewSearchQuery(). + AggregateTypeFilter(model.OrgAggregate). + AggregateIDFilter(existing.AggregateID) + + validation := checkExistingLoginPolicyValidation() + agg.SetPrecondition(validationQuery, validation) + return agg.AppendEvent(model.LoginPolicyAdded, policy) + } +} + +func LoginPolicyChangedAggregate(aggCreator *es_models.AggregateCreator, existing *model.Org, policy *iam_es_model.LoginPolicy) func(ctx context.Context) (*es_models.Aggregate, error) { + return func(ctx context.Context) (*es_models.Aggregate, error) { + if policy == nil { + return nil, errors.ThrowPreconditionFailed(nil, "EVENT-Mlco9", "Errors.Internal") + } + agg, err := OrgAggregate(ctx, aggCreator, existing.AggregateID, existing.Sequence) + if err != nil { + return nil, err + } + changes := existing.LoginPolicy.Changes(policy) + if len(changes) == 0 { + return nil, errors.ThrowPreconditionFailed(nil, "EVENT-Smk8d", "Errors.NoChangesFound") + } + return agg.AppendEvent(model.LoginPolicyChanged, changes) + } +} + +func LoginPolicyRemovedAggregate(aggCreator *es_models.AggregateCreator, existing *model.Org) func(ctx context.Context) (*es_models.Aggregate, error) { + return func(ctx context.Context) (*es_models.Aggregate, error) { + if existing == nil { + return nil, errors.ThrowPreconditionFailed(nil, "EVENT-S8sio", "Errors.Internal") + } + agg, err := OrgAggregate(ctx, aggCreator, existing.AggregateID, existing.Sequence) + if err != nil { + return nil, err + } + return agg.AppendEvent(model.LoginPolicyRemoved, nil) + } +} + +func LoginPolicyIDPProviderAddedAggregate(aggCreator *es_models.AggregateCreator, existing *model.Org, provider *iam_es_model.IDPProvider, iamID string) func(ctx context.Context) (*es_models.Aggregate, error) { + return func(ctx context.Context) (*es_models.Aggregate, error) { + if provider == nil { + return nil, errors.ThrowPreconditionFailed(nil, "EVENT-Sml9d", "Errors.Internal") + } + agg, err := OrgAggregate(ctx, aggCreator, existing.AggregateID, existing.Sequence) + if err != nil { + return nil, err + } + validationQuery := es_models.NewSearchQuery(). + AggregateTypeFilter(model.OrgAggregate, iam_es_model.IAMAggregate). + AggregateIDsFilter(existing.AggregateID, iamID) + + validation := checkExistingLoginPolicyIDPProviderValidation(provider) + agg.SetPrecondition(validationQuery, validation) + return agg.AppendEvent(model.LoginPolicyIDPProviderAdded, provider) + } +} + +func LoginPolicyIDPProviderRemovedAggregate(ctx context.Context, aggCreator *es_models.AggregateCreator, existing *model.Org, provider *iam_es_model.IDPProviderID, cascade bool) (*es_models.Aggregate, error) { + if provider == nil { + return nil, errors.ThrowPreconditionFailed(nil, "EVENT-Sml9d", "Errors.Internal") + } + agg, err := OrgAggregate(ctx, aggCreator, existing.AggregateID, existing.Sequence) + if err != nil { + return nil, err + } + eventType := model.LoginPolicyIDPProviderRemoved + if cascade { + eventType = model.LoginPolicyIDPProviderCascadeRemoved + } + return agg.AppendEvent(eventType, provider) +} + +func checkExistingLoginPolicyValidation() func(...*es_models.Event) error { + return func(events ...*es_models.Event) error { + existing := false + for _, event := range events { + switch event.Type { + case model.LoginPolicyAdded: + existing = true + case model.LoginPolicyRemoved: + existing = false + } + } + if existing { + return errors.ThrowPreconditionFailed(nil, "EVENT-Nsh8u", "Errors.Org.LoginPolicy.AlreadyExists") + } + return nil + } +} + +func checkExistingLoginPolicyIDPProviderValidation(idpProvider *iam_es_model.IDPProvider) func(...*es_models.Event) error { + return func(events ...*es_models.Event) error { + idpConfigs := make([]*iam_es_model.IDPConfig, 0) + idps := make([]*iam_es_model.IDPProvider, 0) + for _, event := range events { + switch event.Type { + case model.IDPConfigAdded, iam_es_model.IDPConfigAdded: + config := new(iam_es_model.IDPConfig) + config.SetData(event) + idpConfigs = append(idpConfigs, config) + if event.AggregateType == model.OrgAggregate { + config.Type = int32(iam_model.IDPProviderTypeOrg) + } else { + config.Type = int32(iam_model.IDPProviderTypeSystem) + } + case model.IDPConfigRemoved, iam_es_model.IDPConfigRemoved: + config := new(iam_es_model.IDPConfig) + config.SetData(event) + for i, p := range idpConfigs { + if p.IDPConfigID == config.IDPConfigID { + idpConfigs[i] = idpConfigs[len(idpConfigs)-1] + idpConfigs[len(idpConfigs)-1] = nil + idpConfigs = idpConfigs[:len(idpConfigs)-1] + } + } + case model.LoginPolicyIDPProviderAdded: + idp := new(iam_es_model.IDPProvider) + idp.SetData(event) + case model.LoginPolicyIDPProviderRemoved: + idp := new(iam_es_model.IDPProvider) + idp.SetData(event) + for i, p := range idps { + if p.IDPConfigID == idp.IDPConfigID { + idps[i] = idps[len(idps)-1] + idps[len(idps)-1] = nil + idps = idps[:len(idps)-1] + } + } + } + } + exists := false + for _, p := range idpConfigs { + if p.IDPConfigID == idpProvider.IDPConfigID && p.Type == idpProvider.Type { + exists = true + } + } + if !exists { + return errors.ThrowPreconditionFailed(nil, "EVENT-Djlo9", "Errors.IAM.IdpNotExisting") + } + for _, p := range idps { + if p.IDPConfigID == idpProvider.IDPConfigID { + return errors.ThrowPreconditionFailed(nil, "EVENT-us5Zw", "Errors.Org.LoginPolicy.IdpProviderAlreadyExisting") + } + } + return nil + } +} diff --git a/internal/org/repository/eventsourcing/login_policy_test.go b/internal/org/repository/eventsourcing/login_policy_test.go new file mode 100644 index 000000000..de428cd8f --- /dev/null +++ b/internal/org/repository/eventsourcing/login_policy_test.go @@ -0,0 +1,452 @@ +package eventsourcing + +import ( + "context" + "github.com/caos/zitadel/internal/api/authz" + caos_errs "github.com/caos/zitadel/internal/errors" + "github.com/caos/zitadel/internal/eventstore/models" + iam_model "github.com/caos/zitadel/internal/iam/model" + iam_es_model "github.com/caos/zitadel/internal/iam/repository/eventsourcing/model" + "github.com/caos/zitadel/internal/org/repository/eventsourcing/model" + "testing" +) + +func TestLoginPolicyAddedAggregate(t *testing.T) { + type args struct { + ctx context.Context + existing *model.Org + new *iam_es_model.LoginPolicy + aggCreator *models.AggregateCreator + } + type res struct { + eventLen int + eventTypes []models.EventType + wantErr bool + errFunc func(err error) bool + } + tests := []struct { + name string + args args + res res + }{ + { + name: "add login polciy", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: &model.Org{ + ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, + }, + new: &iam_es_model.LoginPolicy{ + ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, + AllowUsernamePassword: true, + }, + aggCreator: models.NewAggregateCreator("Test"), + }, + res: res{ + eventLen: 1, + eventTypes: []models.EventType{model.LoginPolicyAdded}, + }, + }, + { + name: "existing org nil", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: nil, + aggCreator: models.NewAggregateCreator("Test"), + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "login policy config nil", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: &model.Org{ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}}, + new: nil, + aggCreator: models.NewAggregateCreator("Test"), + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + agg, err := LoginPolicyAddedAggregate(tt.args.aggCreator, tt.args.existing, tt.args.new)(tt.args.ctx) + + 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)) + } + for i := 0; i < tt.res.eventLen; i++ { + if !tt.res.wantErr && agg.Events[i].Type != tt.res.eventTypes[i] { + t.Errorf("got wrong event type: expected: %v, actual: %v ", tt.res.eventTypes[i], agg.Events[i].Type.String()) + } + if !tt.res.wantErr && agg.Events[i].Data == nil { + t.Errorf("should have data in event") + } + } + + if tt.res.wantErr && !tt.res.errFunc(err) { + t.Errorf("got wrong err: %v ", err) + } + }) + } +} + +func TestLoginPolicyChangedAggregate(t *testing.T) { + type args struct { + ctx context.Context + existing *model.Org + new *iam_es_model.LoginPolicy + aggCreator *models.AggregateCreator + } + type res struct { + eventLen int + eventTypes []models.EventType + wantErr bool + errFunc func(err error) bool + } + tests := []struct { + name string + args args + res res + }{ + { + name: "change login policy", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: &model.Org{ + ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, + LoginPolicy: &iam_es_model.LoginPolicy{ + ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, + }, + }, + new: &iam_es_model.LoginPolicy{ + ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, + AllowUsernamePassword: true, + AllowRegister: true, + }, + aggCreator: models.NewAggregateCreator("Test"), + }, + res: res{ + eventLen: 1, + eventTypes: []models.EventType{model.LoginPolicyChanged}, + }, + }, + { + name: "existing org nil", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: nil, + aggCreator: models.NewAggregateCreator("Test"), + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "login policy config nil", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: &model.Org{ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}}, + new: nil, + aggCreator: models.NewAggregateCreator("Test"), + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + agg, err := LoginPolicyChangedAggregate(tt.args.aggCreator, tt.args.existing, tt.args.new)(tt.args.ctx) + + 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)) + } + for i := 0; i < tt.res.eventLen; i++ { + if !tt.res.wantErr && agg.Events[i].Type != tt.res.eventTypes[i] { + t.Errorf("got wrong event type: expected: %v, actual: %v ", tt.res.eventTypes[i], agg.Events[i].Type.String()) + } + if !tt.res.wantErr && agg.Events[i].Data == nil { + t.Errorf("should have data in event") + } + } + + if tt.res.wantErr && !tt.res.errFunc(err) { + t.Errorf("got wrong err: %v ", err) + } + }) + } +} + +func TestLoginPolicyRemovedAggregate(t *testing.T) { + type args struct { + ctx context.Context + existing *model.Org + aggCreator *models.AggregateCreator + } + type res struct { + eventLen int + eventTypes []models.EventType + wantErr bool + errFunc func(err error) bool + } + tests := []struct { + name string + args args + res res + }{ + { + name: "remove login policy", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: &model.Org{ + ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, + LoginPolicy: &iam_es_model.LoginPolicy{ + ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, + }, + }, + aggCreator: models.NewAggregateCreator("Test"), + }, + res: res{ + eventLen: 1, + eventTypes: []models.EventType{model.LoginPolicyRemoved}, + }, + }, + { + name: "existing org nil", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: nil, + aggCreator: models.NewAggregateCreator("Test"), + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + agg, err := LoginPolicyRemovedAggregate(tt.args.aggCreator, tt.args.existing)(tt.args.ctx) + + 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)) + } + for i := 0; i < tt.res.eventLen; i++ { + if !tt.res.wantErr && agg.Events[i].Type != tt.res.eventTypes[i] { + t.Errorf("got wrong event type: expected: %v, actual: %v ", tt.res.eventTypes[i], agg.Events[i].Type.String()) + } + } + + if tt.res.wantErr && !tt.res.errFunc(err) { + t.Errorf("got wrong err: %v ", err) + } + }) + } +} + +func TestLoginPolicyIdpProviderAddedAggregate(t *testing.T) { + type args struct { + ctx context.Context + existing *model.Org + new *iam_es_model.IDPProvider + aggCreator *models.AggregateCreator + } + type res struct { + eventLen int + eventTypes []models.EventType + wantErr bool + errFunc func(err error) bool + } + tests := []struct { + name string + args args + res res + }{ + { + name: "add idp provider to login policy", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: &model.Org{ + ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, + }, + new: &iam_es_model.IDPProvider{ + ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, + Type: int32(iam_model.IDPProviderTypeSystem), + IDPConfigID: "IDPConfigID", + }, + aggCreator: models.NewAggregateCreator("Test"), + }, + res: res{ + eventLen: 1, + eventTypes: []models.EventType{model.LoginPolicyIDPProviderAdded}, + }, + }, + { + name: "existing org nil", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: nil, + aggCreator: models.NewAggregateCreator("Test"), + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "idp config config nil", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: &model.Org{ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}}, + new: nil, + aggCreator: models.NewAggregateCreator("Test"), + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + agg, err := LoginPolicyIDPProviderAddedAggregate(tt.args.aggCreator, tt.args.existing, tt.args.new, "IAMID")(tt.args.ctx) + + 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)) + } + for i := 0; i < tt.res.eventLen; i++ { + if !tt.res.wantErr && agg.Events[i].Type != tt.res.eventTypes[i] { + t.Errorf("got wrong event type: expected: %v, actual: %v ", tt.res.eventTypes[i], agg.Events[i].Type.String()) + } + if !tt.res.wantErr && agg.Events[i].Data == nil { + t.Errorf("should have data in event") + } + } + + if tt.res.wantErr && !tt.res.errFunc(err) { + t.Errorf("got wrong err: %v ", err) + } + }) + } +} + +func TestLoginPolicyIdpProviderRemovedAggregate(t *testing.T) { + type args struct { + ctx context.Context + existing *model.Org + new *iam_es_model.IDPProviderID + cascade bool + aggCreator *models.AggregateCreator + } + type res struct { + eventLen int + eventTypes []models.EventType + wantErr bool + errFunc func(err error) bool + } + tests := []struct { + name string + args args + res res + }{ + { + name: "remove idp provider to login policy", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: &model.Org{ + ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, + LoginPolicy: &iam_es_model.LoginPolicy{ + AllowUsernamePassword: true, + IDPProviders: []*iam_es_model.IDPProvider{ + {IDPConfigID: "IDPConfigID", Type: int32(iam_model.IDPProviderTypeSystem)}, + }, + }}, + new: &iam_es_model.IDPProviderID{ + IDPConfigID: "IDPConfigID", + }, + aggCreator: models.NewAggregateCreator("Test"), + }, + res: res{ + eventLen: 1, + eventTypes: []models.EventType{model.LoginPolicyIDPProviderRemoved}, + }, + }, + { + name: "remove idp provider to login policy cascade", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: &model.Org{ + ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}, + LoginPolicy: &iam_es_model.LoginPolicy{ + AllowUsernamePassword: true, + IDPProviders: []*iam_es_model.IDPProvider{ + {IDPConfigID: "IDPConfigID", Type: int32(iam_model.IDPProviderTypeSystem)}, + }, + }}, + new: &iam_es_model.IDPProviderID{ + IDPConfigID: "IDPConfigID", + }, + cascade: true, + aggCreator: models.NewAggregateCreator("Test"), + }, + res: res{ + eventLen: 1, + eventTypes: []models.EventType{model.LoginPolicyIDPProviderCascadeRemoved}, + }, + }, + { + name: "existing org nil", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: nil, + aggCreator: models.NewAggregateCreator("Test"), + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + { + name: "idp config config nil", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: &model.Org{ObjectRoot: models.ObjectRoot{AggregateID: "AggregateID"}}, + new: nil, + aggCreator: models.NewAggregateCreator("Test"), + }, + res: res{ + wantErr: true, + errFunc: caos_errs.IsPreconditionFailed, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + agg, err := LoginPolicyIDPProviderRemovedAggregate(tt.args.ctx, tt.args.aggCreator, tt.args.existing, tt.args.new, tt.args.cascade) + + 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)) + } + for i := 0; i < tt.res.eventLen; i++ { + if !tt.res.wantErr && agg.Events[i].Type != tt.res.eventTypes[i] { + t.Errorf("got wrong event type: expected: %v, actual: %v ", tt.res.eventTypes[i], agg.Events[i].Type.String()) + } + if !tt.res.wantErr && agg.Events[i].Data == nil { + t.Errorf("should have data in event") + } + } + + if tt.res.wantErr && !tt.res.errFunc(err) { + t.Errorf("got wrong err: %v ", err) + } + }) + } +} diff --git a/internal/org/repository/eventsourcing/model/idp_config.go b/internal/org/repository/eventsourcing/model/idp_config.go new file mode 100644 index 000000000..d1326f3d4 --- /dev/null +++ b/internal/org/repository/eventsourcing/model/idp_config.go @@ -0,0 +1,85 @@ +package model + +import ( + es_models "github.com/caos/zitadel/internal/eventstore/models" + "github.com/caos/zitadel/internal/iam/model" + iam_es_model "github.com/caos/zitadel/internal/iam/repository/eventsourcing/model" +) + +func (o *Org) appendAddIDPConfigEvent(event *es_models.Event) error { + idp := new(iam_es_model.IDPConfig) + err := idp.SetData(event) + if err != nil { + return err + } + idp.ObjectRoot.CreationDate = event.CreationDate + o.IDPs = append(o.IDPs, idp) + return nil +} + +func (o *Org) appendChangeIDPConfigEvent(event *es_models.Event) error { + idp := new(iam_es_model.IDPConfig) + err := idp.SetData(event) + if err != nil { + return err + } + if i, idpConfig := iam_es_model.GetIDPConfig(o.IDPs, idp.IDPConfigID); idpConfig != nil { + o.IDPs[i].SetData(event) + } + return nil +} + +func (o *Org) appendRemoveIDPConfigEvent(event *es_models.Event) error { + idp := new(iam_es_model.IDPConfig) + err := idp.SetData(event) + if err != nil { + return err + } + if i, idpConfig := iam_es_model.GetIDPConfig(o.IDPs, idp.IDPConfigID); idpConfig != nil { + o.IDPs[i] = o.IDPs[len(o.IDPs)-1] + o.IDPs[len(o.IDPs)-1] = nil + o.IDPs = o.IDPs[:len(o.IDPs)-1] + } + return nil +} + +func (o *Org) appendIDPConfigStateEvent(event *es_models.Event, state model.IDPConfigState) error { + idp := new(iam_es_model.IDPConfig) + err := idp.SetData(event) + if err != nil { + return err + } + + if i, idpConfig := iam_es_model.GetIDPConfig(o.IDPs, idp.IDPConfigID); idpConfig != nil { + idpConfig.State = int32(state) + o.IDPs[i] = idpConfig + } + return nil +} + +func (o *Org) appendAddOIDCIDPConfigEvent(event *es_models.Event) error { + config := new(iam_es_model.OIDCIDPConfig) + err := config.SetData(event) + if err != nil { + return err + } + config.ObjectRoot.CreationDate = event.CreationDate + if i, idpConfig := iam_es_model.GetIDPConfig(o.IDPs, config.IDPConfigID); idpConfig != nil { + o.IDPs[i].Type = int32(model.IDPConfigTypeOIDC) + o.IDPs[i].OIDCIDPConfig = config + } + return nil +} + +func (o *Org) appendChangeOIDCIDPConfigEvent(event *es_models.Event) error { + config := new(iam_es_model.OIDCIDPConfig) + err := config.SetData(event) + if err != nil { + return err + } + + if i, idpConfig := iam_es_model.GetIDPConfig(o.IDPs, config.IDPConfigID); idpConfig != nil { + o.IDPs[i].OIDCIDPConfig.SetData(event) + } + return nil +} diff --git a/internal/org/repository/eventsourcing/model/idp_config_test.go b/internal/org/repository/eventsourcing/model/idp_config_test.go new file mode 100644 index 000000000..affe1060d --- /dev/null +++ b/internal/org/repository/eventsourcing/model/idp_config_test.go @@ -0,0 +1,252 @@ +package model + +import ( + "encoding/json" + es_models "github.com/caos/zitadel/internal/eventstore/models" + "github.com/caos/zitadel/internal/iam/model" + iam_es_model "github.com/caos/zitadel/internal/iam/repository/eventsourcing/model" + "testing" +) + +func TestAppendAddIdpConfigEvent(t *testing.T) { + type args struct { + org *Org + idp *iam_es_model.IDPConfig + event *es_models.Event + } + tests := []struct { + name string + args args + result *Org + }{ + { + name: "append add idp config event", + args: args{ + org: &Org{}, + idp: &iam_es_model.IDPConfig{Name: "IDPConfig"}, + event: &es_models.Event{}, + }, + result: &Org{IDPs: []*iam_es_model.IDPConfig{&iam_es_model.IDPConfig{Name: "IDPConfig"}}}, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if tt.args.idp != nil { + data, _ := json.Marshal(tt.args.idp) + tt.args.event.Data = data + } + tt.args.org.appendAddIDPConfigEvent(tt.args.event) + if len(tt.args.org.IDPs) != 1 { + t.Errorf("got wrong result should have one idpConfig actual: %v ", len(tt.args.org.IDPs)) + } + if tt.args.org.IDPs[0] == tt.result.IDPs[0] { + t.Errorf("got wrong result: expected: %v, actual: %v ", tt.result.IDPs[0], tt.args.org.IDPs[0]) + } + }) + } +} + +func TestAppendChangeIdpConfigEvent(t *testing.T) { + type args struct { + org *Org + idpConfig *iam_es_model.IDPConfig + event *es_models.Event + } + tests := []struct { + name string + args args + result *Org + }{ + { + name: "append change idp config event", + args: args{ + org: &Org{IDPs: []*iam_es_model.IDPConfig{&iam_es_model.IDPConfig{Name: "IDPConfig"}}}, + idpConfig: &iam_es_model.IDPConfig{Name: "IDPConfig Change"}, + event: &es_models.Event{}, + }, + result: &Org{IDPs: []*iam_es_model.IDPConfig{&iam_es_model.IDPConfig{Name: "IDPConfig Change"}}}, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if tt.args.idpConfig != nil { + data, _ := json.Marshal(tt.args.idpConfig) + tt.args.event.Data = data + } + tt.args.org.appendChangeIDPConfigEvent(tt.args.event) + if len(tt.args.org.IDPs) != 1 { + t.Errorf("got wrong result should have one idpConfig actual: %v ", len(tt.args.org.IDPs)) + } + if tt.args.org.IDPs[0] == tt.result.IDPs[0] { + t.Errorf("got wrong result: expected: %v, actual: %v ", tt.result.IDPs[0], tt.args.org.IDPs[0]) + } + }) + } +} + +func TestAppendRemoveIDPEvent(t *testing.T) { + type args struct { + org *Org + idp *iam_es_model.IDPConfig + event *es_models.Event + } + tests := []struct { + name string + args args + result *Org + }{ + { + name: "append remove idp config event", + args: args{ + org: &Org{IDPs: []*iam_es_model.IDPConfig{&iam_es_model.IDPConfig{IDPConfigID: "IDPConfigID", Name: "IDPConfig"}}}, + idp: &iam_es_model.IDPConfig{IDPConfigID: "IDPConfigID", Name: "IDPConfig"}, + event: &es_models.Event{}, + }, + result: &Org{IDPs: []*iam_es_model.IDPConfig{}}, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if tt.args.idp != nil { + data, _ := json.Marshal(tt.args.idp) + tt.args.event.Data = data + } + tt.args.org.appendRemoveIDPConfigEvent(tt.args.event) + if len(tt.args.org.IDPs) != 0 { + t.Errorf("got wrong result should have no apps actual: %v ", len(tt.args.org.IDPs)) + } + }) + } +} + +func TestAppendAppStateEvent(t *testing.T) { + type args struct { + org *Org + idp *iam_es_model.IDPConfig + event *es_models.Event + state model.IDPConfigState + } + tests := []struct { + name string + args args + result *Org + }{ + { + name: "append deactivate application event", + args: args{ + org: &Org{IDPs: []*iam_es_model.IDPConfig{&iam_es_model.IDPConfig{IDPConfigID: "IDPConfigID", Name: "IDPConfig", State: int32(model.IDPConfigStateActive)}}}, + idp: &iam_es_model.IDPConfig{IDPConfigID: "IDPConfigID"}, + event: &es_models.Event{}, + state: model.IDPConfigStateInactive, + }, + result: &Org{IDPs: []*iam_es_model.IDPConfig{&iam_es_model.IDPConfig{IDPConfigID: "IDPConfigID", Name: "IDPConfig", State: int32(model.IDPConfigStateInactive)}}}, + }, + { + name: "append reactivate application event", + args: args{ + org: &Org{IDPs: []*iam_es_model.IDPConfig{&iam_es_model.IDPConfig{IDPConfigID: "IDPConfigID", Name: "IDPConfig", State: int32(model.IDPConfigStateInactive)}}}, + idp: &iam_es_model.IDPConfig{IDPConfigID: "IDPConfigID"}, + event: &es_models.Event{}, + state: model.IDPConfigStateActive, + }, + result: &Org{IDPs: []*iam_es_model.IDPConfig{&iam_es_model.IDPConfig{IDPConfigID: "IDPConfigID", Name: "IDPConfig", State: int32(model.IDPConfigStateActive)}}}, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if tt.args.idp != nil { + data, _ := json.Marshal(tt.args.idp) + tt.args.event.Data = data + } + tt.args.org.appendIDPConfigStateEvent(tt.args.event, tt.args.state) + if len(tt.args.org.IDPs) != 1 { + t.Errorf("got wrong result should have one idpConfig actual: %v ", len(tt.args.org.IDPs)) + } + if tt.args.org.IDPs[0] == tt.result.IDPs[0] { + t.Errorf("got wrong result: expected: %v, actual: %v ", tt.result.IDPs[0], tt.args.org.IDPs[0]) + } + }) + } +} + +func TestAppendAddOIDCIdpConfigEvent(t *testing.T) { + type args struct { + org *Org + config *iam_es_model.OIDCIDPConfig + event *es_models.Event + } + tests := []struct { + name string + args args + result *Org + }{ + { + name: "append add oidc idp config event", + args: args{ + org: &Org{IDPs: []*iam_es_model.IDPConfig{&iam_es_model.IDPConfig{IDPConfigID: "IDPConfigID"}}}, + config: &iam_es_model.OIDCIDPConfig{IDPConfigID: "IDPConfigID", ClientID: "ClientID"}, + event: &es_models.Event{}, + }, + result: &Org{IDPs: []*iam_es_model.IDPConfig{&iam_es_model.IDPConfig{IDPConfigID: "IDPConfigID", OIDCIDPConfig: &iam_es_model.OIDCIDPConfig{IDPConfigID: "IDPConfigID", ClientID: "ClientID"}}}}, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if tt.args.config != nil { + data, _ := json.Marshal(tt.args.config) + tt.args.event.Data = data + } + tt.args.org.appendAddOIDCIDPConfigEvent(tt.args.event) + if len(tt.args.org.IDPs) != 1 { + t.Errorf("got wrong result should have one idpConfig actual: %v ", len(tt.args.org.IDPs)) + } + if tt.args.org.IDPs[0].OIDCIDPConfig == nil { + t.Errorf("got wrong result should have oidc config actual: %v ", tt.args.org.IDPs[0].OIDCIDPConfig) + } + if tt.args.org.IDPs[0] == tt.result.IDPs[0] { + t.Errorf("got wrong result: expected: %v, actual: %v ", tt.result.IDPs[0], tt.args.org.IDPs[0]) + } + }) + } +} + +func TestAppendChangeOIDCIdpConfigEvent(t *testing.T) { + type args struct { + org *Org + config *iam_es_model.OIDCIDPConfig + event *es_models.Event + } + tests := []struct { + name string + args args + result *Org + }{ + { + name: "append change oidc idp config event", + args: args{ + org: &Org{IDPs: []*iam_es_model.IDPConfig{&iam_es_model.IDPConfig{IDPConfigID: "IDPConfigID", OIDCIDPConfig: &iam_es_model.OIDCIDPConfig{IDPConfigID: "IDPConfigID", ClientID: "ClientID"}}}}, + config: &iam_es_model.OIDCIDPConfig{IDPConfigID: "IDPConfigID", ClientID: "ClientID Changed"}, + event: &es_models.Event{}, + }, + result: &Org{IDPs: []*iam_es_model.IDPConfig{&iam_es_model.IDPConfig{IDPConfigID: "IDPConfigID", OIDCIDPConfig: &iam_es_model.OIDCIDPConfig{IDPConfigID: "IDPConfigID", ClientID: "ClientID Changed"}}}}, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if tt.args.config != nil { + data, _ := json.Marshal(tt.args.config) + tt.args.event.Data = data + } + tt.args.org.appendChangeOIDCIDPConfigEvent(tt.args.event) + if len(tt.args.org.IDPs) != 1 { + t.Errorf("got wrong result should have one idpConfig actual: %v ", len(tt.args.org.IDPs)) + } + if tt.args.org.IDPs[0].OIDCIDPConfig == nil { + t.Errorf("got wrong result should have oidc config actual: %v ", tt.args.org.IDPs[0].OIDCIDPConfig) + } + if tt.args.org.IDPs[0] == tt.result.IDPs[0] { + t.Errorf("got wrong result: expected: %v, actual: %v ", tt.result.IDPs[0], tt.args.org.IDPs[0]) + } + }) + } +} diff --git a/internal/org/repository/eventsourcing/model/login_policy.go b/internal/org/repository/eventsourcing/model/login_policy.go new file mode 100644 index 000000000..c3177f22e --- /dev/null +++ b/internal/org/repository/eventsourcing/model/login_policy.go @@ -0,0 +1,49 @@ +package model + +import ( + es_models "github.com/caos/zitadel/internal/eventstore/models" + iam_es_model "github.com/caos/zitadel/internal/iam/repository/eventsourcing/model" +) + +func (o *Org) appendAddLoginPolicyEvent(event *es_models.Event) error { + o.LoginPolicy = new(iam_es_model.LoginPolicy) + err := o.LoginPolicy.SetData(event) + if err != nil { + return err + } + o.LoginPolicy.ObjectRoot.CreationDate = event.CreationDate + return nil +} + +func (o *Org) appendChangeLoginPolicyEvent(event *es_models.Event) error { + return o.LoginPolicy.SetData(event) +} + +func (o *Org) appendRemoveLoginPolicyEvent(event *es_models.Event) { + o.LoginPolicy = nil +} + +func (o *Org) appendAddIdpProviderToLoginPolicyEvent(event *es_models.Event) error { + provider := &iam_es_model.IDPProvider{} + err := provider.SetData(event) + if err != nil { + return err + } + provider.ObjectRoot.CreationDate = event.CreationDate + o.LoginPolicy.IDPProviders = append(o.LoginPolicy.IDPProviders, provider) + return nil +} + +func (o *Org) appendRemoveIdpProviderFromLoginPolicyEvent(event *es_models.Event) error { + provider := &iam_es_model.IDPProvider{} + err := provider.SetData(event) + if err != nil { + return err + } + if i, m := iam_es_model.GetIDPProvider(o.LoginPolicy.IDPProviders, provider.IDPConfigID); m != nil { + o.LoginPolicy.IDPProviders[i] = o.LoginPolicy.IDPProviders[len(o.LoginPolicy.IDPProviders)-1] + o.LoginPolicy.IDPProviders[len(o.LoginPolicy.IDPProviders)-1] = nil + o.LoginPolicy.IDPProviders = o.LoginPolicy.IDPProviders[:len(o.LoginPolicy.IDPProviders)-1] + } + return nil +} diff --git a/internal/org/repository/eventsourcing/model/login_policy_test.go b/internal/org/repository/eventsourcing/model/login_policy_test.go new file mode 100644 index 000000000..2bebf409f --- /dev/null +++ b/internal/org/repository/eventsourcing/model/login_policy_test.go @@ -0,0 +1,210 @@ +package model + +import ( + "encoding/json" + es_models "github.com/caos/zitadel/internal/eventstore/models" + iam_model "github.com/caos/zitadel/internal/iam/model" + iam_es_model "github.com/caos/zitadel/internal/iam/repository/eventsourcing/model" + "testing" +) + +func TestAppendAddLoginPolicyEvent(t *testing.T) { + type args struct { + org *Org + policy *iam_es_model.LoginPolicy + event *es_models.Event + } + tests := []struct { + name string + args args + result *Org + }{ + { + name: "append add login policy event", + args: args{ + org: &Org{}, + policy: &iam_es_model.LoginPolicy{AllowUsernamePassword: true, AllowRegister: true, AllowExternalIdp: true}, + event: &es_models.Event{}, + }, + result: &Org{LoginPolicy: &iam_es_model.LoginPolicy{AllowUsernamePassword: true, AllowRegister: true, AllowExternalIdp: true}}, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if tt.args.policy != nil { + data, _ := json.Marshal(tt.args.policy) + tt.args.event.Data = data + } + tt.args.org.appendAddLoginPolicyEvent(tt.args.event) + if tt.result.LoginPolicy.AllowUsernamePassword != tt.args.org.LoginPolicy.AllowUsernamePassword { + t.Errorf("got wrong result: expected: %v, actual: %v ", tt.result.LoginPolicy.AllowUsernamePassword, tt.args.org.LoginPolicy.AllowUsernamePassword) + } + if tt.result.LoginPolicy.AllowRegister != tt.args.org.LoginPolicy.AllowRegister { + t.Errorf("got wrong result: expected: %v, actual: %v ", tt.result.LoginPolicy.AllowRegister, tt.args.org.LoginPolicy.AllowRegister) + } + if tt.result.LoginPolicy.AllowExternalIdp != tt.args.org.LoginPolicy.AllowExternalIdp { + t.Errorf("got wrong result: expected: %v, actual: %v ", tt.result.LoginPolicy.AllowExternalIdp, tt.args.org.LoginPolicy.AllowExternalIdp) + } + }) + } +} + +func TestAppendChangeLoginPolicyEvent(t *testing.T) { + type args struct { + org *Org + policy *iam_es_model.LoginPolicy + event *es_models.Event + } + tests := []struct { + name string + args args + result *Org + }{ + { + name: "append change login policy event", + args: args{ + org: &Org{LoginPolicy: &iam_es_model.LoginPolicy{ + AllowExternalIdp: false, + AllowRegister: false, + AllowUsernamePassword: false, + }}, + policy: &iam_es_model.LoginPolicy{AllowUsernamePassword: true, AllowRegister: true, AllowExternalIdp: true}, + event: &es_models.Event{}, + }, + result: &Org{LoginPolicy: &iam_es_model.LoginPolicy{ + AllowExternalIdp: true, + AllowRegister: true, + AllowUsernamePassword: true, + }}, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if tt.args.policy != nil { + data, _ := json.Marshal(tt.args.policy) + tt.args.event.Data = data + } + tt.args.org.appendChangeLoginPolicyEvent(tt.args.event) + if tt.result.LoginPolicy.AllowUsernamePassword != tt.args.org.LoginPolicy.AllowUsernamePassword { + t.Errorf("got wrong result: expected: %v, actual: %v ", tt.result.LoginPolicy.AllowUsernamePassword, tt.args.org.LoginPolicy.AllowUsernamePassword) + } + if tt.result.LoginPolicy.AllowRegister != tt.args.org.LoginPolicy.AllowRegister { + t.Errorf("got wrong result: expected: %v, actual: %v ", tt.result.LoginPolicy.AllowRegister, tt.args.org.LoginPolicy.AllowRegister) + } + if tt.result.LoginPolicy.AllowExternalIdp != tt.args.org.LoginPolicy.AllowExternalIdp { + t.Errorf("got wrong result: expected: %v, actual: %v ", tt.result.LoginPolicy.AllowExternalIdp, tt.args.org.LoginPolicy.AllowExternalIdp) + } + }) + } +} + +func TestAppendAddIdpToPolicyEvent(t *testing.T) { + type args struct { + org *Org + provider *iam_es_model.IDPProvider + event *es_models.Event + } + tests := []struct { + name string + args args + result *Org + }{ + { + name: "append add idp to login policy event", + args: args{ + org: &Org{LoginPolicy: &iam_es_model.LoginPolicy{AllowExternalIdp: true, AllowRegister: true, AllowUsernamePassword: true}}, + provider: &iam_es_model.IDPProvider{Type: int32(iam_model.IDPProviderTypeSystem), IDPConfigID: "IDPConfigID"}, + event: &es_models.Event{}, + }, + result: &Org{LoginPolicy: &iam_es_model.LoginPolicy{ + AllowExternalIdp: true, + AllowRegister: true, + AllowUsernamePassword: true, + IDPProviders: []*iam_es_model.IDPProvider{ + {IDPConfigID: "IDPConfigID", Type: int32(iam_model.IDPProviderTypeSystem)}, + }}}, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if tt.args.provider != nil { + data, _ := json.Marshal(tt.args.provider) + tt.args.event.Data = data + } + tt.args.org.appendAddIdpProviderToLoginPolicyEvent(tt.args.event) + if tt.result.LoginPolicy.AllowUsernamePassword != tt.args.org.LoginPolicy.AllowUsernamePassword { + t.Errorf("got wrong result AllowUsernamePassword: expected: %v, actual: %v ", tt.result.LoginPolicy.AllowUsernamePassword, tt.args.org.LoginPolicy.AllowUsernamePassword) + } + if tt.result.LoginPolicy.AllowRegister != tt.args.org.LoginPolicy.AllowRegister { + t.Errorf("got wrong result AllowRegister: expected: %v, actual: %v ", tt.result.LoginPolicy.AllowRegister, tt.args.org.LoginPolicy.AllowRegister) + } + if tt.result.LoginPolicy.AllowExternalIdp != tt.args.org.LoginPolicy.AllowExternalIdp { + t.Errorf("got wrong result AllowExternalIDP: expected: %v, actual: %v ", tt.result.LoginPolicy.AllowExternalIdp, tt.args.org.LoginPolicy.AllowExternalIdp) + } + if len(tt.result.LoginPolicy.IDPProviders) != len(tt.args.org.LoginPolicy.IDPProviders) { + t.Errorf("got wrong idp provider len: expected: %v, actual: %v ", len(tt.result.LoginPolicy.IDPProviders), len(tt.args.org.LoginPolicy.IDPProviders)) + } + if tt.result.LoginPolicy.IDPProviders[0].Type != tt.args.provider.Type { + t.Errorf("got wrong idp provider type: expected: %v, actual: %v ", tt.result.LoginPolicy.IDPProviders[0].Type, tt.args.provider.Type) + } + if tt.result.LoginPolicy.IDPProviders[0].IDPConfigID != tt.args.provider.IDPConfigID { + t.Errorf("got wrong idp provider idpconfigid: expected: %v, actual: %v ", tt.result.LoginPolicy.IDPProviders[0].IDPConfigID, tt.args.provider.IDPConfigID) + } + }) + } +} + +func TestRemoveAddIdpToPolicyEvent(t *testing.T) { + type args struct { + org *Org + provider *iam_es_model.IDPProvider + event *es_models.Event + } + tests := []struct { + name string + args args + result *Org + }{ + { + name: "append add idp to login policy event", + args: args{ + org: &Org{ + LoginPolicy: &iam_es_model.LoginPolicy{ + AllowExternalIdp: true, + AllowRegister: true, + AllowUsernamePassword: true, + IDPProviders: []*iam_es_model.IDPProvider{ + {IDPConfigID: "IDPConfigID", Type: int32(iam_model.IDPProviderTypeSystem)}, + }}}, + provider: &iam_es_model.IDPProvider{Type: int32(iam_model.IDPProviderTypeSystem), IDPConfigID: "IDPConfigID"}, + event: &es_models.Event{}, + }, + result: &Org{LoginPolicy: &iam_es_model.LoginPolicy{ + AllowExternalIdp: true, + AllowRegister: true, + AllowUsernamePassword: true, + IDPProviders: []*iam_es_model.IDPProvider{}}}, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if tt.args.provider != nil { + data, _ := json.Marshal(tt.args.provider) + tt.args.event.Data = data + } + tt.args.org.appendRemoveIdpProviderFromLoginPolicyEvent(tt.args.event) + if tt.result.LoginPolicy.AllowUsernamePassword != tt.args.org.LoginPolicy.AllowUsernamePassword { + t.Errorf("got wrong result AllowUsernamePassword: expected: %v, actual: %v ", tt.result.LoginPolicy.AllowUsernamePassword, tt.args.org.LoginPolicy.AllowUsernamePassword) + } + if tt.result.LoginPolicy.AllowRegister != tt.args.org.LoginPolicy.AllowRegister { + t.Errorf("got wrong result AllowRegister: expected: %v, actual: %v ", tt.result.LoginPolicy.AllowRegister, tt.args.org.LoginPolicy.AllowRegister) + } + if tt.result.LoginPolicy.AllowExternalIdp != tt.args.org.LoginPolicy.AllowExternalIdp { + t.Errorf("got wrong result AllowExternalIDP: expected: %v, actual: %v ", tt.result.LoginPolicy.AllowExternalIdp, tt.args.org.LoginPolicy.AllowExternalIdp) + } + if len(tt.result.LoginPolicy.IDPProviders) != len(tt.args.org.LoginPolicy.IDPProviders) { + t.Errorf("got wrong idp provider len: expected: %v, actual: %v ", len(tt.result.LoginPolicy.IDPProviders), len(tt.args.org.LoginPolicy.IDPProviders)) + } + }) + } +} diff --git a/internal/org/repository/eventsourcing/model/org.go b/internal/org/repository/eventsourcing/model/org.go index f0d916fd0..18c04acaf 100644 --- a/internal/org/repository/eventsourcing/model/org.go +++ b/internal/org/repository/eventsourcing/model/org.go @@ -2,6 +2,8 @@ package model import ( "encoding/json" + "github.com/caos/zitadel/internal/iam/model" + iam_es_model "github.com/caos/zitadel/internal/iam/repository/eventsourcing/model" "github.com/caos/zitadel/internal/errors" es_models "github.com/caos/zitadel/internal/eventstore/models" @@ -18,23 +20,30 @@ type Org struct { Name string `json:"name,omitempty"` State int32 `json:"-"` - Domains []*OrgDomain `json:"-"` - Members []*OrgMember `json:"-"` - OrgIamPolicy *OrgIamPolicy `json:"-"` + Domains []*OrgDomain `json:"-"` + Members []*OrgMember `json:"-"` + OrgIamPolicy *OrgIAMPolicy `json:"-"` + LoginPolicy *iam_es_model.LoginPolicy `json:"-"` + IDPs []*iam_es_model.IDPConfig `json:"-"` } func OrgFromModel(org *org_model.Org) *Org { members := OrgMembersFromModel(org.Members) domains := OrgDomainsFromModel(org.Domains) + idps := iam_es_model.IDPConfigsFromModel(org.IDPs) converted := &Org{ ObjectRoot: org.ObjectRoot, Name: org.Name, State: int32(org.State), Domains: domains, Members: members, + IDPs: idps, } if org.OrgIamPolicy != nil { - converted.OrgIamPolicy = OrgIamPolicyFromModel(org.OrgIamPolicy) + converted.OrgIamPolicy = OrgIAMPolicyFromModel(org.OrgIamPolicy) + } + if org.LoginPolicy != nil { + converted.LoginPolicy = iam_es_model.LoginPolicyFromModel(org.LoginPolicy) } return converted } @@ -46,9 +55,13 @@ func OrgToModel(org *Org) *org_model.Org { State: org_model.OrgState(org.State), Domains: OrgDomainsToModel(org.Domains), Members: OrgMembersToModel(org.Members), + IDPs: iam_es_model.IDPConfigsToModel(org.IDPs), } if org.OrgIamPolicy != nil { - converted.OrgIamPolicy = OrgIamPolicyToModel(org.OrgIamPolicy) + converted.OrgIamPolicy = OrgIAMPolicyToModel(org.OrgIamPolicy) + } + if org.LoginPolicy != nil { + converted.LoginPolicy = iam_es_model.LoginPolicyToModel(org.LoginPolicy) } return converted } @@ -71,16 +84,16 @@ func (o *Org) AppendEvents(events ...*es_models.Event) error { return nil } -func (o *Org) AppendEvent(event *es_models.Event) error { +func (o *Org) AppendEvent(event *es_models.Event) (err error) { switch event.Type { case OrgAdded: *o = Org{} - err := o.setData(event) + err = o.setData(event) if err != nil { return err } case OrgChanged: - err := o.setData(event) + err = o.setData(event) if err != nil { return err } @@ -112,25 +125,50 @@ func (o *Org) AppendEvent(event *es_models.Event) error { } o.removeMember(member.UserID) case OrgDomainAdded: - o.appendAddDomainEvent(event) + err = o.appendAddDomainEvent(event) case OrgDomainVerificationAdded: - o.appendVerificationDomainEvent(event) + err = o.appendVerificationDomainEvent(event) case OrgDomainVerified: - o.appendVerifyDomainEvent(event) + err = o.appendVerifyDomainEvent(event) case OrgDomainPrimarySet: - o.appendPrimaryDomainEvent(event) + err = o.appendPrimaryDomainEvent(event) case OrgDomainRemoved: - o.appendRemoveDomainEvent(event) - case OrgIamPolicyAdded: - o.appendAddOrgIamPolicyEvent(event) - case OrgIamPolicyChanged: - o.appendChangeOrgIamPolicyEvent(event) - case OrgIamPolicyRemoved: - o.appendRemoveOrgIamPolicyEvent() + err = o.appendRemoveDomainEvent(event) + case OrgIAMPolicyAdded: + err = o.appendAddOrgIAMPolicyEvent(event) + case OrgIAMPolicyChanged: + err = o.appendChangeOrgIAMPolicyEvent(event) + case OrgIAMPolicyRemoved: + o.appendRemoveOrgIAMPolicyEvent() + case IDPConfigAdded: + err = o.appendAddIDPConfigEvent(event) + case IDPConfigChanged: + err = o.appendChangeIDPConfigEvent(event) + case IDPConfigRemoved: + err = o.appendRemoveIDPConfigEvent(event) + case IDPConfigDeactivated: + err = o.appendIDPConfigStateEvent(event, model.IDPConfigStateInactive) + case IDPConfigReactivated: + err = o.appendIDPConfigStateEvent(event, model.IDPConfigStateActive) + case OIDCIDPConfigAdded: + err = o.appendAddOIDCIDPConfigEvent(event) + case OIDCIDPConfigChanged: + err = o.appendChangeOIDCIDPConfigEvent(event) + case LoginPolicyAdded: + err = o.appendAddLoginPolicyEvent(event) + case LoginPolicyChanged: + err = o.appendChangeLoginPolicyEvent(event) + case LoginPolicyRemoved: + o.appendRemoveLoginPolicyEvent(event) + case LoginPolicyIDPProviderAdded: + err = o.appendAddIdpProviderToLoginPolicyEvent(event) + case LoginPolicyIDPProviderRemoved: + err = o.appendRemoveIdpProviderFromLoginPolicyEvent(event) + } + if err != nil { + return err } - o.ObjectRoot.AppendEvent(event) - return nil } diff --git a/internal/org/repository/eventsourcing/model/org_iam_policy.go b/internal/org/repository/eventsourcing/model/org_iam_policy.go index 86b62cc2d..354ee5cc3 100644 --- a/internal/org/repository/eventsourcing/model/org_iam_policy.go +++ b/internal/org/repository/eventsourcing/model/org_iam_policy.go @@ -8,7 +8,7 @@ import ( org_model "github.com/caos/zitadel/internal/org/model" ) -type OrgIamPolicy struct { +type OrgIAMPolicy struct { models.ObjectRoot Description string `json:"description,omitempty"` @@ -16,24 +16,24 @@ type OrgIamPolicy struct { UserLoginMustBeDomain bool `json:"userLoginMustBeDomain"` } -func OrgIamPolicyToModel(policy *OrgIamPolicy) *org_model.OrgIamPolicy { - return &org_model.OrgIamPolicy{ +func OrgIAMPolicyToModel(policy *OrgIAMPolicy) *org_model.OrgIAMPolicy { + return &org_model.OrgIAMPolicy{ ObjectRoot: policy.ObjectRoot, State: org_model.PolicyState(policy.State), UserLoginMustBeDomain: policy.UserLoginMustBeDomain, } } -func OrgIamPolicyFromModel(policy *org_model.OrgIamPolicy) *OrgIamPolicy { - return &OrgIamPolicy{ +func OrgIAMPolicyFromModel(policy *org_model.OrgIAMPolicy) *OrgIAMPolicy { + return &OrgIAMPolicy{ ObjectRoot: policy.ObjectRoot, State: int32(policy.State), UserLoginMustBeDomain: policy.UserLoginMustBeDomain, } } -func (o *Org) appendAddOrgIamPolicyEvent(event *es_models.Event) error { - o.OrgIamPolicy = new(OrgIamPolicy) +func (o *Org) appendAddOrgIAMPolicyEvent(event *es_models.Event) error { + o.OrgIamPolicy = new(OrgIAMPolicy) err := o.OrgIamPolicy.SetData(event) if err != nil { return err @@ -42,15 +42,15 @@ func (o *Org) appendAddOrgIamPolicyEvent(event *es_models.Event) error { return nil } -func (o *Org) appendChangeOrgIamPolicyEvent(event *es_models.Event) error { +func (o *Org) appendChangeOrgIAMPolicyEvent(event *es_models.Event) error { return o.OrgIamPolicy.SetData(event) } -func (o *Org) appendRemoveOrgIamPolicyEvent() { +func (o *Org) appendRemoveOrgIAMPolicyEvent() { o.OrgIamPolicy = nil } -func (p *OrgIamPolicy) Changes(changed *OrgIamPolicy) map[string]interface{} { +func (p *OrgIAMPolicy) Changes(changed *OrgIAMPolicy) map[string]interface{} { changes := make(map[string]interface{}, 2) if changed.Description != p.Description { @@ -63,7 +63,7 @@ func (p *OrgIamPolicy) Changes(changed *OrgIamPolicy) map[string]interface{} { return changes } -func (p *OrgIamPolicy) SetData(event *es_models.Event) error { +func (p *OrgIAMPolicy) SetData(event *es_models.Event) error { err := json.Unmarshal(event.Data, p) if err != nil { return errors.ThrowInternal(err, "EVENT-7JS9d", "unable to unmarshal data") diff --git a/internal/org/repository/eventsourcing/model/org_test.go b/internal/org/repository/eventsourcing/model/org_test.go index 96ad8c628..e83c6f4e2 100644 --- a/internal/org/repository/eventsourcing/model/org_test.go +++ b/internal/org/repository/eventsourcing/model/org_test.go @@ -93,13 +93,6 @@ func TestAppendEvent(t *testing.T) { }, result: &Org{ObjectRoot: es_models.ObjectRoot{AggregateID: "ID"}, State: int32(model.OrgStateActive)}, }, - { - name: "append added domain event", - args: args{ - event: &es_models.Event{AggregateID: "ID", Sequence: 1, Type: OrgDomainAdded}, - }, - result: &Org{ObjectRoot: es_models.ObjectRoot{AggregateID: "ID"}, State: int32(model.OrgStateActive)}, - }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { diff --git a/internal/org/repository/eventsourcing/model/types.go b/internal/org/repository/eventsourcing/model/types.go index ffa928be9..c07df6663 100644 --- a/internal/org/repository/eventsourcing/model/types.go +++ b/internal/org/repository/eventsourcing/model/types.go @@ -29,7 +29,26 @@ const ( OrgMemberChanged models.EventType = "org.member.changed" OrgMemberRemoved models.EventType = "org.member.removed" - OrgIamPolicyAdded models.EventType = "org.iam.policy.added" - OrgIamPolicyChanged models.EventType = "org.iam.policy.changed" - OrgIamPolicyRemoved models.EventType = "org.iam.policy.removed" + OrgIAMPolicyAdded models.EventType = "org.iam.policy.added" + OrgIAMPolicyChanged models.EventType = "org.iam.policy.changed" + OrgIAMPolicyRemoved models.EventType = "org.iam.policy.removed" + + IDPConfigAdded models.EventType = "org.idp.config.added" + IDPConfigChanged models.EventType = "org.idp.config.changed" + IDPConfigRemoved models.EventType = "org.idp.config.removed" + IDPConfigDeactivated models.EventType = "org.idp.config.deactivated" + IDPConfigReactivated models.EventType = "org.idp.config.reactivated" + + OIDCIDPConfigAdded models.EventType = "org.idp.oidc.config.added" + OIDCIDPConfigChanged models.EventType = "org.idp.oidc.config.changed" + + SAMLIDPConfigAdded models.EventType = "org.idp.saml.config.added" + SAMLIDPConfigChanged models.EventType = "org.idp.saml.config.changed" + + LoginPolicyAdded models.EventType = "org.policy.login.added" + LoginPolicyChanged models.EventType = "org.policy.login.changed" + LoginPolicyRemoved models.EventType = "org.policy.login.removed" + LoginPolicyIDPProviderAdded models.EventType = "org.policy.login.idpprovider.added" + LoginPolicyIDPProviderRemoved models.EventType = "org.policy.login.idpprovider.removed" + LoginPolicyIDPProviderCascadeRemoved models.EventType = "org.policy.login.idpprovider.cascade.removed" ) diff --git a/internal/org/repository/eventsourcing/org.go b/internal/org/repository/eventsourcing/org.go index c8ca115cf..2fc8ccee8 100644 --- a/internal/org/repository/eventsourcing/org.go +++ b/internal/org/repository/eventsourcing/org.go @@ -5,6 +5,7 @@ import ( "github.com/caos/zitadel/internal/errors" es_models "github.com/caos/zitadel/internal/eventstore/models" + iam_es_model "github.com/caos/zitadel/internal/iam/repository/eventsourcing/model" org_model "github.com/caos/zitadel/internal/org/model" "github.com/caos/zitadel/internal/org/repository/eventsourcing/model" ) @@ -339,6 +340,119 @@ func OrgDomainRemovedAggregate(ctx context.Context, aggCreator *es_models.Aggreg return append(aggregates, domainAgregate), nil } +func IDPConfigAddedAggregate(aggCreator *es_models.AggregateCreator, existing *model.Org, idp *iam_es_model.IDPConfig) func(ctx context.Context) (*es_models.Aggregate, error) { + return func(ctx context.Context) (*es_models.Aggregate, error) { + if idp == nil { + return nil, errors.ThrowPreconditionFailed(nil, "EVENT-MSki8", "Errors.Internal") + } + agg, err := OrgAggregate(ctx, aggCreator, existing.AggregateID, existing.Sequence) + if err != nil { + return nil, err + } + agg.AppendEvent(model.IDPConfigAdded, idp) + if idp.OIDCIDPConfig != nil { + agg.AppendEvent(model.OIDCIDPConfigAdded, idp.OIDCIDPConfig) + } + return agg, nil + } +} + +func IDPConfigChangedAggregate(aggCreator *es_models.AggregateCreator, existing *model.Org, idp *iam_es_model.IDPConfig) func(ctx context.Context) (*es_models.Aggregate, error) { + return func(ctx context.Context) (*es_models.Aggregate, error) { + if idp == nil { + return nil, errors.ThrowPreconditionFailed(nil, "EVENT-Akdi8", "Errors.Internal") + } + agg, err := OrgAggregate(ctx, aggCreator, existing.AggregateID, existing.Sequence) + if err != nil { + return nil, err + } + var changes map[string]interface{} + for _, i := range existing.IDPs { + if i.IDPConfigID == idp.IDPConfigID { + changes = i.Changes(idp) + } + } + agg.AppendEvent(model.IDPConfigChanged, changes) + + return agg, nil + } +} + +func IDPConfigRemovedAggregate(ctx context.Context, aggCreator *es_models.AggregateCreator, existing *model.Org, idp *iam_es_model.IDPConfig, provider *iam_es_model.IDPProvider) (*es_models.Aggregate, error) { + if idp == nil { + return nil, errors.ThrowPreconditionFailed(nil, "EVENT-Mlso9", "Errors.Internal") + } + agg, err := OrgAggregate(ctx, aggCreator, existing.AggregateID, existing.Sequence) + 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 + } + if provider != nil { + return agg.AppendEvent(model.LoginPolicyIDPProviderCascadeRemoved, &iam_es_model.IDPProviderID{IDPConfigID: provider.IDPConfigID}) + } + return agg, nil + +} + +func IDPConfigDeactivatedAggregate(aggCreator *es_models.AggregateCreator, existing *model.Org, idp *iam_es_model.IDPConfig) func(ctx context.Context) (*es_models.Aggregate, error) { + return func(ctx context.Context) (*es_models.Aggregate, error) { + if idp == nil { + return nil, errors.ThrowPreconditionFailed(nil, "EVENT-3sz7d", "Errors.Internal") + } + agg, err := OrgAggregate(ctx, aggCreator, existing.AggregateID, existing.Sequence) + if err != nil { + return nil, err + } + agg.AppendEvent(model.IDPConfigDeactivated, &iam_es_model.IDPConfigID{IDPConfigID: idp.IDPConfigID}) + + return agg, nil + } +} + +func IDPConfigReactivatedAggregate(aggCreator *es_models.AggregateCreator, existing *model.Org, idp *iam_es_model.IDPConfig) func(ctx context.Context) (*es_models.Aggregate, error) { + return func(ctx context.Context) (*es_models.Aggregate, error) { + if idp == nil { + return nil, errors.ThrowPreconditionFailed(nil, "EVENT-4jdiS", "Errors.Internal") + } + agg, err := OrgAggregate(ctx, aggCreator, existing.AggregateID, existing.Sequence) + if err != nil { + return nil, err + } + agg.AppendEvent(model.IDPConfigReactivated, &iam_es_model.IDPConfigID{IDPConfigID: idp.IDPConfigID}) + + return agg, nil + } +} + +func OIDCIDPConfigChangedAggregate(aggCreator *es_models.AggregateCreator, existing *model.Org, config *iam_es_model.OIDCIDPConfig) func(ctx context.Context) (*es_models.Aggregate, error) { + return func(ctx context.Context) (*es_models.Aggregate, error) { + if config == nil { + return nil, errors.ThrowPreconditionFailed(nil, "EVENT-6Fjso", "Errors.Internal") + } + agg, err := OrgAggregate(ctx, aggCreator, existing.AggregateID, existing.Sequence) + if err != nil { + return nil, err + } + var changes map[string]interface{} + for _, idp := range existing.IDPs { + if idp.IDPConfigID == config.IDPConfigID { + if idp.OIDCIDPConfig != nil { + changes = idp.OIDCIDPConfig.Changes(config) + } + } + } + if len(changes) <= 1 { + return nil, errors.ThrowPreconditionFailedf(nil, "EVENT-Rks9u", "Errors.NoChangesFound") + } + agg.AppendEvent(model.OIDCIDPConfigChanged, changes) + + return agg, nil + } +} + func isEventValidation(aggregate *es_models.Aggregate, eventType es_models.EventType) func(...*es_models.Event) error { return func(events ...*es_models.Event) error { if len(events) == 0 { diff --git a/internal/org/repository/eventsourcing/org_iam_policy.go b/internal/org/repository/eventsourcing/org_iam_policy.go index d51450fe7..95febd9dc 100644 --- a/internal/org/repository/eventsourcing/org_iam_policy.go +++ b/internal/org/repository/eventsourcing/org_iam_policy.go @@ -7,7 +7,7 @@ import ( "github.com/caos/zitadel/internal/org/repository/eventsourcing/model" ) -func OrgIamPolicyAddedAggregate(aggCreator *es_models.AggregateCreator, existing *model.Org, policy *model.OrgIamPolicy) func(ctx context.Context) (*es_models.Aggregate, error) { +func OrgIAMPolicyAddedAggregate(aggCreator *es_models.AggregateCreator, existing *model.Org, policy *model.OrgIAMPolicy) func(ctx context.Context) (*es_models.Aggregate, error) { return func(ctx context.Context) (*es_models.Aggregate, error) { if policy == nil { return nil, errors.ThrowPreconditionFailed(nil, "EVENT-i9sJS", "Errors.Internal") @@ -16,11 +16,11 @@ func OrgIamPolicyAddedAggregate(aggCreator *es_models.AggregateCreator, existing if err != nil { return nil, err } - return agg.AppendEvent(model.OrgIamPolicyAdded, policy) + return agg.AppendEvent(model.OrgIAMPolicyAdded, policy) } } -func OrgIamPolicyChangedAggregate(aggCreator *es_models.AggregateCreator, existing *model.Org, policy *model.OrgIamPolicy) func(ctx context.Context) (*es_models.Aggregate, error) { +func OrgIAMPolicyChangedAggregate(aggCreator *es_models.AggregateCreator, existing *model.Org, policy *model.OrgIAMPolicy) func(ctx context.Context) (*es_models.Aggregate, error) { return func(ctx context.Context) (*es_models.Aggregate, error) { if policy == nil { return nil, errors.ThrowPreconditionFailed(nil, "EVENT-9Ksie", "Errors.Internal") @@ -33,7 +33,7 @@ func OrgIamPolicyChangedAggregate(aggCreator *es_models.AggregateCreator, existi if len(changes) == 0 { return nil, errors.ThrowPreconditionFailed(nil, "EVENT-Js6Vs", "Errors.NoChangesFound") } - return agg.AppendEvent(model.OrgIamPolicyChanged, changes) + return agg.AppendEvent(model.OrgIAMPolicyChanged, changes) } } @@ -43,6 +43,6 @@ func OrgIamPolicyRemovedAggregate(aggCreator *es_models.AggregateCreator, existi if err != nil { return nil, err } - return agg.AppendEvent(model.OrgIamPolicyRemoved, nil) + return agg.AppendEvent(model.OrgIAMPolicyRemoved, nil) } } diff --git a/internal/org/repository/eventsourcing/org_iam_policy_test.go b/internal/org/repository/eventsourcing/org_iam_policy_test.go index f92dc2218..c277fcae3 100644 --- a/internal/org/repository/eventsourcing/org_iam_policy_test.go +++ b/internal/org/repository/eventsourcing/org_iam_policy_test.go @@ -20,7 +20,7 @@ func TestOrgIamPolicyAddedAggregates(t *testing.T) { ctx context.Context aggCreator *es_models.AggregateCreator org *model.Org - policy *model.OrgIamPolicy + policy *model.OrgIAMPolicy } tests := []struct { name string @@ -48,21 +48,21 @@ func TestOrgIamPolicyAddedAggregates(t *testing.T) { Sequence: 5, }, }, - policy: &model.OrgIamPolicy{ + policy: &model.OrgIAMPolicy{ Description: "description", UserLoginMustBeDomain: true, }, }, res: res{ eventsCount: 1, - eventType: model.OrgIamPolicyAdded, + eventType: model.OrgIAMPolicyAdded, isErr: nil, }, }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - agg := OrgIamPolicyAddedAggregate(tt.args.aggCreator, tt.args.org, tt.args.policy) + agg := OrgIAMPolicyAddedAggregate(tt.args.aggCreator, tt.args.org, tt.args.policy) got, err := agg(tt.args.ctx) if tt.res.isErr == nil && err != nil { t.Errorf("no error expected got %T: %v", err, err) @@ -71,10 +71,10 @@ func TestOrgIamPolicyAddedAggregates(t *testing.T) { t.Errorf("wrong error got %T: %v", err, err) } if tt.res.isErr == nil && got.Events[0].Type != tt.res.eventType { - t.Errorf("OrgIamPolicyAddedAggregate() event type = %v, wanted count %v", got.Events[0].Type, tt.res.eventType) + t.Errorf("OrgIAMPolicyAddedAggregate() event type = %v, wanted count %v", got.Events[0].Type, tt.res.eventType) } if tt.res.isErr == nil && len(got.Events) != tt.res.eventsCount { - t.Errorf("OrgIamPolicyAddedAggregate() event count = %d, wanted count %d", len(got.Events), tt.res.eventsCount) + t.Errorf("OrgIAMPolicyAddedAggregate() event count = %d, wanted count %d", len(got.Events), tt.res.eventsCount) } }) } @@ -90,7 +90,7 @@ func TestOrgIamPolicyChangedAggregates(t *testing.T) { ctx context.Context aggCreator *es_models.AggregateCreator org *model.Org - policy *model.OrgIamPolicy + policy *model.OrgIAMPolicy } tests := []struct { name string @@ -117,19 +117,19 @@ func TestOrgIamPolicyChangedAggregates(t *testing.T) { AggregateID: "sdaf", Sequence: 5, }, - OrgIamPolicy: &model.OrgIamPolicy{ + OrgIamPolicy: &model.OrgIAMPolicy{ Description: "description", UserLoginMustBeDomain: true, }, }, - policy: &model.OrgIamPolicy{ + policy: &model.OrgIAMPolicy{ Description: "description", UserLoginMustBeDomain: false, }, }, res: res{ eventsCount: 1, - eventType: model.OrgIamPolicyChanged, + eventType: model.OrgIAMPolicyChanged, isErr: nil, }, }, @@ -143,12 +143,12 @@ func TestOrgIamPolicyChangedAggregates(t *testing.T) { AggregateID: "sdaf", Sequence: 5, }, - OrgIamPolicy: &model.OrgIamPolicy{ + OrgIamPolicy: &model.OrgIAMPolicy{ Description: "description", UserLoginMustBeDomain: true, }, }, - policy: &model.OrgIamPolicy{ + policy: &model.OrgIAMPolicy{ Description: "description", UserLoginMustBeDomain: true, }, @@ -160,7 +160,7 @@ func TestOrgIamPolicyChangedAggregates(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - agg := OrgIamPolicyChangedAggregate(tt.args.aggCreator, tt.args.org, tt.args.policy) + agg := OrgIAMPolicyChangedAggregate(tt.args.aggCreator, tt.args.org, tt.args.policy) got, err := agg(tt.args.ctx) if tt.res.isErr == nil && err != nil { t.Errorf("no error expected got %T: %v", err, err) @@ -169,10 +169,10 @@ func TestOrgIamPolicyChangedAggregates(t *testing.T) { t.Errorf("wrong error got %T: %v", err, err) } if tt.res.isErr == nil && got.Events[0].Type != tt.res.eventType { - t.Errorf("OrgIamPolicyChangedAggregate() event type = %v, wanted count %v", got.Events[0].Type, tt.res.eventType) + t.Errorf("OrgIAMPolicyChangedAggregate() event type = %v, wanted count %v", got.Events[0].Type, tt.res.eventType) } if tt.res.isErr == nil && len(got.Events) != tt.res.eventsCount { - t.Errorf("OrgIamPolicyChangedAggregate() event count = %d, wanted count %d", len(got.Events), tt.res.eventsCount) + t.Errorf("OrgIAMPolicyChangedAggregate() event count = %d, wanted count %d", len(got.Events), tt.res.eventsCount) } }) } @@ -204,7 +204,7 @@ func TestOrgIamPolicyRemovedAggregates(t *testing.T) { AggregateID: "sdaf", Sequence: 5, }, - OrgIamPolicy: &model.OrgIamPolicy{ + OrgIamPolicy: &model.OrgIAMPolicy{ Description: "description", UserLoginMustBeDomain: true, }, @@ -212,7 +212,7 @@ func TestOrgIamPolicyRemovedAggregates(t *testing.T) { }, res: res{ eventsCount: 1, - eventType: model.OrgIamPolicyRemoved, + eventType: model.OrgIAMPolicyRemoved, isErr: nil, }, }, @@ -228,10 +228,10 @@ func TestOrgIamPolicyRemovedAggregates(t *testing.T) { t.Errorf("wrong error got %T: %v", err, err) } if tt.res.isErr == nil && got.Events[0].Type != tt.res.eventType { - t.Errorf("OrgIamPolicyChangedAggregate() event type = %v, wanted count %v", got.Events[0].Type, tt.res.eventType) + t.Errorf("OrgIAMPolicyChangedAggregate() event type = %v, wanted count %v", got.Events[0].Type, tt.res.eventType) } if tt.res.isErr == nil && len(got.Events) != tt.res.eventsCount { - t.Errorf("OrgIamPolicyChangedAggregate() event count = %d, wanted count %d", len(got.Events), tt.res.eventsCount) + t.Errorf("OrgIAMPolicyChangedAggregate() event count = %d, wanted count %d", len(got.Events), tt.res.eventsCount) } }) } diff --git a/internal/org/repository/eventsourcing/org_test.go b/internal/org/repository/eventsourcing/org_test.go index 6edf34500..1cf296c5b 100644 --- a/internal/org/repository/eventsourcing/org_test.go +++ b/internal/org/repository/eventsourcing/org_test.go @@ -2,6 +2,7 @@ package eventsourcing import ( "context" + iam_es_model "github.com/caos/zitadel/internal/iam/repository/eventsourcing/model" "testing" "github.com/caos/zitadel/internal/api/authz" @@ -847,3 +848,583 @@ func TestOrgDomainRemovedAggregates(t *testing.T) { }) } } + +func TestIdpConfigAddedAggregate(t *testing.T) { + type args struct { + ctx context.Context + existing *model.Org + new *iam_es_model.IDPConfig + aggCreator *es_models.AggregateCreator + } + type res struct { + eventLen int + eventTypes []es_models.EventType + wantErr bool + errFunc func(err error) bool + } + tests := []struct { + name string + args args + res res + }{ + { + name: "add oidc idp configuration", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: &model.Org{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID"}, Name: "Name"}, + new: &iam_es_model.IDPConfig{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID"}, + IDPConfigID: "IDPConfigID", + Name: "Name", + OIDCIDPConfig: &iam_es_model.OIDCIDPConfig{IDPConfigID: "IDPConfigID", ClientID: "ClientID"}, + }, + aggCreator: es_models.NewAggregateCreator("Test"), + }, + res: res{ + eventLen: 2, + eventTypes: []es_models.EventType{model.IDPConfigAdded, model.OIDCIDPConfigAdded}, + }, + }, + { + name: "existing iam nil", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: nil, + aggCreator: es_models.NewAggregateCreator("Test"), + }, + res: res{ + wantErr: true, + errFunc: errors.IsPreconditionFailed, + }, + }, + { + name: "idp config nil", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: &model.Org{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID"}, Name: "Name"}, + new: nil, + aggCreator: es_models.NewAggregateCreator("Test"), + }, + res: res{ + wantErr: true, + errFunc: errors.IsPreconditionFailed, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + agg, err := IDPConfigAddedAggregate(tt.args.aggCreator, tt.args.existing, tt.args.new)(tt.args.ctx) + + 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)) + } + for i := 0; i < tt.res.eventLen; i++ { + if !tt.res.wantErr && agg.Events[i].Type != tt.res.eventTypes[i] { + t.Errorf("got wrong event type: expected: %v, actual: %v ", tt.res.eventTypes[i], agg.Events[i].Type.String()) + } + if !tt.res.wantErr && agg.Events[i].Data == nil { + t.Errorf("should have data in event") + } + if !tt.res.wantErr && agg.Events[i].Data == nil { + t.Errorf("should have data in event") + } + } + if tt.res.wantErr && !tt.res.errFunc(err) { + t.Errorf("got wrong err: %v ", err) + } + }) + } +} + +func TestIdpConfigurationChangedAggregate(t *testing.T) { + type args struct { + ctx context.Context + existing *model.Org + new *iam_es_model.IDPConfig + aggCreator *es_models.AggregateCreator + } + type res struct { + eventLen int + eventTypes []es_models.EventType + wantErr bool + errFunc func(err error) bool + } + tests := []struct { + name string + args args + res res + }{ + { + name: "change idp configuration", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: &model.Org{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID"}, + Name: "Name", + IDPs: []*iam_es_model.IDPConfig{ + {IDPConfigID: "IDPConfigID", Name: "IDPName"}, + }}, + new: &iam_es_model.IDPConfig{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID"}, + IDPConfigID: "IDPConfigID", + Name: "NameChanged", + }, + aggCreator: es_models.NewAggregateCreator("Test"), + }, + res: res{ + eventLen: 1, + eventTypes: []es_models.EventType{model.IDPConfigChanged}, + }, + }, + { + name: "existing iam nil", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: nil, + aggCreator: es_models.NewAggregateCreator("Test"), + }, + res: res{ + wantErr: true, + errFunc: errors.IsPreconditionFailed, + }, + }, + { + name: "idp config nil", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: &model.Org{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID"}, Name: "Name"}, + new: nil, + aggCreator: es_models.NewAggregateCreator("Test"), + }, + res: res{ + wantErr: true, + errFunc: errors.IsPreconditionFailed, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + agg, err := IDPConfigChangedAggregate(tt.args.aggCreator, tt.args.existing, tt.args.new)(tt.args.ctx) + + 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)) + } + for i := 0; i < tt.res.eventLen; i++ { + if !tt.res.wantErr && agg.Events[i].Type != tt.res.eventTypes[i] { + t.Errorf("got wrong event type: expected: %v, actual: %v ", tt.res.eventTypes[i], agg.Events[i].Type.String()) + } + if !tt.res.wantErr && agg.Events[i].Data == nil { + t.Errorf("should have data in event") + } + } + + if tt.res.wantErr && !tt.res.errFunc(err) { + t.Errorf("got wrong err: %v ", err) + } + }) + } +} + +func TestIdpConfigurationRemovedAggregate(t *testing.T) { + type args struct { + ctx context.Context + existing *model.Org + new *iam_es_model.IDPConfig + provider *iam_es_model.IDPProvider + aggCreator *es_models.AggregateCreator + } + type res struct { + eventLen int + eventTypes []es_models.EventType + wantErr bool + errFunc func(err error) bool + } + tests := []struct { + name string + args args + res res + }{ + { + name: "remove idp config", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: &model.Org{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID"}, + Name: "Name", + IDPs: []*iam_es_model.IDPConfig{ + {IDPConfigID: "IDPConfigID", Name: "Name"}, + }}, + new: &iam_es_model.IDPConfig{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID"}, + IDPConfigID: "IDPConfigID", + Name: "Name", + }, + aggCreator: es_models.NewAggregateCreator("Test"), + }, + res: res{ + eventLen: 1, + eventTypes: []es_models.EventType{model.IDPConfigRemoved}, + }, + }, + { + name: "remove idp config with provider", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: &model.Org{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID"}, + Name: "Name", + IDPs: []*iam_es_model.IDPConfig{ + {IDPConfigID: "IDPConfigID", Name: "Name"}, + }}, + new: &iam_es_model.IDPConfig{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID"}, + IDPConfigID: "IDPConfigID", + Name: "Name", + }, + provider: &iam_es_model.IDPProvider{ + IDPConfigID: "IDPConfigID", + }, + aggCreator: es_models.NewAggregateCreator("Test"), + }, + res: res{ + eventLen: 2, + eventTypes: []es_models.EventType{model.IDPConfigRemoved, model.LoginPolicyIDPProviderCascadeRemoved}, + }, + }, + { + name: "existing iam nil", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: nil, + aggCreator: es_models.NewAggregateCreator("Test"), + }, + res: res{ + wantErr: true, + errFunc: errors.IsPreconditionFailed, + }, + }, + { + name: "idp config nil", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: &model.Org{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID"}, Name: "Name"}, + new: nil, + aggCreator: es_models.NewAggregateCreator("Test"), + }, + res: res{ + wantErr: true, + errFunc: errors.IsPreconditionFailed, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + agg, err := IDPConfigRemovedAggregate(tt.args.ctx, tt.args.aggCreator, tt.args.existing, tt.args.new, tt.args.provider) + + 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)) + } + for i := 0; i < tt.res.eventLen; i++ { + if !tt.res.wantErr && agg.Events[i].Type != tt.res.eventTypes[i] { + t.Errorf("got wrong event type: expected: %v, actual: %v ", tt.res.eventTypes[i], agg.Events[i].Type.String()) + } + if !tt.res.wantErr && agg.Events[i].Data == nil { + t.Errorf("should have data in event") + } + } + + if tt.res.wantErr && !tt.res.errFunc(err) { + t.Errorf("got wrong err: %v ", err) + } + }) + } +} + +func TestIdpConfigurationDeactivatedAggregate(t *testing.T) { + type args struct { + ctx context.Context + existing *model.Org + new *iam_es_model.IDPConfig + aggCreator *es_models.AggregateCreator + } + type res struct { + eventLen int + eventTypes []es_models.EventType + wantErr bool + errFunc func(err error) bool + } + tests := []struct { + name string + args args + res res + }{ + { + name: "deactivate idp config", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: &model.Org{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID"}, + Name: "Name", + IDPs: []*iam_es_model.IDPConfig{ + {IDPConfigID: "IDPConfigID", Name: "Name"}, + }}, + new: &iam_es_model.IDPConfig{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID"}, + IDPConfigID: "IDPConfigID", + Name: "Name", + }, + aggCreator: es_models.NewAggregateCreator("Test"), + }, + res: res{ + eventLen: 1, + eventTypes: []es_models.EventType{model.IDPConfigDeactivated}, + }, + }, + { + name: "existing iam nil", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: nil, + aggCreator: es_models.NewAggregateCreator("Test"), + }, + res: res{ + wantErr: true, + errFunc: errors.IsPreconditionFailed, + }, + }, + { + name: "idp config nil", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: &model.Org{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID"}, Name: "Name"}, + new: nil, + aggCreator: es_models.NewAggregateCreator("Test"), + }, + res: res{ + wantErr: true, + errFunc: errors.IsPreconditionFailed, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + agg, err := IDPConfigDeactivatedAggregate(tt.args.aggCreator, tt.args.existing, tt.args.new)(tt.args.ctx) + + 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)) + } + for i := 0; i < tt.res.eventLen; i++ { + if !tt.res.wantErr && agg.Events[i].Type != tt.res.eventTypes[i] { + t.Errorf("got wrong event type: expected: %v, actual: %v ", tt.res.eventTypes[i], agg.Events[i].Type.String()) + } + if !tt.res.wantErr && agg.Events[i].Data == nil { + t.Errorf("should have data in event") + } + } + + if tt.res.wantErr && !tt.res.errFunc(err) { + t.Errorf("got wrong err: %v ", err) + } + }) + } +} + +func TestIdpConfigurationReactivatedAggregate(t *testing.T) { + type args struct { + ctx context.Context + existing *model.Org + new *iam_es_model.IDPConfig + aggCreator *es_models.AggregateCreator + } + type res struct { + eventLen int + eventTypes []es_models.EventType + wantErr bool + errFunc func(err error) bool + } + tests := []struct { + name string + args args + res res + }{ + { + name: "deactivate app", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: &model.Org{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID"}, + Name: "Name", + IDPs: []*iam_es_model.IDPConfig{ + {IDPConfigID: "IDPConfigID", Name: "Name"}, + }}, + new: &iam_es_model.IDPConfig{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID"}, + IDPConfigID: "IDPConfigID", + Name: "Name", + }, + aggCreator: es_models.NewAggregateCreator("Test"), + }, + res: res{ + eventLen: 1, + eventTypes: []es_models.EventType{model.IDPConfigReactivated}, + }, + }, + { + name: "existing iam nil", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: nil, + aggCreator: es_models.NewAggregateCreator("Test"), + }, + res: res{ + wantErr: true, + errFunc: errors.IsPreconditionFailed, + }, + }, + { + name: "idp config nil", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: &model.Org{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID"}, Name: "Name"}, + new: nil, + aggCreator: es_models.NewAggregateCreator("Test"), + }, + res: res{ + wantErr: true, + errFunc: errors.IsPreconditionFailed, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + agg, err := IDPConfigReactivatedAggregate(tt.args.aggCreator, tt.args.existing, tt.args.new)(tt.args.ctx) + + 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)) + } + for i := 0; i < tt.res.eventLen; i++ { + if !tt.res.wantErr && agg.Events[i].Type != tt.res.eventTypes[i] { + t.Errorf("got wrong event type: expected: %v, actual: %v ", tt.res.eventTypes[i], agg.Events[i].Type.String()) + } + if !tt.res.wantErr && agg.Events[i].Data == nil { + t.Errorf("should have data in event") + } + } + + if tt.res.wantErr && !tt.res.errFunc(err) { + t.Errorf("got wrong err: %v ", err) + } + }) + } +} + +func TestOIDCConfigChangedAggregate(t *testing.T) { + type args struct { + ctx context.Context + existing *model.Org + new *iam_es_model.OIDCIDPConfig + aggCreator *es_models.AggregateCreator + } + type res struct { + eventLen int + eventTypes []es_models.EventType + wantErr bool + errFunc func(err error) bool + } + tests := []struct { + name string + args args + res res + }{ + { + name: "change oidc config", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: &model.Org{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID"}, + Name: "Name", + IDPs: []*iam_es_model.IDPConfig{ + {IDPConfigID: "IDPConfigID", Name: "Name", OIDCIDPConfig: &iam_es_model.OIDCIDPConfig{IDPConfigID: "IDPConfigID", ClientID: "ClientID"}}, + }}, + new: &iam_es_model.OIDCIDPConfig{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID"}, + IDPConfigID: "IDPConfigID", + ClientID: "ClientIDChanged", + }, + aggCreator: es_models.NewAggregateCreator("Test"), + }, + res: res{ + eventLen: 1, + eventTypes: []es_models.EventType{model.OIDCIDPConfigChanged}, + }, + }, + { + name: "no changes", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: &model.Org{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID"}, + Name: "Name", + IDPs: []*iam_es_model.IDPConfig{ + {IDPConfigID: "IDPConfigID", Name: "Name", OIDCIDPConfig: &iam_es_model.OIDCIDPConfig{IDPConfigID: "IDPConfigID", ClientID: "ClientID"}}, + }}, + new: &iam_es_model.OIDCIDPConfig{ + ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID"}, + IDPConfigID: "IDPConfigID", + ClientID: "ClientID", + }, + aggCreator: es_models.NewAggregateCreator("Test"), + }, + res: res{ + wantErr: true, + errFunc: errors.IsPreconditionFailed, + }, + }, + { + name: "existing iam nil", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: nil, + aggCreator: es_models.NewAggregateCreator("Test"), + }, + res: res{ + wantErr: true, + errFunc: errors.IsPreconditionFailed, + }, + }, + { + name: "oidc config nil", + args: args{ + ctx: authz.NewMockContext("orgID", "userID"), + existing: &model.Org{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID"}, Name: "Name"}, + new: nil, + aggCreator: es_models.NewAggregateCreator("Test"), + }, + res: res{ + wantErr: true, + errFunc: errors.IsPreconditionFailed, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + agg, err := OIDCIDPConfigChangedAggregate(tt.args.aggCreator, tt.args.existing, tt.args.new)(tt.args.ctx) + + 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)) + } + for i := 0; i < tt.res.eventLen; i++ { + if !tt.res.wantErr && agg.Events[i].Type != tt.res.eventTypes[i] { + t.Errorf("got wrong event type: expected: %v, actual: %v ", tt.res.eventTypes[i], agg.Events[i].Type.String()) + } + if !tt.res.wantErr && agg.Events[i].Data == nil { + t.Errorf("should have data in event") + } + } + + if tt.res.wantErr && !tt.res.errFunc(err) { + t.Errorf("got wrong err: %v ", err) + } + }) + } +} diff --git a/internal/setup/config.go b/internal/setup/config.go index 442a3a4ed..b176d3bf3 100644 --- a/internal/setup/config.go +++ b/internal/setup/config.go @@ -1,10 +1,17 @@ package setup type IAMSetUp struct { - GlobalOrg string - IAMProject string - Orgs []Org - Owners []string + GlobalOrg string + IAMProject string + DefaultLoginPolicy LoginPolicy + Orgs []Org + Owners []string +} + +type LoginPolicy struct { + AllowRegister bool + AllowUsernamePassword bool + AllowExternalIdp bool } type User struct { diff --git a/internal/setup/setup.go b/internal/setup/setup.go index 913bab847..abad0c32d 100644 --- a/internal/setup/setup.go +++ b/internal/setup/setup.go @@ -29,7 +29,7 @@ import ( type Setup struct { iamID string - IamEvents *iam_event.IamEventstore + IamEvents *iam_event.IAMEventstore OrgEvents *org_event.OrgEventstore UserEvents *usr_event.UserEventstore ProjectEvents *proj_event.ProjectEventstore @@ -70,7 +70,7 @@ func StartSetup(esConfig es_int.Config, sd systemdefaults.SystemDefaults) (*Setu return nil, err } - setup.IamEvents, err = es_iam.StartIam(es_iam.IamConfig{ + setup.IamEvents, err = es_iam.StartIAM(es_iam.IAMConfig{ Eventstore: es, Cache: esConfig.Cache, }, sd) @@ -107,7 +107,7 @@ func StartSetup(esConfig es_int.Config, sd systemdefaults.SystemDefaults) (*Setu } func (s *Setup) Execute(ctx context.Context, setUpConfig IAMSetUp) error { - iam, err := s.IamEvents.IamByID(ctx, s.iamID) + iam, err := s.IamEvents.IAMByID(ctx, s.iamID) if err != nil && !caos_errs.IsNotFound(err) { return err } @@ -129,6 +129,12 @@ func (s *Setup) Execute(ctx context.Context, setUpConfig IAMSetUp) error { createdProjects: make(map[string]*proj_model.Project), } + err = setUp.loginPolicy(ctx, setUpConfig.DefaultLoginPolicy) + if err != nil { + logging.Log("SETUP-Hdu8S").WithError(err).Error("unable to create login policy") + return err + } + pwComplexityPolicy, err := s.PolicyEvents.GetPasswordComplexityPolicy(ctx, policy_model.DefaultPolicy) if err != nil { logging.Log("SETUP-9osWF").WithError(err).Error("unable to read complexity policy") @@ -170,6 +176,20 @@ func (s *Setup) Execute(ctx context.Context, setUpConfig IAMSetUp) error { return nil } +func (setUp *initializer) loginPolicy(ctx context.Context, policy LoginPolicy) error { + logging.Log("SETUP-4djul").Info("setting up login policy") + loginPolicy := &iam_model.LoginPolicy{ + ObjectRoot: models.ObjectRoot{ + AggregateID: setUp.iamID, + }, + AllowRegister: policy.AllowRegister, + AllowUsernamePassword: policy.AllowUsernamePassword, + AllowExternalIdp: policy.AllowExternalIdp, + } + _, err := setUp.IamEvents.AddLoginPolicy(ctx, loginPolicy) + return err +} + func (setUp *initializer) orgs(ctx context.Context, orgs []Org) error { logging.Log("SETUP-dsTh3").Info("setting up orgs") for _, iamOrg := range orgs { @@ -180,17 +200,17 @@ func (setUp *initializer) orgs(ctx context.Context, orgs []Org) error { } setUp.createdOrgs[iamOrg.Name] = org - var policy *org_model.OrgIamPolicy + var policy *org_model.OrgIAMPolicy if iamOrg.OrgIamPolicy { policy, err = setUp.iamorgpolicy(ctx, org) if err != nil { - logging.LogWithFields("SETUP-IlLif", "Org Iam Policy", iamOrg.Name).WithError(err).Error("unable to create iam org policy") + logging.LogWithFields("SETUP-IlLif", "Org IAM Policy", iamOrg.Name).WithError(err).Error("unable to create iam org policy") return err } } else { - policy, err = setUp.OrgEvents.GetOrgIamPolicy(ctx, policy_model.DefaultPolicy) + policy, err = setUp.OrgEvents.GetOrgIAMPolicy(ctx, policy_model.DefaultPolicy) if err != nil { - logging.LogWithFields("SETUP-IS8wS", "Org Iam Policy", iamOrg.Name).WithError(err).Error("unable to get default iam org policy") + logging.LogWithFields("SETUP-IS8wS", "Org IAM Policy", iamOrg.Name).WithError(err).Error("unable to get default iam org policy") return err } } @@ -227,13 +247,13 @@ func (setUp *initializer) org(ctx context.Context, org Org) (*org_model.Org, err return setUp.OrgEvents.CreateOrg(ctx, createOrg, nil) } -func (setUp *initializer) iamorgpolicy(ctx context.Context, org *org_model.Org) (*org_model.OrgIamPolicy, error) { +func (setUp *initializer) iamorgpolicy(ctx context.Context, org *org_model.Org) (*org_model.OrgIAMPolicy, error) { ctx = setSetUpContextData(ctx, org.AggregateID) - policy := &org_model.OrgIamPolicy{ + policy := &org_model.OrgIAMPolicy{ ObjectRoot: models.ObjectRoot{AggregateID: org.AggregateID}, UserLoginMustBeDomain: false, } - return setUp.OrgEvents.AddOrgIamPolicy(ctx, policy) + return setUp.OrgEvents.AddOrgIAMPolicy(ctx, policy) } func (setUp *initializer) iamOwners(ctx context.Context, owners []string) error { @@ -244,7 +264,7 @@ func (setUp *initializer) iamOwners(ctx context.Context, owners []string) error logging.LogWithFields("SETUP-8siew", "Owner", iamOwner).Error("unable to add user to iam members") return caos_errs.ThrowPreconditionFailedf(nil, "SETUP-su6L3", "unable to add user to iam members") } - _, err := setUp.IamEvents.AddIamMember(ctx, &iam_model.IamMember{ObjectRoot: models.ObjectRoot{AggregateID: setUp.iamID}, UserID: user.AggregateID, Roles: []string{"IAM_OWNER"}}) + _, err := setUp.IamEvents.AddIAMMember(ctx, &iam_model.IAMMember{ObjectRoot: models.ObjectRoot{AggregateID: setUp.iamID}, UserID: user.AggregateID, Roles: []string{"IAM_OWNER"}}) if err != nil { logging.Log("SETUP-LM7rI").WithError(err).Error("unable to add iam administrator to iam members as owner") return err @@ -274,11 +294,11 @@ func (setUp *initializer) setIamProject(ctx context.Context, iamProjectName stri logging.Log("SETUP-HE3qa").Info("setting iam project") iamProject, ok := setUp.createdProjects[iamProjectName] if !ok { - logging.LogWithFields("SETUP-SJFWP", "Iam Project", iamProjectName).Error("iam project created") + logging.LogWithFields("SETUP-SJFWP", "IAM Project", iamProjectName).Error("iam project created") return caos_errs.ThrowPreconditionFailedf(nil, "SETUP-sGmQt", "iam project not created: %v", iamProjectName) } - if _, err := setUp.IamEvents.SetIamProject(ctx, setUp.iamID, iamProject.AggregateID); err != nil { + if _, err := setUp.IamEvents.SetIAMProject(ctx, setUp.iamID, iamProject.AggregateID); err != nil { logging.Log("SETUP-i1pNh").WithError(err).Error("unable to set iam project on iam") return err } @@ -286,7 +306,7 @@ func (setUp *initializer) setIamProject(ctx context.Context, iamProjectName stri return nil } -func (setUp *initializer) users(ctx context.Context, users []User, orgPolicy *org_model.OrgIamPolicy) error { +func (setUp *initializer) users(ctx context.Context, users []User, orgPolicy *org_model.OrgIAMPolicy) error { for _, user := range users { created, err := setUp.user(ctx, user, orgPolicy) if err != nil { @@ -298,7 +318,7 @@ func (setUp *initializer) users(ctx context.Context, users []User, orgPolicy *or return nil } -func (setUp *initializer) user(ctx context.Context, user User, orgPolicy *org_model.OrgIamPolicy) (*usr_model.User, error) { +func (setUp *initializer) user(ctx context.Context, user User, orgPolicy *org_model.OrgIAMPolicy) (*usr_model.User, error) { createUser := &usr_model.User{ Profile: &usr_model.Profile{ UserName: user.UserName, diff --git a/internal/static/i18n/de.yaml b/internal/static/i18n/de.yaml index 7bba721a7..07aa871be 100644 --- a/internal/static/i18n/de.yaml +++ b/internal/static/i18n/de.yaml @@ -69,6 +69,15 @@ Errors: UserIDMissing: User ID fehlt PolicyAlreadyExists: Policy existiert bereits PolicyNotExisting: Policy existiert nicht + IdpInvalid: IDP Konfiguration ist ungültig + IdpNotExisting: IDP Konfiguration existiert nicht + OIDCConfigInvalid: OIDC IDP Konfiguration ist ungültig + IdpIsNotOIDC: IDP Konfiguration ist nicht vom Typ OIDC + LoginPolicy: + NotExisting: Login Policy existiert nicht auf dieser Organisation + AlreadyExists: Login Policy existiert bereits + IdpProviderAlreadyExisting: Idp Provider existiert bereits + IdpProviderNotExisting: Idp Provider existiert nicht Project: ProjectIDMissing: Project Id fehlt AlreadyExists: Project existiert bereits auf der Organisation @@ -109,6 +118,17 @@ Errors: IDMissing: Id fehlt GlobalOrgMissing: Globale Organisation fehlt IamProjectIDMisisng: Iam Project ID fehlt + IdpInvalid: IDP Konfiguration ist ungültig + IdpNotExisting: IDP Konfiguration existiert nicht + OIDCConfigInvalid: OIDC IDP Konfiguration ist ungültig + IdpIsNotOIDC: IDP Konfiguration ist nicht vom Typ OIDC + LoginPolicyInvalid: Login Policy ist ungültig + IdpProviderInvalid: Idp Provider ist ungültig + LoginPolicy: + NotExisting: Default Login Policy existiert nicht + AlreadyExists: Default Login Policy existiert bereits + IdpProviderAlreadyExisting: Idp Provider existiert bereits + IdpProviderNotExisting: Idp Provider existiert nicht Policy: AlreadyExists: Policy existiert bereits UserGrant: @@ -225,6 +245,28 @@ EventTypes: added: System Richtlinie der Organisation hinzugefügt changed: System Richtlinie der Organisation geändert removed: System Richtlinie der Organisation entfernt + idp: + config: + added: IDP Konfiguration hinzugefügt + changed: IDP Konfiguration geändert + removed: IDP Konfiguration gelöscht + deactivated: IDP Konfiguration deaktiviert + reactivated: IDP Konfiguration reaktiviert + oidc: + config: + added: OIDC IDP Konfiguration hinzugefügt + changed: OIDC IDP Konfiguration geändert + saml: + config: + added: SAML IDP Konfiguration hinzugefügt + changed: SAML IDP Konfiguration geändert + policy: + login: + added: Login Policy hinzugefügt + changed: Login Policy geändert + idpprovider: + added: Idp Provider zu Login Policy hinzugefügt + removed: Idp Provider aus Login Policy gelöscht project: added: Projekt hinzugefügt changed: Project geändert @@ -293,6 +335,28 @@ EventTypes: added: ZITADEL Mitglied hinzugefügt changed: ZITADEL Mitglied geändert removed: ZITADEL Mitglied entfernt + idp: + config: + added: IDP Konfiguration hinzugefügt + changed: IDP Konfiguration geändert + removed: IDP Konfiguration gelöscht + deactivated: IDP Konfiguration deaktiviert + reactivated: IDP Konfiguration reaktiviert + oidc: + config: + added: OIDC IDP Konfiguration hinzugefügt + changed: OIDC IDP Konfiguration geändert + saml: + config: + added: SAML IDP Konfiguration hinzugefügt + changed: SAML IDP Konfiguration geändert + policy: + login: + added: Default Login Policy hinzugefügt + changed: Default Login Policy geändert + idpprovider: + added: Idp Provider zu Default Login Policy hinzugefügt + removed: Idp Provider aus Default Login Policy gelöscht key_pair: added: Schlüsselpaar hinzugefügt Application: diff --git a/internal/static/i18n/en.yaml b/internal/static/i18n/en.yaml index cfe6ac63c..f1eb45ef3 100644 --- a/internal/static/i18n/en.yaml +++ b/internal/static/i18n/en.yaml @@ -69,6 +69,15 @@ Errors: UserIDMissing: User ID missing PolicyAlreadyExists: Policy alredy exists PolicyNotExisting: Policy doesn't exist + IdpInvalid: IDP configuration is invalid + IdpNotExisting: IDP configuration does not exist + OIDCConfigInvalid: OIDC IDP configuration is invalid + IdpIsNotOIDC: IDP configuration is not of type oidc + LoginPolicy: + NotExisting: Login Policy not existig + AlreadyExists: Login Policy already exists + IdpProviderAlreadyExisting: Idp Provider already existing + IdpProviderNotExisting: Idp Provider not existing Project: ProjectIDMissing: Project Id missing AlreadyExists: Project already exists on organisation @@ -109,6 +118,17 @@ Errors: IDMissing: Id missing GlobalOrgMissing: Global organisation missing IamProjectIDMisisng: Iam project id missing + IdpInvalid: IDP configuration is invalid + IdpNotExisting: IDP configuration does not exist + OIDCConfigInvalid: OIDC IDP configuration is invalid + IdpIsNotOIDC: IDP configuration is not of type oidc + LoginPolicyInvalid: Login Policy is invalid + IdpProviderInvalid: Idp Provider is invalid + LoginPolicy: + NotExisting: Default Login Policy not existig + AlreadyExists: Default Login Policy already exists + IdpProviderAlreadyExisting: Idp Provider already existing + IdpProviderNotExisting: Idp Provider not existing Policy: AlreadyExists: Policy already exists UserGrant: @@ -225,6 +245,28 @@ EventTypes: added: System policy added changed: System policy changed removed: System policy removed + idp: + config: + added: IDP configuration added + changed: IDP configuration changed + removed: IDP configuration removed + deactivated: IDP configuration deactivated + reactivated: IDP configuration reactivated + oidc: + config: + added: OIDC IDP configuration added + changed: OIDC IDP configuration changed + saml: + config: + added: SAML IDP configuration added + changed: SAML IDP configuration changed + policy: + login: + added: Login Policy added + changed: Login Policy changed + idpprovider: + added: Idp Provider added to Login Policy + removed: Idp Provider removed from Login Policy project: added: Project added changed: Project changed @@ -293,6 +335,28 @@ EventTypes: added: ZITADEL member added changed: ZITADEL member changed removed: ZITADEL member removed + idp: + config: + added: IDP configuration added + changed: IDP configuration changed + removed: IDP configuration removed + deactivated: IDP configuration deactivated + reactivated: IDP configuration reactivated + oidc: + config: + added: OIDC IDP configuration added + changed: OIDC IDP configuration changed + saml: + config: + added: SAML IDP configuration added + changed: SAML IDP configuration changed + policy: + login: + added: Default Login Policy added + changed: Default Login Policy changed + idpprovider: + added: Idp Provider added to Default Login Policy + removed: Idp Provider removed from Default Login Policy key_pair: added: Key pair added Application: diff --git a/internal/ui/login/handler/org_iam_policy_handler.go b/internal/ui/login/handler/org_iam_policy_handler.go index 80ced1203..3fd4b4179 100644 --- a/internal/ui/login/handler/org_iam_policy_handler.go +++ b/internal/ui/login/handler/org_iam_policy_handler.go @@ -5,6 +5,6 @@ import ( "net/http" ) -func (l *Login) getOrgIamPolicy(r *http.Request, orgID string) (*org_model.OrgIamPolicy, error) { +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/register_handler.go b/internal/ui/login/handler/register_handler.go index 77c912968..1a055a106 100644 --- a/internal/ui/login/handler/register_handler.go +++ b/internal/ui/login/handler/register_handler.go @@ -60,7 +60,7 @@ func (l *Login) handleRegisterCheck(w http.ResponseWriter, r *http.Request) { l.renderRegister(w, r, authRequest, data, err) return } - iam, err := l.authRepo.GetIam(r.Context()) + iam, err := l.authRepo.GetIAM(r.Context()) if err != nil { l.renderRegister(w, r, authRequest, data, err) return @@ -99,7 +99,7 @@ func (l *Login) renderRegister(w http.ResponseWriter, r *http.Request, authReque baseData: l.getBaseData(r, authRequest, "Register", errType, errMessage), registerFormData: *formData, } - iam, _ := l.authRepo.GetIam(r.Context()) + iam, _ := l.authRepo.GetIAM(r.Context()) if iam != nil { policy, description, _ := l.getPasswordComplexityPolicy(r, iam.GlobalOrgID) if policy != nil { diff --git a/internal/user/model/user.go b/internal/user/model/user.go index babcf2bd2..31ca4256a 100644 --- a/internal/user/model/user.go +++ b/internal/user/model/user.go @@ -69,7 +69,7 @@ const ( GenderDiverse ) -func (u *User) CheckOrgIamPolicy(policy *org_model.OrgIamPolicy) error { +func (u *User) CheckOrgIAMPolicy(policy *org_model.OrgIAMPolicy) error { if policy == nil { return caos_errors.ThrowPreconditionFailed(nil, "MODEL-zSH7j", "Errors.Users.OrgIamPolicyNil") } diff --git a/internal/user/repository/eventsourcing/eventstore.go b/internal/user/repository/eventsourcing/eventstore.go index 23613bdfa..37c4603ee 100644 --- a/internal/user/repository/eventsourcing/eventstore.go +++ b/internal/user/repository/eventsourcing/eventstore.go @@ -107,8 +107,8 @@ func (es *UserEventstore) UserEventsByID(ctx context.Context, id string, sequenc return es.FilterEvents(ctx, query) } -func (es *UserEventstore) PrepareCreateUser(ctx context.Context, user *usr_model.User, pwPolicy *policy_model.PasswordComplexityPolicy, orgIamPolicy *org_model.OrgIamPolicy, resourceOwner string) (*model.User, []*es_models.Aggregate, error) { - err := user.CheckOrgIamPolicy(orgIamPolicy) +func (es *UserEventstore) PrepareCreateUser(ctx context.Context, user *usr_model.User, pwPolicy *policy_model.PasswordComplexityPolicy, orgIAMPolicy *org_model.OrgIAMPolicy, resourceOwner string) (*model.User, []*es_models.Aggregate, error) { + err := user.CheckOrgIAMPolicy(orgIAMPolicy) if err != nil { return nil, nil, err } @@ -140,13 +140,13 @@ func (es *UserEventstore) PrepareCreateUser(ctx context.Context, user *usr_model repoInitCode := model.InitCodeFromModel(user.InitCode) repoPhoneCode := model.PhoneCodeFromModel(user.PhoneCode) - createAggregates, err := UserCreateAggregate(ctx, es.AggregateCreator(), repoUser, repoInitCode, repoPhoneCode, resourceOwner, orgIamPolicy.UserLoginMustBeDomain) + createAggregates, err := UserCreateAggregate(ctx, es.AggregateCreator(), repoUser, repoInitCode, repoPhoneCode, resourceOwner, orgIAMPolicy.UserLoginMustBeDomain) return repoUser, createAggregates, err } -func (es *UserEventstore) CreateUser(ctx context.Context, user *usr_model.User, pwPolicy *policy_model.PasswordComplexityPolicy, orgIamPolicy *org_model.OrgIamPolicy) (*usr_model.User, error) { - repoUser, aggregates, err := es.PrepareCreateUser(ctx, user, pwPolicy, orgIamPolicy, "") +func (es *UserEventstore) CreateUser(ctx context.Context, user *usr_model.User, pwPolicy *policy_model.PasswordComplexityPolicy, orgIAMPolicy *org_model.OrgIAMPolicy) (*usr_model.User, error) { + repoUser, aggregates, err := es.PrepareCreateUser(ctx, user, pwPolicy, orgIAMPolicy, "") if err != nil { return nil, err } @@ -160,8 +160,8 @@ 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) { - err := user.CheckOrgIamPolicy(orgIamPolicy) +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) { + err := user.CheckOrgIAMPolicy(orgIAMPolicy) if err != nil { return nil, nil, err } @@ -187,12 +187,12 @@ func (es *UserEventstore) PrepareRegisterUser(ctx context.Context, user *usr_mod repoUser := model.UserFromModel(user) repoInitCode := model.InitCodeFromModel(user.InitCode) - aggregates, err := UserRegisterAggregate(ctx, es.AggregateCreator(), repoUser, resourceOwner, repoInitCode, orgIamPolicy.UserLoginMustBeDomain) + aggregates, err := UserRegisterAggregate(ctx, es.AggregateCreator(), repoUser, 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) +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) if err != nil { return nil, err } diff --git a/internal/user/repository/eventsourcing/eventstore_test.go b/internal/user/repository/eventsourcing/eventstore_test.go index 5bdd47fa7..260b55804 100644 --- a/internal/user/repository/eventsourcing/eventstore_test.go +++ b/internal/user/repository/eventsourcing/eventstore_test.go @@ -90,7 +90,7 @@ func TestCreateUser(t *testing.T) { ctx context.Context user *model.User policy *policy_model.PasswordComplexityPolicy - orgPolicy *org_model.OrgIamPolicy + orgPolicy *org_model.OrgIAMPolicy } type res struct { user *model.User @@ -119,7 +119,7 @@ func TestCreateUser(t *testing.T) { }, }, policy: &policy_model.PasswordComplexityPolicy{}, - orgPolicy: &org_model.OrgIamPolicy{}, + orgPolicy: &org_model.OrgIAMPolicy{}, }, res: res{ user: &model.User{ObjectRoot: es_models.ObjectRoot{Sequence: 1}, @@ -151,7 +151,7 @@ func TestCreateUser(t *testing.T) { }, }, policy: &policy_model.PasswordComplexityPolicy{}, - orgPolicy: &org_model.OrgIamPolicy{UserLoginMustBeDomain: false}, + orgPolicy: &org_model.OrgIAMPolicy{UserLoginMustBeDomain: false}, }, res: res{ user: &model.User{ObjectRoot: es_models.ObjectRoot{Sequence: 1}, @@ -188,7 +188,7 @@ func TestCreateUser(t *testing.T) { }, }, policy: &policy_model.PasswordComplexityPolicy{}, - orgPolicy: &org_model.OrgIamPolicy{}, + orgPolicy: &org_model.OrgIAMPolicy{}, }, res: res{ user: &model.User{ObjectRoot: es_models.ObjectRoot{Sequence: 1}, @@ -226,7 +226,7 @@ func TestCreateUser(t *testing.T) { }, }, policy: &policy_model.PasswordComplexityPolicy{}, - orgPolicy: &org_model.OrgIamPolicy{}, + orgPolicy: &org_model.OrgIAMPolicy{}, }, res: res{ user: &model.User{ObjectRoot: es_models.ObjectRoot{Sequence: 1}, @@ -249,7 +249,7 @@ func TestCreateUser(t *testing.T) { ctx: authz.NewMockContext("orgID", "userID"), user: &model.User{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}}, policy: &policy_model.PasswordComplexityPolicy{}, - orgPolicy: &org_model.OrgIamPolicy{}, + orgPolicy: &org_model.OrgIAMPolicy{}, }, res: res{ errFunc: caos_errs.IsPreconditionFailed, @@ -261,7 +261,7 @@ func TestCreateUser(t *testing.T) { es: GetMockManipulateUser(ctrl), ctx: authz.NewMockContext("orgID", "userID"), user: &model.User{ObjectRoot: es_models.ObjectRoot{AggregateID: "AggregateID", Sequence: 1}}, - orgPolicy: &org_model.OrgIamPolicy{}, + orgPolicy: &org_model.OrgIAMPolicy{}, }, res: res{ errFunc: caos_errs.IsPreconditionFailed, @@ -315,7 +315,7 @@ func TestRegisterUser(t *testing.T) { user *model.User resourceOwner string policy *policy_model.PasswordComplexityPolicy - orgPolicy *org_model.OrgIamPolicy + orgPolicy *org_model.OrgIAMPolicy } type res struct { user *model.User @@ -346,7 +346,7 @@ func TestRegisterUser(t *testing.T) { }, }, policy: &policy_model.PasswordComplexityPolicy{}, - orgPolicy: &org_model.OrgIamPolicy{UserLoginMustBeDomain: true}, + orgPolicy: &org_model.OrgIAMPolicy{UserLoginMustBeDomain: true}, resourceOwner: "ResourceOwner", }, res: res{ @@ -380,7 +380,7 @@ func TestRegisterUser(t *testing.T) { }, }, policy: &policy_model.PasswordComplexityPolicy{}, - orgPolicy: &org_model.OrgIamPolicy{UserLoginMustBeDomain: false}, + orgPolicy: &org_model.OrgIAMPolicy{UserLoginMustBeDomain: false}, resourceOwner: "ResourceOwner", }, res: res{ @@ -403,7 +403,7 @@ func TestRegisterUser(t *testing.T) { ctx: authz.NewMockContext("orgID", "userID"), user: &model.User{ObjectRoot: es_models.ObjectRoot{Sequence: 1}}, policy: &policy_model.PasswordComplexityPolicy{}, - orgPolicy: &org_model.OrgIamPolicy{}, + orgPolicy: &org_model.OrgIAMPolicy{}, resourceOwner: "ResourceOwner", }, res: res{ @@ -426,7 +426,7 @@ func TestRegisterUser(t *testing.T) { }, }, policy: &policy_model.PasswordComplexityPolicy{}, - orgPolicy: &org_model.OrgIamPolicy{}, + orgPolicy: &org_model.OrgIAMPolicy{}, resourceOwner: "ResourceOwner", }, res: res{ @@ -449,7 +449,7 @@ func TestRegisterUser(t *testing.T) { }, }, policy: &policy_model.PasswordComplexityPolicy{}, - orgPolicy: &org_model.OrgIamPolicy{}, + orgPolicy: &org_model.OrgIAMPolicy{}, }, res: res{ errFunc: caos_errs.IsPreconditionFailed, @@ -470,7 +470,7 @@ func TestRegisterUser(t *testing.T) { EmailAddress: "EmailAddress", }, }, - orgPolicy: &org_model.OrgIamPolicy{}, + orgPolicy: &org_model.OrgIAMPolicy{}, }, res: res{ errFunc: caos_errs.IsPreconditionFailed, diff --git a/internal/user/repository/view/model/notify_user.go b/internal/user/repository/view/model/notify_user.go index 0a0ba0036..a0e1c28e1 100644 --- a/internal/user/repository/view/model/notify_user.go +++ b/internal/user/repository/view/model/notify_user.go @@ -94,7 +94,7 @@ func (u *NotifyUser) GenerateLoginName(domain string, appendDomain bool) string return u.UserName + "@" + domain } -func (u *NotifyUser) SetLoginNames(policy *org_model.OrgIamPolicy, domains []*org_model.OrgDomain) { +func (u *NotifyUser) SetLoginNames(policy *org_model.OrgIAMPolicy, domains []*org_model.OrgDomain) { loginNames := make([]string, 0) for _, d := range domains { if d.Verified { diff --git a/internal/user/repository/view/model/user.go b/internal/user/repository/view/model/user.go index 98ce343d8..761495066 100644 --- a/internal/user/repository/view/model/user.go +++ b/internal/user/repository/view/model/user.go @@ -152,7 +152,7 @@ func (u *UserView) GenerateLoginName(domain string, appendDomain bool) string { return u.UserName + "@" + domain } -func (u *UserView) SetLoginNames(policy *org_model.OrgIamPolicy, domains []*org_model.OrgDomain) { +func (u *UserView) SetLoginNames(policy *org_model.OrgIAMPolicy, domains []*org_model.OrgDomain) { loginNames := make([]string, 0) for _, d := range domains { if d.Verified { diff --git a/internal/user/repository/view/model/user_membership.go b/internal/user/repository/view/model/user_membership.go index a0383b1cd..7170702f0 100644 --- a/internal/user/repository/view/model/user_membership.go +++ b/internal/user/repository/view/model/user_membership.go @@ -78,10 +78,10 @@ func (u *UserMembershipView) AppendEvent(event *models.Event) (err error) { u.Sequence = event.Sequence switch event.Type { - case iam_es_model.IamMemberAdded: + case iam_es_model.IAMMemberAdded: u.setRootData(event, model.MemberTypeIam) err = u.setIamMemberData(event) - case iam_es_model.IamMemberChanged: + case iam_es_model.IAMMemberChanged: err = u.setIamMemberData(event) case org_es_model.OrgMemberAdded: u.setRootData(event, model.MemberTypeOrganisation) @@ -111,7 +111,7 @@ func (u *UserMembershipView) setRootData(event *models.Event, memberType model.M } func (u *UserMembershipView) setIamMemberData(event *models.Event) error { - member := new(iam_es_model.IamMember) + member := new(iam_es_model.IAMMember) if err := json.Unmarshal(event.Data, member); err != nil { logging.Log("MODEL-Ec9sf").WithError(err).Error("could not unmarshal event data") return caos_errs.ThrowInternal(nil, "MODEL-6jhsw", "could not unmarshal data") diff --git a/migrations/cockroach/V1.7__idps.sql b/migrations/cockroach/V1.7__idps.sql new file mode 100644 index 000000000..0650b3d3c --- /dev/null +++ b/migrations/cockroach/V1.7__idps.sql @@ -0,0 +1,105 @@ + +CREATE TABLE adminapi.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, + + PRIMARY KEY (idp_config_id) +); + + +CREATE TABLE management.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, + + PRIMARY KEY (idp_config_id) +); + + +CREATE TABLE adminapi.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 management.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 adminapi.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 management.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) +); \ No newline at end of file diff --git a/pkg/grpc/admin/admin.pb.authoptions.go b/pkg/grpc/admin/admin.pb.authoptions.go index 10685f757..22005775b 100644 --- a/pkg/grpc/admin/admin.pb.authoptions.go +++ b/pkg/grpc/admin/admin.pb.authoptions.go @@ -98,4 +98,69 @@ var AdminService_AuthMethods = authz.MethodMapping{ Permission: "iam.write", CheckParam: "", }, + + "/caos.zitadel.admin.api.v1.AdminService/IdpByID": authz.Option{ + Permission: "iam.idp.read", + CheckParam: "", + }, + + "/caos.zitadel.admin.api.v1.AdminService/CreateOidcIdp": authz.Option{ + Permission: "iam.idp.write", + CheckParam: "", + }, + + "/caos.zitadel.admin.api.v1.AdminService/UpdateIdpConfig": authz.Option{ + Permission: "iam.idp.write", + CheckParam: "", + }, + + "/caos.zitadel.admin.api.v1.AdminService/DeactivateIdpConfig": authz.Option{ + Permission: "iam.idp.write", + CheckParam: "", + }, + + "/caos.zitadel.admin.api.v1.AdminService/ReactivateIdpConfig": authz.Option{ + Permission: "iam.idp.write", + CheckParam: "", + }, + + "/caos.zitadel.admin.api.v1.AdminService/RemoveIdpConfig": authz.Option{ + Permission: "iam.idp.write", + CheckParam: "", + }, + + "/caos.zitadel.admin.api.v1.AdminService/UpdateOidcIdpConfig": authz.Option{ + Permission: "iam.idp.write", + CheckParam: "", + }, + + "/caos.zitadel.admin.api.v1.AdminService/SearchIdps": authz.Option{ + Permission: "iam.idp.read", + CheckParam: "", + }, + + "/caos.zitadel.admin.api.v1.AdminService/GetDefaultLoginPolicy": authz.Option{ + Permission: "iam.policy.read", + CheckParam: "", + }, + + "/caos.zitadel.admin.api.v1.AdminService/UpdateDefaultLoginPolicy": authz.Option{ + Permission: "iam.policy.write", + CheckParam: "", + }, + + "/caos.zitadel.admin.api.v1.AdminService/GetDefaultLoginPolicyIdpProviders": authz.Option{ + Permission: "iam.policy.read", + CheckParam: "", + }, + + "/caos.zitadel.admin.api.v1.AdminService/AddIdpProviderToDefaultLoginPolicy": authz.Option{ + Permission: "iam.policy.write", + CheckParam: "", + }, + + "/caos.zitadel.admin.api.v1.AdminService/RemoveIdpProviderFromDefaultLoginPolicy": authz.Option{ + Permission: "iam.policy.write", + CheckParam: "", + }, } diff --git a/pkg/grpc/admin/admin.pb.go b/pkg/grpc/admin/admin.pb.go index 934a02cc5..1ed4e50c5 100644 --- a/pkg/grpc/admin/admin.pb.go +++ b/pkg/grpc/admin/admin.pb.go @@ -1,11 +1,13 @@ // Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.20.1 +// protoc v3.11.3 // source: admin.proto package admin import ( context "context" - fmt "fmt" _ "github.com/caos/zitadel/internal/protoc/protoc-gen-authoption/authoption" _ "github.com/envoyproxy/protoc-gen-validate/validate" proto "github.com/golang/protobuf/proto" @@ -17,19 +19,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 OrgState int32 @@ -39,24 +44,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_admin_proto_enumTypes[0].Descriptor() +} + +func (OrgState) Type() protoreflect.EnumType { + return &file_admin_proto_enumTypes[0] +} + +func (x OrgState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use OrgState.Descriptor instead. func (OrgState) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_73a7fc70dcc2027c, []int{0} + return file_admin_proto_rawDescGZIP(), []int{0} } type OrgSearchKey int32 @@ -68,26 +94,47 @@ const ( OrgSearchKey_ORGSEARCHKEY_STATE OrgSearchKey = 3 ) -var OrgSearchKey_name = map[int32]string{ - 0: "ORGSEARCHKEY_UNSPECIFIED", - 1: "ORGSEARCHKEY_ORG_NAME", - 2: "ORGSEARCHKEY_DOMAIN", - 3: "ORGSEARCHKEY_STATE", -} +// Enum value maps for OrgSearchKey. +var ( + OrgSearchKey_name = map[int32]string{ + 0: "ORGSEARCHKEY_UNSPECIFIED", + 1: "ORGSEARCHKEY_ORG_NAME", + 2: "ORGSEARCHKEY_DOMAIN", + 3: "ORGSEARCHKEY_STATE", + } + OrgSearchKey_value = map[string]int32{ + "ORGSEARCHKEY_UNSPECIFIED": 0, + "ORGSEARCHKEY_ORG_NAME": 1, + "ORGSEARCHKEY_DOMAIN": 2, + "ORGSEARCHKEY_STATE": 3, + } +) -var OrgSearchKey_value = map[string]int32{ - "ORGSEARCHKEY_UNSPECIFIED": 0, - "ORGSEARCHKEY_ORG_NAME": 1, - "ORGSEARCHKEY_DOMAIN": 2, - "ORGSEARCHKEY_STATE": 3, +func (x OrgSearchKey) Enum() *OrgSearchKey { + p := new(OrgSearchKey) + *p = x + return p } func (x OrgSearchKey) String() string { - return proto.EnumName(OrgSearchKey_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } +func (OrgSearchKey) Descriptor() protoreflect.EnumDescriptor { + return file_admin_proto_enumTypes[1].Descriptor() +} + +func (OrgSearchKey) Type() protoreflect.EnumType { + return &file_admin_proto_enumTypes[1] +} + +func (x OrgSearchKey) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use OrgSearchKey.Descriptor instead. func (OrgSearchKey) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_73a7fc70dcc2027c, []int{1} + return file_admin_proto_rawDescGZIP(), []int{1} } type OrgSearchMethod int32 @@ -98,24 +145,45 @@ const ( OrgSearchMethod_ORGSEARCHMETHOD_CONTAINS OrgSearchMethod = 2 ) -var OrgSearchMethod_name = map[int32]string{ - 0: "ORGSEARCHMETHOD_EQUALS", - 1: "ORGSEARCHMETHOD_STARTS_WITH", - 2: "ORGSEARCHMETHOD_CONTAINS", -} +// Enum value maps for OrgSearchMethod. +var ( + OrgSearchMethod_name = map[int32]string{ + 0: "ORGSEARCHMETHOD_EQUALS", + 1: "ORGSEARCHMETHOD_STARTS_WITH", + 2: "ORGSEARCHMETHOD_CONTAINS", + } + OrgSearchMethod_value = map[string]int32{ + "ORGSEARCHMETHOD_EQUALS": 0, + "ORGSEARCHMETHOD_STARTS_WITH": 1, + "ORGSEARCHMETHOD_CONTAINS": 2, + } +) -var OrgSearchMethod_value = map[string]int32{ - "ORGSEARCHMETHOD_EQUALS": 0, - "ORGSEARCHMETHOD_STARTS_WITH": 1, - "ORGSEARCHMETHOD_CONTAINS": 2, +func (x OrgSearchMethod) Enum() *OrgSearchMethod { + p := new(OrgSearchMethod) + *p = x + return p } func (x OrgSearchMethod) String() string { - return proto.EnumName(OrgSearchMethod_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } +func (OrgSearchMethod) Descriptor() protoreflect.EnumDescriptor { + return file_admin_proto_enumTypes[2].Descriptor() +} + +func (OrgSearchMethod) Type() protoreflect.EnumType { + return &file_admin_proto_enumTypes[2] +} + +func (x OrgSearchMethod) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use OrgSearchMethod.Descriptor instead. func (OrgSearchMethod) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_73a7fc70dcc2027c, []int{2} + return file_admin_proto_rawDescGZIP(), []int{2} } type UserState int32 @@ -130,32 +198,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_admin_proto_enumTypes[3].Descriptor() +} + +func (UserState) Type() protoreflect.EnumType { + return &file_admin_proto_enumTypes[3] +} + +func (x UserState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use UserState.Descriptor instead. func (UserState) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_73a7fc70dcc2027c, []int{3} + return file_admin_proto_rawDescGZIP(), []int{3} } type Gender int32 @@ -167,26 +256,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_admin_proto_enumTypes[4].Descriptor() +} + +func (Gender) Type() protoreflect.EnumType { + return &file_admin_proto_enumTypes[4] +} + +func (x Gender) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Gender.Descriptor instead. func (Gender) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_73a7fc70dcc2027c, []int{4} + return file_admin_proto_rawDescGZIP(), []int{4} } type IamMemberSearchKey int32 @@ -199,28 +309,49 @@ const ( IamMemberSearchKey_IAMMEMBERSEARCHKEY_USER_ID IamMemberSearchKey = 4 ) -var IamMemberSearchKey_name = map[int32]string{ - 0: "IAMMEMBERSEARCHKEY_UNSPECIFIED", - 1: "IAMMEMBERSEARCHKEY_FIRST_NAME", - 2: "IAMMEMBERSEARCHKEY_LAST_NAME", - 3: "IAMMEMBERSEARCHKEY_EMAIL", - 4: "IAMMEMBERSEARCHKEY_USER_ID", -} +// Enum value maps for IamMemberSearchKey. +var ( + IamMemberSearchKey_name = map[int32]string{ + 0: "IAMMEMBERSEARCHKEY_UNSPECIFIED", + 1: "IAMMEMBERSEARCHKEY_FIRST_NAME", + 2: "IAMMEMBERSEARCHKEY_LAST_NAME", + 3: "IAMMEMBERSEARCHKEY_EMAIL", + 4: "IAMMEMBERSEARCHKEY_USER_ID", + } + IamMemberSearchKey_value = map[string]int32{ + "IAMMEMBERSEARCHKEY_UNSPECIFIED": 0, + "IAMMEMBERSEARCHKEY_FIRST_NAME": 1, + "IAMMEMBERSEARCHKEY_LAST_NAME": 2, + "IAMMEMBERSEARCHKEY_EMAIL": 3, + "IAMMEMBERSEARCHKEY_USER_ID": 4, + } +) -var IamMemberSearchKey_value = map[string]int32{ - "IAMMEMBERSEARCHKEY_UNSPECIFIED": 0, - "IAMMEMBERSEARCHKEY_FIRST_NAME": 1, - "IAMMEMBERSEARCHKEY_LAST_NAME": 2, - "IAMMEMBERSEARCHKEY_EMAIL": 3, - "IAMMEMBERSEARCHKEY_USER_ID": 4, +func (x IamMemberSearchKey) Enum() *IamMemberSearchKey { + p := new(IamMemberSearchKey) + *p = x + return p } func (x IamMemberSearchKey) String() string { - return proto.EnumName(IamMemberSearchKey_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } +func (IamMemberSearchKey) Descriptor() protoreflect.EnumDescriptor { + return file_admin_proto_enumTypes[5].Descriptor() +} + +func (IamMemberSearchKey) Type() protoreflect.EnumType { + return &file_admin_proto_enumTypes[5] +} + +func (x IamMemberSearchKey) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use IamMemberSearchKey.Descriptor instead. func (IamMemberSearchKey) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_73a7fc70dcc2027c, []int{5} + return file_admin_proto_rawDescGZIP(), []int{5} } type SearchMethod int32 @@ -239,951 +370,1219 @@ 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_admin_proto_enumTypes[6].Descriptor() +} + +func (SearchMethod) Type() protoreflect.EnumType { + return &file_admin_proto_enumTypes[6] +} + +func (x SearchMethod) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SearchMethod.Descriptor instead. func (SearchMethod) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_73a7fc70dcc2027c, []int{6} + return file_admin_proto_rawDescGZIP(), []int{6} +} + +type IdpState int32 + +const ( + IdpState_IDPCONFIGSTATE_UNSPECIFIED IdpState = 0 + IdpState_IDPCONFIGSTATE_ACTIVE IdpState = 1 + IdpState_IDPCONFIGSTATE_INACTIVE IdpState = 2 +) + +// 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, + } +) + +func (x IdpState) Enum() *IdpState { + p := new(IdpState) + *p = x + return p +} + +func (x IdpState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (IdpState) Descriptor() protoreflect.EnumDescriptor { + return file_admin_proto_enumTypes[7].Descriptor() +} + +func (IdpState) Type() protoreflect.EnumType { + return &file_admin_proto_enumTypes[7] +} + +func (x IdpState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use IdpState.Descriptor instead. +func (IdpState) EnumDescriptor() ([]byte, []int) { + return file_admin_proto_rawDescGZIP(), []int{7} +} + +type IdpSearchKey int32 + +const ( + IdpSearchKey_IDPSEARCHKEY_UNSPECIFIED IdpSearchKey = 0 + IdpSearchKey_IDPSEARCHKEY_IDP_CONFIG_ID IdpSearchKey = 1 + IdpSearchKey_IDPSEARCHKEY_NAME IdpSearchKey = 2 +) + +// Enum value maps for IdpSearchKey. +var ( + IdpSearchKey_name = map[int32]string{ + 0: "IDPSEARCHKEY_UNSPECIFIED", + 1: "IDPSEARCHKEY_IDP_CONFIG_ID", + 2: "IDPSEARCHKEY_NAME", + } + IdpSearchKey_value = map[string]int32{ + "IDPSEARCHKEY_UNSPECIFIED": 0, + "IDPSEARCHKEY_IDP_CONFIG_ID": 1, + "IDPSEARCHKEY_NAME": 2, + } +) + +func (x IdpSearchKey) Enum() *IdpSearchKey { + p := new(IdpSearchKey) + *p = x + return p +} + +func (x IdpSearchKey) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (IdpSearchKey) Descriptor() protoreflect.EnumDescriptor { + return file_admin_proto_enumTypes[8].Descriptor() +} + +func (IdpSearchKey) Type() protoreflect.EnumType { + return &file_admin_proto_enumTypes[8] +} + +func (x IdpSearchKey) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use IdpSearchKey.Descriptor instead. +func (IdpSearchKey) EnumDescriptor() ([]byte, []int) { + return file_admin_proto_rawDescGZIP(), []int{8} +} + +type IdpType int32 + +const ( + IdpType_IDPTYPE_UNSPECIFIED IdpType = 0 + IdpType_IDPTYPE_OIDC IdpType = 1 + IdpType_IDPTYPE_SAML IdpType = 2 +) + +// 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, + } +) + +func (x IdpType) Enum() *IdpType { + p := new(IdpType) + *p = x + return p +} + +func (x IdpType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (IdpType) Descriptor() protoreflect.EnumDescriptor { + return file_admin_proto_enumTypes[9].Descriptor() +} + +func (IdpType) Type() protoreflect.EnumType { + return &file_admin_proto_enumTypes[9] +} + +func (x IdpType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use IdpType.Descriptor instead. +func (IdpType) EnumDescriptor() ([]byte, []int) { + return file_admin_proto_rawDescGZIP(), []int{9} } type OrgID 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 *OrgID) Reset() { *m = OrgID{} } -func (m *OrgID) String() string { return proto.CompactTextString(m) } -func (*OrgID) ProtoMessage() {} +func (x *OrgID) Reset() { + *x = OrgID{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OrgID) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrgID) ProtoMessage() {} + +func (x *OrgID) ProtoReflect() protoreflect.Message { + mi := &file_admin_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 OrgID.ProtoReflect.Descriptor instead. func (*OrgID) Descriptor() ([]byte, []int) { - return fileDescriptor_73a7fc70dcc2027c, []int{0} + return file_admin_proto_rawDescGZIP(), []int{0} } -func (m *OrgID) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_OrgID.Unmarshal(m, b) -} -func (m *OrgID) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_OrgID.Marshal(b, m, deterministic) -} -func (m *OrgID) XXX_Merge(src proto.Message) { - xxx_messageInfo_OrgID.Merge(m, src) -} -func (m *OrgID) XXX_Size() int { - return xxx_messageInfo_OrgID.Size(m) -} -func (m *OrgID) XXX_DiscardUnknown() { - xxx_messageInfo_OrgID.DiscardUnknown(m) -} - -var xxx_messageInfo_OrgID proto.InternalMessageInfo - -func (m *OrgID) GetId() string { - if m != nil { - return m.Id +func (x *OrgID) GetId() string { + if x != nil { + return x.Id } return "" } type UniqueOrgRequest struct { - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Domain string `protobuf:"bytes,2,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 + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Domain string `protobuf:"bytes,2,opt,name=domain,proto3" json:"domain,omitempty"` } -func (m *UniqueOrgRequest) Reset() { *m = UniqueOrgRequest{} } -func (m *UniqueOrgRequest) String() string { return proto.CompactTextString(m) } -func (*UniqueOrgRequest) ProtoMessage() {} +func (x *UniqueOrgRequest) Reset() { + *x = UniqueOrgRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UniqueOrgRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UniqueOrgRequest) ProtoMessage() {} + +func (x *UniqueOrgRequest) ProtoReflect() protoreflect.Message { + mi := &file_admin_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 UniqueOrgRequest.ProtoReflect.Descriptor instead. func (*UniqueOrgRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_73a7fc70dcc2027c, []int{1} + return file_admin_proto_rawDescGZIP(), []int{1} } -func (m *UniqueOrgRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UniqueOrgRequest.Unmarshal(m, b) -} -func (m *UniqueOrgRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UniqueOrgRequest.Marshal(b, m, deterministic) -} -func (m *UniqueOrgRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_UniqueOrgRequest.Merge(m, src) -} -func (m *UniqueOrgRequest) XXX_Size() int { - return xxx_messageInfo_UniqueOrgRequest.Size(m) -} -func (m *UniqueOrgRequest) XXX_DiscardUnknown() { - xxx_messageInfo_UniqueOrgRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_UniqueOrgRequest proto.InternalMessageInfo - -func (m *UniqueOrgRequest) GetName() string { - if m != nil { - return m.Name +func (x *UniqueOrgRequest) GetName() string { + if x != nil { + return x.Name } return "" } -func (m *UniqueOrgRequest) GetDomain() string { - if m != nil { - return m.Domain +func (x *UniqueOrgRequest) GetDomain() string { + if x != nil { + return x.Domain } return "" } type UniqueOrgResponse 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 *UniqueOrgResponse) Reset() { *m = UniqueOrgResponse{} } -func (m *UniqueOrgResponse) String() string { return proto.CompactTextString(m) } -func (*UniqueOrgResponse) ProtoMessage() {} +func (x *UniqueOrgResponse) Reset() { + *x = UniqueOrgResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UniqueOrgResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UniqueOrgResponse) ProtoMessage() {} + +func (x *UniqueOrgResponse) ProtoReflect() protoreflect.Message { + mi := &file_admin_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 UniqueOrgResponse.ProtoReflect.Descriptor instead. func (*UniqueOrgResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_73a7fc70dcc2027c, []int{2} + return file_admin_proto_rawDescGZIP(), []int{2} } -func (m *UniqueOrgResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UniqueOrgResponse.Unmarshal(m, b) -} -func (m *UniqueOrgResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UniqueOrgResponse.Marshal(b, m, deterministic) -} -func (m *UniqueOrgResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_UniqueOrgResponse.Merge(m, src) -} -func (m *UniqueOrgResponse) XXX_Size() int { - return xxx_messageInfo_UniqueOrgResponse.Size(m) -} -func (m *UniqueOrgResponse) XXX_DiscardUnknown() { - xxx_messageInfo_UniqueOrgResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_UniqueOrgResponse proto.InternalMessageInfo - -func (m *UniqueOrgResponse) GetIsUnique() bool { - if m != nil { - return m.IsUnique +func (x *UniqueOrgResponse) GetIsUnique() bool { + if x != nil { + return x.IsUnique } return false } 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.admin.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"` - Domain string `protobuf:"bytes,6,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 + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + State OrgState `protobuf:"varint,2,opt,name=state,proto3,enum=caos.zitadel.admin.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"` + Domain string `protobuf:"bytes,6,opt,name=domain,proto3" json:"domain,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_admin_proto_msgTypes[3] + 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_admin_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 Org.ProtoReflect.Descriptor instead. func (*Org) Descriptor() ([]byte, []int) { - return fileDescriptor_73a7fc70dcc2027c, []int{3} + return file_admin_proto_rawDescGZIP(), []int{3} } -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) GetDomain() string { - if m != nil { - return m.Domain +func (x *Org) GetDomain() string { + if x != nil { + return x.Domain } return "" } type OrgSearchRequest 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 OrgSearchKey `protobuf:"varint,3,opt,name=sorting_column,json=sortingColumn,proto3,enum=caos.zitadel.admin.api.v1.OrgSearchKey" json:"sorting_column,omitempty"` - Asc bool `protobuf:"varint,4,opt,name=asc,proto3" json:"asc,omitempty"` - Queries []*OrgSearchQuery `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 OrgSearchKey `protobuf:"varint,3,opt,name=sorting_column,json=sortingColumn,proto3,enum=caos.zitadel.admin.api.v1.OrgSearchKey" json:"sorting_column,omitempty"` + Asc bool `protobuf:"varint,4,opt,name=asc,proto3" json:"asc,omitempty"` + Queries []*OrgSearchQuery `protobuf:"bytes,5,rep,name=queries,proto3" json:"queries,omitempty"` } -func (m *OrgSearchRequest) Reset() { *m = OrgSearchRequest{} } -func (m *OrgSearchRequest) String() string { return proto.CompactTextString(m) } -func (*OrgSearchRequest) ProtoMessage() {} +func (x *OrgSearchRequest) Reset() { + *x = OrgSearchRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OrgSearchRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrgSearchRequest) ProtoMessage() {} + +func (x *OrgSearchRequest) ProtoReflect() protoreflect.Message { + mi := &file_admin_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 OrgSearchRequest.ProtoReflect.Descriptor instead. func (*OrgSearchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_73a7fc70dcc2027c, []int{4} + return file_admin_proto_rawDescGZIP(), []int{4} } -func (m *OrgSearchRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_OrgSearchRequest.Unmarshal(m, b) -} -func (m *OrgSearchRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_OrgSearchRequest.Marshal(b, m, deterministic) -} -func (m *OrgSearchRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_OrgSearchRequest.Merge(m, src) -} -func (m *OrgSearchRequest) XXX_Size() int { - return xxx_messageInfo_OrgSearchRequest.Size(m) -} -func (m *OrgSearchRequest) XXX_DiscardUnknown() { - xxx_messageInfo_OrgSearchRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_OrgSearchRequest proto.InternalMessageInfo - -func (m *OrgSearchRequest) GetOffset() uint64 { - if m != nil { - return m.Offset +func (x *OrgSearchRequest) GetOffset() uint64 { + if x != nil { + return x.Offset } return 0 } -func (m *OrgSearchRequest) GetLimit() uint64 { - if m != nil { - return m.Limit +func (x *OrgSearchRequest) GetLimit() uint64 { + if x != nil { + return x.Limit } return 0 } -func (m *OrgSearchRequest) GetSortingColumn() OrgSearchKey { - if m != nil { - return m.SortingColumn +func (x *OrgSearchRequest) GetSortingColumn() OrgSearchKey { + if x != nil { + return x.SortingColumn } return OrgSearchKey_ORGSEARCHKEY_UNSPECIFIED } -func (m *OrgSearchRequest) GetAsc() bool { - if m != nil { - return m.Asc +func (x *OrgSearchRequest) GetAsc() bool { + if x != nil { + return x.Asc } return false } -func (m *OrgSearchRequest) GetQueries() []*OrgSearchQuery { - if m != nil { - return m.Queries +func (x *OrgSearchRequest) GetQueries() []*OrgSearchQuery { + if x != nil { + return x.Queries } return nil } type OrgSearchQuery struct { - Key OrgSearchKey `protobuf:"varint,1,opt,name=key,proto3,enum=caos.zitadel.admin.api.v1.OrgSearchKey" json:"key,omitempty"` - Method OrgSearchMethod `protobuf:"varint,2,opt,name=method,proto3,enum=caos.zitadel.admin.api.v1.OrgSearchMethod" 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 OrgSearchKey `protobuf:"varint,1,opt,name=key,proto3,enum=caos.zitadel.admin.api.v1.OrgSearchKey" json:"key,omitempty"` + Method OrgSearchMethod `protobuf:"varint,2,opt,name=method,proto3,enum=caos.zitadel.admin.api.v1.OrgSearchMethod" json:"method,omitempty"` + Value string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` } -func (m *OrgSearchQuery) Reset() { *m = OrgSearchQuery{} } -func (m *OrgSearchQuery) String() string { return proto.CompactTextString(m) } -func (*OrgSearchQuery) ProtoMessage() {} +func (x *OrgSearchQuery) Reset() { + *x = OrgSearchQuery{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OrgSearchQuery) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrgSearchQuery) ProtoMessage() {} + +func (x *OrgSearchQuery) ProtoReflect() protoreflect.Message { + mi := &file_admin_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 OrgSearchQuery.ProtoReflect.Descriptor instead. func (*OrgSearchQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_73a7fc70dcc2027c, []int{5} + return file_admin_proto_rawDescGZIP(), []int{5} } -func (m *OrgSearchQuery) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_OrgSearchQuery.Unmarshal(m, b) -} -func (m *OrgSearchQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_OrgSearchQuery.Marshal(b, m, deterministic) -} -func (m *OrgSearchQuery) XXX_Merge(src proto.Message) { - xxx_messageInfo_OrgSearchQuery.Merge(m, src) -} -func (m *OrgSearchQuery) XXX_Size() int { - return xxx_messageInfo_OrgSearchQuery.Size(m) -} -func (m *OrgSearchQuery) XXX_DiscardUnknown() { - xxx_messageInfo_OrgSearchQuery.DiscardUnknown(m) -} - -var xxx_messageInfo_OrgSearchQuery proto.InternalMessageInfo - -func (m *OrgSearchQuery) GetKey() OrgSearchKey { - if m != nil { - return m.Key +func (x *OrgSearchQuery) GetKey() OrgSearchKey { + if x != nil { + return x.Key } return OrgSearchKey_ORGSEARCHKEY_UNSPECIFIED } -func (m *OrgSearchQuery) GetMethod() OrgSearchMethod { - if m != nil { - return m.Method +func (x *OrgSearchQuery) GetMethod() OrgSearchMethod { + if x != nil { + return x.Method } return OrgSearchMethod_ORGSEARCHMETHOD_EQUALS } -func (m *OrgSearchQuery) GetValue() string { - if m != nil { - return m.Value +func (x *OrgSearchQuery) GetValue() string { + if x != nil { + return x.Value } return "" } type OrgSearchResponse 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"` - 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 []*Org `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 *OrgSearchResponse) Reset() { *m = OrgSearchResponse{} } -func (m *OrgSearchResponse) String() string { return proto.CompactTextString(m) } -func (*OrgSearchResponse) ProtoMessage() {} +func (x *OrgSearchResponse) Reset() { + *x = OrgSearchResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OrgSearchResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrgSearchResponse) ProtoMessage() {} + +func (x *OrgSearchResponse) ProtoReflect() protoreflect.Message { + mi := &file_admin_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 OrgSearchResponse.ProtoReflect.Descriptor instead. func (*OrgSearchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_73a7fc70dcc2027c, []int{6} + return file_admin_proto_rawDescGZIP(), []int{6} } -func (m *OrgSearchResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_OrgSearchResponse.Unmarshal(m, b) -} -func (m *OrgSearchResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_OrgSearchResponse.Marshal(b, m, deterministic) -} -func (m *OrgSearchResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_OrgSearchResponse.Merge(m, src) -} -func (m *OrgSearchResponse) XXX_Size() int { - return xxx_messageInfo_OrgSearchResponse.Size(m) -} -func (m *OrgSearchResponse) XXX_DiscardUnknown() { - xxx_messageInfo_OrgSearchResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_OrgSearchResponse proto.InternalMessageInfo - -func (m *OrgSearchResponse) GetOffset() uint64 { - if m != nil { - return m.Offset +func (x *OrgSearchResponse) GetOffset() uint64 { + if x != nil { + return x.Offset } return 0 } -func (m *OrgSearchResponse) GetLimit() uint64 { - if m != nil { - return m.Limit +func (x *OrgSearchResponse) GetLimit() uint64 { + if x != nil { + return x.Limit } return 0 } -func (m *OrgSearchResponse) GetTotalResult() uint64 { - if m != nil { - return m.TotalResult +func (x *OrgSearchResponse) GetTotalResult() uint64 { + if x != nil { + return x.TotalResult } return 0 } -func (m *OrgSearchResponse) GetResult() []*Org { - if m != nil { - return m.Result +func (x *OrgSearchResponse) GetResult() []*Org { + if x != nil { + return x.Result } return nil } -func (m *OrgSearchResponse) GetProcessedSequence() uint64 { - if m != nil { - return m.ProcessedSequence +func (x *OrgSearchResponse) GetProcessedSequence() uint64 { + if x != nil { + return x.ProcessedSequence } return 0 } -func (m *OrgSearchResponse) GetViewTimestamp() *timestamp.Timestamp { - if m != nil { - return m.ViewTimestamp +func (x *OrgSearchResponse) GetViewTimestamp() *timestamp.Timestamp { + if x != nil { + return x.ViewTimestamp } return nil } type OrgSetUpRequest struct { - Org *CreateOrgRequest `protobuf:"bytes,1,opt,name=org,proto3" json:"org,omitempty"` - User *CreateUserRequest `protobuf:"bytes,2,opt,name=user,proto3" json:"user,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Org *CreateOrgRequest `protobuf:"bytes,1,opt,name=org,proto3" json:"org,omitempty"` + User *CreateUserRequest `protobuf:"bytes,2,opt,name=user,proto3" json:"user,omitempty"` } -func (m *OrgSetUpRequest) Reset() { *m = OrgSetUpRequest{} } -func (m *OrgSetUpRequest) String() string { return proto.CompactTextString(m) } -func (*OrgSetUpRequest) ProtoMessage() {} +func (x *OrgSetUpRequest) Reset() { + *x = OrgSetUpRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OrgSetUpRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrgSetUpRequest) ProtoMessage() {} + +func (x *OrgSetUpRequest) ProtoReflect() protoreflect.Message { + mi := &file_admin_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 OrgSetUpRequest.ProtoReflect.Descriptor instead. func (*OrgSetUpRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_73a7fc70dcc2027c, []int{7} + return file_admin_proto_rawDescGZIP(), []int{7} } -func (m *OrgSetUpRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_OrgSetUpRequest.Unmarshal(m, b) -} -func (m *OrgSetUpRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_OrgSetUpRequest.Marshal(b, m, deterministic) -} -func (m *OrgSetUpRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_OrgSetUpRequest.Merge(m, src) -} -func (m *OrgSetUpRequest) XXX_Size() int { - return xxx_messageInfo_OrgSetUpRequest.Size(m) -} -func (m *OrgSetUpRequest) XXX_DiscardUnknown() { - xxx_messageInfo_OrgSetUpRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_OrgSetUpRequest proto.InternalMessageInfo - -func (m *OrgSetUpRequest) GetOrg() *CreateOrgRequest { - if m != nil { - return m.Org +func (x *OrgSetUpRequest) GetOrg() *CreateOrgRequest { + if x != nil { + return x.Org } return nil } -func (m *OrgSetUpRequest) GetUser() *CreateUserRequest { - if m != nil { - return m.User +func (x *OrgSetUpRequest) GetUser() *CreateUserRequest { + if x != nil { + return x.User } return nil } type OrgSetUpResponse struct { - Org *Org `protobuf:"bytes,1,opt,name=org,proto3" json:"org,omitempty"` - User *User `protobuf:"bytes,2,opt,name=user,proto3" json:"user,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Org *Org `protobuf:"bytes,1,opt,name=org,proto3" json:"org,omitempty"` + User *User `protobuf:"bytes,2,opt,name=user,proto3" json:"user,omitempty"` } -func (m *OrgSetUpResponse) Reset() { *m = OrgSetUpResponse{} } -func (m *OrgSetUpResponse) String() string { return proto.CompactTextString(m) } -func (*OrgSetUpResponse) ProtoMessage() {} +func (x *OrgSetUpResponse) Reset() { + *x = OrgSetUpResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OrgSetUpResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrgSetUpResponse) ProtoMessage() {} + +func (x *OrgSetUpResponse) ProtoReflect() protoreflect.Message { + mi := &file_admin_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 OrgSetUpResponse.ProtoReflect.Descriptor instead. func (*OrgSetUpResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_73a7fc70dcc2027c, []int{8} + return file_admin_proto_rawDescGZIP(), []int{8} } -func (m *OrgSetUpResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_OrgSetUpResponse.Unmarshal(m, b) -} -func (m *OrgSetUpResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_OrgSetUpResponse.Marshal(b, m, deterministic) -} -func (m *OrgSetUpResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_OrgSetUpResponse.Merge(m, src) -} -func (m *OrgSetUpResponse) XXX_Size() int { - return xxx_messageInfo_OrgSetUpResponse.Size(m) -} -func (m *OrgSetUpResponse) XXX_DiscardUnknown() { - xxx_messageInfo_OrgSetUpResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_OrgSetUpResponse proto.InternalMessageInfo - -func (m *OrgSetUpResponse) GetOrg() *Org { - if m != nil { - return m.Org +func (x *OrgSetUpResponse) GetOrg() *Org { + if x != nil { + return x.Org } return nil } -func (m *OrgSetUpResponse) GetUser() *User { - if m != nil { - return m.User +func (x *OrgSetUpResponse) GetUser() *User { + if x != nil { + return x.User } return nil } type CreateUserRequest struct { - UserName string `protobuf:"bytes,1,opt,name=user_name,json=userName,proto3" json:"user_name,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.admin.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"` - Password string `protobuf:"bytes,16,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 + + UserName string `protobuf:"bytes,1,opt,name=user_name,json=userName,proto3" json:"user_name,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.admin.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"` + Password string `protobuf:"bytes,16,opt,name=password,proto3" json:"password,omitempty"` } -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_admin_proto_msgTypes[9] + 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_admin_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 CreateUserRequest.ProtoReflect.Descriptor instead. func (*CreateUserRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_73a7fc70dcc2027c, []int{9} + return file_admin_proto_rawDescGZIP(), []int{9} } -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) GetFirstName() string { - if m != nil { - return m.FirstName +func (x *CreateUserRequest) GetFirstName() string { + if x != nil { + return x.FirstName } return "" } -func (m *CreateUserRequest) GetLastName() string { - if m != nil { - return m.LastName +func (x *CreateUserRequest) GetLastName() string { + if x != nil { + return x.LastName } return "" } -func (m *CreateUserRequest) GetNickName() string { - if m != nil { - return m.NickName +func (x *CreateUserRequest) GetNickName() string { + if x != nil { + return x.NickName } return "" } -func (m *CreateUserRequest) GetPreferredLanguage() string { - if m != nil { - return m.PreferredLanguage +func (x *CreateUserRequest) GetPreferredLanguage() string { + if x != nil { + return x.PreferredLanguage } return "" } -func (m *CreateUserRequest) GetGender() Gender { - if m != nil { - return m.Gender +func (x *CreateUserRequest) GetGender() Gender { + if x != nil { + return x.Gender } return Gender_GENDER_UNSPECIFIED } -func (m *CreateUserRequest) GetEmail() string { - if m != nil { - return m.Email +func (x *CreateUserRequest) GetEmail() string { + if x != nil { + return x.Email } return "" } -func (m *CreateUserRequest) GetIsEmailVerified() bool { - if m != nil { - return m.IsEmailVerified +func (x *CreateUserRequest) GetIsEmailVerified() bool { + if x != nil { + return x.IsEmailVerified } return false } -func (m *CreateUserRequest) GetPhone() string { - if m != nil { - return m.Phone +func (x *CreateUserRequest) GetPhone() string { + if x != nil { + return x.Phone } return "" } -func (m *CreateUserRequest) GetIsPhoneVerified() bool { - if m != nil { - return m.IsPhoneVerified +func (x *CreateUserRequest) GetIsPhoneVerified() bool { + if x != nil { + return x.IsPhoneVerified } return false } -func (m *CreateUserRequest) GetCountry() string { - if m != nil { - return m.Country +func (x *CreateUserRequest) GetCountry() string { + if x != nil { + return x.Country } return "" } -func (m *CreateUserRequest) GetLocality() string { - if m != nil { - return m.Locality +func (x *CreateUserRequest) GetLocality() string { + if x != nil { + return x.Locality } return "" } -func (m *CreateUserRequest) GetPostalCode() string { - if m != nil { - return m.PostalCode +func (x *CreateUserRequest) GetPostalCode() string { + if x != nil { + return x.PostalCode } return "" } -func (m *CreateUserRequest) GetRegion() string { - if m != nil { - return m.Region +func (x *CreateUserRequest) GetRegion() string { + if x != nil { + return x.Region } return "" } -func (m *CreateUserRequest) GetStreetAddress() string { - if m != nil { - return m.StreetAddress +func (x *CreateUserRequest) GetStreetAddress() string { + if x != nil { + return x.StreetAddress } return "" } -func (m *CreateUserRequest) GetPassword() string { - if m != nil { - return m.Password +func (x *CreateUserRequest) GetPassword() string { + if x != nil { + return x.Password } return "" } type User struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - State UserState `protobuf:"varint,2,opt,name=state,proto3,enum=caos.zitadel.admin.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"` - UserName string `protobuf:"bytes,5,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` - FirstName string `protobuf:"bytes,6,opt,name=first_name,json=firstName,proto3" json:"first_name,omitempty"` - LastName string `protobuf:"bytes,7,opt,name=last_name,json=lastName,proto3" json:"last_name,omitempty"` - NickName string `protobuf:"bytes,8,opt,name=nick_name,json=nickName,proto3" json:"nick_name,omitempty"` - DisplayName string `protobuf:"bytes,9,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` - PreferredLanguage string `protobuf:"bytes,10,opt,name=preferred_language,json=preferredLanguage,proto3" json:"preferred_language,omitempty"` - Gender Gender `protobuf:"varint,11,opt,name=gender,proto3,enum=caos.zitadel.admin.api.v1.Gender" json:"gender,omitempty"` - Email string `protobuf:"bytes,12,opt,name=email,proto3" json:"email,omitempty"` - IsEmailVerified bool `protobuf:"varint,13,opt,name=isEmailVerified,proto3" json:"isEmailVerified,omitempty"` - Phone string `protobuf:"bytes,14,opt,name=phone,proto3" json:"phone,omitempty"` - IsPhoneVerified bool `protobuf:"varint,15,opt,name=isPhoneVerified,proto3" json:"isPhoneVerified,omitempty"` - Country string `protobuf:"bytes,16,opt,name=country,proto3" json:"country,omitempty"` - Locality string `protobuf:"bytes,17,opt,name=locality,proto3" json:"locality,omitempty"` - PostalCode string `protobuf:"bytes,18,opt,name=postal_code,json=postalCode,proto3" json:"postal_code,omitempty"` - Region string `protobuf:"bytes,19,opt,name=region,proto3" json:"region,omitempty"` - StreetAddress string `protobuf:"bytes,20,opt,name=street_address,json=streetAddress,proto3" json:"street_address,omitempty"` - Sequence uint64 `protobuf:"varint,21,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 UserState `protobuf:"varint,2,opt,name=state,proto3,enum=caos.zitadel.admin.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"` + UserName string `protobuf:"bytes,5,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` + FirstName string `protobuf:"bytes,6,opt,name=first_name,json=firstName,proto3" json:"first_name,omitempty"` + LastName string `protobuf:"bytes,7,opt,name=last_name,json=lastName,proto3" json:"last_name,omitempty"` + NickName string `protobuf:"bytes,8,opt,name=nick_name,json=nickName,proto3" json:"nick_name,omitempty"` + DisplayName string `protobuf:"bytes,9,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + PreferredLanguage string `protobuf:"bytes,10,opt,name=preferred_language,json=preferredLanguage,proto3" json:"preferred_language,omitempty"` + Gender Gender `protobuf:"varint,11,opt,name=gender,proto3,enum=caos.zitadel.admin.api.v1.Gender" json:"gender,omitempty"` + Email string `protobuf:"bytes,12,opt,name=email,proto3" json:"email,omitempty"` + IsEmailVerified bool `protobuf:"varint,13,opt,name=isEmailVerified,proto3" json:"isEmailVerified,omitempty"` + Phone string `protobuf:"bytes,14,opt,name=phone,proto3" json:"phone,omitempty"` + IsPhoneVerified bool `protobuf:"varint,15,opt,name=isPhoneVerified,proto3" json:"isPhoneVerified,omitempty"` + Country string `protobuf:"bytes,16,opt,name=country,proto3" json:"country,omitempty"` + Locality string `protobuf:"bytes,17,opt,name=locality,proto3" json:"locality,omitempty"` + PostalCode string `protobuf:"bytes,18,opt,name=postal_code,json=postalCode,proto3" json:"postal_code,omitempty"` + Region string `protobuf:"bytes,19,opt,name=region,proto3" json:"region,omitempty"` + StreetAddress string `protobuf:"bytes,20,opt,name=street_address,json=streetAddress,proto3" json:"street_address,omitempty"` + Sequence uint64 `protobuf:"varint,21,opt,name=sequence,proto3" json:"sequence,omitempty"` } -func (m *User) Reset() { *m = User{} } -func (m *User) String() string { return proto.CompactTextString(m) } -func (*User) ProtoMessage() {} +func (x *User) Reset() { + *x = User{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *User) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*User) ProtoMessage() {} + +func (x *User) ProtoReflect() protoreflect.Message { + mi := &file_admin_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 User.ProtoReflect.Descriptor instead. func (*User) Descriptor() ([]byte, []int) { - return fileDescriptor_73a7fc70dcc2027c, []int{10} + return file_admin_proto_rawDescGZIP(), []int{10} } -func (m *User) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_User.Unmarshal(m, b) -} -func (m *User) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_User.Marshal(b, m, deterministic) -} -func (m *User) XXX_Merge(src proto.Message) { - xxx_messageInfo_User.Merge(m, src) -} -func (m *User) XXX_Size() int { - return xxx_messageInfo_User.Size(m) -} -func (m *User) XXX_DiscardUnknown() { - xxx_messageInfo_User.DiscardUnknown(m) -} - -var xxx_messageInfo_User proto.InternalMessageInfo - -func (m *User) GetId() string { - if m != nil { - return m.Id +func (x *User) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *User) GetState() UserState { - if m != nil { - return m.State +func (x *User) GetState() UserState { + if x != nil { + return x.State } return UserState_USERSTATE_UNSPECIFIED } -func (m *User) GetCreationDate() *timestamp.Timestamp { - if m != nil { - return m.CreationDate +func (x *User) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate } return nil } -func (m *User) GetChangeDate() *timestamp.Timestamp { - if m != nil { - return m.ChangeDate +func (x *User) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate } return nil } -func (m *User) GetUserName() string { - if m != nil { - return m.UserName +func (x *User) GetUserName() string { + if x != nil { + return x.UserName } return "" } -func (m *User) GetFirstName() string { - if m != nil { - return m.FirstName +func (x *User) GetFirstName() string { + if x != nil { + return x.FirstName } return "" } -func (m *User) GetLastName() string { - if m != nil { - return m.LastName +func (x *User) GetLastName() string { + if x != nil { + return x.LastName } return "" } -func (m *User) GetNickName() string { - if m != nil { - return m.NickName +func (x *User) GetNickName() string { + if x != nil { + return x.NickName } return "" } -func (m *User) GetDisplayName() string { - if m != nil { - return m.DisplayName +func (x *User) GetDisplayName() string { + if x != nil { + return x.DisplayName } return "" } -func (m *User) GetPreferredLanguage() string { - if m != nil { - return m.PreferredLanguage +func (x *User) GetPreferredLanguage() string { + if x != nil { + return x.PreferredLanguage } return "" } -func (m *User) GetGender() Gender { - if m != nil { - return m.Gender +func (x *User) GetGender() Gender { + if x != nil { + return x.Gender } return Gender_GENDER_UNSPECIFIED } -func (m *User) GetEmail() string { - if m != nil { - return m.Email +func (x *User) GetEmail() string { + if x != nil { + return x.Email } return "" } -func (m *User) GetIsEmailVerified() bool { - if m != nil { - return m.IsEmailVerified +func (x *User) GetIsEmailVerified() bool { + if x != nil { + return x.IsEmailVerified } return false } -func (m *User) GetPhone() string { - if m != nil { - return m.Phone +func (x *User) GetPhone() string { + if x != nil { + return x.Phone } return "" } -func (m *User) GetIsPhoneVerified() bool { - if m != nil { - return m.IsPhoneVerified +func (x *User) GetIsPhoneVerified() bool { + if x != nil { + return x.IsPhoneVerified } return false } -func (m *User) GetCountry() string { - if m != nil { - return m.Country +func (x *User) GetCountry() string { + if x != nil { + return x.Country } return "" } -func (m *User) GetLocality() string { - if m != nil { - return m.Locality +func (x *User) GetLocality() string { + if x != nil { + return x.Locality } return "" } -func (m *User) GetPostalCode() string { - if m != nil { - return m.PostalCode +func (x *User) GetPostalCode() string { + if x != nil { + return x.PostalCode } return "" } -func (m *User) GetRegion() string { - if m != nil { - return m.Region +func (x *User) GetRegion() string { + if x != nil { + return x.Region } return "" } -func (m *User) GetStreetAddress() string { - if m != nil { - return m.StreetAddress +func (x *User) GetStreetAddress() string { + if x != nil { + return x.StreetAddress } return "" } -func (m *User) GetSequence() uint64 { - if m != nil { - return m.Sequence +func (x *User) GetSequence() uint64 { + if x != nil { + return x.Sequence } return 0 } type CreateOrgRequest struct { - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Domain string `protobuf:"bytes,2,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 + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Domain string `protobuf:"bytes,2,opt,name=domain,proto3" json:"domain,omitempty"` } -func (m *CreateOrgRequest) Reset() { *m = CreateOrgRequest{} } -func (m *CreateOrgRequest) String() string { return proto.CompactTextString(m) } -func (*CreateOrgRequest) ProtoMessage() {} +func (x *CreateOrgRequest) Reset() { + *x = CreateOrgRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateOrgRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateOrgRequest) ProtoMessage() {} + +func (x *CreateOrgRequest) ProtoReflect() protoreflect.Message { + mi := &file_admin_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 CreateOrgRequest.ProtoReflect.Descriptor instead. func (*CreateOrgRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_73a7fc70dcc2027c, []int{11} + return file_admin_proto_rawDescGZIP(), []int{11} } -func (m *CreateOrgRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_CreateOrgRequest.Unmarshal(m, b) -} -func (m *CreateOrgRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_CreateOrgRequest.Marshal(b, m, deterministic) -} -func (m *CreateOrgRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_CreateOrgRequest.Merge(m, src) -} -func (m *CreateOrgRequest) XXX_Size() int { - return xxx_messageInfo_CreateOrgRequest.Size(m) -} -func (m *CreateOrgRequest) XXX_DiscardUnknown() { - xxx_messageInfo_CreateOrgRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_CreateOrgRequest proto.InternalMessageInfo - -func (m *CreateOrgRequest) GetName() string { - if m != nil { - return m.Name +func (x *CreateOrgRequest) GetName() string { + if x != nil { + return x.Name } return "" } -func (m *CreateOrgRequest) GetDomain() string { - if m != nil { - return m.Domain +func (x *CreateOrgRequest) GetDomain() string { + if x != nil { + return x.Domain } return "" } type OrgIamPolicy struct { + 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"` 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"` @@ -1191,1273 +1590,4243 @@ type OrgIamPolicy struct { 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:"-"` } -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_admin_proto_msgTypes[12] + 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_admin_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 OrgIamPolicy.ProtoReflect.Descriptor instead. func (*OrgIamPolicy) Descriptor() ([]byte, []int) { - return fileDescriptor_73a7fc70dcc2027c, []int{12} + return file_admin_proto_rawDescGZIP(), []int{12} } -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 } -func (m *OrgIamPolicy) GetSequence() uint64 { - if m != nil { - return m.Sequence +func (x *OrgIamPolicy) GetSequence() uint64 { + if x != nil { + return x.Sequence } return 0 } -func (m *OrgIamPolicy) GetCreationDate() *timestamp.Timestamp { - if m != nil { - return m.CreationDate +func (x *OrgIamPolicy) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate } return nil } -func (m *OrgIamPolicy) GetChangeDate() *timestamp.Timestamp { - if m != nil { - return m.ChangeDate +func (x *OrgIamPolicy) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate } return nil } type OrgIamPolicyRequest 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"` - 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"` + 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"` } -func (m *OrgIamPolicyRequest) Reset() { *m = OrgIamPolicyRequest{} } -func (m *OrgIamPolicyRequest) String() string { return proto.CompactTextString(m) } -func (*OrgIamPolicyRequest) ProtoMessage() {} +func (x *OrgIamPolicyRequest) Reset() { + *x = OrgIamPolicyRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OrgIamPolicyRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrgIamPolicyRequest) ProtoMessage() {} + +func (x *OrgIamPolicyRequest) ProtoReflect() protoreflect.Message { + mi := &file_admin_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 OrgIamPolicyRequest.ProtoReflect.Descriptor instead. func (*OrgIamPolicyRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_73a7fc70dcc2027c, []int{13} + return file_admin_proto_rawDescGZIP(), []int{13} } -func (m *OrgIamPolicyRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_OrgIamPolicyRequest.Unmarshal(m, b) -} -func (m *OrgIamPolicyRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_OrgIamPolicyRequest.Marshal(b, m, deterministic) -} -func (m *OrgIamPolicyRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_OrgIamPolicyRequest.Merge(m, src) -} -func (m *OrgIamPolicyRequest) XXX_Size() int { - return xxx_messageInfo_OrgIamPolicyRequest.Size(m) -} -func (m *OrgIamPolicyRequest) XXX_DiscardUnknown() { - xxx_messageInfo_OrgIamPolicyRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_OrgIamPolicyRequest proto.InternalMessageInfo - -func (m *OrgIamPolicyRequest) GetOrgId() string { - if m != nil { - return m.OrgId +func (x *OrgIamPolicyRequest) GetOrgId() string { + if x != nil { + return x.OrgId } return "" } -func (m *OrgIamPolicyRequest) GetDescription() string { - if m != nil { - return m.Description +func (x *OrgIamPolicyRequest) GetDescription() string { + if x != nil { + return x.Description } return "" } -func (m *OrgIamPolicyRequest) GetUserLoginMustBeDomain() bool { - if m != nil { - return m.UserLoginMustBeDomain +func (x *OrgIamPolicyRequest) GetUserLoginMustBeDomain() bool { + if x != nil { + return x.UserLoginMustBeDomain } return false } type OrgIamPolicyID struct { - OrgId string `protobuf:"bytes,1,opt,name=org_id,json=orgId,proto3" json:"org_id,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"` } -func (m *OrgIamPolicyID) Reset() { *m = OrgIamPolicyID{} } -func (m *OrgIamPolicyID) String() string { return proto.CompactTextString(m) } -func (*OrgIamPolicyID) ProtoMessage() {} +func (x *OrgIamPolicyID) Reset() { + *x = OrgIamPolicyID{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OrgIamPolicyID) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrgIamPolicyID) ProtoMessage() {} + +func (x *OrgIamPolicyID) ProtoReflect() protoreflect.Message { + mi := &file_admin_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 OrgIamPolicyID.ProtoReflect.Descriptor instead. func (*OrgIamPolicyID) Descriptor() ([]byte, []int) { - return fileDescriptor_73a7fc70dcc2027c, []int{14} + return file_admin_proto_rawDescGZIP(), []int{14} } -func (m *OrgIamPolicyID) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_OrgIamPolicyID.Unmarshal(m, b) -} -func (m *OrgIamPolicyID) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_OrgIamPolicyID.Marshal(b, m, deterministic) -} -func (m *OrgIamPolicyID) XXX_Merge(src proto.Message) { - xxx_messageInfo_OrgIamPolicyID.Merge(m, src) -} -func (m *OrgIamPolicyID) XXX_Size() int { - return xxx_messageInfo_OrgIamPolicyID.Size(m) -} -func (m *OrgIamPolicyID) XXX_DiscardUnknown() { - xxx_messageInfo_OrgIamPolicyID.DiscardUnknown(m) -} - -var xxx_messageInfo_OrgIamPolicyID proto.InternalMessageInfo - -func (m *OrgIamPolicyID) GetOrgId() string { - if m != nil { - return m.OrgId +func (x *OrgIamPolicyID) GetOrgId() string { + if x != nil { + return x.OrgId } return "" } type IamMemberRoles 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 *IamMemberRoles) Reset() { *m = IamMemberRoles{} } -func (m *IamMemberRoles) String() string { return proto.CompactTextString(m) } -func (*IamMemberRoles) ProtoMessage() {} +func (x *IamMemberRoles) Reset() { + *x = IamMemberRoles{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IamMemberRoles) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IamMemberRoles) ProtoMessage() {} + +func (x *IamMemberRoles) ProtoReflect() protoreflect.Message { + mi := &file_admin_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 IamMemberRoles.ProtoReflect.Descriptor instead. func (*IamMemberRoles) Descriptor() ([]byte, []int) { - return fileDescriptor_73a7fc70dcc2027c, []int{15} + return file_admin_proto_rawDescGZIP(), []int{15} } -func (m *IamMemberRoles) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_IamMemberRoles.Unmarshal(m, b) -} -func (m *IamMemberRoles) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_IamMemberRoles.Marshal(b, m, deterministic) -} -func (m *IamMemberRoles) XXX_Merge(src proto.Message) { - xxx_messageInfo_IamMemberRoles.Merge(m, src) -} -func (m *IamMemberRoles) XXX_Size() int { - return xxx_messageInfo_IamMemberRoles.Size(m) -} -func (m *IamMemberRoles) XXX_DiscardUnknown() { - xxx_messageInfo_IamMemberRoles.DiscardUnknown(m) -} - -var xxx_messageInfo_IamMemberRoles proto.InternalMessageInfo - -func (m *IamMemberRoles) GetRoles() []string { - if m != nil { - return m.Roles +func (x *IamMemberRoles) GetRoles() []string { + if x != nil { + return x.Roles } return nil } type IamMember 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 *IamMember) Reset() { *m = IamMember{} } -func (m *IamMember) String() string { return proto.CompactTextString(m) } -func (*IamMember) ProtoMessage() {} +func (x *IamMember) Reset() { + *x = IamMember{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IamMember) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IamMember) ProtoMessage() {} + +func (x *IamMember) ProtoReflect() protoreflect.Message { + mi := &file_admin_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 IamMember.ProtoReflect.Descriptor instead. func (*IamMember) Descriptor() ([]byte, []int) { - return fileDescriptor_73a7fc70dcc2027c, []int{16} + return file_admin_proto_rawDescGZIP(), []int{16} } -func (m *IamMember) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_IamMember.Unmarshal(m, b) -} -func (m *IamMember) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_IamMember.Marshal(b, m, deterministic) -} -func (m *IamMember) XXX_Merge(src proto.Message) { - xxx_messageInfo_IamMember.Merge(m, src) -} -func (m *IamMember) XXX_Size() int { - return xxx_messageInfo_IamMember.Size(m) -} -func (m *IamMember) XXX_DiscardUnknown() { - xxx_messageInfo_IamMember.DiscardUnknown(m) -} - -var xxx_messageInfo_IamMember proto.InternalMessageInfo - -func (m *IamMember) GetUserId() string { - if m != nil { - return m.UserId +func (x *IamMember) GetUserId() string { + if x != nil { + return x.UserId } return "" } -func (m *IamMember) GetRoles() []string { - if m != nil { - return m.Roles +func (x *IamMember) GetRoles() []string { + if x != nil { + return x.Roles } return nil } -func (m *IamMember) GetChangeDate() *timestamp.Timestamp { - if m != nil { - return m.ChangeDate +func (x *IamMember) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate } return nil } -func (m *IamMember) GetCreationDate() *timestamp.Timestamp { - if m != nil { - return m.CreationDate +func (x *IamMember) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate } return nil } -func (m *IamMember) GetSequence() uint64 { - if m != nil { - return m.Sequence +func (x *IamMember) GetSequence() uint64 { + if x != nil { + return x.Sequence } return 0 } type AddIamMemberRequest 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 *AddIamMemberRequest) Reset() { *m = AddIamMemberRequest{} } -func (m *AddIamMemberRequest) String() string { return proto.CompactTextString(m) } -func (*AddIamMemberRequest) ProtoMessage() {} +func (x *AddIamMemberRequest) Reset() { + *x = AddIamMemberRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddIamMemberRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddIamMemberRequest) ProtoMessage() {} + +func (x *AddIamMemberRequest) ProtoReflect() protoreflect.Message { + mi := &file_admin_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 AddIamMemberRequest.ProtoReflect.Descriptor instead. func (*AddIamMemberRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_73a7fc70dcc2027c, []int{17} + return file_admin_proto_rawDescGZIP(), []int{17} } -func (m *AddIamMemberRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_AddIamMemberRequest.Unmarshal(m, b) -} -func (m *AddIamMemberRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_AddIamMemberRequest.Marshal(b, m, deterministic) -} -func (m *AddIamMemberRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_AddIamMemberRequest.Merge(m, src) -} -func (m *AddIamMemberRequest) XXX_Size() int { - return xxx_messageInfo_AddIamMemberRequest.Size(m) -} -func (m *AddIamMemberRequest) XXX_DiscardUnknown() { - xxx_messageInfo_AddIamMemberRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_AddIamMemberRequest proto.InternalMessageInfo - -func (m *AddIamMemberRequest) GetUserId() string { - if m != nil { - return m.UserId +func (x *AddIamMemberRequest) GetUserId() string { + if x != nil { + return x.UserId } return "" } -func (m *AddIamMemberRequest) GetRoles() []string { - if m != nil { - return m.Roles +func (x *AddIamMemberRequest) GetRoles() []string { + if x != nil { + return x.Roles } return nil } type ChangeIamMemberRequest 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 *ChangeIamMemberRequest) Reset() { *m = ChangeIamMemberRequest{} } -func (m *ChangeIamMemberRequest) String() string { return proto.CompactTextString(m) } -func (*ChangeIamMemberRequest) ProtoMessage() {} +func (x *ChangeIamMemberRequest) Reset() { + *x = ChangeIamMemberRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChangeIamMemberRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChangeIamMemberRequest) ProtoMessage() {} + +func (x *ChangeIamMemberRequest) ProtoReflect() protoreflect.Message { + mi := &file_admin_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 ChangeIamMemberRequest.ProtoReflect.Descriptor instead. func (*ChangeIamMemberRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_73a7fc70dcc2027c, []int{18} + return file_admin_proto_rawDescGZIP(), []int{18} } -func (m *ChangeIamMemberRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ChangeIamMemberRequest.Unmarshal(m, b) -} -func (m *ChangeIamMemberRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ChangeIamMemberRequest.Marshal(b, m, deterministic) -} -func (m *ChangeIamMemberRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_ChangeIamMemberRequest.Merge(m, src) -} -func (m *ChangeIamMemberRequest) XXX_Size() int { - return xxx_messageInfo_ChangeIamMemberRequest.Size(m) -} -func (m *ChangeIamMemberRequest) XXX_DiscardUnknown() { - xxx_messageInfo_ChangeIamMemberRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_ChangeIamMemberRequest proto.InternalMessageInfo - -func (m *ChangeIamMemberRequest) GetUserId() string { - if m != nil { - return m.UserId +func (x *ChangeIamMemberRequest) GetUserId() string { + if x != nil { + return x.UserId } return "" } -func (m *ChangeIamMemberRequest) GetRoles() []string { - if m != nil { - return m.Roles +func (x *ChangeIamMemberRequest) GetRoles() []string { + if x != nil { + return x.Roles } return nil } type RemoveIamMemberRequest 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 *RemoveIamMemberRequest) Reset() { *m = RemoveIamMemberRequest{} } -func (m *RemoveIamMemberRequest) String() string { return proto.CompactTextString(m) } -func (*RemoveIamMemberRequest) ProtoMessage() {} +func (x *RemoveIamMemberRequest) Reset() { + *x = RemoveIamMemberRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RemoveIamMemberRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RemoveIamMemberRequest) ProtoMessage() {} + +func (x *RemoveIamMemberRequest) ProtoReflect() protoreflect.Message { + mi := &file_admin_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 RemoveIamMemberRequest.ProtoReflect.Descriptor instead. func (*RemoveIamMemberRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_73a7fc70dcc2027c, []int{19} + return file_admin_proto_rawDescGZIP(), []int{19} } -func (m *RemoveIamMemberRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_RemoveIamMemberRequest.Unmarshal(m, b) -} -func (m *RemoveIamMemberRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_RemoveIamMemberRequest.Marshal(b, m, deterministic) -} -func (m *RemoveIamMemberRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_RemoveIamMemberRequest.Merge(m, src) -} -func (m *RemoveIamMemberRequest) XXX_Size() int { - return xxx_messageInfo_RemoveIamMemberRequest.Size(m) -} -func (m *RemoveIamMemberRequest) XXX_DiscardUnknown() { - xxx_messageInfo_RemoveIamMemberRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_RemoveIamMemberRequest proto.InternalMessageInfo - -func (m *RemoveIamMemberRequest) GetUserId() string { - if m != nil { - return m.UserId +func (x *RemoveIamMemberRequest) GetUserId() string { + if x != nil { + return x.UserId } return "" } type IamMemberSearchResponse 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 []*IamMemberView `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 []*IamMemberView `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 *IamMemberSearchResponse) Reset() { *m = IamMemberSearchResponse{} } -func (m *IamMemberSearchResponse) String() string { return proto.CompactTextString(m) } -func (*IamMemberSearchResponse) ProtoMessage() {} +func (x *IamMemberSearchResponse) Reset() { + *x = IamMemberSearchResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IamMemberSearchResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IamMemberSearchResponse) ProtoMessage() {} + +func (x *IamMemberSearchResponse) ProtoReflect() protoreflect.Message { + mi := &file_admin_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 IamMemberSearchResponse.ProtoReflect.Descriptor instead. func (*IamMemberSearchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_73a7fc70dcc2027c, []int{20} + return file_admin_proto_rawDescGZIP(), []int{20} } -func (m *IamMemberSearchResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_IamMemberSearchResponse.Unmarshal(m, b) -} -func (m *IamMemberSearchResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_IamMemberSearchResponse.Marshal(b, m, deterministic) -} -func (m *IamMemberSearchResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_IamMemberSearchResponse.Merge(m, src) -} -func (m *IamMemberSearchResponse) XXX_Size() int { - return xxx_messageInfo_IamMemberSearchResponse.Size(m) -} -func (m *IamMemberSearchResponse) XXX_DiscardUnknown() { - xxx_messageInfo_IamMemberSearchResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_IamMemberSearchResponse proto.InternalMessageInfo - -func (m *IamMemberSearchResponse) GetOffset() uint64 { - if m != nil { - return m.Offset +func (x *IamMemberSearchResponse) GetOffset() uint64 { + if x != nil { + return x.Offset } return 0 } -func (m *IamMemberSearchResponse) GetLimit() uint64 { - if m != nil { - return m.Limit +func (x *IamMemberSearchResponse) GetLimit() uint64 { + if x != nil { + return x.Limit } return 0 } -func (m *IamMemberSearchResponse) GetTotalResult() uint64 { - if m != nil { - return m.TotalResult +func (x *IamMemberSearchResponse) GetTotalResult() uint64 { + if x != nil { + return x.TotalResult } return 0 } -func (m *IamMemberSearchResponse) GetResult() []*IamMemberView { - if m != nil { - return m.Result +func (x *IamMemberSearchResponse) GetResult() []*IamMemberView { + if x != nil { + return x.Result } return nil } -func (m *IamMemberSearchResponse) GetProcessedSequence() uint64 { - if m != nil { - return m.ProcessedSequence +func (x *IamMemberSearchResponse) GetProcessedSequence() uint64 { + if x != nil { + return x.ProcessedSequence } return 0 } -func (m *IamMemberSearchResponse) GetViewTimestamp() *timestamp.Timestamp { - if m != nil { - return m.ViewTimestamp +func (x *IamMemberSearchResponse) GetViewTimestamp() *timestamp.Timestamp { + if x != nil { + return x.ViewTimestamp } return nil } type IamMemberView 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 *IamMemberView) Reset() { *m = IamMemberView{} } -func (m *IamMemberView) String() string { return proto.CompactTextString(m) } -func (*IamMemberView) ProtoMessage() {} +func (x *IamMemberView) Reset() { + *x = IamMemberView{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IamMemberView) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IamMemberView) ProtoMessage() {} + +func (x *IamMemberView) ProtoReflect() protoreflect.Message { + mi := &file_admin_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 IamMemberView.ProtoReflect.Descriptor instead. func (*IamMemberView) Descriptor() ([]byte, []int) { - return fileDescriptor_73a7fc70dcc2027c, []int{21} + return file_admin_proto_rawDescGZIP(), []int{21} } -func (m *IamMemberView) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_IamMemberView.Unmarshal(m, b) -} -func (m *IamMemberView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_IamMemberView.Marshal(b, m, deterministic) -} -func (m *IamMemberView) XXX_Merge(src proto.Message) { - xxx_messageInfo_IamMemberView.Merge(m, src) -} -func (m *IamMemberView) XXX_Size() int { - return xxx_messageInfo_IamMemberView.Size(m) -} -func (m *IamMemberView) XXX_DiscardUnknown() { - xxx_messageInfo_IamMemberView.DiscardUnknown(m) -} - -var xxx_messageInfo_IamMemberView proto.InternalMessageInfo - -func (m *IamMemberView) GetUserId() string { - if m != nil { - return m.UserId +func (x *IamMemberView) GetUserId() string { + if x != nil { + return x.UserId } return "" } -func (m *IamMemberView) GetRoles() []string { - if m != nil { - return m.Roles +func (x *IamMemberView) GetRoles() []string { + if x != nil { + return x.Roles } return nil } -func (m *IamMemberView) GetChangeDate() *timestamp.Timestamp { - if m != nil { - return m.ChangeDate +func (x *IamMemberView) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate } return nil } -func (m *IamMemberView) GetCreationDate() *timestamp.Timestamp { - if m != nil { - return m.CreationDate +func (x *IamMemberView) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate } return nil } -func (m *IamMemberView) GetSequence() uint64 { - if m != nil { - return m.Sequence +func (x *IamMemberView) GetSequence() uint64 { + if x != nil { + return x.Sequence } return 0 } -func (m *IamMemberView) GetUserName() string { - if m != nil { - return m.UserName +func (x *IamMemberView) GetUserName() string { + if x != nil { + return x.UserName } return "" } -func (m *IamMemberView) GetEmail() string { - if m != nil { - return m.Email +func (x *IamMemberView) GetEmail() string { + if x != nil { + return x.Email } return "" } -func (m *IamMemberView) GetFirstName() string { - if m != nil { - return m.FirstName +func (x *IamMemberView) GetFirstName() string { + if x != nil { + return x.FirstName } return "" } -func (m *IamMemberView) GetLastName() string { - if m != nil { - return m.LastName +func (x *IamMemberView) GetLastName() string { + if x != nil { + return x.LastName } return "" } -func (m *IamMemberView) GetDisplayName() string { - if m != nil { - return m.DisplayName +func (x *IamMemberView) GetDisplayName() string { + if x != nil { + return x.DisplayName } return "" } type IamMemberSearchRequest 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 []*IamMemberSearchQuery `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 []*IamMemberSearchQuery `protobuf:"bytes,3,rep,name=queries,proto3" json:"queries,omitempty"` } -func (m *IamMemberSearchRequest) Reset() { *m = IamMemberSearchRequest{} } -func (m *IamMemberSearchRequest) String() string { return proto.CompactTextString(m) } -func (*IamMemberSearchRequest) ProtoMessage() {} +func (x *IamMemberSearchRequest) Reset() { + *x = IamMemberSearchRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IamMemberSearchRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IamMemberSearchRequest) ProtoMessage() {} + +func (x *IamMemberSearchRequest) ProtoReflect() protoreflect.Message { + mi := &file_admin_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 IamMemberSearchRequest.ProtoReflect.Descriptor instead. func (*IamMemberSearchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_73a7fc70dcc2027c, []int{22} + return file_admin_proto_rawDescGZIP(), []int{22} } -func (m *IamMemberSearchRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_IamMemberSearchRequest.Unmarshal(m, b) -} -func (m *IamMemberSearchRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_IamMemberSearchRequest.Marshal(b, m, deterministic) -} -func (m *IamMemberSearchRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_IamMemberSearchRequest.Merge(m, src) -} -func (m *IamMemberSearchRequest) XXX_Size() int { - return xxx_messageInfo_IamMemberSearchRequest.Size(m) -} -func (m *IamMemberSearchRequest) XXX_DiscardUnknown() { - xxx_messageInfo_IamMemberSearchRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_IamMemberSearchRequest proto.InternalMessageInfo - -func (m *IamMemberSearchRequest) GetOffset() uint64 { - if m != nil { - return m.Offset +func (x *IamMemberSearchRequest) GetOffset() uint64 { + if x != nil { + return x.Offset } return 0 } -func (m *IamMemberSearchRequest) GetLimit() uint64 { - if m != nil { - return m.Limit +func (x *IamMemberSearchRequest) GetLimit() uint64 { + if x != nil { + return x.Limit } return 0 } -func (m *IamMemberSearchRequest) GetQueries() []*IamMemberSearchQuery { - if m != nil { - return m.Queries +func (x *IamMemberSearchRequest) GetQueries() []*IamMemberSearchQuery { + if x != nil { + return x.Queries } return nil } type IamMemberSearchQuery struct { - Key IamMemberSearchKey `protobuf:"varint,1,opt,name=key,proto3,enum=caos.zitadel.admin.api.v1.IamMemberSearchKey" json:"key,omitempty"` - Method SearchMethod `protobuf:"varint,2,opt,name=method,proto3,enum=caos.zitadel.admin.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 IamMemberSearchKey `protobuf:"varint,1,opt,name=key,proto3,enum=caos.zitadel.admin.api.v1.IamMemberSearchKey" json:"key,omitempty"` + Method SearchMethod `protobuf:"varint,2,opt,name=method,proto3,enum=caos.zitadel.admin.api.v1.SearchMethod" json:"method,omitempty"` + Value string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` } -func (m *IamMemberSearchQuery) Reset() { *m = IamMemberSearchQuery{} } -func (m *IamMemberSearchQuery) String() string { return proto.CompactTextString(m) } -func (*IamMemberSearchQuery) ProtoMessage() {} +func (x *IamMemberSearchQuery) Reset() { + *x = IamMemberSearchQuery{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IamMemberSearchQuery) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IamMemberSearchQuery) ProtoMessage() {} + +func (x *IamMemberSearchQuery) ProtoReflect() protoreflect.Message { + mi := &file_admin_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 IamMemberSearchQuery.ProtoReflect.Descriptor instead. func (*IamMemberSearchQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_73a7fc70dcc2027c, []int{23} + return file_admin_proto_rawDescGZIP(), []int{23} } -func (m *IamMemberSearchQuery) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_IamMemberSearchQuery.Unmarshal(m, b) -} -func (m *IamMemberSearchQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_IamMemberSearchQuery.Marshal(b, m, deterministic) -} -func (m *IamMemberSearchQuery) XXX_Merge(src proto.Message) { - xxx_messageInfo_IamMemberSearchQuery.Merge(m, src) -} -func (m *IamMemberSearchQuery) XXX_Size() int { - return xxx_messageInfo_IamMemberSearchQuery.Size(m) -} -func (m *IamMemberSearchQuery) XXX_DiscardUnknown() { - xxx_messageInfo_IamMemberSearchQuery.DiscardUnknown(m) -} - -var xxx_messageInfo_IamMemberSearchQuery proto.InternalMessageInfo - -func (m *IamMemberSearchQuery) GetKey() IamMemberSearchKey { - if m != nil { - return m.Key +func (x *IamMemberSearchQuery) GetKey() IamMemberSearchKey { + if x != nil { + return x.Key } return IamMemberSearchKey_IAMMEMBERSEARCHKEY_UNSPECIFIED } -func (m *IamMemberSearchQuery) GetMethod() SearchMethod { - if m != nil { - return m.Method +func (x *IamMemberSearchQuery) GetMethod() SearchMethod { + if x != nil { + return x.Method } return SearchMethod_SEARCHMETHOD_EQUALS } -func (m *IamMemberSearchQuery) GetValue() string { - if m != nil { - return m.Value +func (x *IamMemberSearchQuery) GetValue() string { + if x != nil { + return x.Value } return "" } type FailedEventID struct { - Database string `protobuf:"bytes,1,opt,name=database,proto3" json:"database,omitempty"` - ViewName string `protobuf:"bytes,2,opt,name=view_name,json=viewName,proto3" json:"view_name,omitempty"` - FailedSequence uint64 `protobuf:"varint,3,opt,name=failed_sequence,json=failedSequence,proto3" json:"failed_sequence,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Database string `protobuf:"bytes,1,opt,name=database,proto3" json:"database,omitempty"` + ViewName string `protobuf:"bytes,2,opt,name=view_name,json=viewName,proto3" json:"view_name,omitempty"` + FailedSequence uint64 `protobuf:"varint,3,opt,name=failed_sequence,json=failedSequence,proto3" json:"failed_sequence,omitempty"` } -func (m *FailedEventID) Reset() { *m = FailedEventID{} } -func (m *FailedEventID) String() string { return proto.CompactTextString(m) } -func (*FailedEventID) ProtoMessage() {} +func (x *FailedEventID) Reset() { + *x = FailedEventID{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FailedEventID) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FailedEventID) ProtoMessage() {} + +func (x *FailedEventID) ProtoReflect() protoreflect.Message { + mi := &file_admin_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 FailedEventID.ProtoReflect.Descriptor instead. func (*FailedEventID) Descriptor() ([]byte, []int) { - return fileDescriptor_73a7fc70dcc2027c, []int{24} + return file_admin_proto_rawDescGZIP(), []int{24} } -func (m *FailedEventID) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_FailedEventID.Unmarshal(m, b) -} -func (m *FailedEventID) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_FailedEventID.Marshal(b, m, deterministic) -} -func (m *FailedEventID) XXX_Merge(src proto.Message) { - xxx_messageInfo_FailedEventID.Merge(m, src) -} -func (m *FailedEventID) XXX_Size() int { - return xxx_messageInfo_FailedEventID.Size(m) -} -func (m *FailedEventID) XXX_DiscardUnknown() { - xxx_messageInfo_FailedEventID.DiscardUnknown(m) -} - -var xxx_messageInfo_FailedEventID proto.InternalMessageInfo - -func (m *FailedEventID) GetDatabase() string { - if m != nil { - return m.Database +func (x *FailedEventID) GetDatabase() string { + if x != nil { + return x.Database } return "" } -func (m *FailedEventID) GetViewName() string { - if m != nil { - return m.ViewName +func (x *FailedEventID) GetViewName() string { + if x != nil { + return x.ViewName } return "" } -func (m *FailedEventID) GetFailedSequence() uint64 { - if m != nil { - return m.FailedSequence +func (x *FailedEventID) GetFailedSequence() uint64 { + if x != nil { + return x.FailedSequence } return 0 } type FailedEvents struct { - FailedEvents []*FailedEvent `protobuf:"bytes,1,rep,name=failed_events,json=failedEvents,proto3" json:"failed_events,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FailedEvents []*FailedEvent `protobuf:"bytes,1,rep,name=failed_events,json=failedEvents,proto3" json:"failed_events,omitempty"` } -func (m *FailedEvents) Reset() { *m = FailedEvents{} } -func (m *FailedEvents) String() string { return proto.CompactTextString(m) } -func (*FailedEvents) ProtoMessage() {} +func (x *FailedEvents) Reset() { + *x = FailedEvents{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FailedEvents) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FailedEvents) ProtoMessage() {} + +func (x *FailedEvents) ProtoReflect() protoreflect.Message { + mi := &file_admin_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 FailedEvents.ProtoReflect.Descriptor instead. func (*FailedEvents) Descriptor() ([]byte, []int) { - return fileDescriptor_73a7fc70dcc2027c, []int{25} + return file_admin_proto_rawDescGZIP(), []int{25} } -func (m *FailedEvents) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_FailedEvents.Unmarshal(m, b) -} -func (m *FailedEvents) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_FailedEvents.Marshal(b, m, deterministic) -} -func (m *FailedEvents) XXX_Merge(src proto.Message) { - xxx_messageInfo_FailedEvents.Merge(m, src) -} -func (m *FailedEvents) XXX_Size() int { - return xxx_messageInfo_FailedEvents.Size(m) -} -func (m *FailedEvents) XXX_DiscardUnknown() { - xxx_messageInfo_FailedEvents.DiscardUnknown(m) -} - -var xxx_messageInfo_FailedEvents proto.InternalMessageInfo - -func (m *FailedEvents) GetFailedEvents() []*FailedEvent { - if m != nil { - return m.FailedEvents +func (x *FailedEvents) GetFailedEvents() []*FailedEvent { + if x != nil { + return x.FailedEvents } return nil } type FailedEvent struct { - Database string `protobuf:"bytes,1,opt,name=database,proto3" json:"database,omitempty"` - ViewName string `protobuf:"bytes,2,opt,name=view_name,json=viewName,proto3" json:"view_name,omitempty"` - FailedSequence uint64 `protobuf:"varint,3,opt,name=failed_sequence,json=failedSequence,proto3" json:"failed_sequence,omitempty"` - FailureCount uint64 `protobuf:"varint,4,opt,name=failure_count,json=failureCount,proto3" json:"failure_count,omitempty"` - ErrorMessage string `protobuf:"bytes,5,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Database string `protobuf:"bytes,1,opt,name=database,proto3" json:"database,omitempty"` + ViewName string `protobuf:"bytes,2,opt,name=view_name,json=viewName,proto3" json:"view_name,omitempty"` + FailedSequence uint64 `protobuf:"varint,3,opt,name=failed_sequence,json=failedSequence,proto3" json:"failed_sequence,omitempty"` + FailureCount uint64 `protobuf:"varint,4,opt,name=failure_count,json=failureCount,proto3" json:"failure_count,omitempty"` + ErrorMessage string `protobuf:"bytes,5,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` } -func (m *FailedEvent) Reset() { *m = FailedEvent{} } -func (m *FailedEvent) String() string { return proto.CompactTextString(m) } -func (*FailedEvent) ProtoMessage() {} +func (x *FailedEvent) Reset() { + *x = FailedEvent{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FailedEvent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FailedEvent) ProtoMessage() {} + +func (x *FailedEvent) ProtoReflect() protoreflect.Message { + mi := &file_admin_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 FailedEvent.ProtoReflect.Descriptor instead. func (*FailedEvent) Descriptor() ([]byte, []int) { - return fileDescriptor_73a7fc70dcc2027c, []int{26} + return file_admin_proto_rawDescGZIP(), []int{26} } -func (m *FailedEvent) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_FailedEvent.Unmarshal(m, b) -} -func (m *FailedEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_FailedEvent.Marshal(b, m, deterministic) -} -func (m *FailedEvent) XXX_Merge(src proto.Message) { - xxx_messageInfo_FailedEvent.Merge(m, src) -} -func (m *FailedEvent) XXX_Size() int { - return xxx_messageInfo_FailedEvent.Size(m) -} -func (m *FailedEvent) XXX_DiscardUnknown() { - xxx_messageInfo_FailedEvent.DiscardUnknown(m) -} - -var xxx_messageInfo_FailedEvent proto.InternalMessageInfo - -func (m *FailedEvent) GetDatabase() string { - if m != nil { - return m.Database +func (x *FailedEvent) GetDatabase() string { + if x != nil { + return x.Database } return "" } -func (m *FailedEvent) GetViewName() string { - if m != nil { - return m.ViewName +func (x *FailedEvent) GetViewName() string { + if x != nil { + return x.ViewName } return "" } -func (m *FailedEvent) GetFailedSequence() uint64 { - if m != nil { - return m.FailedSequence +func (x *FailedEvent) GetFailedSequence() uint64 { + if x != nil { + return x.FailedSequence } return 0 } -func (m *FailedEvent) GetFailureCount() uint64 { - if m != nil { - return m.FailureCount +func (x *FailedEvent) GetFailureCount() uint64 { + if x != nil { + return x.FailureCount } return 0 } -func (m *FailedEvent) GetErrorMessage() string { - if m != nil { - return m.ErrorMessage +func (x *FailedEvent) GetErrorMessage() string { + if x != nil { + return x.ErrorMessage } return "" } type ViewID struct { - Database string `protobuf:"bytes,1,opt,name=database,proto3" json:"database,omitempty"` - ViewName string `protobuf:"bytes,2,opt,name=view_name,json=viewName,proto3" json:"view_name,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Database string `protobuf:"bytes,1,opt,name=database,proto3" json:"database,omitempty"` + ViewName string `protobuf:"bytes,2,opt,name=view_name,json=viewName,proto3" json:"view_name,omitempty"` } -func (m *ViewID) Reset() { *m = ViewID{} } -func (m *ViewID) String() string { return proto.CompactTextString(m) } -func (*ViewID) ProtoMessage() {} +func (x *ViewID) Reset() { + *x = ViewID{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ViewID) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ViewID) ProtoMessage() {} + +func (x *ViewID) ProtoReflect() protoreflect.Message { + mi := &file_admin_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 ViewID.ProtoReflect.Descriptor instead. func (*ViewID) Descriptor() ([]byte, []int) { - return fileDescriptor_73a7fc70dcc2027c, []int{27} + return file_admin_proto_rawDescGZIP(), []int{27} } -func (m *ViewID) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ViewID.Unmarshal(m, b) -} -func (m *ViewID) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ViewID.Marshal(b, m, deterministic) -} -func (m *ViewID) XXX_Merge(src proto.Message) { - xxx_messageInfo_ViewID.Merge(m, src) -} -func (m *ViewID) XXX_Size() int { - return xxx_messageInfo_ViewID.Size(m) -} -func (m *ViewID) XXX_DiscardUnknown() { - xxx_messageInfo_ViewID.DiscardUnknown(m) -} - -var xxx_messageInfo_ViewID proto.InternalMessageInfo - -func (m *ViewID) GetDatabase() string { - if m != nil { - return m.Database +func (x *ViewID) GetDatabase() string { + if x != nil { + return x.Database } return "" } -func (m *ViewID) GetViewName() string { - if m != nil { - return m.ViewName +func (x *ViewID) GetViewName() string { + if x != nil { + return x.ViewName } return "" } type Views struct { - Views []*View `protobuf:"bytes,1,rep,name=views,proto3" json:"views,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Views []*View `protobuf:"bytes,1,rep,name=views,proto3" json:"views,omitempty"` } -func (m *Views) Reset() { *m = Views{} } -func (m *Views) String() string { return proto.CompactTextString(m) } -func (*Views) ProtoMessage() {} +func (x *Views) Reset() { + *x = Views{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Views) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Views) ProtoMessage() {} + +func (x *Views) ProtoReflect() protoreflect.Message { + mi := &file_admin_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 Views.ProtoReflect.Descriptor instead. func (*Views) Descriptor() ([]byte, []int) { - return fileDescriptor_73a7fc70dcc2027c, []int{28} + return file_admin_proto_rawDescGZIP(), []int{28} } -func (m *Views) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Views.Unmarshal(m, b) -} -func (m *Views) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Views.Marshal(b, m, deterministic) -} -func (m *Views) XXX_Merge(src proto.Message) { - xxx_messageInfo_Views.Merge(m, src) -} -func (m *Views) XXX_Size() int { - return xxx_messageInfo_Views.Size(m) -} -func (m *Views) XXX_DiscardUnknown() { - xxx_messageInfo_Views.DiscardUnknown(m) -} - -var xxx_messageInfo_Views proto.InternalMessageInfo - -func (m *Views) GetViews() []*View { - if m != nil { - return m.Views +func (x *Views) GetViews() []*View { + if x != nil { + return x.Views } return nil } type View struct { - Database string `protobuf:"bytes,1,opt,name=database,proto3" json:"database,omitempty"` - ViewName string `protobuf:"bytes,2,opt,name=view_name,json=viewName,proto3" json:"view_name,omitempty"` - ProcessedSequence uint64 `protobuf:"varint,3,opt,name=processed_sequence,json=processedSequence,proto3" json:"processed_sequence,omitempty"` - ViewTimestamp *timestamp.Timestamp `protobuf:"bytes,4,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 + + Database string `protobuf:"bytes,1,opt,name=database,proto3" json:"database,omitempty"` + ViewName string `protobuf:"bytes,2,opt,name=view_name,json=viewName,proto3" json:"view_name,omitempty"` + ProcessedSequence uint64 `protobuf:"varint,3,opt,name=processed_sequence,json=processedSequence,proto3" json:"processed_sequence,omitempty"` + ViewTimestamp *timestamp.Timestamp `protobuf:"bytes,4,opt,name=view_timestamp,json=viewTimestamp,proto3" json:"view_timestamp,omitempty"` } -func (m *View) Reset() { *m = View{} } -func (m *View) String() string { return proto.CompactTextString(m) } -func (*View) ProtoMessage() {} +func (x *View) Reset() { + *x = View{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *View) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*View) ProtoMessage() {} + +func (x *View) ProtoReflect() protoreflect.Message { + mi := &file_admin_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 View.ProtoReflect.Descriptor instead. func (*View) Descriptor() ([]byte, []int) { - return fileDescriptor_73a7fc70dcc2027c, []int{29} + return file_admin_proto_rawDescGZIP(), []int{29} } -func (m *View) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_View.Unmarshal(m, b) -} -func (m *View) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_View.Marshal(b, m, deterministic) -} -func (m *View) XXX_Merge(src proto.Message) { - xxx_messageInfo_View.Merge(m, src) -} -func (m *View) XXX_Size() int { - return xxx_messageInfo_View.Size(m) -} -func (m *View) XXX_DiscardUnknown() { - xxx_messageInfo_View.DiscardUnknown(m) -} - -var xxx_messageInfo_View proto.InternalMessageInfo - -func (m *View) GetDatabase() string { - if m != nil { - return m.Database +func (x *View) GetDatabase() string { + if x != nil { + return x.Database } return "" } -func (m *View) GetViewName() string { - if m != nil { - return m.ViewName +func (x *View) GetViewName() string { + if x != nil { + return x.ViewName } return "" } -func (m *View) GetProcessedSequence() uint64 { - if m != nil { - return m.ProcessedSequence +func (x *View) GetProcessedSequence() uint64 { + if x != nil { + return x.ProcessedSequence } return 0 } -func (m *View) GetViewTimestamp() *timestamp.Timestamp { - if m != nil { - return m.ViewTimestamp +func (x *View) GetViewTimestamp() *timestamp.Timestamp { + if x != nil { + return x.ViewTimestamp } return nil } -func init() { - proto.RegisterEnum("caos.zitadel.admin.api.v1.OrgState", OrgState_name, OrgState_value) - proto.RegisterEnum("caos.zitadel.admin.api.v1.OrgSearchKey", OrgSearchKey_name, OrgSearchKey_value) - proto.RegisterEnum("caos.zitadel.admin.api.v1.OrgSearchMethod", OrgSearchMethod_name, OrgSearchMethod_value) - proto.RegisterEnum("caos.zitadel.admin.api.v1.UserState", UserState_name, UserState_value) - proto.RegisterEnum("caos.zitadel.admin.api.v1.Gender", Gender_name, Gender_value) - proto.RegisterEnum("caos.zitadel.admin.api.v1.IamMemberSearchKey", IamMemberSearchKey_name, IamMemberSearchKey_value) - proto.RegisterEnum("caos.zitadel.admin.api.v1.SearchMethod", SearchMethod_name, SearchMethod_value) - proto.RegisterType((*OrgID)(nil), "caos.zitadel.admin.api.v1.OrgID") - proto.RegisterType((*UniqueOrgRequest)(nil), "caos.zitadel.admin.api.v1.UniqueOrgRequest") - proto.RegisterType((*UniqueOrgResponse)(nil), "caos.zitadel.admin.api.v1.UniqueOrgResponse") - proto.RegisterType((*Org)(nil), "caos.zitadel.admin.api.v1.Org") - proto.RegisterType((*OrgSearchRequest)(nil), "caos.zitadel.admin.api.v1.OrgSearchRequest") - proto.RegisterType((*OrgSearchQuery)(nil), "caos.zitadel.admin.api.v1.OrgSearchQuery") - proto.RegisterType((*OrgSearchResponse)(nil), "caos.zitadel.admin.api.v1.OrgSearchResponse") - proto.RegisterType((*OrgSetUpRequest)(nil), "caos.zitadel.admin.api.v1.OrgSetUpRequest") - proto.RegisterType((*OrgSetUpResponse)(nil), "caos.zitadel.admin.api.v1.OrgSetUpResponse") - proto.RegisterType((*CreateUserRequest)(nil), "caos.zitadel.admin.api.v1.CreateUserRequest") - proto.RegisterType((*User)(nil), "caos.zitadel.admin.api.v1.User") - proto.RegisterType((*CreateOrgRequest)(nil), "caos.zitadel.admin.api.v1.CreateOrgRequest") - proto.RegisterType((*OrgIamPolicy)(nil), "caos.zitadel.admin.api.v1.OrgIamPolicy") - proto.RegisterType((*OrgIamPolicyRequest)(nil), "caos.zitadel.admin.api.v1.OrgIamPolicyRequest") - proto.RegisterType((*OrgIamPolicyID)(nil), "caos.zitadel.admin.api.v1.OrgIamPolicyID") - proto.RegisterType((*IamMemberRoles)(nil), "caos.zitadel.admin.api.v1.IamMemberRoles") - proto.RegisterType((*IamMember)(nil), "caos.zitadel.admin.api.v1.IamMember") - proto.RegisterType((*AddIamMemberRequest)(nil), "caos.zitadel.admin.api.v1.AddIamMemberRequest") - proto.RegisterType((*ChangeIamMemberRequest)(nil), "caos.zitadel.admin.api.v1.ChangeIamMemberRequest") - proto.RegisterType((*RemoveIamMemberRequest)(nil), "caos.zitadel.admin.api.v1.RemoveIamMemberRequest") - proto.RegisterType((*IamMemberSearchResponse)(nil), "caos.zitadel.admin.api.v1.IamMemberSearchResponse") - proto.RegisterType((*IamMemberView)(nil), "caos.zitadel.admin.api.v1.IamMemberView") - proto.RegisterType((*IamMemberSearchRequest)(nil), "caos.zitadel.admin.api.v1.IamMemberSearchRequest") - proto.RegisterType((*IamMemberSearchQuery)(nil), "caos.zitadel.admin.api.v1.IamMemberSearchQuery") - proto.RegisterType((*FailedEventID)(nil), "caos.zitadel.admin.api.v1.FailedEventID") - proto.RegisterType((*FailedEvents)(nil), "caos.zitadel.admin.api.v1.FailedEvents") - proto.RegisterType((*FailedEvent)(nil), "caos.zitadel.admin.api.v1.FailedEvent") - proto.RegisterType((*ViewID)(nil), "caos.zitadel.admin.api.v1.ViewID") - proto.RegisterType((*Views)(nil), "caos.zitadel.admin.api.v1.Views") - proto.RegisterType((*View)(nil), "caos.zitadel.admin.api.v1.View") +type IdpID struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` } -func init() { proto.RegisterFile("admin.proto", fileDescriptor_73a7fc70dcc2027c) } +func (x *IdpID) Reset() { + *x = IdpID{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} -var fileDescriptor_73a7fc70dcc2027c = []byte{ - // 2932 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x59, 0x4b, 0x73, 0xdb, 0xd6, - 0xf5, 0x0f, 0xf8, 0x12, 0x79, 0x48, 0x51, 0xe0, 0xb5, 0x1e, 0x34, 0x65, 0xc7, 0x32, 0xfc, 0x96, - 0x63, 0xd1, 0x56, 0xfe, 0x79, 0xf9, 0x3f, 0x6d, 0x42, 0x91, 0xb0, 0x8c, 0xb1, 0x44, 0x3a, 0x20, - 0xe5, 0xa6, 0xed, 0x02, 0x85, 0x88, 0x2b, 0x0a, 0x0d, 0x49, 0xd0, 0x00, 0x28, 0x57, 0x71, 0xbd, - 0x71, 0xa7, 0x33, 0x9d, 0xe9, 0x4c, 0xd2, 0xa6, 0xdb, 0x4c, 0xbb, 0xe9, 0xa2, 0x33, 0x5d, 0x64, - 0x3a, 0x1d, 0xcf, 0xf4, 0xf1, 0x05, 0xba, 0x6f, 0x3f, 0x42, 0x57, 0xd9, 0x75, 0xeb, 0x55, 0xe7, - 0xde, 0x0b, 0x80, 0x00, 0x09, 0x42, 0x54, 0x32, 0x69, 0x33, 0x5d, 0x91, 0x38, 0xe7, 0x77, 0xce, - 0xfd, 0xe1, 0xdc, 0x73, 0xee, 0xe3, 0x00, 0xb2, 0xaa, 0xd6, 0xd3, 0xfb, 0x1b, 0x03, 0xd3, 0xb0, - 0x0d, 0x74, 0xb6, 0xad, 0x1a, 0xd6, 0xc6, 0x47, 0xba, 0xad, 0x6a, 0xb8, 0xbb, 0xc1, 0x34, 0xea, - 0x40, 0xdf, 0x38, 0xba, 0x53, 0x3a, 0xd7, 0x31, 0x8c, 0x4e, 0x17, 0x97, 0xd5, 0x81, 0x5e, 0x56, - 0xfb, 0x7d, 0xc3, 0x56, 0x6d, 0xdd, 0xe8, 0x5b, 0xcc, 0xb0, 0xb4, 0xea, 0x68, 0xe9, 0xd3, 0xfe, - 0xf0, 0xa0, 0x8c, 0x7b, 0x03, 0xfb, 0xd8, 0x51, 0x5e, 0x18, 0x57, 0xda, 0x7a, 0x0f, 0x5b, 0xb6, - 0xda, 0x1b, 0x38, 0x80, 0x73, 0xe3, 0x00, 0xcb, 0x36, 0x87, 0x6d, 0xdb, 0xd1, 0xae, 0x1c, 0xa9, - 0x5d, 0x5d, 0x53, 0x6d, 0x5c, 0x76, 0xff, 0x38, 0x8a, 0xd7, 0xe8, 0x4f, 0xfb, 0x56, 0x07, 0xf7, - 0x6f, 0x59, 0x4f, 0xd4, 0x4e, 0x07, 0x9b, 0x65, 0x63, 0x40, 0x69, 0x85, 0x50, 0x2c, 0xaa, 0x43, - 0xfb, 0x90, 0xa9, 0x5d, 0x14, 0xd3, 0x08, 0x2b, 0x90, 0x6c, 0x98, 0x1d, 0xa9, 0x86, 0xf2, 0x10, - 0xd3, 0xb5, 0x22, 0xb7, 0xc6, 0x5d, 0xcf, 0xc8, 0x31, 0x5d, 0x13, 0x1e, 0x02, 0xbf, 0xd7, 0xd7, - 0x1f, 0x0f, 0x71, 0xc3, 0xec, 0xc8, 0xf8, 0xf1, 0x10, 0x5b, 0x36, 0x5a, 0x85, 0x44, 0x5f, 0xed, - 0x61, 0x86, 0xda, 0x9a, 0x7b, 0xb9, 0x95, 0x30, 0x63, 0x3c, 0x27, 0x53, 0x21, 0xba, 0x00, 0x29, - 0xcd, 0xe8, 0xa9, 0x7a, 0xbf, 0x18, 0x0b, 0xaa, 0x1d, 0xb1, 0x70, 0x1b, 0x0a, 0x3e, 0x8f, 0xd6, - 0xc0, 0xe8, 0x5b, 0x18, 0xad, 0x42, 0x46, 0xb7, 0x94, 0x21, 0x95, 0x53, 0xbf, 0x69, 0x39, 0xad, - 0x5b, 0x0c, 0x27, 0xbc, 0xe4, 0x20, 0xde, 0x30, 0x3b, 0xe3, 0xdc, 0xd0, 0x3b, 0x90, 0xb4, 0x6c, - 0xd5, 0xc6, 0x74, 0xa4, 0xfc, 0xe6, 0xa5, 0x8d, 0xa9, 0x53, 0xb7, 0xd1, 0x30, 0x3b, 0x4d, 0x02, - 0x95, 0x99, 0x05, 0x7a, 0x17, 0xe6, 0xdb, 0x26, 0xa6, 0xc1, 0x51, 0x48, 0x38, 0x8b, 0xf1, 0x35, - 0xee, 0x7a, 0x76, 0xb3, 0xb4, 0xc1, 0xa6, 0x61, 0xc3, 0x9d, 0x86, 0x8d, 0x96, 0x3b, 0x4f, 0x72, - 0xce, 0x35, 0xa8, 0x11, 0x07, 0xff, 0x0f, 0xd9, 0xf6, 0xa1, 0xda, 0xef, 0x60, 0x66, 0x9e, 0x38, - 0xd1, 0x1c, 0x18, 0x9c, 0x1a, 0x23, 0x27, 0x80, 0x49, 0xfa, 0x2a, 0x2c, 0x6e, 0xcb, 0x5e, 0xdc, - 0x52, 0x54, 0xea, 0x86, 0xeb, 0x5f, 0x1c, 0xf0, 0x84, 0x3d, 0x56, 0xcd, 0xf6, 0xa1, 0x3b, 0x03, - 0xcb, 0x90, 0x32, 0x0e, 0x0e, 0x2c, 0x6c, 0xd3, 0x68, 0x24, 0x64, 0xe7, 0x09, 0x2d, 0x42, 0xb2, - 0xab, 0xf7, 0x74, 0x9b, 0x46, 0x24, 0x21, 0xb3, 0x07, 0xf4, 0x01, 0xe4, 0x2d, 0xc3, 0xb4, 0xf5, - 0x7e, 0x47, 0x69, 0x1b, 0xdd, 0x61, 0xaf, 0x4f, 0xdf, 0x36, 0xbf, 0x79, 0xed, 0x84, 0x80, 0xd1, - 0x21, 0x1f, 0xe0, 0xe3, 0xad, 0xf4, 0xcb, 0xad, 0xe4, 0x73, 0x2e, 0xb6, 0xf6, 0x8a, 0x3c, 0xef, - 0x38, 0xaa, 0x52, 0x3f, 0x88, 0x87, 0xb8, 0x6a, 0xb5, 0xe9, 0xdb, 0xa7, 0x65, 0xf2, 0x17, 0x55, - 0x61, 0xee, 0xf1, 0x10, 0x9b, 0x3a, 0xb6, 0x8a, 0xc9, 0xb5, 0xf8, 0xf5, 0xec, 0xe6, 0x8d, 0x59, - 0x06, 0x79, 0x7f, 0x88, 0xcd, 0x63, 0xd9, 0xb5, 0x14, 0x3e, 0xe7, 0x20, 0x1f, 0xd4, 0xa1, 0x2a, - 0xc4, 0x3f, 0xc4, 0xc7, 0xf4, 0x75, 0xbf, 0x14, 0x71, 0x62, 0x8d, 0xb6, 0x20, 0xd5, 0xc3, 0xf6, - 0xa1, 0xa1, 0x39, 0x19, 0xb3, 0x3e, 0x8b, 0x9f, 0x5d, 0x6a, 0x21, 0x3b, 0x96, 0x24, 0xc4, 0x47, - 0x6a, 0x77, 0xc8, 0x32, 0x26, 0x23, 0xb3, 0x07, 0xe1, 0xe3, 0x18, 0x14, 0x7c, 0xb3, 0xe4, 0x64, - 0xf5, 0xe9, 0xa6, 0xe9, 0x22, 0xe4, 0x6c, 0xc3, 0x56, 0xbb, 0x8a, 0x89, 0xad, 0x61, 0xd7, 0xa6, - 0x03, 0x24, 0xe4, 0x2c, 0x95, 0xc9, 0x54, 0x84, 0xde, 0x84, 0x94, 0xa3, 0x4c, 0xd0, 0xe0, 0xbe, - 0x1a, 0xfd, 0x02, 0xb2, 0x83, 0x46, 0xb7, 0x00, 0x0d, 0x4c, 0xa3, 0x8d, 0x2d, 0x0b, 0x6b, 0x8a, - 0x45, 0x92, 0xa8, 0xdf, 0x66, 0xe9, 0x97, 0x90, 0x0b, 0x9e, 0xa6, 0xe9, 0x28, 0x50, 0x05, 0xf2, - 0x47, 0x3a, 0x7e, 0xa2, 0x78, 0x8b, 0x14, 0xcd, 0xc9, 0xe8, 0xfc, 0x9e, 0x27, 0x16, 0xde, 0xa3, - 0xf0, 0x29, 0x07, 0x0b, 0x34, 0x20, 0xf6, 0xde, 0xc0, 0xcd, 0xda, 0x6f, 0x41, 0xdc, 0x30, 0x3b, - 0x34, 0x16, 0xd9, 0xcd, 0x9b, 0x11, 0xd4, 0xab, 0xa4, 0xd2, 0x7c, 0x2b, 0x8e, 0x4c, 0xec, 0xd0, - 0x7b, 0x90, 0x18, 0x5a, 0xd8, 0xa4, 0x41, 0xcb, 0x6e, 0xbe, 0x76, 0xa2, 0xfd, 0x9e, 0x85, 0x4d, - 0xd7, 0x01, 0xb5, 0x14, 0x8e, 0x9d, 0x52, 0xa2, 0x9c, 0x9c, 0x39, 0xba, 0xed, 0x27, 0x75, 0x52, - 0x3c, 0x29, 0x8f, 0xd7, 0x03, 0x3c, 0x2e, 0x44, 0x98, 0x50, 0x06, 0x6c, 0xe8, 0x3f, 0x26, 0xa1, - 0x30, 0x41, 0x0b, 0x5d, 0x83, 0x0c, 0xd1, 0x2a, 0xbe, 0xe5, 0x14, 0x5e, 0x6e, 0xcd, 0x99, 0x49, - 0x9e, 0x2b, 0xfe, 0x8d, 0x93, 0xd3, 0x44, 0x59, 0x27, 0xab, 0xc3, 0x0d, 0x80, 0x03, 0xdd, 0xb4, - 0x6c, 0x86, 0x8c, 0x4d, 0x20, 0x33, 0x54, 0x4b, 0xa1, 0xd7, 0x20, 0xd3, 0x55, 0x5d, 0x64, 0x7c, - 0xd2, 0x27, 0x51, 0x52, 0xe0, 0x15, 0xc8, 0xf4, 0xf5, 0xf6, 0x87, 0x0c, 0x98, 0xa0, 0x40, 0x52, - 0x2f, 0x66, 0x9c, 0xc2, 0x88, 0x8a, 0xc2, 0xde, 0x22, 0xb9, 0x83, 0x0f, 0xb0, 0x69, 0x62, 0x4d, - 0xe9, 0xaa, 0xfd, 0xce, 0x50, 0xed, 0x38, 0x4b, 0x97, 0x0f, 0x5f, 0xf0, 0x30, 0x3b, 0x0e, 0x04, - 0xbd, 0x03, 0xa9, 0x0e, 0xee, 0x6b, 0xd8, 0xa4, 0xd9, 0x93, 0xdf, 0xbc, 0x18, 0x11, 0xa9, 0x6d, - 0x0a, 0x94, 0x1d, 0x03, 0x24, 0x40, 0x12, 0xf7, 0x54, 0xbd, 0x5b, 0x9c, 0xa3, 0xc3, 0xe4, 0x5e, - 0x6e, 0x65, 0xcc, 0x39, 0xca, 0xff, 0x07, 0x9c, 0xcc, 0x54, 0x68, 0x1d, 0x0a, 0xba, 0xa5, 0xd0, - 0xff, 0xca, 0x11, 0x36, 0xf5, 0x03, 0x1d, 0x6b, 0xc5, 0x34, 0x5d, 0x89, 0x16, 0x74, 0x4b, 0x24, - 0xf2, 0x47, 0x8e, 0x18, 0x9d, 0x87, 0xe4, 0xe0, 0xd0, 0xe8, 0xe3, 0x62, 0xc6, 0xb7, 0x27, 0x15, - 0x17, 0x65, 0x26, 0x75, 0x5c, 0xd1, 0xff, 0x23, 0x57, 0xe0, 0xba, 0x7a, 0x48, 0xe4, 0x9e, 0x2b, - 0x01, 0xe6, 0xda, 0xc6, 0xb0, 0x6f, 0x9b, 0xc7, 0xc5, 0xec, 0x58, 0x0c, 0x5c, 0x05, 0xba, 0x0c, - 0xe9, 0xae, 0xd1, 0x56, 0xbb, 0xba, 0x7d, 0x5c, 0xcc, 0x8d, 0x07, 0xd6, 0xd5, 0xa0, 0x1b, 0x90, - 0x1d, 0x18, 0x16, 0x29, 0xf8, 0xb6, 0xa1, 0xe1, 0xe2, 0xfc, 0x18, 0x10, 0x98, 0xb2, 0x6a, 0x68, - 0x18, 0xad, 0x91, 0xba, 0xef, 0xe8, 0x46, 0xbf, 0x98, 0x1f, 0x43, 0x39, 0x72, 0x54, 0x86, 0xbc, - 0x65, 0x9b, 0x18, 0xdb, 0x8a, 0xaa, 0x69, 0x26, 0xb6, 0xac, 0xe2, 0xc2, 0x18, 0x72, 0x9e, 0xe9, - 0x2b, 0x4c, 0x8d, 0x2e, 0x41, 0x7a, 0xa0, 0x5a, 0xd6, 0x13, 0xc3, 0xd4, 0x8a, 0xbc, 0x3f, 0x2a, - 0xf7, 0x65, 0x4f, 0x21, 0xfc, 0x34, 0x05, 0x09, 0x92, 0xaf, 0x13, 0x5b, 0xef, 0xdd, 0xe0, 0xd6, - 0x7b, 0xf9, 0x84, 0x22, 0xf8, 0x06, 0xed, 0xbd, 0xab, 0xfe, 0x92, 0x63, 0x1b, 0xf0, 0xa8, 0xcc, - 0xce, 0x07, 0xca, 0x8c, 0x6d, 0xc4, 0xbe, 0xd2, 0x5a, 0xf5, 0x97, 0xd6, 0x1c, 0xb3, 0xf5, 0xca, - 0x69, 0xd5, 0x5f, 0x4e, 0x69, 0xa6, 0xf4, 0x8a, 0xe8, 0x22, 0xe4, 0x34, 0xdd, 0x1a, 0x74, 0xd5, - 0x63, 0xa6, 0xa7, 0x79, 0x28, 0x67, 0x1d, 0x19, 0x85, 0xdc, 0x0a, 0xad, 0x33, 0xa0, 0xc0, 0xc8, - 0xea, 0xca, 0x9e, 0xb6, 0xba, 0x16, 0xdd, 0xea, 0xca, 0xb1, 0x2d, 0x8c, 0xd5, 0xd3, 0x75, 0x18, - 0x2f, 0x1b, 0x9a, 0x92, 0x21, 0xd5, 0xb4, 0xe8, 0x56, 0x53, 0x9e, 0xd9, 0xb3, 0x22, 0xa2, 0xf6, - 0x81, 0x5a, 0xa1, 0x29, 0x18, 0x52, 0x42, 0xc5, 0x51, 0x09, 0xd1, 0xcc, 0x1b, 0x15, 0x4e, 0xc9, - 0x57, 0x38, 0x05, 0x27, 0xbe, 0x6e, 0xb9, 0x5c, 0x08, 0x96, 0x0b, 0xa2, 0x6a, 0x7f, 0x91, 0x2c, - 0x7b, 0x45, 0x72, 0x86, 0x9d, 0xa0, 0x9c, 0xd2, 0xb8, 0x32, 0x51, 0x1a, 0x8b, 0x54, 0x3f, 0x56, - 0x10, 0x25, 0x48, 0x7b, 0x3b, 0xe3, 0x12, 0xdd, 0x19, 0xbd, 0x67, 0x61, 0x1b, 0xf8, 0xf1, 0x3d, - 0x29, 0xfa, 0x14, 0xbc, 0x1c, 0x3c, 0x05, 0x7b, 0xa7, 0xb9, 0x17, 0x31, 0xc8, 0x91, 0x83, 0xb6, - 0xda, 0x7b, 0x68, 0x74, 0xf5, 0xf6, 0x31, 0x5a, 0x82, 0x94, 0x61, 0x76, 0x14, 0xaf, 0xb8, 0x92, - 0x86, 0xd9, 0x91, 0x34, 0xb4, 0x06, 0x59, 0x0d, 0x5b, 0x6d, 0x53, 0xa7, 0xa7, 0x74, 0xc7, 0x89, - 0x5f, 0x84, 0xde, 0x86, 0xb3, 0x34, 0x8f, 0xbb, 0x46, 0x47, 0xef, 0x2b, 0xbd, 0xa1, 0x65, 0x2b, - 0xfb, 0x58, 0x71, 0x06, 0x8d, 0xd3, 0xc0, 0x2f, 0x11, 0xc0, 0x0e, 0xd1, 0xef, 0x0e, 0x2d, 0x7b, - 0x0b, 0xd7, 0xa8, 0x92, 0x84, 0x5f, 0xc3, 0x07, 0x2a, 0x3b, 0x45, 0x10, 0x9c, 0xfb, 0x18, 0x08, - 0x41, 0x32, 0x18, 0x82, 0xc9, 0xaa, 0x4d, 0x7d, 0xb5, 0xaa, 0x9d, 0x3b, 0x4d, 0xd5, 0x0a, 0x3f, - 0xe3, 0xe0, 0x8c, 0x3f, 0x6e, 0xee, 0x24, 0xfc, 0xe7, 0xc3, 0x27, 0x5c, 0xa3, 0x67, 0x53, 0x8f, - 0x89, 0x54, 0x9b, 0x42, 0x42, 0xb8, 0x0a, 0x79, 0x49, 0xed, 0xed, 0xe2, 0xde, 0x3e, 0x36, 0x65, - 0xa3, 0x8b, 0x2d, 0x52, 0x38, 0x26, 0xf9, 0x53, 0xe4, 0xd6, 0xe2, 0x04, 0x47, 0x1f, 0x84, 0x7f, - 0x70, 0x90, 0xf1, 0x80, 0x68, 0x05, 0xe6, 0x28, 0x31, 0xcf, 0x5b, 0x8a, 0x3c, 0x4a, 0xda, 0xc8, - 0x38, 0xe6, 0x33, 0x1e, 0x8f, 0x6a, 0xfc, 0x54, 0x6b, 0xe1, 0xc4, 0x9c, 0x26, 0x4e, 0x39, 0xa7, - 0x11, 0x09, 0x23, 0xd4, 0xe0, 0x4c, 0x45, 0xd3, 0x46, 0x11, 0x70, 0x66, 0xec, 0x74, 0xef, 0x27, - 0x6c, 0xc3, 0x72, 0x95, 0x12, 0xfe, 0xaa, 0x8e, 0xee, 0xc0, 0xb2, 0x8c, 0x7b, 0xc6, 0xd1, 0xec, - 0x8e, 0x84, 0x5f, 0xc7, 0x60, 0xc5, 0x43, 0x7f, 0xdd, 0x47, 0xfb, 0xf7, 0xc6, 0x8e, 0xf6, 0xd7, - 0x23, 0xd6, 0x73, 0x8f, 0xd4, 0x23, 0x1d, 0x3f, 0xf9, 0x2f, 0x1e, 0xf2, 0xbf, 0x88, 0xc1, 0x7c, - 0x80, 0xcb, 0xff, 0x4c, 0xf6, 0x06, 0x8f, 0x09, 0xa9, 0xb1, 0x63, 0xc2, 0x62, 0xe0, 0x78, 0xea, - 0x6e, 0xa0, 0xc1, 0xc3, 0x43, 0x3a, 0xf2, 0xf0, 0x90, 0x19, 0x3b, 0x3c, 0x8c, 0x9f, 0x0f, 0x60, - 0xe2, 0x7c, 0x20, 0xfc, 0x92, 0x83, 0xe5, 0x89, 0x6c, 0xfc, 0x32, 0xed, 0x00, 0x69, 0x74, 0x45, - 0x8f, 0xd3, 0x54, 0x2b, 0xcf, 0x92, 0x6a, 0xa1, 0x17, 0xf5, 0x3f, 0x71, 0xb0, 0x18, 0x86, 0x40, - 0x92, 0xff, 0xba, 0x7e, 0x6b, 0x76, 0xff, 0x21, 0x97, 0xf6, 0x77, 0xc7, 0x2e, 0xed, 0x51, 0x97, - 0xff, 0x53, 0xdc, 0xd8, 0x1f, 0xc3, 0xfc, 0x3d, 0x55, 0xef, 0x62, 0x4d, 0x3c, 0xc2, 0x7d, 0x5b, - 0xaa, 0x91, 0x6c, 0xd0, 0x54, 0x5b, 0xdd, 0x57, 0x2d, 0x67, 0x4f, 0x97, 0xbd, 0x67, 0x32, 0x77, - 0xb4, 0x56, 0x46, 0xb7, 0x2f, 0x39, 0x4d, 0x04, 0xce, 0x85, 0x6b, 0xe1, 0x80, 0x7a, 0x1a, 0x15, - 0x1d, 0xab, 0xef, 0x3c, 0x13, 0xbb, 0x15, 0x27, 0x7c, 0x1f, 0x72, 0xbe, 0x21, 0x2d, 0xf4, 0x00, - 0xe6, 0x1d, 0x43, 0x4c, 0x05, 0x74, 0x5b, 0xc8, 0x6e, 0x5e, 0x8d, 0x78, 0x41, 0x9f, 0xbd, 0x9c, - 0x3b, 0xf0, 0x39, 0x13, 0xfe, 0xcc, 0x41, 0xd6, 0xa7, 0xfd, 0xfa, 0x5f, 0x07, 0x5d, 0x62, 0xf4, - 0x87, 0x26, 0x56, 0xe8, 0xf9, 0x8d, 0xd6, 0x5f, 0x82, 0xd1, 0x1a, 0x9a, 0xb8, 0x4a, 0x64, 0x04, - 0x84, 0x4d, 0xd3, 0x30, 0x95, 0x1e, 0xb6, 0x2c, 0xef, 0xe2, 0x28, 0xe7, 0xa8, 0x70, 0x97, 0xc9, - 0x84, 0x0a, 0xa4, 0xc8, 0xea, 0xf1, 0x15, 0x26, 0x41, 0xf8, 0x36, 0x24, 0x89, 0x0b, 0x0b, 0xbd, - 0x01, 0x49, 0x22, 0x74, 0x83, 0x19, 0x75, 0x3d, 0xa7, 0xab, 0x27, 0x43, 0x0b, 0x7f, 0xe0, 0x20, - 0x41, 0x57, 0xb0, 0x2f, 0x1d, 0xb7, 0xf0, 0xe5, 0x37, 0x3e, 0xfb, 0xf2, 0x9b, 0x38, 0xe5, 0xf2, - 0xbb, 0xfe, 0x10, 0xd2, 0x6e, 0x5f, 0x13, 0x15, 0x61, 0xb1, 0x21, 0x6f, 0x37, 0x5b, 0x95, 0x96, - 0xa8, 0xec, 0xd5, 0x9b, 0x0f, 0xc5, 0xaa, 0x74, 0x4f, 0x12, 0x6b, 0xfc, 0x2b, 0xe8, 0x0c, 0x2c, - 0x78, 0x9a, 0x4a, 0xb5, 0x25, 0x3d, 0x12, 0x79, 0x0e, 0x2d, 0x41, 0xc1, 0x13, 0x4a, 0x75, 0x47, - 0x1c, 0x5b, 0xff, 0x11, 0x3d, 0x9d, 0x7a, 0xa5, 0x88, 0xce, 0x41, 0x91, 0xc0, 0xc4, 0x8a, 0x5c, - 0xbd, 0xff, 0x40, 0xfc, 0xee, 0x98, 0xe7, 0xb3, 0xb0, 0x14, 0xd0, 0x36, 0xe4, 0x6d, 0xa5, 0x5e, - 0xd9, 0x25, 0xfe, 0x57, 0xe0, 0x4c, 0x40, 0x55, 0x6b, 0xec, 0x56, 0xa4, 0x3a, 0x1f, 0x43, 0xcb, - 0x80, 0x02, 0x0a, 0x4a, 0x81, 0x8f, 0xaf, 0x77, 0x9d, 0x76, 0xd1, 0xa8, 0x7e, 0x51, 0x09, 0x96, - 0x3d, 0xe8, 0xae, 0xd8, 0xba, 0xdf, 0xa8, 0x29, 0xe2, 0xfb, 0x7b, 0x95, 0x9d, 0x26, 0xff, 0x0a, - 0xba, 0x00, 0xab, 0xe3, 0xba, 0x66, 0xab, 0x22, 0xb7, 0x9a, 0xca, 0x77, 0xa4, 0xd6, 0x7d, 0x9e, - 0x0b, 0x30, 0x77, 0x00, 0xd5, 0x46, 0xbd, 0x55, 0x91, 0xea, 0x4d, 0x3e, 0xb6, 0xfe, 0x39, 0x07, - 0x19, 0xef, 0x5e, 0x4a, 0xde, 0x63, 0xaf, 0x29, 0xca, 0x61, 0xc1, 0x5b, 0x04, 0x7e, 0xa4, 0xf2, - 0xa2, 0xb7, 0x0c, 0x68, 0x24, 0x1d, 0x85, 0x8f, 0x44, 0x75, 0x24, 0xaf, 0x89, 0x3b, 0x62, 0x4b, - 0xac, 0xf1, 0xf1, 0xa0, 0x93, 0x9d, 0x46, 0xf5, 0x81, 0x58, 0xe3, 0x13, 0x41, 0x70, 0x73, 0xaf, - 0xf9, 0x50, 0xac, 0xd7, 0xf8, 0x64, 0x50, 0x2c, 0xd5, 0xa5, 0x96, 0x54, 0xd9, 0xe1, 0x53, 0xeb, - 0x1f, 0x40, 0x8a, 0xdd, 0xe2, 0xc8, 0xe0, 0xdb, 0x62, 0xbd, 0x26, 0xca, 0x63, 0x54, 0x0b, 0x30, - 0xef, 0xc8, 0xef, 0x89, 0xbb, 0x95, 0x1d, 0xc2, 0x73, 0x01, 0xb2, 0x8e, 0x88, 0x0a, 0x62, 0x08, - 0x41, 0xde, 0x11, 0xd4, 0xa4, 0x47, 0xa2, 0xdc, 0x24, 0x91, 0xff, 0x2b, 0x07, 0x68, 0x72, 0x15, - 0x46, 0x02, 0xbc, 0x2a, 0x55, 0x76, 0x77, 0xc5, 0xdd, 0x2d, 0x82, 0x0b, 0x4f, 0x80, 0x8b, 0x70, - 0x3e, 0x04, 0x73, 0x4f, 0x92, 0x9b, 0x2d, 0x37, 0x11, 0xd6, 0xe0, 0x5c, 0x08, 0x64, 0xa7, 0xe2, - 0x22, 0x62, 0x64, 0xa6, 0x42, 0x10, 0xe2, 0x6e, 0x45, 0xda, 0xe1, 0xe3, 0xe8, 0x55, 0x28, 0x85, - 0xd1, 0x68, 0x8a, 0xb2, 0x22, 0xd5, 0xf8, 0xc4, 0xfa, 0x17, 0x31, 0xc8, 0x05, 0xb2, 0x66, 0x05, - 0xce, 0x84, 0xa7, 0xcc, 0x39, 0x28, 0x46, 0xe4, 0xcb, 0x59, 0x58, 0x9a, 0x92, 0x2c, 0xe8, 0x12, - 0x5c, 0x08, 0xf1, 0xa8, 0x48, 0xdb, 0xf5, 0x86, 0x2c, 0x2a, 0xd5, 0x0a, 0x89, 0x22, 0xba, 0x0e, - 0x97, 0xa7, 0x79, 0x0f, 0x20, 0x13, 0xe8, 0x0a, 0x5c, 0x0c, 0x1d, 0x29, 0x00, 0x4b, 0xa2, 0x55, - 0x58, 0x09, 0xc0, 0xea, 0x8d, 0x96, 0xfb, 0x2e, 0x29, 0x74, 0x1e, 0xce, 0x06, 0x94, 0xdb, 0xb2, - 0x58, 0x69, 0x89, 0xb2, 0xd2, 0xba, 0x5f, 0xa9, 0xf3, 0x73, 0xa4, 0x72, 0x02, 0xea, 0x1d, 0xb1, - 0xd9, 0x64, 0xba, 0xf4, 0x84, 0x4e, 0x6a, 0x2a, 0x8d, 0xba, 0xa8, 0x34, 0xee, 0xf1, 0x19, 0x12, - 0xec, 0xa0, 0x9d, 0xd4, 0x6c, 0x8d, 0x22, 0x01, 0x9b, 0x9f, 0x2d, 0x41, 0xae, 0x42, 0x56, 0xd0, - 0x26, 0x36, 0x8f, 0xf4, 0x36, 0x46, 0x0f, 0x60, 0xee, 0x3e, 0x56, 0xbb, 0xf6, 0xe1, 0x47, 0x68, - 0x79, 0x62, 0xdd, 0x12, 0x7b, 0x03, 0xfb, 0xb8, 0x34, 0x45, 0x2e, 0xf0, 0xcf, 0xff, 0xfe, 0xcf, - 0x5f, 0xc5, 0x00, 0xa5, 0xcb, 0x87, 0x8e, 0x87, 0x6d, 0x48, 0xca, 0x58, 0xd5, 0x8e, 0x4f, 0xed, - 0x2a, 0x4f, 0x5d, 0xa5, 0x51, 0xaa, 0x6c, 0x52, 0xfb, 0x3a, 0xa4, 0x1f, 0x39, 0x9f, 0xc9, 0xa6, - 0xfa, 0x5a, 0x99, 0x90, 0x37, 0xe9, 0x07, 0x37, 0xa1, 0x40, 0x9d, 0x65, 0x51, 0xc6, 0xfb, 0xd4, - 0x86, 0x3e, 0xe1, 0x20, 0x2b, 0x59, 0x0d, 0xb3, 0xc3, 0xbe, 0x47, 0xa1, 0xa8, 0xd6, 0xf5, 0xf8, - 0xc7, 0xb2, 0xd2, 0x6b, 0xb3, 0x81, 0xd9, 0xb5, 0x42, 0xb8, 0xf2, 0xfc, 0x45, 0x11, 0x20, 0xad, - 0xab, 0xbd, 0x0d, 0xf2, 0x2e, 0x94, 0x4b, 0x01, 0x2d, 0x94, 0x0d, 0xb3, 0x63, 0x95, 0x15, 0xdd, - 0x62, 0x5f, 0xc8, 0xd0, 0x00, 0x60, 0x1b, 0xdb, 0x0d, 0xb3, 0xb3, 0x45, 0xee, 0x9f, 0x6b, 0xd1, - 0x5d, 0x6b, 0xa9, 0x56, 0x3a, 0xa1, 0xaf, 0x2d, 0xac, 0x85, 0x0c, 0x9b, 0x43, 0xc0, 0x86, 0x7d, - 0xaa, 0x6b, 0xcf, 0x48, 0x0c, 0x80, 0xd5, 0x59, 0xc3, 0xec, 0x58, 0x91, 0x21, 0x18, 0xff, 0x5a, - 0x15, 0x19, 0x82, 0x89, 0x8f, 0x26, 0xc2, 0xd5, 0x10, 0x2e, 0x48, 0x98, 0x77, 0x42, 0x60, 0x51, - 0xf0, 0x5d, 0x6e, 0x1d, 0xfd, 0x9c, 0x83, 0x34, 0x6d, 0xe5, 0x37, 0xcc, 0x0e, 0x3a, 0xf1, 0x4b, - 0xce, 0xe8, 0x33, 0x44, 0xe9, 0xe6, 0x4c, 0x58, 0x1f, 0x9b, 0x2c, 0x64, 0x08, 0x9b, 0x27, 0xa6, - 0x6e, 0x63, 0x36, 0x23, 0x42, 0xce, 0xa3, 0x63, 0x0f, 0x07, 0x84, 0xcd, 0x67, 0x1c, 0x2c, 0xb0, - 0x29, 0x19, 0xf5, 0x76, 0x4e, 0xf8, 0xf4, 0xe5, 0x6b, 0x21, 0x94, 0xae, 0xcd, 0x08, 0x15, 0xde, - 0x78, 0xfe, 0xa2, 0x58, 0x80, 0x05, 0xc2, 0x67, 0x40, 0x25, 0xa3, 0x20, 0x95, 0x50, 0xd1, 0x99, - 0x30, 0xd6, 0x8d, 0x78, 0x56, 0xd6, 0xd5, 0x1e, 0x03, 0xa1, 0xdf, 0x71, 0x80, 0xbc, 0x0e, 0xd6, - 0x88, 0xe1, 0xc6, 0x8c, 0xc3, 0xba, 0xa1, 0x9b, 0x99, 0xe6, 0x3b, 0xcf, 0x5f, 0x14, 0x11, 0xf0, - 0x3e, 0x9a, 0xa3, 0xe8, 0x9d, 0x17, 0xa6, 0xf2, 0x24, 0x91, 0x24, 0x54, 0xf7, 0x06, 0xda, 0x37, - 0x83, 0x6a, 0x29, 0x92, 0xea, 0x2f, 0x38, 0x40, 0x35, 0xdc, 0xc5, 0x63, 0x54, 0x4f, 0x31, 0xef, - 0xd3, 0x96, 0xb4, 0xb7, 0x9e, 0xbf, 0x28, 0x9e, 0x81, 0x82, 0x8f, 0x94, 0x46, 0xc7, 0x61, 0x13, - 0xbd, 0x3e, 0x7d, 0xa2, 0x7f, 0xc2, 0x41, 0x61, 0x1b, 0xdb, 0x63, 0x8d, 0xa7, 0x69, 0xab, 0xe0, - 0x8d, 0x59, 0x6e, 0x66, 0xd4, 0x85, 0x70, 0x73, 0x94, 0x78, 0x3d, 0x2a, 0x1e, 0x25, 0x1e, 0x8f, - 0xf2, 0x65, 0x26, 0xb3, 0xca, 0xec, 0x5e, 0xff, 0x09, 0x47, 0x36, 0x8a, 0x51, 0xf3, 0x27, 0x72, - 0xf6, 0x42, 0xba, 0x44, 0xa5, 0xcb, 0xb3, 0x10, 0x13, 0x6e, 0x8c, 0xa6, 0xce, 0xe1, 0x34, 0x9a, - 0xba, 0x79, 0x21, 0xed, 0x92, 0x22, 0x53, 0xf5, 0x1b, 0x0e, 0x16, 0xc6, 0x1a, 0x49, 0xe8, 0x4e, - 0xd4, 0x27, 0xc4, 0xd0, 0xa6, 0xd3, 0x8c, 0xbc, 0x5e, 0x8f, 0xe0, 0xb5, 0x52, 0x42, 0x5e, 0xb0, - 0x9e, 0x3a, 0xbd, 0x92, 0x67, 0x84, 0xe1, 0x27, 0x1c, 0x2c, 0x8c, 0x75, 0xa8, 0x22, 0x19, 0x86, - 0x77, 0xb3, 0xa6, 0x66, 0xd4, 0x9d, 0x51, 0x46, 0x39, 0x9c, 0x7c, 0x19, 0xb5, 0xb8, 0x1e, 0x42, - 0x0a, 0xfd, 0x9e, 0x03, 0x9e, 0x2d, 0xce, 0xde, 0x28, 0x56, 0x24, 0xa5, 0xf0, 0xf6, 0x44, 0x69, - 0xf3, 0x34, 0x26, 0xce, 0xba, 0x7b, 0x7b, 0x7a, 0xba, 0x2d, 0x09, 0xbc, 0x47, 0xd6, 0xb7, 0x1f, - 0xec, 0x43, 0x7a, 0x1b, 0xdb, 0xec, 0x12, 0x38, 0x2d, 0xdf, 0xd7, 0x4e, 0xb8, 0x0d, 0x5a, 0xc2, - 0xb9, 0x90, 0xdd, 0x87, 0x9c, 0x2c, 0xe8, 0x2d, 0x11, 0xfd, 0x18, 0x32, 0xd5, 0x2e, 0x56, 0x59, - 0xaf, 0xeb, 0xe2, 0x09, 0xce, 0x22, 0xca, 0xfb, 0xff, 0xc2, 0x76, 0x95, 0x0b, 0xc2, 0x79, 0x36, - 0x4c, 0xf9, 0xa9, 0x7b, 0xe3, 0x7c, 0x56, 0x7e, 0xea, 0x5d, 0x38, 0x9f, 0xa1, 0x27, 0x74, 0x8b, - 0x09, 0xb4, 0x10, 0xa6, 0xbd, 0xe8, 0xb5, 0xd9, 0x7a, 0x08, 0x96, 0x70, 0x29, 0xe4, 0x7d, 0x17, - 0xd0, 0x7c, 0x99, 0xdd, 0xf5, 0x59, 0x5f, 0x02, 0xfd, 0x96, 0x83, 0x02, 0x4b, 0x37, 0x7f, 0x87, - 0xe1, 0xfa, 0x6c, 0x63, 0x44, 0x84, 0x61, 0x37, 0x2c, 0x0c, 0x6f, 0xaf, 0xbf, 0x19, 0x18, 0x7d, - 0x4a, 0x34, 0xca, 0x4f, 0xc7, 0xba, 0x14, 0xcf, 0xb6, 0xfe, 0xc2, 0x7d, 0x5a, 0xf9, 0x98, 0x43, - 0x15, 0x98, 0xa7, 0x5c, 0xd6, 0x2c, 0x76, 0x4a, 0x15, 0x6e, 0xa2, 0x1b, 0x87, 0xb6, 0x3d, 0xb0, - 0xee, 0x96, 0xcb, 0x1d, 0xdd, 0x3e, 0x1c, 0xee, 0x6f, 0xb4, 0x8d, 0x5e, 0x99, 0x90, 0x2f, 0x3b, - 0xe4, 0xcb, 0x83, 0x0f, 0x3b, 0x65, 0x6a, 0xb4, 0x19, 0xbf, 0xbd, 0x71, 0x67, 0x9d, 0x8b, 0x6d, - 0xf2, 0xea, 0x60, 0xd0, 0xd5, 0xdb, 0xb4, 0x5b, 0x58, 0xfe, 0xa1, 0x65, 0xf4, 0x83, 0x92, 0x8e, - 0x39, 0x68, 0xdf, 0x9d, 0xc0, 0xdc, 0x9d, 0xc0, 0x7c, 0xef, 0x6a, 0xd4, 0x90, 0x04, 0xc1, 0xc6, - 0xdd, 0x4f, 0xd1, 0xd8, 0xbc, 0xfe, 0xef, 0x00, 0x00, 0x00, 0xff, 0xff, 0x65, 0xfe, 0xc2, 0xc6, - 0x8d, 0x26, 0x00, 0x00, +func (x *IdpID) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IdpID) ProtoMessage() {} + +func (x *IdpID) ProtoReflect() protoreflect.Message { + mi := &file_admin_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 IdpID.ProtoReflect.Descriptor instead. +func (*IdpID) Descriptor() ([]byte, []int) { + return file_admin_proto_rawDescGZIP(), []int{30} +} + +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.admin.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 assignable to IdpConfig: + // *Idp_OidcConfig + IdpConfig isIdp_IdpConfig `protobuf_oneof:"idp_config"` + Sequence uint64 `protobuf:"varint,8,opt,name=sequence,proto3" json:"sequence,omitempty"` +} + +func (x *Idp) Reset() { + *x = Idp{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_proto_msgTypes[31] + 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_admin_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 Idp.ProtoReflect.Descriptor instead. +func (*Idp) Descriptor() ([]byte, []int) { + return file_admin_proto_rawDescGZIP(), []int{31} +} + +func (x *Idp) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *Idp) GetState() IdpState { + if x != nil { + return x.State + } + return IdpState_IDPCONFIGSTATE_UNSPECIFIED +} + +func (x *Idp) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate + } + return nil +} + +func (x *Idp) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate + } + return nil +} + +func (x *Idp) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +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() +} + +type Idp_OidcConfig struct { + OidcConfig *OidcIdpConfig `protobuf:"bytes,7,opt,name=oidc_config,json=oidcConfig,proto3,oneof"` +} + +func (*Idp_OidcConfig) isIdp_IdpConfig() {} + +type IdpUpdate struct { + 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 (x *IdpUpdate) Reset() { + *x = IdpUpdate{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_proto_msgTypes[32] + 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_admin_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 IdpUpdate.ProtoReflect.Descriptor instead. +func (*IdpUpdate) Descriptor() ([]byte, []int) { + return file_admin_proto_rawDescGZIP(), []int{32} +} + +func (x *IdpUpdate) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *IdpUpdate) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *IdpUpdate) GetLogoSrc() []byte { + if x != nil { + return x.LogoSrc + } + return nil +} + +type OidcIdpConfig struct { + 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"` +} + +func (x *OidcIdpConfig) Reset() { + *x = OidcIdpConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_proto_msgTypes[33] + 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_admin_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 OidcIdpConfig.ProtoReflect.Descriptor instead. +func (*OidcIdpConfig) Descriptor() ([]byte, []int) { + return file_admin_proto_rawDescGZIP(), []int{33} +} + +func (x *OidcIdpConfig) GetClientId() string { + if x != nil { + return x.ClientId + } + return "" +} + +func (x *OidcIdpConfig) GetClientSecret() string { + if x != nil { + return x.ClientSecret + } + return "" +} + +func (x *OidcIdpConfig) GetIssuer() string { + if x != nil { + return x.Issuer + } + return "" +} + +func (x *OidcIdpConfig) GetScopes() []string { + if x != nil { + return x.Scopes + } + return nil +} + +type OidcIdpConfigCreate struct { + 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"` +} + +func (x *OidcIdpConfigCreate) Reset() { + *x = OidcIdpConfigCreate{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_proto_msgTypes[34] + 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_admin_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 OidcIdpConfigCreate.ProtoReflect.Descriptor instead. +func (*OidcIdpConfigCreate) Descriptor() ([]byte, []int) { + return file_admin_proto_rawDescGZIP(), []int{34} +} + +func (x *OidcIdpConfigCreate) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *OidcIdpConfigCreate) GetLogoSrc() []byte { + if x != nil { + return x.LogoSrc + } + return nil +} + +func (x *OidcIdpConfigCreate) GetClientId() string { + if x != nil { + return x.ClientId + } + return "" +} + +func (x *OidcIdpConfigCreate) GetClientSecret() string { + if x != nil { + return x.ClientSecret + } + return "" +} + +func (x *OidcIdpConfigCreate) GetIssuer() string { + if x != nil { + return x.Issuer + } + return "" +} + +func (x *OidcIdpConfigCreate) GetScopes() []string { + if x != nil { + return x.Scopes + } + return nil +} + +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"` +} + +func (x *OidcIdpConfigUpdate) Reset() { + *x = OidcIdpConfigUpdate{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_proto_msgTypes[35] + 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_admin_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 OidcIdpConfigUpdate.ProtoReflect.Descriptor instead. +func (*OidcIdpConfigUpdate) Descriptor() ([]byte, []int) { + return file_admin_proto_rawDescGZIP(), []int{35} +} + +func (x *OidcIdpConfigUpdate) GetIdpId() string { + if x != nil { + return x.IdpId + } + return "" +} + +func (x *OidcIdpConfigUpdate) GetClientId() string { + if x != nil { + return x.ClientId + } + return "" +} + +func (x *OidcIdpConfigUpdate) GetClientSecret() string { + if x != nil { + return x.ClientSecret + } + return "" +} + +func (x *OidcIdpConfigUpdate) GetIssuer() string { + if x != nil { + return x.Issuer + } + return "" +} + +func (x *OidcIdpConfigUpdate) GetScopes() []string { + if x != nil { + return x.Scopes + } + return nil +} + +type IdpSearchResponse 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 []*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 (x *IdpSearchResponse) Reset() { + *x = IdpSearchResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_proto_msgTypes[36] + 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_admin_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 IdpSearchResponse.ProtoReflect.Descriptor instead. +func (*IdpSearchResponse) Descriptor() ([]byte, []int) { + return file_admin_proto_rawDescGZIP(), []int{36} +} + +func (x *IdpSearchResponse) GetOffset() uint64 { + if x != nil { + return x.Offset + } + return 0 +} + +func (x *IdpSearchResponse) GetLimit() uint64 { + if x != nil { + return x.Limit + } + return 0 +} + +func (x *IdpSearchResponse) GetTotalResult() uint64 { + if x != nil { + return x.TotalResult + } + return 0 +} + +func (x *IdpSearchResponse) GetResult() []*IdpView { + if x != nil { + return x.Result + } + return nil +} + +func (x *IdpSearchResponse) GetProcessedSequence() uint64 { + if x != nil { + return x.ProcessedSequence + } + return 0 +} + +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.admin.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 assignable to IdpConfigView: + // *IdpView_OidcConfig + IdpConfigView isIdpView_IdpConfigView `protobuf_oneof:"idp_config_view"` + Sequence uint64 `protobuf:"varint,8,opt,name=sequence,proto3" json:"sequence,omitempty"` +} + +func (x *IdpView) Reset() { + *x = IdpView{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_proto_msgTypes[37] + 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_admin_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 IdpView.ProtoReflect.Descriptor instead. +func (*IdpView) Descriptor() ([]byte, []int) { + return file_admin_proto_rawDescGZIP(), []int{37} +} + +func (x *IdpView) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *IdpView) GetState() IdpState { + if x != nil { + return x.State + } + return IdpState_IDPCONFIGSTATE_UNSPECIFIED +} + +func (x *IdpView) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate + } + return nil +} + +func (x *IdpView) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate + } + return nil +} + +func (x *IdpView) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *IdpView) GetLogoSrc() []byte { + if x != nil { + return x.LogoSrc + } + return nil +} + +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() +} + +type IdpView_OidcConfig struct { + OidcConfig *OidcIdpConfigView `protobuf:"bytes,7,opt,name=oidc_config,json=oidcConfig,proto3,oneof"` +} + +func (*IdpView_OidcConfig) isIdpView_IdpConfigView() {} + +type OidcIdpConfigView struct { + 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"` +} + +func (x *OidcIdpConfigView) Reset() { + *x = OidcIdpConfigView{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_proto_msgTypes[38] + 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_admin_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 OidcIdpConfigView.ProtoReflect.Descriptor instead. +func (*OidcIdpConfigView) Descriptor() ([]byte, []int) { + return file_admin_proto_rawDescGZIP(), []int{38} +} + +func (x *OidcIdpConfigView) GetClientId() string { + if x != nil { + return x.ClientId + } + return "" +} + +func (x *OidcIdpConfigView) GetIssuer() string { + if x != nil { + return x.Issuer + } + return "" +} + +func (x *OidcIdpConfigView) GetScopes() []string { + if x != nil { + return x.Scopes + } + return nil +} + +type IdpSearchRequest 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"` + Queries []*IdpSearchQuery `protobuf:"bytes,3,rep,name=queries,proto3" json:"queries,omitempty"` +} + +func (x *IdpSearchRequest) Reset() { + *x = IdpSearchRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_proto_msgTypes[39] + 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_admin_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 IdpSearchRequest.ProtoReflect.Descriptor instead. +func (*IdpSearchRequest) Descriptor() ([]byte, []int) { + return file_admin_proto_rawDescGZIP(), []int{39} +} + +func (x *IdpSearchRequest) GetOffset() uint64 { + if x != nil { + return x.Offset + } + return 0 +} + +func (x *IdpSearchRequest) GetLimit() uint64 { + if x != nil { + return x.Limit + } + return 0 +} + +func (x *IdpSearchRequest) GetQueries() []*IdpSearchQuery { + if x != nil { + return x.Queries + } + return nil +} + +type IdpSearchQuery struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Key IdpSearchKey `protobuf:"varint,1,opt,name=key,proto3,enum=caos.zitadel.admin.api.v1.IdpSearchKey" json:"key,omitempty"` + Method SearchMethod `protobuf:"varint,2,opt,name=method,proto3,enum=caos.zitadel.admin.api.v1.SearchMethod" json:"method,omitempty"` + Value string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` +} + +func (x *IdpSearchQuery) Reset() { + *x = IdpSearchQuery{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_proto_msgTypes[40] + 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_admin_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 IdpSearchQuery.ProtoReflect.Descriptor instead. +func (*IdpSearchQuery) Descriptor() ([]byte, []int) { + return file_admin_proto_rawDescGZIP(), []int{40} +} + +func (x *IdpSearchQuery) GetKey() IdpSearchKey { + if x != nil { + return x.Key + } + return IdpSearchKey_IDPSEARCHKEY_UNSPECIFIED +} + +func (x *IdpSearchQuery) GetMethod() SearchMethod { + if x != nil { + return x.Method + } + return SearchMethod_SEARCHMETHOD_EQUALS +} + +func (x *IdpSearchQuery) GetValue() string { + if x != nil { + return x.Value + } + return "" +} + +type DefaultLoginPolicy struct { + 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 (x *DefaultLoginPolicy) Reset() { + *x = DefaultLoginPolicy{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DefaultLoginPolicy) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DefaultLoginPolicy) ProtoMessage() {} + +func (x *DefaultLoginPolicy) ProtoReflect() protoreflect.Message { + mi := &file_admin_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 DefaultLoginPolicy.ProtoReflect.Descriptor instead. +func (*DefaultLoginPolicy) Descriptor() ([]byte, []int) { + return file_admin_proto_rawDescGZIP(), []int{41} +} + +func (x *DefaultLoginPolicy) GetAllowUsernamePassword() bool { + if x != nil { + return x.AllowUsernamePassword + } + return false +} + +func (x *DefaultLoginPolicy) GetAllowRegister() bool { + if x != nil { + return x.AllowRegister + } + return false +} + +func (x *DefaultLoginPolicy) GetAllowExternalIdp() bool { + if x != nil { + return x.AllowExternalIdp + } + return false +} + +type IdpProviderID 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"` +} + +func (x *IdpProviderID) Reset() { + *x = IdpProviderID{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_proto_msgTypes[42] + 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_admin_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 IdpProviderID.ProtoReflect.Descriptor instead. +func (*IdpProviderID) Descriptor() ([]byte, []int) { + return file_admin_proto_rawDescGZIP(), []int{42} +} + +func (x *IdpProviderID) GetIdpConfigId() string { + if x != nil { + return x.IdpConfigId + } + return "" +} + +type DefaultLoginPolicyView struct { + 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 (x *DefaultLoginPolicyView) Reset() { + *x = DefaultLoginPolicyView{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DefaultLoginPolicyView) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DefaultLoginPolicyView) ProtoMessage() {} + +func (x *DefaultLoginPolicyView) ProtoReflect() protoreflect.Message { + mi := &file_admin_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 DefaultLoginPolicyView.ProtoReflect.Descriptor instead. +func (*DefaultLoginPolicyView) Descriptor() ([]byte, []int) { + return file_admin_proto_rawDescGZIP(), []int{43} +} + +func (x *DefaultLoginPolicyView) GetAllowUsernamePassword() bool { + if x != nil { + return x.AllowUsernamePassword + } + return false +} + +func (x *DefaultLoginPolicyView) GetAllowRegister() bool { + if x != nil { + return x.AllowRegister + } + return false +} + +func (x *DefaultLoginPolicyView) GetAllowExternalIdp() bool { + if x != nil { + return x.AllowExternalIdp + } + return false +} + +type IdpProviderViews struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Providers []*IdpProviderView `protobuf:"bytes,1,rep,name=providers,proto3" json:"providers,omitempty"` +} + +func (x *IdpProviderViews) Reset() { + *x = IdpProviderViews{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IdpProviderViews) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IdpProviderViews) ProtoMessage() {} + +func (x *IdpProviderViews) ProtoReflect() protoreflect.Message { + mi := &file_admin_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 IdpProviderViews.ProtoReflect.Descriptor instead. +func (*IdpProviderViews) Descriptor() ([]byte, []int) { + return file_admin_proto_rawDescGZIP(), []int{44} +} + +func (x *IdpProviderViews) GetProviders() []*IdpProviderView { + if x != nil { + return x.Providers + } + return nil +} + +type IdpProviderView 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"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Type IdpType `protobuf:"varint,3,opt,name=type,proto3,enum=caos.zitadel.admin.api.v1.IdpType" json:"type,omitempty"` +} + +func (x *IdpProviderView) Reset() { + *x = IdpProviderView{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_proto_msgTypes[45] + 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_admin_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 IdpProviderView.ProtoReflect.Descriptor instead. +func (*IdpProviderView) Descriptor() ([]byte, []int) { + return file_admin_proto_rawDescGZIP(), []int{45} +} + +func (x *IdpProviderView) GetIdpConfigId() string { + if x != nil { + return x.IdpConfigId + } + return "" +} + +func (x *IdpProviderView) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *IdpProviderView) GetType() IdpType { + if x != nil { + return x.Type + } + return IdpType_IDPTYPE_UNSPECIFIED +} + +type IdpProviderSearchResponse 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 []*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 (x *IdpProviderSearchResponse) Reset() { + *x = IdpProviderSearchResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_proto_msgTypes[46] + 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_admin_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 IdpProviderSearchResponse.ProtoReflect.Descriptor instead. +func (*IdpProviderSearchResponse) Descriptor() ([]byte, []int) { + return file_admin_proto_rawDescGZIP(), []int{46} +} + +func (x *IdpProviderSearchResponse) GetOffset() uint64 { + if x != nil { + return x.Offset + } + return 0 +} + +func (x *IdpProviderSearchResponse) GetLimit() uint64 { + if x != nil { + return x.Limit + } + return 0 +} + +func (x *IdpProviderSearchResponse) GetTotalResult() uint64 { + if x != nil { + return x.TotalResult + } + return 0 +} + +func (x *IdpProviderSearchResponse) GetResult() []*IdpProviderView { + if x != nil { + return x.Result + } + return nil +} + +func (x *IdpProviderSearchResponse) GetProcessedSequence() uint64 { + if x != nil { + return x.ProcessedSequence + } + return 0 +} + +func (x *IdpProviderSearchResponse) GetViewTimestamp() *timestamp.Timestamp { + if x != nil { + return x.ViewTimestamp + } + return nil +} + +type IdpProviderSearchRequest 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"` +} + +func (x *IdpProviderSearchRequest) Reset() { + *x = IdpProviderSearchRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_proto_msgTypes[47] + 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_admin_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 IdpProviderSearchRequest.ProtoReflect.Descriptor instead. +func (*IdpProviderSearchRequest) Descriptor() ([]byte, []int) { + return file_admin_proto_rawDescGZIP(), []int{47} +} + +func (x *IdpProviderSearchRequest) GetOffset() uint64 { + if x != nil { + return x.Offset + } + return 0 +} + +func (x *IdpProviderSearchRequest) GetLimit() uint64 { + if x != nil { + return x.Limit + } + return 0 +} + +var File_admin_proto protoreflect.FileDescriptor + +var file_admin_proto_rawDesc = []byte{ + 0x0a, 0x0b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x19, 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, 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, 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, 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, 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, 0x22, 0x17, 0x0a, 0x05, 0x4f, 0x72, 0x67, 0x49, 0x44, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x50, 0x0a, 0x10, + 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4f, 0x72, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x1b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, + 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, + 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, + 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x30, + 0x0a, 0x11, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4f, 0x72, 0x67, 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, 0xfa, 0x01, 0x0a, 0x03, 0x4f, 0x72, 0x67, 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, 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, 0x16, 0x0a, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0xf1, 0x01, + 0x0a, 0x10, 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, 0x58, 0x0a, 0x0e, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6c, 0x75, + 0x6d, 0x6e, 0x18, 0x03, 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, 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, 0x43, 0x0a, 0x07, + 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x05, 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, 0x4f, 0x72, 0x67, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, + 0x73, 0x22, 0xaf, 0x01, 0x0a, 0x0e, 0x4f, 0x72, 0x67, 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, 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, 0x42, 0x0a, 0x06, 0x6d, 0x65, 0x74, + 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 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, 0x4f, 0x72, 0x67, 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, 0x8e, 0x02, 0x0a, 0x11, 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, 0x36, 0x0a, 0x06, 0x72, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 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, 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, 0x92, 0x01, 0x0a, 0x0f, 0x4f, 0x72, 0x67, 0x53, 0x65, 0x74, 0x55, + 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 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, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x40, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, + 0x02, 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, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0x79, 0x0a, 0x10, 0x4f, 0x72, 0x67, + 0x53, 0x65, 0x74, 0x55, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, + 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 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, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, + 0x33, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 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, 0x73, 0x65, 0x72, 0x52, 0x04, + 0x75, 0x73, 0x65, 0x72, 0x22, 0xb3, 0x05, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, + 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x09, 0x75, 0x73, + 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, + 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0xc8, 0x01, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 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, 0x39, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 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, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x12, 0x22, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x07, 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, 0x08, 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, 0x09, 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, 0x0a, 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, 0x0b, 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, 0x0c, 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, 0x0d, 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, 0x0e, 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, 0x0f, 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, 0x10, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x18, 0x48, + 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x85, 0x06, 0x0a, 0x04, 0x55, + 0x73, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x02, 0x69, 0x64, 0x12, 0x3a, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0e, 0x32, 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, 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, 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, 0x1d, 0x0a, 0x0a, 0x66, 0x69, + 0x72, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 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, 0x07, 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, 0x08, 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, 0x09, 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, 0x0a, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x11, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x4c, 0x61, 0x6e, + 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x39, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 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, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x0c, 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, 0x0d, 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, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x69, 0x73, 0x50, 0x68, 0x6f, 0x6e, + 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x0f, 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, 0x10, 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, 0x11, 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, 0x12, 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, 0x13, 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, 0x14, 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, 0x15, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x65, 0x22, 0x47, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0xb5, 0x02, 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, 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, 0x88, 0x01, 0x0a, 0x13, 0x4f, 0x72, 0x67, 0x49, 0x61, 0x6d, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 0x22, 0x27, + 0x0a, 0x0e, 0x4f, 0x72, 0x67, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x44, + 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x22, 0x26, 0x0a, 0x0e, 0x49, 0x61, 0x6d, 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, 0x49, 0x61, 0x6d, 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, 0x44, 0x0a, 0x13, 0x41, 0x64, 0x64, 0x49, 0x61, 0x6d, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 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, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x22, 0x47, 0x0a, 0x16, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 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, + 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, + 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x22, 0x31, 0x0a, 0x16, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, + 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 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, 0x22, 0x9e, 0x02, 0x0a, 0x17, 0x49, 0x61, 0x6d, + 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, 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, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x49, 0x61, 0x6d, 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, 0x49, 0x61, + 0x6d, 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, 0x91, 0x01, 0x0a, 0x16, 0x49, 0x61, 0x6d, 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, + 0x49, 0x0a, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2f, 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, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x52, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x22, 0xb8, 0x01, 0x0a, 0x14, 0x49, + 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 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, + 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, 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, 0x71, 0x0a, 0x0d, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, + 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, + 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x69, 0x65, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x27, 0x0a, 0x0f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, + 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x22, 0x5b, 0x0a, 0x0c, 0x46, 0x61, 0x69, 0x6c, + 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x4b, 0x0a, 0x0d, 0x66, 0x61, 0x69, 0x6c, + 0x65, 0x64, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x26, 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, 0x52, 0x0c, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xb9, 0x01, 0x0a, 0x0b, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, + 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x69, 0x65, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, + 0x0a, 0x0f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x53, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x61, 0x69, 0x6c, 0x75, + 0x72, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, + 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x22, 0x41, 0x0a, 0x06, 0x56, 0x69, 0x65, 0x77, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x64, + 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, + 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x69, 0x65, 0x77, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x69, 0x65, 0x77, + 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3e, 0x0a, 0x05, 0x56, 0x69, 0x65, 0x77, 0x73, 0x12, 0x35, 0x0a, + 0x05, 0x76, 0x69, 0x65, 0x77, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 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, 0x52, 0x05, 0x76, + 0x69, 0x65, 0x77, 0x73, 0x22, 0xb1, 0x01, 0x0a, 0x04, 0x56, 0x69, 0x65, 0x77, 0x12, 0x1a, 0x0a, + 0x08, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x69, 0x65, + 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x69, + 0x65, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, + 0x73, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 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, 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, 0x0d, 0x76, 0x69, 0x65, 0x77, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x17, 0x0a, 0x05, 0x49, 0x64, 0x70, 0x49, + 0x44, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, + 0x64, 0x22, 0xf4, 0x02, 0x0a, 0x03, 0x49, 0x64, 0x70, 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, 0x4b, 0x0a, 0x0b, 0x6f, 0x69, 0x64, 0x63, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 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, + 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, 0x4a, 0x0a, 0x09, 0x49, 0x64, 0x70, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 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, 0x81, 0x01, 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, 0x22, 0xe6, 0x01, 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, 0x22, 0xb6, 0x01, 0x0a, 0x13, 0x4f, 0x69, 0x64, 0x63, 0x49, 0x64, 0x70, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x69, 0x64, 0x70, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 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, 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, 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, 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, 0x33, 0x0a, 0x0d, 0x49, 0x64, 0x70, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, + 0x44, 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, 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, 0x5c, 0x0a, + 0x10, 0x49, 0x64, 0x70, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, + 0x73, 0x12, 0x48, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, + 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, 0x09, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 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, 0x78, 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, 0x19, + 0x0a, 0x15, 0x4f, 0x52, 0x47, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x4b, 0x45, 0x59, 0x5f, 0x4f, + 0x52, 0x47, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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 ( + file_admin_proto_rawDescOnce sync.Once + file_admin_proto_rawDescData = file_admin_proto_rawDesc +) + +func file_admin_proto_rawDescGZIP() []byte { + file_admin_proto_rawDescOnce.Do(func() { + file_admin_proto_rawDescData = protoimpl.X.CompressGZIP(file_admin_proto_rawDescData) + }) + return file_admin_proto_rawDescData +} + +var file_admin_proto_enumTypes = make([]protoimpl.EnumInfo, 10) +var file_admin_proto_msgTypes = make([]protoimpl.MessageInfo, 48) +var file_admin_proto_goTypes = []interface{}{ + (OrgState)(0), // 0: caos.zitadel.admin.api.v1.OrgState + (OrgSearchKey)(0), // 1: caos.zitadel.admin.api.v1.OrgSearchKey + (OrgSearchMethod)(0), // 2: caos.zitadel.admin.api.v1.OrgSearchMethod + (UserState)(0), // 3: caos.zitadel.admin.api.v1.UserState + (Gender)(0), // 4: caos.zitadel.admin.api.v1.Gender + (IamMemberSearchKey)(0), // 5: caos.zitadel.admin.api.v1.IamMemberSearchKey + (SearchMethod)(0), // 6: caos.zitadel.admin.api.v1.SearchMethod + (IdpState)(0), // 7: caos.zitadel.admin.api.v1.IdpState + (IdpSearchKey)(0), // 8: caos.zitadel.admin.api.v1.IdpSearchKey + (IdpType)(0), // 9: caos.zitadel.admin.api.v1.IdpType + (*OrgID)(nil), // 10: caos.zitadel.admin.api.v1.OrgID + (*UniqueOrgRequest)(nil), // 11: caos.zitadel.admin.api.v1.UniqueOrgRequest + (*UniqueOrgResponse)(nil), // 12: caos.zitadel.admin.api.v1.UniqueOrgResponse + (*Org)(nil), // 13: caos.zitadel.admin.api.v1.Org + (*OrgSearchRequest)(nil), // 14: caos.zitadel.admin.api.v1.OrgSearchRequest + (*OrgSearchQuery)(nil), // 15: caos.zitadel.admin.api.v1.OrgSearchQuery + (*OrgSearchResponse)(nil), // 16: caos.zitadel.admin.api.v1.OrgSearchResponse + (*OrgSetUpRequest)(nil), // 17: caos.zitadel.admin.api.v1.OrgSetUpRequest + (*OrgSetUpResponse)(nil), // 18: caos.zitadel.admin.api.v1.OrgSetUpResponse + (*CreateUserRequest)(nil), // 19: caos.zitadel.admin.api.v1.CreateUserRequest + (*User)(nil), // 20: caos.zitadel.admin.api.v1.User + (*CreateOrgRequest)(nil), // 21: caos.zitadel.admin.api.v1.CreateOrgRequest + (*OrgIamPolicy)(nil), // 22: caos.zitadel.admin.api.v1.OrgIamPolicy + (*OrgIamPolicyRequest)(nil), // 23: caos.zitadel.admin.api.v1.OrgIamPolicyRequest + (*OrgIamPolicyID)(nil), // 24: caos.zitadel.admin.api.v1.OrgIamPolicyID + (*IamMemberRoles)(nil), // 25: caos.zitadel.admin.api.v1.IamMemberRoles + (*IamMember)(nil), // 26: caos.zitadel.admin.api.v1.IamMember + (*AddIamMemberRequest)(nil), // 27: caos.zitadel.admin.api.v1.AddIamMemberRequest + (*ChangeIamMemberRequest)(nil), // 28: caos.zitadel.admin.api.v1.ChangeIamMemberRequest + (*RemoveIamMemberRequest)(nil), // 29: caos.zitadel.admin.api.v1.RemoveIamMemberRequest + (*IamMemberSearchResponse)(nil), // 30: caos.zitadel.admin.api.v1.IamMemberSearchResponse + (*IamMemberView)(nil), // 31: caos.zitadel.admin.api.v1.IamMemberView + (*IamMemberSearchRequest)(nil), // 32: caos.zitadel.admin.api.v1.IamMemberSearchRequest + (*IamMemberSearchQuery)(nil), // 33: caos.zitadel.admin.api.v1.IamMemberSearchQuery + (*FailedEventID)(nil), // 34: caos.zitadel.admin.api.v1.FailedEventID + (*FailedEvents)(nil), // 35: caos.zitadel.admin.api.v1.FailedEvents + (*FailedEvent)(nil), // 36: caos.zitadel.admin.api.v1.FailedEvent + (*ViewID)(nil), // 37: caos.zitadel.admin.api.v1.ViewID + (*Views)(nil), // 38: caos.zitadel.admin.api.v1.Views + (*View)(nil), // 39: caos.zitadel.admin.api.v1.View + (*IdpID)(nil), // 40: caos.zitadel.admin.api.v1.IdpID + (*Idp)(nil), // 41: caos.zitadel.admin.api.v1.Idp + (*IdpUpdate)(nil), // 42: caos.zitadel.admin.api.v1.IdpUpdate + (*OidcIdpConfig)(nil), // 43: caos.zitadel.admin.api.v1.OidcIdpConfig + (*OidcIdpConfigCreate)(nil), // 44: caos.zitadel.admin.api.v1.OidcIdpConfigCreate + (*OidcIdpConfigUpdate)(nil), // 45: caos.zitadel.admin.api.v1.OidcIdpConfigUpdate + (*IdpSearchResponse)(nil), // 46: caos.zitadel.admin.api.v1.IdpSearchResponse + (*IdpView)(nil), // 47: caos.zitadel.admin.api.v1.IdpView + (*OidcIdpConfigView)(nil), // 48: caos.zitadel.admin.api.v1.OidcIdpConfigView + (*IdpSearchRequest)(nil), // 49: caos.zitadel.admin.api.v1.IdpSearchRequest + (*IdpSearchQuery)(nil), // 50: caos.zitadel.admin.api.v1.IdpSearchQuery + (*DefaultLoginPolicy)(nil), // 51: caos.zitadel.admin.api.v1.DefaultLoginPolicy + (*IdpProviderID)(nil), // 52: caos.zitadel.admin.api.v1.IdpProviderID + (*DefaultLoginPolicyView)(nil), // 53: caos.zitadel.admin.api.v1.DefaultLoginPolicyView + (*IdpProviderViews)(nil), // 54: caos.zitadel.admin.api.v1.IdpProviderViews + (*IdpProviderView)(nil), // 55: caos.zitadel.admin.api.v1.IdpProviderView + (*IdpProviderSearchResponse)(nil), // 56: caos.zitadel.admin.api.v1.IdpProviderSearchResponse + (*IdpProviderSearchRequest)(nil), // 57: caos.zitadel.admin.api.v1.IdpProviderSearchRequest + (*timestamp.Timestamp)(nil), // 58: google.protobuf.Timestamp + (*empty.Empty)(nil), // 59: google.protobuf.Empty + (*_struct.Struct)(nil), // 60: 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 + 58, // 1: caos.zitadel.admin.api.v1.Org.creation_date:type_name -> google.protobuf.Timestamp + 58, // 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 + 15, // 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 + 13, // 7: caos.zitadel.admin.api.v1.OrgSearchResponse.result:type_name -> caos.zitadel.admin.api.v1.Org + 58, // 8: caos.zitadel.admin.api.v1.OrgSearchResponse.view_timestamp:type_name -> google.protobuf.Timestamp + 21, // 9: caos.zitadel.admin.api.v1.OrgSetUpRequest.org:type_name -> caos.zitadel.admin.api.v1.CreateOrgRequest + 19, // 10: caos.zitadel.admin.api.v1.OrgSetUpRequest.user:type_name -> caos.zitadel.admin.api.v1.CreateUserRequest + 13, // 11: caos.zitadel.admin.api.v1.OrgSetUpResponse.org:type_name -> caos.zitadel.admin.api.v1.Org + 20, // 12: caos.zitadel.admin.api.v1.OrgSetUpResponse.user:type_name -> caos.zitadel.admin.api.v1.User + 4, // 13: caos.zitadel.admin.api.v1.CreateUserRequest.gender:type_name -> caos.zitadel.admin.api.v1.Gender + 3, // 14: caos.zitadel.admin.api.v1.User.state:type_name -> caos.zitadel.admin.api.v1.UserState + 58, // 15: caos.zitadel.admin.api.v1.User.creation_date:type_name -> google.protobuf.Timestamp + 58, // 16: caos.zitadel.admin.api.v1.User.change_date:type_name -> google.protobuf.Timestamp + 4, // 17: caos.zitadel.admin.api.v1.User.gender:type_name -> caos.zitadel.admin.api.v1.Gender + 58, // 18: caos.zitadel.admin.api.v1.OrgIamPolicy.creation_date:type_name -> google.protobuf.Timestamp + 58, // 19: caos.zitadel.admin.api.v1.OrgIamPolicy.change_date:type_name -> google.protobuf.Timestamp + 58, // 20: caos.zitadel.admin.api.v1.IamMember.change_date:type_name -> google.protobuf.Timestamp + 58, // 21: caos.zitadel.admin.api.v1.IamMember.creation_date:type_name -> google.protobuf.Timestamp + 31, // 22: caos.zitadel.admin.api.v1.IamMemberSearchResponse.result:type_name -> caos.zitadel.admin.api.v1.IamMemberView + 58, // 23: caos.zitadel.admin.api.v1.IamMemberSearchResponse.view_timestamp:type_name -> google.protobuf.Timestamp + 58, // 24: caos.zitadel.admin.api.v1.IamMemberView.change_date:type_name -> google.protobuf.Timestamp + 58, // 25: caos.zitadel.admin.api.v1.IamMemberView.creation_date:type_name -> google.protobuf.Timestamp + 33, // 26: caos.zitadel.admin.api.v1.IamMemberSearchRequest.queries:type_name -> caos.zitadel.admin.api.v1.IamMemberSearchQuery + 5, // 27: caos.zitadel.admin.api.v1.IamMemberSearchQuery.key:type_name -> caos.zitadel.admin.api.v1.IamMemberSearchKey + 6, // 28: caos.zitadel.admin.api.v1.IamMemberSearchQuery.method:type_name -> caos.zitadel.admin.api.v1.SearchMethod + 36, // 29: caos.zitadel.admin.api.v1.FailedEvents.failed_events:type_name -> caos.zitadel.admin.api.v1.FailedEvent + 39, // 30: caos.zitadel.admin.api.v1.Views.views:type_name -> caos.zitadel.admin.api.v1.View + 58, // 31: caos.zitadel.admin.api.v1.View.view_timestamp:type_name -> google.protobuf.Timestamp + 7, // 32: caos.zitadel.admin.api.v1.Idp.state:type_name -> caos.zitadel.admin.api.v1.IdpState + 58, // 33: caos.zitadel.admin.api.v1.Idp.creation_date:type_name -> google.protobuf.Timestamp + 58, // 34: caos.zitadel.admin.api.v1.Idp.change_date:type_name -> google.protobuf.Timestamp + 43, // 35: caos.zitadel.admin.api.v1.Idp.oidc_config:type_name -> caos.zitadel.admin.api.v1.OidcIdpConfig + 47, // 36: caos.zitadel.admin.api.v1.IdpSearchResponse.result:type_name -> caos.zitadel.admin.api.v1.IdpView + 58, // 37: caos.zitadel.admin.api.v1.IdpSearchResponse.view_timestamp:type_name -> google.protobuf.Timestamp + 7, // 38: caos.zitadel.admin.api.v1.IdpView.state:type_name -> caos.zitadel.admin.api.v1.IdpState + 58, // 39: caos.zitadel.admin.api.v1.IdpView.creation_date:type_name -> google.protobuf.Timestamp + 58, // 40: caos.zitadel.admin.api.v1.IdpView.change_date:type_name -> google.protobuf.Timestamp + 48, // 41: caos.zitadel.admin.api.v1.IdpView.oidc_config:type_name -> caos.zitadel.admin.api.v1.OidcIdpConfigView + 50, // 42: caos.zitadel.admin.api.v1.IdpSearchRequest.queries:type_name -> caos.zitadel.admin.api.v1.IdpSearchQuery + 8, // 43: caos.zitadel.admin.api.v1.IdpSearchQuery.key:type_name -> caos.zitadel.admin.api.v1.IdpSearchKey + 6, // 44: caos.zitadel.admin.api.v1.IdpSearchQuery.method:type_name -> caos.zitadel.admin.api.v1.SearchMethod + 55, // 45: caos.zitadel.admin.api.v1.IdpProviderViews.providers:type_name -> caos.zitadel.admin.api.v1.IdpProviderView + 9, // 46: caos.zitadel.admin.api.v1.IdpProviderView.type:type_name -> caos.zitadel.admin.api.v1.IdpType + 55, // 47: caos.zitadel.admin.api.v1.IdpProviderSearchResponse.result:type_name -> caos.zitadel.admin.api.v1.IdpProviderView + 58, // 48: caos.zitadel.admin.api.v1.IdpProviderSearchResponse.view_timestamp:type_name -> google.protobuf.Timestamp + 59, // 49: caos.zitadel.admin.api.v1.AdminService.Healthz:input_type -> google.protobuf.Empty + 59, // 50: caos.zitadel.admin.api.v1.AdminService.Ready:input_type -> google.protobuf.Empty + 59, // 51: caos.zitadel.admin.api.v1.AdminService.Validate:input_type -> google.protobuf.Empty + 11, // 52: caos.zitadel.admin.api.v1.AdminService.IsOrgUnique:input_type -> caos.zitadel.admin.api.v1.UniqueOrgRequest + 10, // 53: caos.zitadel.admin.api.v1.AdminService.GetOrgByID:input_type -> caos.zitadel.admin.api.v1.OrgID + 14, // 54: caos.zitadel.admin.api.v1.AdminService.SearchOrgs:input_type -> caos.zitadel.admin.api.v1.OrgSearchRequest + 17, // 55: caos.zitadel.admin.api.v1.AdminService.SetUpOrg:input_type -> caos.zitadel.admin.api.v1.OrgSetUpRequest + 24, // 56: caos.zitadel.admin.api.v1.AdminService.GetOrgIamPolicy:input_type -> caos.zitadel.admin.api.v1.OrgIamPolicyID + 23, // 57: caos.zitadel.admin.api.v1.AdminService.CreateOrgIamPolicy:input_type -> caos.zitadel.admin.api.v1.OrgIamPolicyRequest + 23, // 58: caos.zitadel.admin.api.v1.AdminService.UpdateOrgIamPolicy:input_type -> caos.zitadel.admin.api.v1.OrgIamPolicyRequest + 24, // 59: caos.zitadel.admin.api.v1.AdminService.DeleteOrgIamPolicy:input_type -> caos.zitadel.admin.api.v1.OrgIamPolicyID + 59, // 60: caos.zitadel.admin.api.v1.AdminService.GetIamMemberRoles:input_type -> google.protobuf.Empty + 27, // 61: caos.zitadel.admin.api.v1.AdminService.AddIamMember:input_type -> caos.zitadel.admin.api.v1.AddIamMemberRequest + 28, // 62: caos.zitadel.admin.api.v1.AdminService.ChangeIamMember:input_type -> caos.zitadel.admin.api.v1.ChangeIamMemberRequest + 29, // 63: caos.zitadel.admin.api.v1.AdminService.RemoveIamMember:input_type -> caos.zitadel.admin.api.v1.RemoveIamMemberRequest + 32, // 64: caos.zitadel.admin.api.v1.AdminService.SearchIamMembers:input_type -> caos.zitadel.admin.api.v1.IamMemberSearchRequest + 59, // 65: caos.zitadel.admin.api.v1.AdminService.GetViews:input_type -> google.protobuf.Empty + 37, // 66: caos.zitadel.admin.api.v1.AdminService.ClearView:input_type -> caos.zitadel.admin.api.v1.ViewID + 59, // 67: caos.zitadel.admin.api.v1.AdminService.GetFailedEvents:input_type -> google.protobuf.Empty + 34, // 68: caos.zitadel.admin.api.v1.AdminService.RemoveFailedEvent:input_type -> caos.zitadel.admin.api.v1.FailedEventID + 40, // 69: caos.zitadel.admin.api.v1.AdminService.IdpByID:input_type -> caos.zitadel.admin.api.v1.IdpID + 44, // 70: caos.zitadel.admin.api.v1.AdminService.CreateOidcIdp:input_type -> caos.zitadel.admin.api.v1.OidcIdpConfigCreate + 42, // 71: caos.zitadel.admin.api.v1.AdminService.UpdateIdpConfig:input_type -> caos.zitadel.admin.api.v1.IdpUpdate + 40, // 72: caos.zitadel.admin.api.v1.AdminService.DeactivateIdpConfig:input_type -> caos.zitadel.admin.api.v1.IdpID + 40, // 73: caos.zitadel.admin.api.v1.AdminService.ReactivateIdpConfig:input_type -> caos.zitadel.admin.api.v1.IdpID + 40, // 74: caos.zitadel.admin.api.v1.AdminService.RemoveIdpConfig:input_type -> caos.zitadel.admin.api.v1.IdpID + 45, // 75: caos.zitadel.admin.api.v1.AdminService.UpdateOidcIdpConfig:input_type -> caos.zitadel.admin.api.v1.OidcIdpConfigUpdate + 49, // 76: caos.zitadel.admin.api.v1.AdminService.SearchIdps:input_type -> caos.zitadel.admin.api.v1.IdpSearchRequest + 59, // 77: caos.zitadel.admin.api.v1.AdminService.GetDefaultLoginPolicy:input_type -> google.protobuf.Empty + 51, // 78: caos.zitadel.admin.api.v1.AdminService.UpdateDefaultLoginPolicy:input_type -> caos.zitadel.admin.api.v1.DefaultLoginPolicy + 57, // 79: caos.zitadel.admin.api.v1.AdminService.GetDefaultLoginPolicyIdpProviders:input_type -> caos.zitadel.admin.api.v1.IdpProviderSearchRequest + 52, // 80: caos.zitadel.admin.api.v1.AdminService.AddIdpProviderToDefaultLoginPolicy:input_type -> caos.zitadel.admin.api.v1.IdpProviderID + 52, // 81: caos.zitadel.admin.api.v1.AdminService.RemoveIdpProviderFromDefaultLoginPolicy:input_type -> caos.zitadel.admin.api.v1.IdpProviderID + 59, // 82: caos.zitadel.admin.api.v1.AdminService.Healthz:output_type -> google.protobuf.Empty + 59, // 83: caos.zitadel.admin.api.v1.AdminService.Ready:output_type -> google.protobuf.Empty + 60, // 84: caos.zitadel.admin.api.v1.AdminService.Validate:output_type -> google.protobuf.Struct + 12, // 85: caos.zitadel.admin.api.v1.AdminService.IsOrgUnique:output_type -> caos.zitadel.admin.api.v1.UniqueOrgResponse + 13, // 86: caos.zitadel.admin.api.v1.AdminService.GetOrgByID:output_type -> caos.zitadel.admin.api.v1.Org + 16, // 87: caos.zitadel.admin.api.v1.AdminService.SearchOrgs:output_type -> caos.zitadel.admin.api.v1.OrgSearchResponse + 18, // 88: caos.zitadel.admin.api.v1.AdminService.SetUpOrg:output_type -> caos.zitadel.admin.api.v1.OrgSetUpResponse + 22, // 89: caos.zitadel.admin.api.v1.AdminService.GetOrgIamPolicy:output_type -> caos.zitadel.admin.api.v1.OrgIamPolicy + 22, // 90: caos.zitadel.admin.api.v1.AdminService.CreateOrgIamPolicy:output_type -> caos.zitadel.admin.api.v1.OrgIamPolicy + 22, // 91: caos.zitadel.admin.api.v1.AdminService.UpdateOrgIamPolicy:output_type -> caos.zitadel.admin.api.v1.OrgIamPolicy + 59, // 92: caos.zitadel.admin.api.v1.AdminService.DeleteOrgIamPolicy:output_type -> google.protobuf.Empty + 25, // 93: caos.zitadel.admin.api.v1.AdminService.GetIamMemberRoles:output_type -> caos.zitadel.admin.api.v1.IamMemberRoles + 26, // 94: caos.zitadel.admin.api.v1.AdminService.AddIamMember:output_type -> caos.zitadel.admin.api.v1.IamMember + 26, // 95: caos.zitadel.admin.api.v1.AdminService.ChangeIamMember:output_type -> caos.zitadel.admin.api.v1.IamMember + 59, // 96: caos.zitadel.admin.api.v1.AdminService.RemoveIamMember:output_type -> google.protobuf.Empty + 30, // 97: caos.zitadel.admin.api.v1.AdminService.SearchIamMembers:output_type -> caos.zitadel.admin.api.v1.IamMemberSearchResponse + 38, // 98: caos.zitadel.admin.api.v1.AdminService.GetViews:output_type -> caos.zitadel.admin.api.v1.Views + 59, // 99: caos.zitadel.admin.api.v1.AdminService.ClearView:output_type -> google.protobuf.Empty + 35, // 100: caos.zitadel.admin.api.v1.AdminService.GetFailedEvents:output_type -> caos.zitadel.admin.api.v1.FailedEvents + 59, // 101: caos.zitadel.admin.api.v1.AdminService.RemoveFailedEvent:output_type -> google.protobuf.Empty + 47, // 102: caos.zitadel.admin.api.v1.AdminService.IdpByID:output_type -> caos.zitadel.admin.api.v1.IdpView + 41, // 103: caos.zitadel.admin.api.v1.AdminService.CreateOidcIdp:output_type -> caos.zitadel.admin.api.v1.Idp + 41, // 104: caos.zitadel.admin.api.v1.AdminService.UpdateIdpConfig:output_type -> caos.zitadel.admin.api.v1.Idp + 41, // 105: caos.zitadel.admin.api.v1.AdminService.DeactivateIdpConfig:output_type -> caos.zitadel.admin.api.v1.Idp + 41, // 106: caos.zitadel.admin.api.v1.AdminService.ReactivateIdpConfig:output_type -> caos.zitadel.admin.api.v1.Idp + 59, // 107: caos.zitadel.admin.api.v1.AdminService.RemoveIdpConfig:output_type -> google.protobuf.Empty + 43, // 108: caos.zitadel.admin.api.v1.AdminService.UpdateOidcIdpConfig:output_type -> caos.zitadel.admin.api.v1.OidcIdpConfig + 46, // 109: caos.zitadel.admin.api.v1.AdminService.SearchIdps:output_type -> caos.zitadel.admin.api.v1.IdpSearchResponse + 53, // 110: caos.zitadel.admin.api.v1.AdminService.GetDefaultLoginPolicy:output_type -> caos.zitadel.admin.api.v1.DefaultLoginPolicyView + 51, // 111: caos.zitadel.admin.api.v1.AdminService.UpdateDefaultLoginPolicy:output_type -> caos.zitadel.admin.api.v1.DefaultLoginPolicy + 56, // 112: caos.zitadel.admin.api.v1.AdminService.GetDefaultLoginPolicyIdpProviders:output_type -> caos.zitadel.admin.api.v1.IdpProviderSearchResponse + 52, // 113: caos.zitadel.admin.api.v1.AdminService.AddIdpProviderToDefaultLoginPolicy:output_type -> caos.zitadel.admin.api.v1.IdpProviderID + 59, // 114: caos.zitadel.admin.api.v1.AdminService.RemoveIdpProviderFromDefaultLoginPolicy:output_type -> google.protobuf.Empty + 82, // [82:115] is the sub-list for method output_type + 49, // [49:82] is the sub-list for method input_type + 49, // [49:49] is the sub-list for extension type_name + 49, // [49:49] is the sub-list for extension extendee + 0, // [0:49] is the sub-list for field type_name +} + +func init() { file_admin_proto_init() } +func file_admin_proto_init() { + if File_admin_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_admin_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrgID); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_admin_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UniqueOrgRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_admin_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UniqueOrgResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_admin_proto_msgTypes[3].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_admin_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrgSearchRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_admin_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrgSearchQuery); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_admin_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrgSearchResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_admin_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrgSetUpRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_admin_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrgSetUpResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_admin_proto_msgTypes[9].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_admin_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*User); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_admin_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateOrgRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_admin_proto_msgTypes[12].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_admin_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrgIamPolicyRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_admin_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrgIamPolicyID); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_admin_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IamMemberRoles); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_admin_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IamMember); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_admin_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddIamMemberRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_admin_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChangeIamMemberRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_admin_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RemoveIamMemberRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_admin_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IamMemberSearchResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_admin_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IamMemberView); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_admin_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IamMemberSearchRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_admin_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IamMemberSearchQuery); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_admin_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FailedEventID); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_admin_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FailedEvents); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_admin_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FailedEvent); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_admin_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ViewID); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_admin_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Views); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_admin_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*View); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_admin_proto_msgTypes[30].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_admin_proto_msgTypes[31].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_admin_proto_msgTypes[32].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_admin_proto_msgTypes[33].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_admin_proto_msgTypes[34].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_admin_proto_msgTypes[35].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_admin_proto_msgTypes[36].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_admin_proto_msgTypes[37].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_admin_proto_msgTypes[38].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_admin_proto_msgTypes[39].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_admin_proto_msgTypes[40].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_admin_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DefaultLoginPolicy); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_admin_proto_msgTypes[42].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_admin_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DefaultLoginPolicyView); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_admin_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IdpProviderViews); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_admin_proto_msgTypes[45].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_admin_proto_msgTypes[46].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_admin_proto_msgTypes[47].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_admin_proto_msgTypes[31].OneofWrappers = []interface{}{ + (*Idp_OidcConfig)(nil), + } + file_admin_proto_msgTypes[37].OneofWrappers = []interface{}{ + (*IdpView_OidcConfig)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_admin_proto_rawDesc, + NumEnums: 10, + NumMessages: 48, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_admin_proto_goTypes, + DependencyIndexes: file_admin_proto_depIdxs, + EnumInfos: file_admin_proto_enumTypes, + MessageInfos: file_admin_proto_msgTypes, + }.Build() + File_admin_proto = out.File + file_admin_proto_rawDesc = nil + file_admin_proto_goTypes = nil + file_admin_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 // AdminServiceClient is the client API for AdminService service. // @@ -2487,13 +5856,26 @@ type AdminServiceClient interface { ClearView(ctx context.Context, in *ViewID, opts ...grpc.CallOption) (*empty.Empty, error) GetFailedEvents(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*FailedEvents, error) RemoveFailedEvent(ctx context.Context, in *FailedEventID, opts ...grpc.CallOption) (*empty.Empty, error) + IdpByID(ctx context.Context, in *IdpID, opts ...grpc.CallOption) (*IdpView, error) + CreateOidcIdp(ctx context.Context, in *OidcIdpConfigCreate, opts ...grpc.CallOption) (*Idp, error) + UpdateIdpConfig(ctx context.Context, in *IdpUpdate, opts ...grpc.CallOption) (*Idp, error) + DeactivateIdpConfig(ctx context.Context, in *IdpID, opts ...grpc.CallOption) (*Idp, error) + ReactivateIdpConfig(ctx context.Context, in *IdpID, opts ...grpc.CallOption) (*Idp, error) + RemoveIdpConfig(ctx context.Context, in *IdpID, opts ...grpc.CallOption) (*empty.Empty, error) + UpdateOidcIdpConfig(ctx context.Context, in *OidcIdpConfigUpdate, opts ...grpc.CallOption) (*OidcIdpConfig, error) + SearchIdps(ctx context.Context, in *IdpSearchRequest, opts ...grpc.CallOption) (*IdpSearchResponse, error) + GetDefaultLoginPolicy(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*DefaultLoginPolicyView, error) + UpdateDefaultLoginPolicy(ctx context.Context, in *DefaultLoginPolicy, opts ...grpc.CallOption) (*DefaultLoginPolicy, error) + GetDefaultLoginPolicyIdpProviders(ctx context.Context, in *IdpProviderSearchRequest, opts ...grpc.CallOption) (*IdpProviderSearchResponse, error) + AddIdpProviderToDefaultLoginPolicy(ctx context.Context, in *IdpProviderID, opts ...grpc.CallOption) (*IdpProviderID, error) + RemoveIdpProviderFromDefaultLoginPolicy(ctx context.Context, in *IdpProviderID, opts ...grpc.CallOption) (*empty.Empty, error) } type adminServiceClient struct { - cc *grpc.ClientConn + cc grpc.ClientConnInterface } -func NewAdminServiceClient(cc *grpc.ClientConn) AdminServiceClient { +func NewAdminServiceClient(cc grpc.ClientConnInterface) AdminServiceClient { return &adminServiceClient{cc} } @@ -2677,6 +6059,123 @@ func (c *adminServiceClient) RemoveFailedEvent(ctx context.Context, in *FailedEv return out, nil } +func (c *adminServiceClient) IdpByID(ctx context.Context, in *IdpID, opts ...grpc.CallOption) (*IdpView, error) { + out := new(IdpView) + err := c.cc.Invoke(ctx, "/caos.zitadel.admin.api.v1.AdminService/IdpByID", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *adminServiceClient) CreateOidcIdp(ctx context.Context, in *OidcIdpConfigCreate, opts ...grpc.CallOption) (*Idp, error) { + out := new(Idp) + err := c.cc.Invoke(ctx, "/caos.zitadel.admin.api.v1.AdminService/CreateOidcIdp", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *adminServiceClient) UpdateIdpConfig(ctx context.Context, in *IdpUpdate, opts ...grpc.CallOption) (*Idp, error) { + out := new(Idp) + err := c.cc.Invoke(ctx, "/caos.zitadel.admin.api.v1.AdminService/UpdateIdpConfig", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *adminServiceClient) DeactivateIdpConfig(ctx context.Context, in *IdpID, opts ...grpc.CallOption) (*Idp, error) { + out := new(Idp) + err := c.cc.Invoke(ctx, "/caos.zitadel.admin.api.v1.AdminService/DeactivateIdpConfig", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *adminServiceClient) ReactivateIdpConfig(ctx context.Context, in *IdpID, opts ...grpc.CallOption) (*Idp, error) { + out := new(Idp) + err := c.cc.Invoke(ctx, "/caos.zitadel.admin.api.v1.AdminService/ReactivateIdpConfig", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *adminServiceClient) RemoveIdpConfig(ctx context.Context, in *IdpID, opts ...grpc.CallOption) (*empty.Empty, error) { + out := new(empty.Empty) + err := c.cc.Invoke(ctx, "/caos.zitadel.admin.api.v1.AdminService/RemoveIdpConfig", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *adminServiceClient) UpdateOidcIdpConfig(ctx context.Context, in *OidcIdpConfigUpdate, opts ...grpc.CallOption) (*OidcIdpConfig, error) { + out := new(OidcIdpConfig) + err := c.cc.Invoke(ctx, "/caos.zitadel.admin.api.v1.AdminService/UpdateOidcIdpConfig", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *adminServiceClient) SearchIdps(ctx context.Context, in *IdpSearchRequest, opts ...grpc.CallOption) (*IdpSearchResponse, error) { + out := new(IdpSearchResponse) + err := c.cc.Invoke(ctx, "/caos.zitadel.admin.api.v1.AdminService/SearchIdps", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *adminServiceClient) GetDefaultLoginPolicy(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*DefaultLoginPolicyView, error) { + out := new(DefaultLoginPolicyView) + err := c.cc.Invoke(ctx, "/caos.zitadel.admin.api.v1.AdminService/GetDefaultLoginPolicy", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *adminServiceClient) UpdateDefaultLoginPolicy(ctx context.Context, in *DefaultLoginPolicy, opts ...grpc.CallOption) (*DefaultLoginPolicy, error) { + out := new(DefaultLoginPolicy) + err := c.cc.Invoke(ctx, "/caos.zitadel.admin.api.v1.AdminService/UpdateDefaultLoginPolicy", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *adminServiceClient) GetDefaultLoginPolicyIdpProviders(ctx context.Context, in *IdpProviderSearchRequest, opts ...grpc.CallOption) (*IdpProviderSearchResponse, error) { + out := new(IdpProviderSearchResponse) + err := c.cc.Invoke(ctx, "/caos.zitadel.admin.api.v1.AdminService/GetDefaultLoginPolicyIdpProviders", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *adminServiceClient) AddIdpProviderToDefaultLoginPolicy(ctx context.Context, in *IdpProviderID, opts ...grpc.CallOption) (*IdpProviderID, error) { + out := new(IdpProviderID) + err := c.cc.Invoke(ctx, "/caos.zitadel.admin.api.v1.AdminService/AddIdpProviderToDefaultLoginPolicy", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *adminServiceClient) RemoveIdpProviderFromDefaultLoginPolicy(ctx context.Context, in *IdpProviderID, opts ...grpc.CallOption) (*empty.Empty, error) { + out := new(empty.Empty) + err := c.cc.Invoke(ctx, "/caos.zitadel.admin.api.v1.AdminService/RemoveIdpProviderFromDefaultLoginPolicy", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // AdminServiceServer is the server API for AdminService service. type AdminServiceServer interface { // Healthz returns status OK as soon as the service started @@ -2703,72 +6202,124 @@ type AdminServiceServer interface { ClearView(context.Context, *ViewID) (*empty.Empty, error) GetFailedEvents(context.Context, *empty.Empty) (*FailedEvents, error) RemoveFailedEvent(context.Context, *FailedEventID) (*empty.Empty, error) + IdpByID(context.Context, *IdpID) (*IdpView, error) + CreateOidcIdp(context.Context, *OidcIdpConfigCreate) (*Idp, error) + UpdateIdpConfig(context.Context, *IdpUpdate) (*Idp, error) + DeactivateIdpConfig(context.Context, *IdpID) (*Idp, error) + ReactivateIdpConfig(context.Context, *IdpID) (*Idp, error) + RemoveIdpConfig(context.Context, *IdpID) (*empty.Empty, error) + UpdateOidcIdpConfig(context.Context, *OidcIdpConfigUpdate) (*OidcIdpConfig, error) + SearchIdps(context.Context, *IdpSearchRequest) (*IdpSearchResponse, error) + GetDefaultLoginPolicy(context.Context, *empty.Empty) (*DefaultLoginPolicyView, error) + UpdateDefaultLoginPolicy(context.Context, *DefaultLoginPolicy) (*DefaultLoginPolicy, error) + GetDefaultLoginPolicyIdpProviders(context.Context, *IdpProviderSearchRequest) (*IdpProviderSearchResponse, error) + AddIdpProviderToDefaultLoginPolicy(context.Context, *IdpProviderID) (*IdpProviderID, error) + RemoveIdpProviderFromDefaultLoginPolicy(context.Context, *IdpProviderID) (*empty.Empty, error) } // UnimplementedAdminServiceServer can be embedded to have forward compatible implementations. type UnimplementedAdminServiceServer struct { } -func (*UnimplementedAdminServiceServer) Healthz(ctx context.Context, req *empty.Empty) (*empty.Empty, error) { +func (*UnimplementedAdminServiceServer) Healthz(context.Context, *empty.Empty) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method Healthz not implemented") } -func (*UnimplementedAdminServiceServer) Ready(ctx context.Context, req *empty.Empty) (*empty.Empty, error) { +func (*UnimplementedAdminServiceServer) Ready(context.Context, *empty.Empty) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method Ready not implemented") } -func (*UnimplementedAdminServiceServer) Validate(ctx context.Context, req *empty.Empty) (*_struct.Struct, error) { +func (*UnimplementedAdminServiceServer) Validate(context.Context, *empty.Empty) (*_struct.Struct, error) { return nil, status.Errorf(codes.Unimplemented, "method Validate not implemented") } -func (*UnimplementedAdminServiceServer) IsOrgUnique(ctx context.Context, req *UniqueOrgRequest) (*UniqueOrgResponse, error) { +func (*UnimplementedAdminServiceServer) IsOrgUnique(context.Context, *UniqueOrgRequest) (*UniqueOrgResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method IsOrgUnique not implemented") } -func (*UnimplementedAdminServiceServer) GetOrgByID(ctx context.Context, req *OrgID) (*Org, error) { +func (*UnimplementedAdminServiceServer) GetOrgByID(context.Context, *OrgID) (*Org, error) { return nil, status.Errorf(codes.Unimplemented, "method GetOrgByID not implemented") } -func (*UnimplementedAdminServiceServer) SearchOrgs(ctx context.Context, req *OrgSearchRequest) (*OrgSearchResponse, error) { +func (*UnimplementedAdminServiceServer) SearchOrgs(context.Context, *OrgSearchRequest) (*OrgSearchResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SearchOrgs not implemented") } -func (*UnimplementedAdminServiceServer) SetUpOrg(ctx context.Context, req *OrgSetUpRequest) (*OrgSetUpResponse, error) { +func (*UnimplementedAdminServiceServer) SetUpOrg(context.Context, *OrgSetUpRequest) (*OrgSetUpResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SetUpOrg not implemented") } -func (*UnimplementedAdminServiceServer) GetOrgIamPolicy(ctx context.Context, req *OrgIamPolicyID) (*OrgIamPolicy, error) { +func (*UnimplementedAdminServiceServer) GetOrgIamPolicy(context.Context, *OrgIamPolicyID) (*OrgIamPolicy, error) { return nil, status.Errorf(codes.Unimplemented, "method GetOrgIamPolicy not implemented") } -func (*UnimplementedAdminServiceServer) CreateOrgIamPolicy(ctx context.Context, req *OrgIamPolicyRequest) (*OrgIamPolicy, error) { +func (*UnimplementedAdminServiceServer) CreateOrgIamPolicy(context.Context, *OrgIamPolicyRequest) (*OrgIamPolicy, error) { return nil, status.Errorf(codes.Unimplemented, "method CreateOrgIamPolicy not implemented") } -func (*UnimplementedAdminServiceServer) UpdateOrgIamPolicy(ctx context.Context, req *OrgIamPolicyRequest) (*OrgIamPolicy, error) { +func (*UnimplementedAdminServiceServer) UpdateOrgIamPolicy(context.Context, *OrgIamPolicyRequest) (*OrgIamPolicy, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateOrgIamPolicy not implemented") } -func (*UnimplementedAdminServiceServer) DeleteOrgIamPolicy(ctx context.Context, req *OrgIamPolicyID) (*empty.Empty, error) { +func (*UnimplementedAdminServiceServer) DeleteOrgIamPolicy(context.Context, *OrgIamPolicyID) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method DeleteOrgIamPolicy not implemented") } -func (*UnimplementedAdminServiceServer) GetIamMemberRoles(ctx context.Context, req *empty.Empty) (*IamMemberRoles, error) { +func (*UnimplementedAdminServiceServer) GetIamMemberRoles(context.Context, *empty.Empty) (*IamMemberRoles, error) { return nil, status.Errorf(codes.Unimplemented, "method GetIamMemberRoles not implemented") } -func (*UnimplementedAdminServiceServer) AddIamMember(ctx context.Context, req *AddIamMemberRequest) (*IamMember, error) { +func (*UnimplementedAdminServiceServer) AddIamMember(context.Context, *AddIamMemberRequest) (*IamMember, error) { return nil, status.Errorf(codes.Unimplemented, "method AddIamMember not implemented") } -func (*UnimplementedAdminServiceServer) ChangeIamMember(ctx context.Context, req *ChangeIamMemberRequest) (*IamMember, error) { +func (*UnimplementedAdminServiceServer) ChangeIamMember(context.Context, *ChangeIamMemberRequest) (*IamMember, error) { return nil, status.Errorf(codes.Unimplemented, "method ChangeIamMember not implemented") } -func (*UnimplementedAdminServiceServer) RemoveIamMember(ctx context.Context, req *RemoveIamMemberRequest) (*empty.Empty, error) { +func (*UnimplementedAdminServiceServer) RemoveIamMember(context.Context, *RemoveIamMemberRequest) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method RemoveIamMember not implemented") } -func (*UnimplementedAdminServiceServer) SearchIamMembers(ctx context.Context, req *IamMemberSearchRequest) (*IamMemberSearchResponse, error) { +func (*UnimplementedAdminServiceServer) SearchIamMembers(context.Context, *IamMemberSearchRequest) (*IamMemberSearchResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SearchIamMembers not implemented") } -func (*UnimplementedAdminServiceServer) GetViews(ctx context.Context, req *empty.Empty) (*Views, error) { +func (*UnimplementedAdminServiceServer) GetViews(context.Context, *empty.Empty) (*Views, error) { return nil, status.Errorf(codes.Unimplemented, "method GetViews not implemented") } -func (*UnimplementedAdminServiceServer) ClearView(ctx context.Context, req *ViewID) (*empty.Empty, error) { +func (*UnimplementedAdminServiceServer) ClearView(context.Context, *ViewID) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method ClearView not implemented") } -func (*UnimplementedAdminServiceServer) GetFailedEvents(ctx context.Context, req *empty.Empty) (*FailedEvents, error) { +func (*UnimplementedAdminServiceServer) GetFailedEvents(context.Context, *empty.Empty) (*FailedEvents, error) { return nil, status.Errorf(codes.Unimplemented, "method GetFailedEvents not implemented") } -func (*UnimplementedAdminServiceServer) RemoveFailedEvent(ctx context.Context, req *FailedEventID) (*empty.Empty, error) { +func (*UnimplementedAdminServiceServer) RemoveFailedEvent(context.Context, *FailedEventID) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method RemoveFailedEvent not implemented") } +func (*UnimplementedAdminServiceServer) IdpByID(context.Context, *IdpID) (*IdpView, error) { + return nil, status.Errorf(codes.Unimplemented, "method IdpByID not implemented") +} +func (*UnimplementedAdminServiceServer) CreateOidcIdp(context.Context, *OidcIdpConfigCreate) (*Idp, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateOidcIdp not implemented") +} +func (*UnimplementedAdminServiceServer) UpdateIdpConfig(context.Context, *IdpUpdate) (*Idp, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateIdpConfig not implemented") +} +func (*UnimplementedAdminServiceServer) DeactivateIdpConfig(context.Context, *IdpID) (*Idp, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeactivateIdpConfig not implemented") +} +func (*UnimplementedAdminServiceServer) ReactivateIdpConfig(context.Context, *IdpID) (*Idp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ReactivateIdpConfig not implemented") +} +func (*UnimplementedAdminServiceServer) RemoveIdpConfig(context.Context, *IdpID) (*empty.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method RemoveIdpConfig not implemented") +} +func (*UnimplementedAdminServiceServer) UpdateOidcIdpConfig(context.Context, *OidcIdpConfigUpdate) (*OidcIdpConfig, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateOidcIdpConfig not implemented") +} +func (*UnimplementedAdminServiceServer) SearchIdps(context.Context, *IdpSearchRequest) (*IdpSearchResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SearchIdps not implemented") +} +func (*UnimplementedAdminServiceServer) GetDefaultLoginPolicy(context.Context, *empty.Empty) (*DefaultLoginPolicyView, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetDefaultLoginPolicy not implemented") +} +func (*UnimplementedAdminServiceServer) UpdateDefaultLoginPolicy(context.Context, *DefaultLoginPolicy) (*DefaultLoginPolicy, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateDefaultLoginPolicy not implemented") +} +func (*UnimplementedAdminServiceServer) GetDefaultLoginPolicyIdpProviders(context.Context, *IdpProviderSearchRequest) (*IdpProviderSearchResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetDefaultLoginPolicyIdpProviders not implemented") +} +func (*UnimplementedAdminServiceServer) AddIdpProviderToDefaultLoginPolicy(context.Context, *IdpProviderID) (*IdpProviderID, error) { + return nil, status.Errorf(codes.Unimplemented, "method AddIdpProviderToDefaultLoginPolicy not implemented") +} +func (*UnimplementedAdminServiceServer) RemoveIdpProviderFromDefaultLoginPolicy(context.Context, *IdpProviderID) (*empty.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method RemoveIdpProviderFromDefaultLoginPolicy not implemented") +} func RegisterAdminServiceServer(s *grpc.Server, srv AdminServiceServer) { s.RegisterService(&_AdminService_serviceDesc, srv) @@ -3134,6 +6685,240 @@ func _AdminService_RemoveFailedEvent_Handler(srv interface{}, ctx context.Contex return interceptor(ctx, in, info, handler) } +func _AdminService_IdpByID_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(IdpID) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminServiceServer).IdpByID(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/caos.zitadel.admin.api.v1.AdminService/IdpByID", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminServiceServer).IdpByID(ctx, req.(*IdpID)) + } + return interceptor(ctx, in, info, handler) +} + +func _AdminService_CreateOidcIdp_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(OidcIdpConfigCreate) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminServiceServer).CreateOidcIdp(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/caos.zitadel.admin.api.v1.AdminService/CreateOidcIdp", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminServiceServer).CreateOidcIdp(ctx, req.(*OidcIdpConfigCreate)) + } + return interceptor(ctx, in, info, handler) +} + +func _AdminService_UpdateIdpConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(IdpUpdate) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminServiceServer).UpdateIdpConfig(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/caos.zitadel.admin.api.v1.AdminService/UpdateIdpConfig", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminServiceServer).UpdateIdpConfig(ctx, req.(*IdpUpdate)) + } + return interceptor(ctx, in, info, handler) +} + +func _AdminService_DeactivateIdpConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(IdpID) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminServiceServer).DeactivateIdpConfig(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/caos.zitadel.admin.api.v1.AdminService/DeactivateIdpConfig", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminServiceServer).DeactivateIdpConfig(ctx, req.(*IdpID)) + } + return interceptor(ctx, in, info, handler) +} + +func _AdminService_ReactivateIdpConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(IdpID) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminServiceServer).ReactivateIdpConfig(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/caos.zitadel.admin.api.v1.AdminService/ReactivateIdpConfig", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminServiceServer).ReactivateIdpConfig(ctx, req.(*IdpID)) + } + return interceptor(ctx, in, info, handler) +} + +func _AdminService_RemoveIdpConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(IdpID) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminServiceServer).RemoveIdpConfig(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/caos.zitadel.admin.api.v1.AdminService/RemoveIdpConfig", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminServiceServer).RemoveIdpConfig(ctx, req.(*IdpID)) + } + return interceptor(ctx, in, info, handler) +} + +func _AdminService_UpdateOidcIdpConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(OidcIdpConfigUpdate) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminServiceServer).UpdateOidcIdpConfig(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/caos.zitadel.admin.api.v1.AdminService/UpdateOidcIdpConfig", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminServiceServer).UpdateOidcIdpConfig(ctx, req.(*OidcIdpConfigUpdate)) + } + return interceptor(ctx, in, info, handler) +} + +func _AdminService_SearchIdps_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(IdpSearchRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminServiceServer).SearchIdps(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/caos.zitadel.admin.api.v1.AdminService/SearchIdps", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminServiceServer).SearchIdps(ctx, req.(*IdpSearchRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AdminService_GetDefaultLoginPolicy_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 { + return nil, err + } + if interceptor == nil { + return srv.(AdminServiceServer).GetDefaultLoginPolicy(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/caos.zitadel.admin.api.v1.AdminService/GetDefaultLoginPolicy", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminServiceServer).GetDefaultLoginPolicy(ctx, req.(*empty.Empty)) + } + return interceptor(ctx, in, info, handler) +} + +func _AdminService_UpdateDefaultLoginPolicy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DefaultLoginPolicy) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminServiceServer).UpdateDefaultLoginPolicy(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/caos.zitadel.admin.api.v1.AdminService/UpdateDefaultLoginPolicy", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminServiceServer).UpdateDefaultLoginPolicy(ctx, req.(*DefaultLoginPolicy)) + } + return interceptor(ctx, in, info, handler) +} + +func _AdminService_GetDefaultLoginPolicyIdpProviders_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(IdpProviderSearchRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminServiceServer).GetDefaultLoginPolicyIdpProviders(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/caos.zitadel.admin.api.v1.AdminService/GetDefaultLoginPolicyIdpProviders", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminServiceServer).GetDefaultLoginPolicyIdpProviders(ctx, req.(*IdpProviderSearchRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AdminService_AddIdpProviderToDefaultLoginPolicy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(IdpProviderID) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminServiceServer).AddIdpProviderToDefaultLoginPolicy(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/caos.zitadel.admin.api.v1.AdminService/AddIdpProviderToDefaultLoginPolicy", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminServiceServer).AddIdpProviderToDefaultLoginPolicy(ctx, req.(*IdpProviderID)) + } + return interceptor(ctx, in, info, handler) +} + +func _AdminService_RemoveIdpProviderFromDefaultLoginPolicy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(IdpProviderID) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminServiceServer).RemoveIdpProviderFromDefaultLoginPolicy(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/caos.zitadel.admin.api.v1.AdminService/RemoveIdpProviderFromDefaultLoginPolicy", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminServiceServer).RemoveIdpProviderFromDefaultLoginPolicy(ctx, req.(*IdpProviderID)) + } + return interceptor(ctx, in, info, handler) +} + var _AdminService_serviceDesc = grpc.ServiceDesc{ ServiceName: "caos.zitadel.admin.api.v1.AdminService", HandlerType: (*AdminServiceServer)(nil), @@ -3218,6 +7003,58 @@ var _AdminService_serviceDesc = grpc.ServiceDesc{ MethodName: "RemoveFailedEvent", Handler: _AdminService_RemoveFailedEvent_Handler, }, + { + MethodName: "IdpByID", + Handler: _AdminService_IdpByID_Handler, + }, + { + MethodName: "CreateOidcIdp", + Handler: _AdminService_CreateOidcIdp_Handler, + }, + { + MethodName: "UpdateIdpConfig", + Handler: _AdminService_UpdateIdpConfig_Handler, + }, + { + MethodName: "DeactivateIdpConfig", + Handler: _AdminService_DeactivateIdpConfig_Handler, + }, + { + MethodName: "ReactivateIdpConfig", + Handler: _AdminService_ReactivateIdpConfig_Handler, + }, + { + MethodName: "RemoveIdpConfig", + Handler: _AdminService_RemoveIdpConfig_Handler, + }, + { + MethodName: "UpdateOidcIdpConfig", + Handler: _AdminService_UpdateOidcIdpConfig_Handler, + }, + { + MethodName: "SearchIdps", + Handler: _AdminService_SearchIdps_Handler, + }, + { + MethodName: "GetDefaultLoginPolicy", + Handler: _AdminService_GetDefaultLoginPolicy_Handler, + }, + { + MethodName: "UpdateDefaultLoginPolicy", + Handler: _AdminService_UpdateDefaultLoginPolicy_Handler, + }, + { + MethodName: "GetDefaultLoginPolicyIdpProviders", + Handler: _AdminService_GetDefaultLoginPolicyIdpProviders_Handler, + }, + { + MethodName: "AddIdpProviderToDefaultLoginPolicy", + Handler: _AdminService_AddIdpProviderToDefaultLoginPolicy_Handler, + }, + { + MethodName: "RemoveIdpProviderFromDefaultLoginPolicy", + Handler: _AdminService_RemoveIdpProviderFromDefaultLoginPolicy_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "admin.proto", diff --git a/pkg/grpc/admin/admin.pb.gw.go b/pkg/grpc/admin/admin.pb.gw.go index a03711de9..48ded0b11 100644 --- a/pkg/grpc/admin/admin.pb.gw.go +++ b/pkg/grpc/admin/admin.pb.gw.go @@ -64,10 +64,7 @@ func request_AdminService_IsOrgUnique_0(ctx context.Context, marshaler runtime.M var protoReq UniqueOrgRequest var metadata runtime.ServerMetadata - if err := req.ParseForm(); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdminService_IsOrgUnique_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.URL.Query(), filter_AdminService_IsOrgUnique_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } @@ -471,6 +468,329 @@ func request_AdminService_RemoveFailedEvent_0(ctx context.Context, marshaler run } +func request_AdminService_IdpByID_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq IdpID + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") + } + + protoReq.Id, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) + } + + msg, err := client.IdpByID(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func request_AdminService_CreateOidcIdp_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq OidcIdpConfigCreate + 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.CreateOidcIdp(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func request_AdminService_UpdateIdpConfig_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq IdpUpdate + 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["id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") + } + + protoReq.Id, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) + } + + msg, err := client.UpdateIdpConfig(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func request_AdminService_DeactivateIdpConfig_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq IdpID + 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["id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") + } + + protoReq.Id, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) + } + + msg, err := client.DeactivateIdpConfig(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func request_AdminService_ReactivateIdpConfig_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq IdpID + 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["id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") + } + + protoReq.Id, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) + } + + msg, err := client.ReactivateIdpConfig(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func request_AdminService_RemoveIdpConfig_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq IdpID + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") + } + + protoReq.Id, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) + } + + msg, err := client.RemoveIdpConfig(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func request_AdminService_UpdateOidcIdpConfig_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq OidcIdpConfigUpdate + 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["idp_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "idp_id") + } + + protoReq.IdpId, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "idp_id", err) + } + + msg, err := client.UpdateOidcIdpConfig(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func request_AdminService_SearchIdps_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq IdpSearchRequest + 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.SearchIdps(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func request_AdminService_GetDefaultLoginPolicy_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq empty.Empty + var metadata runtime.ServerMetadata + + msg, err := client.GetDefaultLoginPolicy(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func request_AdminService_UpdateDefaultLoginPolicy_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DefaultLoginPolicy + 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.UpdateDefaultLoginPolicy(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func request_AdminService_GetDefaultLoginPolicyIdpProviders_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq IdpProviderSearchRequest + 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.GetDefaultLoginPolicyIdpProviders(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func request_AdminService_AddIdpProviderToDefaultLoginPolicy_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq IdpProviderID + 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.AddIdpProviderToDefaultLoginPolicy(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func request_AdminService_RemoveIdpProviderFromDefaultLoginPolicy_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq IdpProviderID + 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["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) + } + + msg, err := client.RemoveIdpProviderFromDefaultLoginPolicy(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + // RegisterAdminServiceHandlerFromEndpoint is same as RegisterAdminServiceHandler but // automatically dials to "endpoint" and closes the connection when "ctx" gets done. func RegisterAdminServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { @@ -909,49 +1229,335 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu }) + mux.Handle("GET", pattern_AdminService_IdpByID_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_AdminService_IdpByID_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_IdpByID_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_AdminService_CreateOidcIdp_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_AdminService_CreateOidcIdp_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_CreateOidcIdp_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PUT", pattern_AdminService_UpdateIdpConfig_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_AdminService_UpdateIdpConfig_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_UpdateIdpConfig_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PUT", pattern_AdminService_DeactivateIdpConfig_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_AdminService_DeactivateIdpConfig_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_DeactivateIdpConfig_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PUT", pattern_AdminService_ReactivateIdpConfig_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_AdminService_ReactivateIdpConfig_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_ReactivateIdpConfig_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_AdminService_RemoveIdpConfig_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_AdminService_RemoveIdpConfig_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_RemoveIdpConfig_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PUT", pattern_AdminService_UpdateOidcIdpConfig_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_AdminService_UpdateOidcIdpConfig_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_UpdateOidcIdpConfig_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_AdminService_SearchIdps_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_AdminService_SearchIdps_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_SearchIdps_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AdminService_GetDefaultLoginPolicy_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_AdminService_GetDefaultLoginPolicy_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_GetDefaultLoginPolicy_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PUT", pattern_AdminService_UpdateDefaultLoginPolicy_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_AdminService_UpdateDefaultLoginPolicy_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_UpdateDefaultLoginPolicy_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_AdminService_GetDefaultLoginPolicyIdpProviders_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_AdminService_GetDefaultLoginPolicyIdpProviders_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_GetDefaultLoginPolicyIdpProviders_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_AdminService_AddIdpProviderToDefaultLoginPolicy_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_AdminService_AddIdpProviderToDefaultLoginPolicy_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_AddIdpProviderToDefaultLoginPolicy_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_AdminService_RemoveIdpProviderFromDefaultLoginPolicy_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_AdminService_RemoveIdpProviderFromDefaultLoginPolicy_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_RemoveIdpProviderFromDefaultLoginPolicy_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } var ( - pattern_AdminService_Healthz_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0}, []string{"healthz"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_AdminService_Healthz_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0}, []string{"healthz"}, "")) - pattern_AdminService_Ready_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0}, []string{"ready"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_AdminService_Ready_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0}, []string{"ready"}, "")) - pattern_AdminService_Validate_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0}, []string{"validate"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_AdminService_Validate_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0}, []string{"validate"}, "")) - pattern_AdminService_IsOrgUnique_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"orgs", "_isunique"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_AdminService_IsOrgUnique_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"orgs", "_isunique"}, "")) - pattern_AdminService_GetOrgByID_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1}, []string{"orgs", "id"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_AdminService_GetOrgByID_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1}, []string{"orgs", "id"}, "")) - pattern_AdminService_SearchOrgs_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"orgs", "_search"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_AdminService_SearchOrgs_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"orgs", "_search"}, "")) - pattern_AdminService_SetUpOrg_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"orgs", "_setup"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_AdminService_SetUpOrg_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"orgs", "_setup"}, "")) - pattern_AdminService_GetOrgIamPolicy_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"orgs", "org_id", "iampolicy"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_AdminService_GetOrgIamPolicy_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"orgs", "org_id", "iampolicy"}, "")) - pattern_AdminService_CreateOrgIamPolicy_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"orgs", "org_id", "iampolicy"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_AdminService_CreateOrgIamPolicy_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"orgs", "org_id", "iampolicy"}, "")) - pattern_AdminService_UpdateOrgIamPolicy_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"orgs", "org_id", "iampolicy"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_AdminService_UpdateOrgIamPolicy_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"orgs", "org_id", "iampolicy"}, "")) - pattern_AdminService_DeleteOrgIamPolicy_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"orgs", "org_id", "iampolicy"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_AdminService_DeleteOrgIamPolicy_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"orgs", "org_id", "iampolicy"}, "")) - pattern_AdminService_GetIamMemberRoles_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"members", "roles"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_AdminService_GetIamMemberRoles_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"members", "roles"}, "")) - pattern_AdminService_AddIamMember_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0}, []string{"members"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_AdminService_AddIamMember_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0}, []string{"members"}, "")) - pattern_AdminService_ChangeIamMember_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1}, []string{"members", "user_id"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_AdminService_ChangeIamMember_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1}, []string{"members", "user_id"}, "")) - pattern_AdminService_RemoveIamMember_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1}, []string{"members", "user_id"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_AdminService_RemoveIamMember_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1}, []string{"members", "user_id"}, "")) - pattern_AdminService_SearchIamMembers_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"members", "_search"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_AdminService_SearchIamMembers_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"members", "_search"}, "")) - pattern_AdminService_GetViews_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0}, []string{"views"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_AdminService_GetViews_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0}, []string{"views"}, "")) - pattern_AdminService_ClearView_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 1, 0, 4, 1, 5, 2}, []string{"views", "database", "view_name"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_AdminService_ClearView_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 1, 0, 4, 1, 5, 2}, []string{"views", "database", "view_name"}, "")) - pattern_AdminService_GetFailedEvents_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0}, []string{"failedevents"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_AdminService_GetFailedEvents_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0}, []string{"failedevents"}, "")) - pattern_AdminService_RemoveFailedEvent_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 1, 0, 4, 1, 5, 2, 1, 0, 4, 1, 5, 3}, []string{"failedevents", "database", "view_name", "failed_sequence"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_AdminService_RemoveFailedEvent_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 1, 0, 4, 1, 5, 2, 1, 0, 4, 1, 5, 3}, []string{"failedevents", "database", "view_name", "failed_sequence"}, "")) + + pattern_AdminService_IdpByID_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1}, []string{"idps", "id"}, "")) + + pattern_AdminService_CreateOidcIdp_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"idps", "oidc"}, "")) + + pattern_AdminService_UpdateIdpConfig_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1}, []string{"idps", "id"}, "")) + + pattern_AdminService_DeactivateIdpConfig_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"idps", "id", "_deactivate"}, "")) + + pattern_AdminService_ReactivateIdpConfig_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"idps", "id", "_reactivate"}, "")) + + pattern_AdminService_RemoveIdpConfig_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1}, []string{"idps", "id"}, "")) + + pattern_AdminService_UpdateOidcIdpConfig_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"idps", "idp_id", "oidcconfig"}, "")) + + pattern_AdminService_SearchIdps_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"idps", "_search"}, "")) + + pattern_AdminService_GetDefaultLoginPolicy_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"policies", "login"}, "")) + + pattern_AdminService_UpdateDefaultLoginPolicy_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"policies", "login"}, "")) + + pattern_AdminService_GetDefaultLoginPolicyIdpProviders_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"policies", "login", "idpproviders", "_search"}, "")) + + pattern_AdminService_AddIdpProviderToDefaultLoginPolicy_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"policies", "login", "idpproviders"}, "")) + + pattern_AdminService_RemoveIdpProviderFromDefaultLoginPolicy_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"policies", "login", "idpproviders", "idp_config_id"}, "")) ) var ( @@ -994,4 +1600,30 @@ var ( forward_AdminService_GetFailedEvents_0 = runtime.ForwardResponseMessage forward_AdminService_RemoveFailedEvent_0 = runtime.ForwardResponseMessage + + forward_AdminService_IdpByID_0 = runtime.ForwardResponseMessage + + forward_AdminService_CreateOidcIdp_0 = runtime.ForwardResponseMessage + + forward_AdminService_UpdateIdpConfig_0 = runtime.ForwardResponseMessage + + forward_AdminService_DeactivateIdpConfig_0 = runtime.ForwardResponseMessage + + forward_AdminService_ReactivateIdpConfig_0 = runtime.ForwardResponseMessage + + forward_AdminService_RemoveIdpConfig_0 = runtime.ForwardResponseMessage + + forward_AdminService_UpdateOidcIdpConfig_0 = runtime.ForwardResponseMessage + + forward_AdminService_SearchIdps_0 = runtime.ForwardResponseMessage + + forward_AdminService_GetDefaultLoginPolicy_0 = runtime.ForwardResponseMessage + + forward_AdminService_UpdateDefaultLoginPolicy_0 = runtime.ForwardResponseMessage + + forward_AdminService_GetDefaultLoginPolicyIdpProviders_0 = runtime.ForwardResponseMessage + + forward_AdminService_AddIdpProviderToDefaultLoginPolicy_0 = runtime.ForwardResponseMessage + + forward_AdminService_RemoveIdpProviderFromDefaultLoginPolicy_0 = runtime.ForwardResponseMessage ) diff --git a/pkg/grpc/admin/admin.swagger.json b/pkg/grpc/admin/admin.swagger.json index 777b0159f..e97b3aefc 100644 --- a/pkg/grpc/admin/admin.swagger.json +++ b/pkg/grpc/admin/admin.swagger.json @@ -89,6 +89,230 @@ ] } }, + "/idps/_search": { + "post": { + "operationId": "SearchIdps", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1IdpSearchResponse" + } + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/v1IdpSearchRequest" + } + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/idps/oidc": { + "post": { + "operationId": "CreateOidcIdp", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1Idp" + } + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/v1OidcIdpConfigCreate" + } + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/idps/{idp_id}/oidcconfig": { + "put": { + "operationId": "UpdateOidcIdpConfig", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1OidcIdpConfig" + } + } + }, + "parameters": [ + { + "name": "idp_id", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/v1OidcIdpConfigUpdate" + } + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/idps/{id}": { + "get": { + "operationId": "IdpByID", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1IdpView" + } + } + }, + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "type": "string" + } + ], + "tags": [ + "AdminService" + ] + }, + "delete": { + "operationId": "RemoveIdpConfig", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "properties": {} + } + } + }, + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "type": "string" + } + ], + "tags": [ + "AdminService" + ] + }, + "put": { + "operationId": "UpdateIdpConfig", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1Idp" + } + } + }, + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/v1IdpUpdate" + } + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/idps/{id}/_deactivate": { + "put": { + "operationId": "DeactivateIdpConfig", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1Idp" + } + } + }, + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/v1IdpID" + } + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/idps/{id}/_reactivate": { + "put": { + "operationId": "ReactivateIdpConfig", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1Idp" + } + } + }, + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/v1IdpID" + } + } + ], + "tags": [ + "AdminService" + ] + } + }, "/members": { "post": { "operationId": "AddIamMember", @@ -425,6 +649,130 @@ ] } }, + "/policies/login": { + "get": { + "operationId": "GetDefaultLoginPolicy", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1DefaultLoginPolicyView" + } + } + }, + "tags": [ + "AdminService" + ] + }, + "put": { + "operationId": "UpdateDefaultLoginPolicy", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1DefaultLoginPolicy" + } + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/v1DefaultLoginPolicy" + } + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/policies/login/idpproviders": { + "post": { + "operationId": "AddIdpProviderToDefaultLoginPolicy", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1IdpProviderID" + } + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/v1IdpProviderID" + } + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/policies/login/idpproviders/_search": { + "post": { + "operationId": "GetDefaultLoginPolicyIdpProviders", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1IdpProviderSearchResponse" + } + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/v1IdpProviderSearchRequest" + } + } + ], + "tags": [ + "AdminService" + ] + } + }, + "/policies/login/idpproviders/{idp_config_id}": { + "post": { + "operationId": "RemoveIdpProviderFromDefaultLoginPolicy", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "properties": {} + } + } + }, + "parameters": [ + { + "name": "idp_config_id", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/v1IdpProviderID" + } + } + ], + "tags": [ + "AdminService" + ] + } + }, "/ready": { "get": { "summary": "Ready returns status OK as soon as all dependent services are available", @@ -449,7 +797,7 @@ "200": { "description": "A successful response.", "schema": { - "type": "object" + "$ref": "#/definitions/protobufStruct" } } }, @@ -506,6 +854,19 @@ } }, "definitions": { + "protobufListValue": { + "type": "object", + "properties": { + "values": { + "type": "array", + "items": { + "$ref": "#/definitions/protobufValue" + }, + "description": "Repeated field of dynamically typed values." + } + }, + "description": "`ListValue` is a wrapper around a repeated field of values.\n\nThe JSON representation for `ListValue` is JSON array." + }, "protobufNullValue": { "type": "string", "enum": [ @@ -514,6 +875,51 @@ "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." }, + "protobufStruct": { + "type": "object", + "properties": { + "fields": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/protobufValue" + }, + "description": "Unordered map of dynamically typed values." + } + }, + "description": "`Struct` represents a structured data value, consisting of fields\nwhich map to dynamically typed values. In some languages, `Struct`\nmight be supported by a native representation. For example, in\nscripting languages like JS a struct is represented as an\nobject. The details of that representation are described together\nwith the proto support for the language.\n\nThe JSON representation for `Struct` is JSON object." + }, + "protobufValue": { + "type": "object", + "properties": { + "null_value": { + "$ref": "#/definitions/protobufNullValue", + "description": "Represents a null value." + }, + "number_value": { + "type": "number", + "format": "double", + "description": "Represents a double value." + }, + "string_value": { + "type": "string", + "description": "Represents a string value." + }, + "bool_value": { + "type": "boolean", + "format": "boolean", + "description": "Represents a boolean value." + }, + "struct_value": { + "$ref": "#/definitions/protobufStruct", + "description": "Represents a structured value." + }, + "list_value": { + "$ref": "#/definitions/protobufListValue", + "description": "Represents a repeated `Value`." + } + }, + "description": "`Value` represents a dynamically typed value which can be either\nnull, a number, a string, a boolean, a recursive struct value, or a\nlist of values. A producer of value is expected to set one of that\nvariants, absence of any variant indicates an error.\n\nThe JSON representation for `Value` is JSON value." + }, "v1AddIamMemberRequest": { "type": "object", "properties": { @@ -608,6 +1014,40 @@ } } }, + "v1DefaultLoginPolicy": { + "type": "object", + "properties": { + "allow_username_password": { + "type": "boolean", + "format": "boolean" + }, + "allow_register": { + "type": "boolean", + "format": "boolean" + }, + "allow_external_idp": { + "type": "boolean", + "format": "boolean" + } + } + }, + "v1DefaultLoginPolicyView": { + "type": "object", + "properties": { + "allow_username_password": { + "type": "boolean", + "format": "boolean" + }, + "allow_register": { + "type": "boolean", + "format": "boolean" + }, + "allow_external_idp": { + "type": "boolean", + "format": "boolean" + } + } + }, "v1FailedEvent": { "type": "object", "properties": { @@ -804,6 +1244,339 @@ } } }, + "v1Idp": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "state": { + "$ref": "#/definitions/v1IdpState" + }, + "creation_date": { + "type": "string", + "format": "date-time" + }, + "change_date": { + "type": "string", + "format": "date-time" + }, + "name": { + "type": "string" + }, + "logo_src": { + "type": "string", + "format": "byte" + }, + "oidc_config": { + "$ref": "#/definitions/v1OidcIdpConfig" + }, + "sequence": { + "type": "string", + "format": "uint64" + } + } + }, + "v1IdpID": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + }, + "v1IdpProviderID": { + "type": "object", + "properties": { + "idp_config_id": { + "type": "string" + } + } + }, + "v1IdpProviderSearchRequest": { + "type": "object", + "properties": { + "offset": { + "type": "string", + "format": "uint64" + }, + "limit": { + "type": "string", + "format": "uint64" + } + } + }, + "v1IdpProviderSearchResponse": { + "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/v1IdpProviderView" + } + }, + "processed_sequence": { + "type": "string", + "format": "uint64" + }, + "view_timestamp": { + "type": "string", + "format": "date-time" + } + } + }, + "v1IdpProviderView": { + "type": "object", + "properties": { + "idp_config_id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "$ref": "#/definitions/v1IdpType" + } + } + }, + "v1IdpSearchKey": { + "type": "string", + "enum": [ + "IDPSEARCHKEY_UNSPECIFIED", + "IDPSEARCHKEY_IDP_CONFIG_ID", + "IDPSEARCHKEY_NAME" + ], + "default": "IDPSEARCHKEY_UNSPECIFIED" + }, + "v1IdpSearchQuery": { + "type": "object", + "properties": { + "key": { + "$ref": "#/definitions/v1IdpSearchKey" + }, + "method": { + "$ref": "#/definitions/v1SearchMethod" + }, + "value": { + "type": "string" + } + } + }, + "v1IdpSearchRequest": { + "type": "object", + "properties": { + "offset": { + "type": "string", + "format": "uint64" + }, + "limit": { + "type": "string", + "format": "uint64" + }, + "queries": { + "type": "array", + "items": { + "$ref": "#/definitions/v1IdpSearchQuery" + } + } + } + }, + "v1IdpSearchResponse": { + "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/v1IdpView" + } + }, + "processed_sequence": { + "type": "string", + "format": "uint64" + }, + "view_timestamp": { + "type": "string", + "format": "date-time" + } + } + }, + "v1IdpState": { + "type": "string", + "enum": [ + "IDPCONFIGSTATE_UNSPECIFIED", + "IDPCONFIGSTATE_ACTIVE", + "IDPCONFIGSTATE_INACTIVE" + ], + "default": "IDPCONFIGSTATE_UNSPECIFIED" + }, + "v1IdpType": { + "type": "string", + "enum": [ + "IDPTYPE_UNSPECIFIED", + "IDPTYPE_OIDC", + "IDPTYPE_SAML" + ], + "default": "IDPTYPE_UNSPECIFIED" + }, + "v1IdpUpdate": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "logo_src": { + "type": "string", + "format": "byte" + } + } + }, + "v1IdpView": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "state": { + "$ref": "#/definitions/v1IdpState" + }, + "creation_date": { + "type": "string", + "format": "date-time" + }, + "change_date": { + "type": "string", + "format": "date-time" + }, + "name": { + "type": "string" + }, + "logo_src": { + "type": "string", + "format": "byte" + }, + "oidc_config": { + "$ref": "#/definitions/v1OidcIdpConfigView" + }, + "sequence": { + "type": "string", + "format": "uint64" + } + } + }, + "v1OidcIdpConfig": { + "type": "object", + "properties": { + "client_id": { + "type": "string" + }, + "client_secret": { + "type": "string" + }, + "issuer": { + "type": "string" + }, + "scopes": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "v1OidcIdpConfigCreate": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "logo_src": { + "type": "string", + "format": "byte" + }, + "client_id": { + "type": "string" + }, + "client_secret": { + "type": "string" + }, + "issuer": { + "type": "string" + }, + "scopes": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "v1OidcIdpConfigUpdate": { + "type": "object", + "properties": { + "idp_id": { + "type": "string" + }, + "client_id": { + "type": "string" + }, + "client_secret": { + "type": "string" + }, + "issuer": { + "type": "string" + }, + "scopes": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "v1OidcIdpConfigView": { + "type": "object", + "properties": { + "client_id": { + "type": "string" + }, + "issuer": { + "type": "string" + }, + "scopes": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, "v1Org": { "type": "object", "properties": { diff --git a/pkg/grpc/admin/mock/admin.proto.mock.go b/pkg/grpc/admin/mock/admin.proto.mock.go index fea8ab5b3..b4c8a030e 100644 --- a/pkg/grpc/admin/mock/admin.proto.mock.go +++ b/pkg/grpc/admin/mock/admin.proto.mock.go @@ -57,6 +57,26 @@ func (mr *MockAdminServiceClientMockRecorder) AddIamMember(arg0, arg1 interface{ return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddIamMember", reflect.TypeOf((*MockAdminServiceClient)(nil).AddIamMember), varargs...) } +// AddIdpProviderToDefaultLoginPolicy mocks base method +func (m *MockAdminServiceClient) AddIdpProviderToDefaultLoginPolicy(arg0 context.Context, arg1 *admin.IdpProviderID, arg2 ...grpc.CallOption) (*admin.IdpProviderID, error) { + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "AddIdpProviderToDefaultLoginPolicy", varargs...) + ret0, _ := ret[0].(*admin.IdpProviderID) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// AddIdpProviderToDefaultLoginPolicy indicates an expected call of AddIdpProviderToDefaultLoginPolicy +func (mr *MockAdminServiceClientMockRecorder) AddIdpProviderToDefaultLoginPolicy(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, "AddIdpProviderToDefaultLoginPolicy", reflect.TypeOf((*MockAdminServiceClient)(nil).AddIdpProviderToDefaultLoginPolicy), varargs...) +} + // ChangeIamMember mocks base method func (m *MockAdminServiceClient) ChangeIamMember(arg0 context.Context, arg1 *admin.ChangeIamMemberRequest, arg2 ...grpc.CallOption) (*admin.IamMember, error) { m.ctrl.T.Helper() @@ -97,6 +117,26 @@ func (mr *MockAdminServiceClientMockRecorder) ClearView(arg0, arg1 interface{}, return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ClearView", reflect.TypeOf((*MockAdminServiceClient)(nil).ClearView), varargs...) } +// CreateOidcIdp mocks base method +func (m *MockAdminServiceClient) CreateOidcIdp(arg0 context.Context, arg1 *admin.OidcIdpConfigCreate, arg2 ...grpc.CallOption) (*admin.Idp, error) { + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "CreateOidcIdp", varargs...) + ret0, _ := ret[0].(*admin.Idp) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// CreateOidcIdp indicates an expected call of CreateOidcIdp +func (mr *MockAdminServiceClientMockRecorder) CreateOidcIdp(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, "CreateOidcIdp", reflect.TypeOf((*MockAdminServiceClient)(nil).CreateOidcIdp), varargs...) +} + // CreateOrgIamPolicy mocks base method func (m *MockAdminServiceClient) CreateOrgIamPolicy(arg0 context.Context, arg1 *admin.OrgIamPolicyRequest, arg2 ...grpc.CallOption) (*admin.OrgIamPolicy, error) { m.ctrl.T.Helper() @@ -117,6 +157,26 @@ func (mr *MockAdminServiceClientMockRecorder) CreateOrgIamPolicy(arg0, arg1 inte return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateOrgIamPolicy", reflect.TypeOf((*MockAdminServiceClient)(nil).CreateOrgIamPolicy), varargs...) } +// DeactivateIdpConfig mocks base method +func (m *MockAdminServiceClient) DeactivateIdpConfig(arg0 context.Context, arg1 *admin.IdpID, arg2 ...grpc.CallOption) (*admin.Idp, error) { + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "DeactivateIdpConfig", varargs...) + ret0, _ := ret[0].(*admin.Idp) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// DeactivateIdpConfig indicates an expected call of DeactivateIdpConfig +func (mr *MockAdminServiceClientMockRecorder) DeactivateIdpConfig(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, "DeactivateIdpConfig", reflect.TypeOf((*MockAdminServiceClient)(nil).DeactivateIdpConfig), varargs...) +} + // DeleteOrgIamPolicy mocks base method func (m *MockAdminServiceClient) DeleteOrgIamPolicy(arg0 context.Context, arg1 *admin.OrgIamPolicyID, arg2 ...grpc.CallOption) (*emptypb.Empty, error) { m.ctrl.T.Helper() @@ -137,6 +197,46 @@ func (mr *MockAdminServiceClientMockRecorder) DeleteOrgIamPolicy(arg0, arg1 inte return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteOrgIamPolicy", reflect.TypeOf((*MockAdminServiceClient)(nil).DeleteOrgIamPolicy), varargs...) } +// GetDefaultLoginPolicy mocks base method +func (m *MockAdminServiceClient) GetDefaultLoginPolicy(arg0 context.Context, arg1 *emptypb.Empty, arg2 ...grpc.CallOption) (*admin.DefaultLoginPolicyView, error) { + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetDefaultLoginPolicy", varargs...) + ret0, _ := ret[0].(*admin.DefaultLoginPolicyView) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetDefaultLoginPolicy indicates an expected call of GetDefaultLoginPolicy +func (mr *MockAdminServiceClientMockRecorder) GetDefaultLoginPolicy(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, "GetDefaultLoginPolicy", reflect.TypeOf((*MockAdminServiceClient)(nil).GetDefaultLoginPolicy), varargs...) +} + +// GetDefaultLoginPolicyIdpProviders mocks base method +func (m *MockAdminServiceClient) GetDefaultLoginPolicyIdpProviders(arg0 context.Context, arg1 *admin.IdpProviderSearchRequest, arg2 ...grpc.CallOption) (*admin.IdpProviderSearchResponse, error) { + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetDefaultLoginPolicyIdpProviders", varargs...) + ret0, _ := ret[0].(*admin.IdpProviderSearchResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetDefaultLoginPolicyIdpProviders indicates an expected call of GetDefaultLoginPolicyIdpProviders +func (mr *MockAdminServiceClientMockRecorder) GetDefaultLoginPolicyIdpProviders(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, "GetDefaultLoginPolicyIdpProviders", reflect.TypeOf((*MockAdminServiceClient)(nil).GetDefaultLoginPolicyIdpProviders), varargs...) +} + // GetFailedEvents mocks base method func (m *MockAdminServiceClient) GetFailedEvents(arg0 context.Context, arg1 *emptypb.Empty, arg2 ...grpc.CallOption) (*admin.FailedEvents, error) { m.ctrl.T.Helper() @@ -257,6 +357,26 @@ func (mr *MockAdminServiceClientMockRecorder) Healthz(arg0, arg1 interface{}, ar return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Healthz", reflect.TypeOf((*MockAdminServiceClient)(nil).Healthz), varargs...) } +// IdpByID mocks base method +func (m *MockAdminServiceClient) IdpByID(arg0 context.Context, arg1 *admin.IdpID, arg2 ...grpc.CallOption) (*admin.IdpView, error) { + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "IdpByID", varargs...) + ret0, _ := ret[0].(*admin.IdpView) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// IdpByID indicates an expected call of IdpByID +func (mr *MockAdminServiceClientMockRecorder) IdpByID(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, "IdpByID", reflect.TypeOf((*MockAdminServiceClient)(nil).IdpByID), varargs...) +} + // IsOrgUnique mocks base method func (m *MockAdminServiceClient) IsOrgUnique(arg0 context.Context, arg1 *admin.UniqueOrgRequest, arg2 ...grpc.CallOption) (*admin.UniqueOrgResponse, error) { m.ctrl.T.Helper() @@ -277,6 +397,26 @@ func (mr *MockAdminServiceClientMockRecorder) IsOrgUnique(arg0, arg1 interface{} return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "IsOrgUnique", reflect.TypeOf((*MockAdminServiceClient)(nil).IsOrgUnique), varargs...) } +// ReactivateIdpConfig mocks base method +func (m *MockAdminServiceClient) ReactivateIdpConfig(arg0 context.Context, arg1 *admin.IdpID, arg2 ...grpc.CallOption) (*admin.Idp, error) { + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "ReactivateIdpConfig", varargs...) + ret0, _ := ret[0].(*admin.Idp) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ReactivateIdpConfig indicates an expected call of ReactivateIdpConfig +func (mr *MockAdminServiceClientMockRecorder) ReactivateIdpConfig(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, "ReactivateIdpConfig", reflect.TypeOf((*MockAdminServiceClient)(nil).ReactivateIdpConfig), varargs...) +} + // Ready mocks base method func (m *MockAdminServiceClient) Ready(arg0 context.Context, arg1 *emptypb.Empty, arg2 ...grpc.CallOption) (*emptypb.Empty, error) { m.ctrl.T.Helper() @@ -337,6 +477,46 @@ func (mr *MockAdminServiceClientMockRecorder) RemoveIamMember(arg0, arg1 interfa return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveIamMember", reflect.TypeOf((*MockAdminServiceClient)(nil).RemoveIamMember), varargs...) } +// RemoveIdpConfig mocks base method +func (m *MockAdminServiceClient) RemoveIdpConfig(arg0 context.Context, arg1 *admin.IdpID, 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, "RemoveIdpConfig", varargs...) + ret0, _ := ret[0].(*emptypb.Empty) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// RemoveIdpConfig indicates an expected call of RemoveIdpConfig +func (mr *MockAdminServiceClientMockRecorder) RemoveIdpConfig(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, "RemoveIdpConfig", reflect.TypeOf((*MockAdminServiceClient)(nil).RemoveIdpConfig), varargs...) +} + +// RemoveIdpProviderFromDefaultLoginPolicy mocks base method +func (m *MockAdminServiceClient) RemoveIdpProviderFromDefaultLoginPolicy(arg0 context.Context, arg1 *admin.IdpProviderID, 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, "RemoveIdpProviderFromDefaultLoginPolicy", varargs...) + ret0, _ := ret[0].(*emptypb.Empty) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// RemoveIdpProviderFromDefaultLoginPolicy indicates an expected call of RemoveIdpProviderFromDefaultLoginPolicy +func (mr *MockAdminServiceClientMockRecorder) RemoveIdpProviderFromDefaultLoginPolicy(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, "RemoveIdpProviderFromDefaultLoginPolicy", reflect.TypeOf((*MockAdminServiceClient)(nil).RemoveIdpProviderFromDefaultLoginPolicy), varargs...) +} + // SearchIamMembers mocks base method func (m *MockAdminServiceClient) SearchIamMembers(arg0 context.Context, arg1 *admin.IamMemberSearchRequest, arg2 ...grpc.CallOption) (*admin.IamMemberSearchResponse, error) { m.ctrl.T.Helper() @@ -357,6 +537,26 @@ func (mr *MockAdminServiceClientMockRecorder) SearchIamMembers(arg0, arg1 interf return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SearchIamMembers", reflect.TypeOf((*MockAdminServiceClient)(nil).SearchIamMembers), varargs...) } +// SearchIdps mocks base method +func (m *MockAdminServiceClient) SearchIdps(arg0 context.Context, arg1 *admin.IdpSearchRequest, arg2 ...grpc.CallOption) (*admin.IdpSearchResponse, error) { + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "SearchIdps", varargs...) + ret0, _ := ret[0].(*admin.IdpSearchResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// SearchIdps indicates an expected call of SearchIdps +func (mr *MockAdminServiceClientMockRecorder) SearchIdps(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, "SearchIdps", reflect.TypeOf((*MockAdminServiceClient)(nil).SearchIdps), varargs...) +} + // SearchOrgs mocks base method func (m *MockAdminServiceClient) SearchOrgs(arg0 context.Context, arg1 *admin.OrgSearchRequest, arg2 ...grpc.CallOption) (*admin.OrgSearchResponse, error) { m.ctrl.T.Helper() @@ -397,6 +597,66 @@ func (mr *MockAdminServiceClientMockRecorder) SetUpOrg(arg0, arg1 interface{}, a return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetUpOrg", reflect.TypeOf((*MockAdminServiceClient)(nil).SetUpOrg), varargs...) } +// UpdateDefaultLoginPolicy mocks base method +func (m *MockAdminServiceClient) UpdateDefaultLoginPolicy(arg0 context.Context, arg1 *admin.DefaultLoginPolicy, arg2 ...grpc.CallOption) (*admin.DefaultLoginPolicy, error) { + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "UpdateDefaultLoginPolicy", varargs...) + ret0, _ := ret[0].(*admin.DefaultLoginPolicy) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateDefaultLoginPolicy indicates an expected call of UpdateDefaultLoginPolicy +func (mr *MockAdminServiceClientMockRecorder) UpdateDefaultLoginPolicy(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, "UpdateDefaultLoginPolicy", reflect.TypeOf((*MockAdminServiceClient)(nil).UpdateDefaultLoginPolicy), varargs...) +} + +// UpdateIdpConfig mocks base method +func (m *MockAdminServiceClient) UpdateIdpConfig(arg0 context.Context, arg1 *admin.IdpUpdate, arg2 ...grpc.CallOption) (*admin.Idp, error) { + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "UpdateIdpConfig", varargs...) + ret0, _ := ret[0].(*admin.Idp) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateIdpConfig indicates an expected call of UpdateIdpConfig +func (mr *MockAdminServiceClientMockRecorder) UpdateIdpConfig(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, "UpdateIdpConfig", reflect.TypeOf((*MockAdminServiceClient)(nil).UpdateIdpConfig), varargs...) +} + +// UpdateOidcIdpConfig mocks base method +func (m *MockAdminServiceClient) UpdateOidcIdpConfig(arg0 context.Context, arg1 *admin.OidcIdpConfigUpdate, arg2 ...grpc.CallOption) (*admin.OidcIdpConfig, error) { + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "UpdateOidcIdpConfig", varargs...) + ret0, _ := ret[0].(*admin.OidcIdpConfig) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateOidcIdpConfig indicates an expected call of UpdateOidcIdpConfig +func (mr *MockAdminServiceClientMockRecorder) UpdateOidcIdpConfig(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, "UpdateOidcIdpConfig", reflect.TypeOf((*MockAdminServiceClient)(nil).UpdateOidcIdpConfig), varargs...) +} + // UpdateOrgIamPolicy mocks base method func (m *MockAdminServiceClient) UpdateOrgIamPolicy(arg0 context.Context, arg1 *admin.OrgIamPolicyRequest, arg2 ...grpc.CallOption) (*admin.OrgIamPolicy, error) { m.ctrl.T.Helper() diff --git a/pkg/grpc/admin/oneof.go b/pkg/grpc/admin/oneof.go new file mode 100644 index 000000000..4ef1c0ce2 --- /dev/null +++ b/pkg/grpc/admin/oneof.go @@ -0,0 +1,6 @@ +package admin + +//IdpConfig is a type alias of the generated isIdp_IdpConfig config +//to make it public +type IdpConfig = isIdp_IdpConfig +type IdpConfigView = isIdpView_IdpConfigView diff --git a/pkg/grpc/admin/proto/admin.proto b/pkg/grpc/admin/proto/admin.proto index a7b087ea1..32f8ef632 100644 --- a/pkg/grpc/admin/proto/admin.proto +++ b/pkg/grpc/admin/proto/admin.proto @@ -234,6 +234,146 @@ service AdminService { permission: "iam.write" }; } + + rpc IdpByID(IdpID) returns (IdpView) { + option (google.api.http) = { + get: "/idps/{id}" + }; + + option (caos.zitadel.utils.v1.auth_option) = { + permission: "iam.idp.read" + }; + } + + rpc CreateOidcIdp(OidcIdpConfigCreate) returns (Idp) { + option (google.api.http) = { + post: "/idps/oidc" + body: "*" + }; + + option (caos.zitadel.utils.v1.auth_option) = { + permission: "iam.idp.write" + }; + } + + rpc UpdateIdpConfig(IdpUpdate) returns (Idp) { + option (google.api.http) = { + put: "/idps/{id}" + body: "*" + }; + + option (caos.zitadel.utils.v1.auth_option) = { + permission: "iam.idp.write" + }; + } + + rpc DeactivateIdpConfig(IdpID) returns (Idp) { + option (google.api.http) = { + put: "/idps/{id}/_deactivate" + body: "*" + }; + + option (caos.zitadel.utils.v1.auth_option) = { + permission: "iam.idp.write" + }; + } + + rpc ReactivateIdpConfig(IdpID) returns (Idp) { + option (google.api.http) = { + put: "/idps/{id}/_reactivate" + body: "*" + }; + + option (caos.zitadel.utils.v1.auth_option) = { + permission: "iam.idp.write" + }; + } + + rpc RemoveIdpConfig(IdpID) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/idps/{id}" + }; + + option (caos.zitadel.utils.v1.auth_option) = { + permission: "iam.idp.write" + }; + } + + rpc UpdateOidcIdpConfig(OidcIdpConfigUpdate) returns (OidcIdpConfig) { + option (google.api.http) = { + put: "/idps/{idp_id}/oidcconfig" + body: "*" + }; + + option (caos.zitadel.utils.v1.auth_option) = { + permission: "iam.idp.write" + }; + } + + rpc SearchIdps(IdpSearchRequest) returns (IdpSearchResponse) { + option (google.api.http) = { + post: "/idps/_search" + body: "*" + }; + + option (caos.zitadel.utils.v1.auth_option) = { + permission: "iam.idp.read" + }; + } + + rpc GetDefaultLoginPolicy(google.protobuf.Empty) returns (DefaultLoginPolicyView) { + option (google.api.http) = { + get: "/policies/login" + }; + + option (caos.zitadel.utils.v1.auth_option) = { + permission: "iam.policy.read" + }; + } + + rpc UpdateDefaultLoginPolicy(DefaultLoginPolicy) returns (DefaultLoginPolicy) { + option (google.api.http) = { + put: "/policies/login" + body: "*" + }; + + option (caos.zitadel.utils.v1.auth_option) = { + permission: "iam.policy.write" + }; + } + + rpc GetDefaultLoginPolicyIdpProviders(IdpProviderSearchRequest) returns (IdpProviderSearchResponse) { + option (google.api.http) = { + post: "/policies/login/idpproviders/_search" + body: "*" + }; + + option (caos.zitadel.utils.v1.auth_option) = { + permission: "iam.policy.read" + }; + } + + rpc AddIdpProviderToDefaultLoginPolicy(IdpProviderID) returns (IdpProviderID) { + option (google.api.http) = { + post: "/policies/login/idpproviders" + body: "*" + }; + + option (caos.zitadel.utils.v1.auth_option) = { + permission: "iam.policy.write" + }; + } + + rpc RemoveIdpProviderFromDefaultLoginPolicy(IdpProviderID) returns (google.protobuf.Empty) { + option (google.api.http) = { + post: "/policies/login/idpproviders/{idp_config_id}" + body: "*" + }; + + option (caos.zitadel.utils.v1.auth_option) = { + permission: "iam.policy.write" + }; + } } message OrgID { @@ -511,4 +651,146 @@ message View { google.protobuf.Timestamp view_timestamp = 4; } +message IdpID { + string id = 1; +} +message Idp { + string id = 1; + IdpState state = 2; + google.protobuf.Timestamp creation_date = 3; + google.protobuf.Timestamp change_date = 4; + string name = 5; + bytes logo_src = 6; + oneof idp_config { + OidcIdpConfig oidc_config = 7; + } + uint64 sequence = 8; +} + +message IdpUpdate { + string id = 1; + string name = 2; + bytes logo_src = 3; +} + +message OidcIdpConfig { + string client_id = 1; + string client_secret = 2; + string issuer = 3; + repeated string scopes = 4; +} +enum IdpState { + IDPCONFIGSTATE_UNSPECIFIED = 0; + IDPCONFIGSTATE_ACTIVE = 1; + IDPCONFIGSTATE_INACTIVE = 2; +} + +message OidcIdpConfigCreate { + string name = 1 [(validate.rules).string = {min_len: 1, max_len: 200}]; + bytes logo_src = 2; + string client_id = 3 [(validate.rules).string = {min_len: 1, max_len: 200}]; + 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; +} + +message OidcIdpConfigUpdate { + string idp_id = 1; + string client_id = 2 [(validate.rules).string = {min_len: 1, max_len: 200}]; + string client_secret = 3; + string issuer = 4 [(validate.rules).string = {min_len: 1, max_len: 200}]; + repeated string scopes = 5; +} + +message IdpSearchResponse { + uint64 offset = 1; + uint64 limit = 2; + uint64 total_result = 3; + repeated IdpView result = 4; + uint64 processed_sequence = 5; + google.protobuf.Timestamp view_timestamp = 6; +} + +message IdpView { + string id = 1; + IdpState state = 2; + google.protobuf.Timestamp creation_date = 3; + google.protobuf.Timestamp change_date = 4; + string name = 5; + bytes logo_src = 6; + oneof idp_config_view { + OidcIdpConfigView oidc_config = 7; + } + uint64 sequence = 8; +} + +message OidcIdpConfigView { + string client_id = 1; + string issuer = 2; + repeated string scopes = 3; +} + +message IdpSearchRequest { + uint64 offset = 1; + uint64 limit = 2; + repeated IdpSearchQuery queries = 3; +} + +message IdpSearchQuery { + IdpSearchKey key = 1 [(validate.rules).enum = {not_in: [0]}]; + SearchMethod method = 2; + string value = 3; +} + +enum IdpSearchKey { + IDPSEARCHKEY_UNSPECIFIED = 0; + IDPSEARCHKEY_IDP_CONFIG_ID = 1; + IDPSEARCHKEY_NAME = 2; +} + +message DefaultLoginPolicy { + bool allow_username_password = 1; + bool allow_register = 2; + bool allow_external_idp = 3; +} + +message IdpProviderID { + string idp_config_id = 1; +} + +message DefaultLoginPolicyView { + bool allow_username_password = 1; + bool allow_register = 2; + bool allow_external_idp = 3; +} + +message IdpProviderViews { + repeated IdpProviderView providers = 1; +} + +message IdpProviderView { + string idp_config_id = 1; + string name = 2; + IdpType type = 3; +} + +enum IdpType { + IDPTYPE_UNSPECIFIED = 0; + IDPTYPE_OIDC = 1; + IDPTYPE_SAML = 2; +} + +message IdpProviderSearchResponse { + uint64 offset = 1; + uint64 limit = 2; + uint64 total_result = 3; + repeated IdpProviderView result = 4; + uint64 processed_sequence = 5; + google.protobuf.Timestamp view_timestamp = 6; +} + +message IdpProviderSearchRequest { + uint64 offset = 1; + uint64 limit = 2; +} diff --git a/pkg/grpc/management/management.pb.authoptions.go b/pkg/grpc/management/management.pb.authoptions.go index e4ad15c5d..188199337 100644 --- a/pkg/grpc/management/management.pb.authoptions.go +++ b/pkg/grpc/management/management.pb.authoptions.go @@ -553,4 +553,79 @@ var ManagementService_AuthMethods = authz.MethodMapping{ Permission: "user.grant.delete", CheckParam: "", }, + + "/caos.zitadel.management.api.v1.ManagementService/IdpByID": authz.Option{ + Permission: "org.idp.read", + CheckParam: "", + }, + + "/caos.zitadel.management.api.v1.ManagementService/CreateOidcIdp": authz.Option{ + Permission: "org.idp.write", + CheckParam: "", + }, + + "/caos.zitadel.management.api.v1.ManagementService/UpdateIdpConfig": authz.Option{ + Permission: "org.idp.write", + CheckParam: "", + }, + + "/caos.zitadel.management.api.v1.ManagementService/DeactivateIdpConfig": authz.Option{ + Permission: "org.idp.write", + CheckParam: "", + }, + + "/caos.zitadel.management.api.v1.ManagementService/ReactivateIdpConfig": authz.Option{ + Permission: "org.idp.write", + CheckParam: "", + }, + + "/caos.zitadel.management.api.v1.ManagementService/RemoveIdpConfig": authz.Option{ + Permission: "org.idp.write", + CheckParam: "", + }, + + "/caos.zitadel.management.api.v1.ManagementService/UpdateOidcIdpConfig": authz.Option{ + Permission: "org.idp.write", + CheckParam: "", + }, + + "/caos.zitadel.management.api.v1.ManagementService/SearchIdps": authz.Option{ + Permission: "org.idp.read", + CheckParam: "", + }, + + "/caos.zitadel.management.api.v1.ManagementService/GetLoginPolicy": authz.Option{ + Permission: "policy.read", + CheckParam: "", + }, + + "/caos.zitadel.management.api.v1.ManagementService/CreateLoginPolicy": authz.Option{ + Permission: "policy.write", + CheckParam: "", + }, + + "/caos.zitadel.management.api.v1.ManagementService/UpdateLoginPolicy": authz.Option{ + Permission: "policy.write", + CheckParam: "", + }, + + "/caos.zitadel.management.api.v1.ManagementService/RemoveLoginPolicy": authz.Option{ + Permission: "policy.delete", + CheckParam: "", + }, + + "/caos.zitadel.management.api.v1.ManagementService/GetLoginPolicyIdpProviders": authz.Option{ + Permission: "policy.read", + CheckParam: "", + }, + + "/caos.zitadel.management.api.v1.ManagementService/AddIdpProviderToLoginPolicy": authz.Option{ + Permission: "policy.write", + CheckParam: "", + }, + + "/caos.zitadel.management.api.v1.ManagementService/RemoveIdpProviderFromLoginPolicy": authz.Option{ + Permission: "policy.write", + CheckParam: "", + }, } diff --git a/pkg/grpc/management/management.pb.go b/pkg/grpc/management/management.pb.go index 068fab8c4..615a93e15 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.20.1 +// 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 UserSearchKey int32 @@ -116,34 +163,55 @@ const ( UserSearchKey_USERSEARCHKEY_STATE UserSearchKey = 7 ) -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", -} +// 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", + } + 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, + } +) -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, +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[2].Descriptor() +} + +func (UserSearchKey) Type() protoreflect.EnumType { + return &file_management_proto_enumTypes[2] +} + +func (x UserSearchKey) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use UserSearchKey.Descriptor instead. func (UserSearchKey) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{2} + return file_management_proto_rawDescGZIP(), []int{2} } type SearchMethod int32 @@ -162,40 +230,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[3].Descriptor() +} + +func (SearchMethod) Type() protoreflect.EnumType { + return &file_management_proto_enumTypes[3] +} + +func (x SearchMethod) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SearchMethod.Descriptor instead. func (SearchMethod) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{3} + return file_management_proto_rawDescGZIP(), []int{3} } type MfaType int32 @@ -206,24 +295,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[4].Descriptor() +} + +func (MfaType) Type() protoreflect.EnumType { + return &file_management_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_edc174f991dc0a25, []int{4} + return file_management_proto_rawDescGZIP(), []int{4} } type MFAState int32 @@ -235,26 +345,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[5].Descriptor() +} + +func (MFAState) Type() protoreflect.EnumType { + return &file_management_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_edc174f991dc0a25, []int{5} + return file_management_proto_rawDescGZIP(), []int{5} } type NotificationType int32 @@ -264,22 +395,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[6].Descriptor() +} + +func (NotificationType) Type() protoreflect.EnumType { + return &file_management_proto_enumTypes[6] +} + +func (x NotificationType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use NotificationType.Descriptor instead. func (NotificationType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{6} + return file_management_proto_rawDescGZIP(), []int{6} } type PolicyState int32 @@ -291,26 +443,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[7].Descriptor() +} + +func (PolicyState) Type() protoreflect.EnumType { + return &file_management_proto_enumTypes[7] +} + +func (x PolicyState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use PolicyState.Descriptor instead. func (PolicyState) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{7} + return file_management_proto_rawDescGZIP(), []int{7} } type OrgState int32 @@ -321,24 +494,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[8].Descriptor() +} + +func (OrgState) Type() protoreflect.EnumType { + return &file_management_proto_enumTypes[8] +} + +func (x OrgState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use OrgState.Descriptor instead. func (OrgState) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{8} + return file_management_proto_rawDescGZIP(), []int{8} } type OrgDomainValidationType int32 @@ -349,24 +543,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[9].Descriptor() +} + +func (OrgDomainValidationType) Type() protoreflect.EnumType { + return &file_management_proto_enumTypes[9] +} + +func (x OrgDomainValidationType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use OrgDomainValidationType.Descriptor instead. func (OrgDomainValidationType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{9} + return file_management_proto_rawDescGZIP(), []int{9} } type OrgDomainSearchKey int32 @@ -376,22 +591,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[10].Descriptor() +} + +func (OrgDomainSearchKey) Type() protoreflect.EnumType { + return &file_management_proto_enumTypes[10] +} + +func (x OrgDomainSearchKey) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use OrgDomainSearchKey.Descriptor instead. func (OrgDomainSearchKey) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{10} + return file_management_proto_rawDescGZIP(), []int{10} } type OrgMemberSearchKey int32 @@ -404,28 +640,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[11].Descriptor() +} + +func (OrgMemberSearchKey) Type() protoreflect.EnumType { + return &file_management_proto_enumTypes[11] +} + +func (x OrgMemberSearchKey) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use OrgMemberSearchKey.Descriptor instead. func (OrgMemberSearchKey) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{11} + return file_management_proto_rawDescGZIP(), []int{11} } type ProjectSearchKey int32 @@ -435,22 +692,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[12].Descriptor() +} + +func (ProjectSearchKey) Type() protoreflect.EnumType { + return &file_management_proto_enumTypes[12] +} + +func (x ProjectSearchKey) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ProjectSearchKey.Descriptor instead. func (ProjectSearchKey) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{12} + return file_management_proto_rawDescGZIP(), []int{12} } type ProjectState int32 @@ -461,24 +739,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[13].Descriptor() +} + +func (ProjectState) Type() protoreflect.EnumType { + return &file_management_proto_enumTypes[13] +} + +func (x ProjectState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ProjectState.Descriptor instead. func (ProjectState) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{13} + return file_management_proto_rawDescGZIP(), []int{13} } type ProjectType int32 @@ -489,24 +788,45 @@ 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[14].Descriptor() +} + +func (ProjectType) Type() protoreflect.EnumType { + return &file_management_proto_enumTypes[14] +} + +func (x ProjectType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ProjectType.Descriptor instead. func (ProjectType) 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,6803 +1591,7852 @@ 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 + +const ( + IdpState_IDPCONFIGSTATE_UNSPECIFIED IdpState = 0 + IdpState_IDPCONFIGSTATE_ACTIVE IdpState = 1 + IdpState_IDPCONFIGSTATE_INACTIVE IdpState = 2 +) + +// 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, + } +) + +func (x IdpState) Enum() *IdpState { + p := new(IdpState) + *p = x + return p +} + +func (x IdpState) String() string { + 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 file_management_proto_rawDescGZIP(), []int{31} +} + +type IdpSearchKey int32 + +const ( + IdpSearchKey_IDPSEARCHKEY_UNSPECIFIED IdpSearchKey = 0 + IdpSearchKey_IDPSEARCHKEY_IDP_CONFIG_ID IdpSearchKey = 1 + IdpSearchKey_IDPSEARCHKEY_NAME IdpSearchKey = 2 + IdpSearchKey_IDPSEARCHKEY_PROVIDER_TYPE IdpSearchKey = 3 +) + +// 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, + } +) + +func (x IdpSearchKey) Enum() *IdpSearchKey { + p := new(IdpSearchKey) + *p = x + return p +} + +func (x IdpSearchKey) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (IdpSearchKey) Descriptor() protoreflect.EnumDescriptor { + return file_management_proto_enumTypes[32].Descriptor() +} + +func (IdpSearchKey) Type() protoreflect.EnumType { + return &file_management_proto_enumTypes[32] +} + +func (x IdpSearchKey) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use IdpSearchKey.Descriptor instead. +func (IdpSearchKey) EnumDescriptor() ([]byte, []int) { + return file_management_proto_rawDescGZIP(), []int{32} +} + +type IdpType int32 + +const ( + IdpType_IDPTYPE_UNSPECIFIED IdpType = 0 + IdpType_IDPTYPE_OIDC IdpType = 1 + IdpType_IDPTYPE_SAML IdpType = 2 +) + +// 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, + } +) + +func (x IdpType) Enum() *IdpType { + p := new(IdpType) + *p = x + return p +} + +func (x IdpType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (IdpType) Descriptor() protoreflect.EnumDescriptor { + return file_management_proto_enumTypes[33].Descriptor() +} + +func (IdpType) Type() protoreflect.EnumType { + return &file_management_proto_enumTypes[33] +} + +func (x IdpType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use IdpType.Descriptor instead. +func (IdpType) EnumDescriptor() ([]byte, []int) { + return file_management_proto_rawDescGZIP(), []int{33} +} + +type IdpProviderType int32 + +const ( + IdpProviderType_IDPPROVIDERTYPE_UNSPECIFIED IdpProviderType = 0 + IdpProviderType_IDPPROVIDERTYPE_SYSTEM IdpProviderType = 1 + IdpProviderType_IDPPROVIDERTYPE_ORG IdpProviderType = 2 +) + +// 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, + } +) + +func (x IdpProviderType) Enum() *IdpProviderType { + p := new(IdpProviderType) + *p = x + return p +} + +func (x IdpProviderType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (IdpProviderType) Descriptor() protoreflect.EnumDescriptor { + return file_management_proto_enumTypes[34].Descriptor() +} + +func (IdpProviderType) Type() protoreflect.EnumType { + return &file_management_proto_enumTypes[34] +} + +func (x IdpProviderType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use IdpProviderType.Descriptor instead. +func (IdpProviderType) EnumDescriptor() ([]byte, []int) { + return file_management_proto_rawDescGZIP(), []int{34} } 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 Email 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 *Email) Reset() { *m = Email{} } -func (m *Email) String() string { return proto.CompactTextString(m) } -func (*Email) ProtoMessage() {} +func (x *Email) Reset() { + *x = Email{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Email) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Email) ProtoMessage() {} + +func (x *Email) 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 Email.ProtoReflect.Descriptor instead. func (*Email) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{8} + return file_management_proto_rawDescGZIP(), []int{8} } -func (m *Email) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Email.Unmarshal(m, b) -} -func (m *Email) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Email.Marshal(b, m, deterministic) -} -func (m *Email) XXX_Merge(src proto.Message) { - xxx_messageInfo_Email.Merge(m, src) -} -func (m *Email) XXX_Size() int { - return xxx_messageInfo_Email.Size(m) -} -func (m *Email) XXX_DiscardUnknown() { - xxx_messageInfo_Email.DiscardUnknown(m) -} - -var xxx_messageInfo_Email proto.InternalMessageInfo - -func (m *Email) GetEmail() string { - if m != nil { - return m.Email +func (x *Email) GetEmail() string { + if x != nil { + return x.Email } 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 { - UserName string `protobuf:"bytes,1,opt,name=user_name,json=userName,proto3" json:"user_name,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"` - 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"` - Password string `protobuf:"bytes,16,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 + + UserName string `protobuf:"bytes,1,opt,name=user_name,json=userName,proto3" json:"user_name,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"` + 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"` + Password string `protobuf:"bytes,16,opt,name=password,proto3" json:"password,omitempty"` } -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) GetFirstName() string { - if m != nil { - return m.FirstName +func (x *CreateUserRequest) GetFirstName() string { + if x != nil { + return x.FirstName } return "" } -func (m *CreateUserRequest) GetLastName() string { - if m != nil { - return m.LastName +func (x *CreateUserRequest) GetLastName() string { + if x != nil { + return x.LastName } return "" } -func (m *CreateUserRequest) GetNickName() string { - if m != nil { - return m.NickName +func (x *CreateUserRequest) GetNickName() string { + if x != nil { + return x.NickName } return "" } -func (m *CreateUserRequest) GetPreferredLanguage() string { - if m != nil { - return m.PreferredLanguage +func (x *CreateUserRequest) GetPreferredLanguage() string { + if x != nil { + return x.PreferredLanguage } return "" } -func (m *CreateUserRequest) GetGender() Gender { - if m != nil { - return m.Gender +func (x *CreateUserRequest) GetGender() Gender { + if x != nil { + return x.Gender } return Gender_GENDER_UNSPECIFIED } -func (m *CreateUserRequest) GetEmail() string { - if m != nil { - return m.Email +func (x *CreateUserRequest) GetEmail() string { + if x != nil { + return x.Email } return "" } -func (m *CreateUserRequest) GetIsEmailVerified() bool { - if m != nil { - return m.IsEmailVerified +func (x *CreateUserRequest) GetIsEmailVerified() bool { + if x != nil { + return x.IsEmailVerified } return false } -func (m *CreateUserRequest) GetPhone() string { - if m != nil { - return m.Phone +func (x *CreateUserRequest) GetPhone() string { + if x != nil { + return x.Phone } return "" } -func (m *CreateUserRequest) GetIsPhoneVerified() bool { - if m != nil { - return m.IsPhoneVerified +func (x *CreateUserRequest) GetIsPhoneVerified() bool { + if x != nil { + return x.IsPhoneVerified } return false } -func (m *CreateUserRequest) GetCountry() string { - if m != nil { - return m.Country +func (x *CreateUserRequest) GetCountry() string { + if x != nil { + return x.Country } return "" } -func (m *CreateUserRequest) GetLocality() string { - if m != nil { - return m.Locality +func (x *CreateUserRequest) GetLocality() string { + if x != nil { + return x.Locality } return "" } -func (m *CreateUserRequest) GetPostalCode() string { - if m != nil { - return m.PostalCode +func (x *CreateUserRequest) GetPostalCode() string { + if x != nil { + return x.PostalCode } return "" } -func (m *CreateUserRequest) GetRegion() string { - if m != nil { - return m.Region +func (x *CreateUserRequest) GetRegion() string { + if x != nil { + return x.Region } return "" } -func (m *CreateUserRequest) GetStreetAddress() string { - if m != nil { - return m.StreetAddress +func (x *CreateUserRequest) GetStreetAddress() string { + if x != nil { + return x.StreetAddress } return "" } -func (m *CreateUserRequest) GetPassword() string { - if m != nil { - return m.Password +func (x *CreateUserRequest) GetPassword() string { + if x != nil { + return x.Password } return "" } type User struct { - 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"` - UserName string `protobuf:"bytes,5,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` - FirstName string `protobuf:"bytes,6,opt,name=first_name,json=firstName,proto3" json:"first_name,omitempty"` - LastName string `protobuf:"bytes,7,opt,name=last_name,json=lastName,proto3" json:"last_name,omitempty"` - DisplayName string `protobuf:"bytes,8,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` - NickName string `protobuf:"bytes,9,opt,name=nick_name,json=nickName,proto3" json:"nick_name,omitempty"` - PreferredLanguage string `protobuf:"bytes,10,opt,name=preferred_language,json=preferredLanguage,proto3" json:"preferred_language,omitempty"` - Gender Gender `protobuf:"varint,11,opt,name=gender,proto3,enum=caos.zitadel.management.api.v1.Gender" json:"gender,omitempty"` - Email string `protobuf:"bytes,12,opt,name=email,proto3" json:"email,omitempty"` - IsEmailVerified bool `protobuf:"varint,13,opt,name=is_email_verified,json=isEmailVerified,proto3" json:"is_email_verified,omitempty"` - Phone string `protobuf:"bytes,14,opt,name=phone,proto3" json:"phone,omitempty"` - IsPhoneVerified bool `protobuf:"varint,15,opt,name=is_phone_verified,json=isPhoneVerified,proto3" json:"is_phone_verified,omitempty"` - Country string `protobuf:"bytes,16,opt,name=country,proto3" json:"country,omitempty"` - Locality string `protobuf:"bytes,17,opt,name=locality,proto3" json:"locality,omitempty"` - PostalCode string `protobuf:"bytes,18,opt,name=postal_code,json=postalCode,proto3" json:"postal_code,omitempty"` - Region string `protobuf:"bytes,19,opt,name=region,proto3" json:"region,omitempty"` - StreetAddress string `protobuf:"bytes,20,opt,name=street_address,json=streetAddress,proto3" json:"street_address,omitempty"` - Sequence uint64 `protobuf:"varint,21,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 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"` + UserName string `protobuf:"bytes,5,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` + FirstName string `protobuf:"bytes,6,opt,name=first_name,json=firstName,proto3" json:"first_name,omitempty"` + LastName string `protobuf:"bytes,7,opt,name=last_name,json=lastName,proto3" json:"last_name,omitempty"` + DisplayName string `protobuf:"bytes,8,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + NickName string `protobuf:"bytes,9,opt,name=nick_name,json=nickName,proto3" json:"nick_name,omitempty"` + PreferredLanguage string `protobuf:"bytes,10,opt,name=preferred_language,json=preferredLanguage,proto3" json:"preferred_language,omitempty"` + Gender Gender `protobuf:"varint,11,opt,name=gender,proto3,enum=caos.zitadel.management.api.v1.Gender" json:"gender,omitempty"` + Email string `protobuf:"bytes,12,opt,name=email,proto3" json:"email,omitempty"` + IsEmailVerified bool `protobuf:"varint,13,opt,name=is_email_verified,json=isEmailVerified,proto3" json:"is_email_verified,omitempty"` + Phone string `protobuf:"bytes,14,opt,name=phone,proto3" json:"phone,omitempty"` + IsPhoneVerified bool `protobuf:"varint,15,opt,name=is_phone_verified,json=isPhoneVerified,proto3" json:"is_phone_verified,omitempty"` + Country string `protobuf:"bytes,16,opt,name=country,proto3" json:"country,omitempty"` + Locality string `protobuf:"bytes,17,opt,name=locality,proto3" json:"locality,omitempty"` + PostalCode string `protobuf:"bytes,18,opt,name=postal_code,json=postalCode,proto3" json:"postal_code,omitempty"` + Region string `protobuf:"bytes,19,opt,name=region,proto3" json:"region,omitempty"` + StreetAddress string `protobuf:"bytes,20,opt,name=street_address,json=streetAddress,proto3" json:"street_address,omitempty"` + Sequence uint64 `protobuf:"varint,21,opt,name=sequence,proto3" json:"sequence,omitempty"` } -func (m *User) Reset() { *m = User{} } -func (m *User) String() string { return proto.CompactTextString(m) } -func (*User) ProtoMessage() {} +func (x *User) Reset() { + *x = User{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *User) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*User) ProtoMessage() {} + +func (x *User) 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 User.ProtoReflect.Descriptor instead. func (*User) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{12} + return file_management_proto_rawDescGZIP(), []int{12} } -func (m *User) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_User.Unmarshal(m, b) -} -func (m *User) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_User.Marshal(b, m, deterministic) -} -func (m *User) XXX_Merge(src proto.Message) { - xxx_messageInfo_User.Merge(m, src) -} -func (m *User) XXX_Size() int { - return xxx_messageInfo_User.Size(m) -} -func (m *User) XXX_DiscardUnknown() { - xxx_messageInfo_User.DiscardUnknown(m) -} - -var xxx_messageInfo_User proto.InternalMessageInfo - -func (m *User) GetId() string { - if m != nil { - return m.Id +func (x *User) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *User) GetState() UserState { - if m != nil { - return m.State +func (x *User) GetState() UserState { + if x != nil { + return x.State } return UserState_USERSTATE_UNSPECIFIED } -func (m *User) GetCreationDate() *timestamp.Timestamp { - if m != nil { - return m.CreationDate +func (x *User) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate } return nil } -func (m *User) GetChangeDate() *timestamp.Timestamp { - if m != nil { - return m.ChangeDate +func (x *User) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate } return nil } -func (m *User) GetUserName() string { - if m != nil { - return m.UserName +func (x *User) GetUserName() string { + if x != nil { + return x.UserName } return "" } -func (m *User) GetFirstName() string { - if m != nil { - return m.FirstName +func (x *User) GetFirstName() string { + if x != nil { + return x.FirstName } return "" } -func (m *User) GetLastName() string { - if m != nil { - return m.LastName +func (x *User) GetLastName() string { + if x != nil { + return x.LastName } return "" } -func (m *User) GetDisplayName() string { - if m != nil { - return m.DisplayName +func (x *User) GetDisplayName() string { + if x != nil { + return x.DisplayName } return "" } -func (m *User) GetNickName() string { - if m != nil { - return m.NickName +func (x *User) GetNickName() string { + if x != nil { + return x.NickName } return "" } -func (m *User) GetPreferredLanguage() string { - if m != nil { - return m.PreferredLanguage +func (x *User) GetPreferredLanguage() string { + if x != nil { + return x.PreferredLanguage } return "" } -func (m *User) GetGender() Gender { - if m != nil { - return m.Gender +func (x *User) GetGender() Gender { + if x != nil { + return x.Gender } return Gender_GENDER_UNSPECIFIED } -func (m *User) GetEmail() string { - if m != nil { - return m.Email +func (x *User) GetEmail() string { + if x != nil { + return x.Email } return "" } -func (m *User) GetIsEmailVerified() bool { - if m != nil { - return m.IsEmailVerified +func (x *User) GetIsEmailVerified() bool { + if x != nil { + return x.IsEmailVerified } return false } -func (m *User) GetPhone() string { - if m != nil { - return m.Phone +func (x *User) GetPhone() string { + if x != nil { + return x.Phone } return "" } -func (m *User) GetIsPhoneVerified() bool { - if m != nil { - return m.IsPhoneVerified +func (x *User) GetIsPhoneVerified() bool { + if x != nil { + return x.IsPhoneVerified } return false } -func (m *User) GetCountry() string { - if m != nil { - return m.Country +func (x *User) GetCountry() string { + if x != nil { + return x.Country } return "" } -func (m *User) GetLocality() string { - if m != nil { - return m.Locality +func (x *User) GetLocality() string { + if x != nil { + return x.Locality } return "" } -func (m *User) GetPostalCode() string { - if m != nil { - return m.PostalCode +func (x *User) GetPostalCode() string { + if x != nil { + return x.PostalCode } return "" } -func (m *User) GetRegion() string { - if m != nil { - return m.Region +func (x *User) GetRegion() string { + if x != nil { + return x.Region } return "" } -func (m *User) GetStreetAddress() string { - if m != nil { - return m.StreetAddress +func (x *User) GetStreetAddress() string { + if x != nil { + return x.StreetAddress } return "" } -func (m *User) GetSequence() uint64 { - if m != nil { - return m.Sequence +func (x *User) GetSequence() uint64 { + if x != nil { + return x.Sequence } return 0 } type UserView struct { - 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"` - LastLogin *timestamp.Timestamp `protobuf:"bytes,5,opt,name=last_login,json=lastLogin,proto3" json:"last_login,omitempty"` - PasswordChanged *timestamp.Timestamp `protobuf:"bytes,6,opt,name=password_changed,json=passwordChanged,proto3" json:"password_changed,omitempty"` - UserName string `protobuf:"bytes,7,opt,name=user_name,json=userName,proto3" json:"user_name,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"` - NickName string `protobuf:"bytes,11,opt,name=nick_name,json=nickName,proto3" json:"nick_name,omitempty"` - PreferredLanguage string `protobuf:"bytes,12,opt,name=preferred_language,json=preferredLanguage,proto3" json:"preferred_language,omitempty"` - Gender Gender `protobuf:"varint,13,opt,name=gender,proto3,enum=caos.zitadel.management.api.v1.Gender" json:"gender,omitempty"` - Email string `protobuf:"bytes,14,opt,name=email,proto3" json:"email,omitempty"` - IsEmailVerified bool `protobuf:"varint,15,opt,name=is_email_verified,json=isEmailVerified,proto3" json:"is_email_verified,omitempty"` - Phone string `protobuf:"bytes,16,opt,name=phone,proto3" json:"phone,omitempty"` - IsPhoneVerified bool `protobuf:"varint,17,opt,name=is_phone_verified,json=isPhoneVerified,proto3" json:"is_phone_verified,omitempty"` - Country string `protobuf:"bytes,18,opt,name=country,proto3" json:"country,omitempty"` - Locality string `protobuf:"bytes,19,opt,name=locality,proto3" json:"locality,omitempty"` - PostalCode string `protobuf:"bytes,20,opt,name=postal_code,json=postalCode,proto3" json:"postal_code,omitempty"` - Region string `protobuf:"bytes,21,opt,name=region,proto3" json:"region,omitempty"` - StreetAddress string `protobuf:"bytes,22,opt,name=street_address,json=streetAddress,proto3" json:"street_address,omitempty"` - Sequence uint64 `protobuf:"varint,23,opt,name=sequence,proto3" json:"sequence,omitempty"` - ResourceOwner string `protobuf:"bytes,24,opt,name=resource_owner,json=resourceOwner,proto3" json:"resource_owner,omitempty"` - LoginNames []string `protobuf:"bytes,25,rep,name=login_names,json=loginNames,proto3" json:"login_names,omitempty"` - PreferredLoginName string `protobuf:"bytes,26,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"` + 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"` + LastLogin *timestamp.Timestamp `protobuf:"bytes,5,opt,name=last_login,json=lastLogin,proto3" json:"last_login,omitempty"` + PasswordChanged *timestamp.Timestamp `protobuf:"bytes,6,opt,name=password_changed,json=passwordChanged,proto3" json:"password_changed,omitempty"` + UserName string `protobuf:"bytes,7,opt,name=user_name,json=userName,proto3" json:"user_name,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"` + NickName string `protobuf:"bytes,11,opt,name=nick_name,json=nickName,proto3" json:"nick_name,omitempty"` + PreferredLanguage string `protobuf:"bytes,12,opt,name=preferred_language,json=preferredLanguage,proto3" json:"preferred_language,omitempty"` + Gender Gender `protobuf:"varint,13,opt,name=gender,proto3,enum=caos.zitadel.management.api.v1.Gender" json:"gender,omitempty"` + Email string `protobuf:"bytes,14,opt,name=email,proto3" json:"email,omitempty"` + IsEmailVerified bool `protobuf:"varint,15,opt,name=is_email_verified,json=isEmailVerified,proto3" json:"is_email_verified,omitempty"` + Phone string `protobuf:"bytes,16,opt,name=phone,proto3" json:"phone,omitempty"` + IsPhoneVerified bool `protobuf:"varint,17,opt,name=is_phone_verified,json=isPhoneVerified,proto3" json:"is_phone_verified,omitempty"` + Country string `protobuf:"bytes,18,opt,name=country,proto3" json:"country,omitempty"` + Locality string `protobuf:"bytes,19,opt,name=locality,proto3" json:"locality,omitempty"` + PostalCode string `protobuf:"bytes,20,opt,name=postal_code,json=postalCode,proto3" json:"postal_code,omitempty"` + Region string `protobuf:"bytes,21,opt,name=region,proto3" json:"region,omitempty"` + StreetAddress string `protobuf:"bytes,22,opt,name=street_address,json=streetAddress,proto3" json:"street_address,omitempty"` + Sequence uint64 `protobuf:"varint,23,opt,name=sequence,proto3" json:"sequence,omitempty"` + ResourceOwner string `protobuf:"bytes,24,opt,name=resource_owner,json=resourceOwner,proto3" json:"resource_owner,omitempty"` + LoginNames []string `protobuf:"bytes,25,rep,name=login_names,json=loginNames,proto3" json:"login_names,omitempty"` + PreferredLoginName string `protobuf:"bytes,26,opt,name=preferred_login_name,json=preferredLoginName,proto3" json:"preferred_login_name,omitempty"` } -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[13] + 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[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 UserView.ProtoReflect.Descriptor instead. func (*UserView) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{13} + return file_management_proto_rawDescGZIP(), []int{13} } -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) 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) GetPasswordChanged() *timestamp.Timestamp { - if m != nil { - return m.PasswordChanged +func (x *UserView) GetPasswordChanged() *timestamp.Timestamp { + if x != nil { + return x.PasswordChanged } return nil } -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) GetFirstName() string { - if m != nil { - return m.FirstName +func (x *UserView) GetFirstName() string { + if x != nil { + return x.FirstName } return "" } -func (m *UserView) GetLastName() string { - if m != nil { - return m.LastName +func (x *UserView) GetLastName() string { + if x != nil { + return x.LastName } return "" } -func (m *UserView) GetDisplayName() string { - if m != nil { - return m.DisplayName +func (x *UserView) GetDisplayName() string { + if x != nil { + return x.DisplayName } return "" } -func (m *UserView) GetNickName() string { - if m != nil { - return m.NickName +func (x *UserView) GetNickName() string { + if x != nil { + return x.NickName } return "" } -func (m *UserView) GetPreferredLanguage() string { - if m != nil { - return m.PreferredLanguage +func (x *UserView) GetPreferredLanguage() string { + if x != nil { + return x.PreferredLanguage } return "" } -func (m *UserView) GetGender() Gender { - if m != nil { - return m.Gender +func (x *UserView) GetGender() Gender { + if x != nil { + return x.Gender } return Gender_GENDER_UNSPECIFIED } -func (m *UserView) GetEmail() string { - if m != nil { - return m.Email +func (x *UserView) GetEmail() string { + if x != nil { + return x.Email } return "" } -func (m *UserView) GetIsEmailVerified() bool { - if m != nil { - return m.IsEmailVerified +func (x *UserView) GetIsEmailVerified() bool { + if x != nil { + return x.IsEmailVerified } return false } -func (m *UserView) GetPhone() string { - if m != nil { - return m.Phone +func (x *UserView) GetPhone() string { + if x != nil { + return x.Phone } return "" } -func (m *UserView) GetIsPhoneVerified() bool { - if m != nil { - return m.IsPhoneVerified +func (x *UserView) GetIsPhoneVerified() bool { + if x != nil { + return x.IsPhoneVerified } return false } -func (m *UserView) GetCountry() string { - if m != nil { - return m.Country +func (x *UserView) GetCountry() string { + if x != nil { + return x.Country } return "" } -func (m *UserView) GetLocality() string { - if m != nil { - return m.Locality +func (x *UserView) GetLocality() string { + if x != nil { + return x.Locality } return "" } -func (m *UserView) GetPostalCode() string { - if m != nil { - return m.PostalCode +func (x *UserView) GetPostalCode() string { + if x != nil { + return x.PostalCode } return "" } -func (m *UserView) GetRegion() string { - if m != nil { - return m.Region +func (x *UserView) GetRegion() string { + if x != nil { + return x.Region } return "" } -func (m *UserView) GetStreetAddress() string { - if m != nil { - return m.StreetAddress +func (x *UserView) GetStreetAddress() string { + if x != nil { + return x.StreetAddress } return "" } -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) GetResourceOwner() string { - if m != nil { - return m.ResourceOwner +func (x *UserView) GetResourceOwner() string { + if x != nil { + return x.ResourceOwner } return "" } -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 "" } 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[14] + 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[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 UserSearchRequest.ProtoReflect.Descriptor instead. func (*UserSearchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{14} + return file_management_proto_rawDescGZIP(), []int{14} } -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[15] + 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[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 UserSearchQuery.ProtoReflect.Descriptor instead. func (*UserSearchQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{15} + return file_management_proto_rawDescGZIP(), []int{15} } -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[16] + 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[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 UserSearchResponse.ProtoReflect.Descriptor instead. func (*UserSearchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{16} + return file_management_proto_rawDescGZIP(), []int{16} } -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"` - UserName string `protobuf:"bytes,8,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` - Sequence uint64 `protobuf:"varint,9,opt,name=sequence,proto3" json:"sequence,omitempty"` - CreationDate *timestamp.Timestamp `protobuf:"bytes,10,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` - ChangeDate *timestamp.Timestamp `protobuf:"bytes,11,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"` + UserName string `protobuf:"bytes,8,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` + Sequence uint64 `protobuf:"varint,9,opt,name=sequence,proto3" json:"sequence,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,10,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + ChangeDate *timestamp.Timestamp `protobuf:"bytes,11,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[17] + 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[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 UserProfile.ProtoReflect.Descriptor instead. func (*UserProfile) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{17} + return file_management_proto_rawDescGZIP(), []int{17} } -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) GetUserName() string { - if m != nil { - return m.UserName +func (x *UserProfile) GetUserName() string { + if x != nil { + return x.UserName } return "" } -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"` - UserName string `protobuf:"bytes,8,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` - Sequence uint64 `protobuf:"varint,9,opt,name=sequence,proto3" json:"sequence,omitempty"` - CreationDate *timestamp.Timestamp `protobuf:"bytes,10,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` - ChangeDate *timestamp.Timestamp `protobuf:"bytes,11,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` - LoginNames []string `protobuf:"bytes,12,rep,name=login_names,json=loginNames,proto3" json:"login_names,omitempty"` - PreferredLoginName string `protobuf:"bytes,27,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"` + UserName string `protobuf:"bytes,8,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` + Sequence uint64 `protobuf:"varint,9,opt,name=sequence,proto3" json:"sequence,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,10,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + ChangeDate *timestamp.Timestamp `protobuf:"bytes,11,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` + LoginNames []string `protobuf:"bytes,12,rep,name=login_names,json=loginNames,proto3" json:"login_names,omitempty"` + PreferredLoginName string `protobuf:"bytes,27,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[18] + 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[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 UserProfileView.ProtoReflect.Descriptor instead. func (*UserProfileView) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{18} + return file_management_proto_rawDescGZIP(), []int{18} } -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) GetUserName() string { - if m != nil { - return m.UserName +func (x *UserProfileView) GetUserName() string { + if x != nil { + return x.UserName } return "" } -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[19] + 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[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 UpdateUserProfileRequest.ProtoReflect.Descriptor instead. func (*UpdateUserProfileRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{19} + return file_management_proto_rawDescGZIP(), []int{19} } -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 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[20] + 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[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 UserEmail.ProtoReflect.Descriptor instead. func (*UserEmail) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{20} + return file_management_proto_rawDescGZIP(), []int{20} } -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[21] + 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[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 UserEmailView.ProtoReflect.Descriptor instead. func (*UserEmailView) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{21} + return file_management_proto_rawDescGZIP(), []int{21} } -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[22] + 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[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 UpdateUserEmailRequest.ProtoReflect.Descriptor instead. func (*UpdateUserEmailRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{22} + return file_management_proto_rawDescGZIP(), []int{22} } -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[23] + 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[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 UserPhone.ProtoReflect.Descriptor instead. func (*UserPhone) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{23} + return file_management_proto_rawDescGZIP(), []int{23} } -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[24] + 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[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 UserPhoneView.ProtoReflect.Descriptor instead. func (*UserPhoneView) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{24} + return file_management_proto_rawDescGZIP(), []int{24} } -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[25] + 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[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 UpdateUserPhoneRequest.ProtoReflect.Descriptor instead. func (*UpdateUserPhoneRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{25} + return file_management_proto_rawDescGZIP(), []int{25} } -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[26] + 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[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 UserAddress.ProtoReflect.Descriptor instead. func (*UserAddress) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{26} + return file_management_proto_rawDescGZIP(), []int{26} } -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[27] + 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[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 UserAddressView.ProtoReflect.Descriptor instead. func (*UserAddressView) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{27} + return file_management_proto_rawDescGZIP(), []int{27} } -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[28] + 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[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 UpdateUserAddressRequest.ProtoReflect.Descriptor instead. func (*UpdateUserAddressRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{28} + return file_management_proto_rawDescGZIP(), []int{28} } -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[29] + 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[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 MultiFactors.ProtoReflect.Descriptor instead. func (*MultiFactors) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{29} + return file_management_proto_rawDescGZIP(), []int{29} } -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[30] + 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[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 MultiFactor.ProtoReflect.Descriptor instead. func (*MultiFactor) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{30} + return file_management_proto_rawDescGZIP(), []int{30} } -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 PasswordID 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 *PasswordID) Reset() { *m = PasswordID{} } -func (m *PasswordID) String() string { return proto.CompactTextString(m) } -func (*PasswordID) ProtoMessage() {} +func (x *PasswordID) Reset() { + *x = PasswordID{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PasswordID) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PasswordID) ProtoMessage() {} + +func (x *PasswordID) 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 PasswordID.ProtoReflect.Descriptor instead. func (*PasswordID) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{31} + return file_management_proto_rawDescGZIP(), []int{31} } -func (m *PasswordID) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_PasswordID.Unmarshal(m, b) -} -func (m *PasswordID) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_PasswordID.Marshal(b, m, deterministic) -} -func (m *PasswordID) XXX_Merge(src proto.Message) { - xxx_messageInfo_PasswordID.Merge(m, src) -} -func (m *PasswordID) XXX_Size() int { - return xxx_messageInfo_PasswordID.Size(m) -} -func (m *PasswordID) XXX_DiscardUnknown() { - xxx_messageInfo_PasswordID.DiscardUnknown(m) -} - -var xxx_messageInfo_PasswordID proto.InternalMessageInfo - -func (m *PasswordID) GetId() string { - if m != nil { - return m.Id +func (x *PasswordID) GetId() string { + if x != nil { + return x.Id } return "" } 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[32] + 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[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 PasswordRequest.ProtoReflect.Descriptor instead. func (*PasswordRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{32} + return file_management_proto_rawDescGZIP(), []int{32} } -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 ResetPasswordRequest 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 *ResetPasswordRequest) Reset() { *m = ResetPasswordRequest{} } -func (m *ResetPasswordRequest) String() string { return proto.CompactTextString(m) } -func (*ResetPasswordRequest) ProtoMessage() {} +func (x *ResetPasswordRequest) Reset() { + *x = ResetPasswordRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ResetPasswordRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResetPasswordRequest) ProtoMessage() {} + +func (x *ResetPasswordRequest) 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 ResetPasswordRequest.ProtoReflect.Descriptor instead. func (*ResetPasswordRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{33} + return file_management_proto_rawDescGZIP(), []int{33} } -func (m *ResetPasswordRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ResetPasswordRequest.Unmarshal(m, b) -} -func (m *ResetPasswordRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ResetPasswordRequest.Marshal(b, m, deterministic) -} -func (m *ResetPasswordRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_ResetPasswordRequest.Merge(m, src) -} -func (m *ResetPasswordRequest) XXX_Size() int { - return xxx_messageInfo_ResetPasswordRequest.Size(m) -} -func (m *ResetPasswordRequest) XXX_DiscardUnknown() { - xxx_messageInfo_ResetPasswordRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_ResetPasswordRequest proto.InternalMessageInfo - -func (m *ResetPasswordRequest) GetId() string { - if m != nil { - return m.Id +func (x *ResetPasswordRequest) GetId() string { + if x != nil { + return x.Id } 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[34] + 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[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 SetPasswordNotificationRequest.ProtoReflect.Descriptor instead. func (*SetPasswordNotificationRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{34} + return file_management_proto_rawDescGZIP(), []int{34} } -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[35] + 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[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 PasswordComplexityPolicyID.ProtoReflect.Descriptor instead. func (*PasswordComplexityPolicyID) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{35} + return file_management_proto_rawDescGZIP(), []int{35} } -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[36] + 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[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 PasswordComplexityPolicy.ProtoReflect.Descriptor instead. func (*PasswordComplexityPolicy) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{36} + return file_management_proto_rawDescGZIP(), []int{36} } -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[37] + 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[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 PasswordComplexityPolicyCreate.ProtoReflect.Descriptor instead. func (*PasswordComplexityPolicyCreate) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{37} + return file_management_proto_rawDescGZIP(), []int{37} } -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"` + 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[38] + 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[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 PasswordComplexityPolicyUpdate.ProtoReflect.Descriptor instead. func (*PasswordComplexityPolicyUpdate) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{38} + return file_management_proto_rawDescGZIP(), []int{38} } -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[39] + 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[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 PasswordAgePolicyID.ProtoReflect.Descriptor instead. func (*PasswordAgePolicyID) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{39} + return file_management_proto_rawDescGZIP(), []int{39} } -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"` + 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[40] + 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[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 PasswordAgePolicy.ProtoReflect.Descriptor instead. func (*PasswordAgePolicy) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{40} + return file_management_proto_rawDescGZIP(), []int{40} } -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[41] + 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[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 PasswordAgePolicyCreate.ProtoReflect.Descriptor instead. func (*PasswordAgePolicyCreate) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{41} + return file_management_proto_rawDescGZIP(), []int{41} } -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"` + 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[42] + 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[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 PasswordAgePolicyUpdate.ProtoReflect.Descriptor instead. func (*PasswordAgePolicyUpdate) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{42} + return file_management_proto_rawDescGZIP(), []int{42} } -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"` } -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[43] + 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[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 PasswordLockoutPolicyID.ProtoReflect.Descriptor instead. func (*PasswordLockoutPolicyID) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{43} + return file_management_proto_rawDescGZIP(), []int{43} } -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"` + 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[44] + 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[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 PasswordLockoutPolicy.ProtoReflect.Descriptor instead. func (*PasswordLockoutPolicy) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{44} + return file_management_proto_rawDescGZIP(), []int{44} } -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[45] + 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[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 PasswordLockoutPolicyCreate.ProtoReflect.Descriptor instead. func (*PasswordLockoutPolicyCreate) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{45} + return file_management_proto_rawDescGZIP(), []int{45} } -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"` + 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[46] + 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[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 PasswordLockoutPolicyUpdate.ProtoReflect.Descriptor instead. func (*PasswordLockoutPolicyUpdate) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{46} + return file_management_proto_rawDescGZIP(), []int{46} } -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"` + 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[47] + 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[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 OrgIamPolicy.ProtoReflect.Descriptor instead. func (*OrgIamPolicy) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{47} + return file_management_proto_rawDescGZIP(), []int{47} } -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 OrgID 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 *OrgID) Reset() { *m = OrgID{} } -func (m *OrgID) String() string { return proto.CompactTextString(m) } -func (*OrgID) ProtoMessage() {} +func (x *OrgID) Reset() { + *x = OrgID{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OrgID) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrgID) ProtoMessage() {} + +func (x *OrgID) 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 OrgID.ProtoReflect.Descriptor instead. func (*OrgID) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{48} + return file_management_proto_rawDescGZIP(), []int{48} } -func (m *OrgID) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_OrgID.Unmarshal(m, b) -} -func (m *OrgID) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_OrgID.Marshal(b, m, deterministic) -} -func (m *OrgID) XXX_Merge(src proto.Message) { - xxx_messageInfo_OrgID.Merge(m, src) -} -func (m *OrgID) XXX_Size() int { - return xxx_messageInfo_OrgID.Size(m) -} -func (m *OrgID) XXX_DiscardUnknown() { - xxx_messageInfo_OrgID.DiscardUnknown(m) -} - -var xxx_messageInfo_OrgID proto.InternalMessageInfo - -func (m *OrgID) GetId() string { - if m != nil { - return m.Id +func (x *OrgID) GetId() string { + if x != nil { + return x.Id } return "" } 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[49] + 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[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 OrgCreateRequest.ProtoReflect.Descriptor instead. func (*OrgCreateRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{49} + return file_management_proto_rawDescGZIP(), []int{49} } -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[50] + 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[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 Org.ProtoReflect.Descriptor instead. func (*Org) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{50} + return file_management_proto_rawDescGZIP(), []int{50} } -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[51] + 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[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 OrgView.ProtoReflect.Descriptor instead. func (*OrgView) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{51} + return file_management_proto_rawDescGZIP(), []int{51} } -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[52] + 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[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 Domain.ProtoReflect.Descriptor instead. func (*Domain) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{52} + return file_management_proto_rawDescGZIP(), []int{52} } -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 OrgDomains struct { - Domains []*OrgDomain `protobuf:"bytes,1,rep,name=domains,proto3" json:"domains,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Domains []*OrgDomain `protobuf:"bytes,1,rep,name=domains,proto3" json:"domains,omitempty"` } -func (m *OrgDomains) Reset() { *m = OrgDomains{} } -func (m *OrgDomains) String() string { return proto.CompactTextString(m) } -func (*OrgDomains) ProtoMessage() {} +func (x *OrgDomains) Reset() { + *x = OrgDomains{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[53] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OrgDomains) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrgDomains) ProtoMessage() {} + +func (x *OrgDomains) 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 OrgDomains.ProtoReflect.Descriptor instead. func (*OrgDomains) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{53} + return file_management_proto_rawDescGZIP(), []int{53} } -func (m *OrgDomains) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_OrgDomains.Unmarshal(m, b) -} -func (m *OrgDomains) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_OrgDomains.Marshal(b, m, deterministic) -} -func (m *OrgDomains) XXX_Merge(src proto.Message) { - xxx_messageInfo_OrgDomains.Merge(m, src) -} -func (m *OrgDomains) XXX_Size() int { - return xxx_messageInfo_OrgDomains.Size(m) -} -func (m *OrgDomains) XXX_DiscardUnknown() { - xxx_messageInfo_OrgDomains.DiscardUnknown(m) -} - -var xxx_messageInfo_OrgDomains proto.InternalMessageInfo - -func (m *OrgDomains) GetDomains() []*OrgDomain { - if m != nil { - return m.Domains +func (x *OrgDomains) GetDomains() []*OrgDomain { + if x != nil { + return x.Domains } return nil } 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[54] + 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[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 OrgDomain.ProtoReflect.Descriptor instead. func (*OrgDomain) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{54} + return file_management_proto_rawDescGZIP(), []int{54} } -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[55] + 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[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 OrgDomainView.ProtoReflect.Descriptor instead. func (*OrgDomainView) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{55} + return file_management_proto_rawDescGZIP(), []int{55} } -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[56] + 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[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 AddOrgDomainRequest.ProtoReflect.Descriptor instead. func (*AddOrgDomainRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{56} + return file_management_proto_rawDescGZIP(), []int{56} } -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[57] + 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[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 OrgDomainValidationRequest.ProtoReflect.Descriptor instead. func (*OrgDomainValidationRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{57} + return file_management_proto_rawDescGZIP(), []int{57} } -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[58] + 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[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 OrgDomainValidationResponse.ProtoReflect.Descriptor instead. func (*OrgDomainValidationResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{58} + return file_management_proto_rawDescGZIP(), []int{58} } -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[59] + 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[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 ValidateOrgDomainRequest.ProtoReflect.Descriptor instead. func (*ValidateOrgDomainRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{59} + return file_management_proto_rawDescGZIP(), []int{59} } -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[60] + 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[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 PrimaryOrgDomainRequest.ProtoReflect.Descriptor instead. func (*PrimaryOrgDomainRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{60} + return file_management_proto_rawDescGZIP(), []int{60} } -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[61] + 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[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 RemoveOrgDomainRequest.ProtoReflect.Descriptor instead. func (*RemoveOrgDomainRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{61} + return file_management_proto_rawDescGZIP(), []int{61} } -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[62] + 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[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 OrgDomainSearchResponse.ProtoReflect.Descriptor instead. func (*OrgDomainSearchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{62} + return file_management_proto_rawDescGZIP(), []int{62} } -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[63] + 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[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 OrgDomainSearchRequest.ProtoReflect.Descriptor instead. func (*OrgDomainSearchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{63} + return file_management_proto_rawDescGZIP(), []int{63} } -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[64] + 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[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 OrgDomainSearchQuery.ProtoReflect.Descriptor instead. func (*OrgDomainSearchQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{64} + return file_management_proto_rawDescGZIP(), []int{64} } -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[65] + 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[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 OrgMemberRoles.ProtoReflect.Descriptor instead. func (*OrgMemberRoles) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{65} + return file_management_proto_rawDescGZIP(), []int{65} } -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[66] + 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[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 OrgMember.ProtoReflect.Descriptor instead. func (*OrgMember) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{66} + return file_management_proto_rawDescGZIP(), []int{66} } -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[67] + 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[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 AddOrgMemberRequest.ProtoReflect.Descriptor instead. func (*AddOrgMemberRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{67} + return file_management_proto_rawDescGZIP(), []int{67} } -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[68] + 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[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 ChangeOrgMemberRequest.ProtoReflect.Descriptor instead. func (*ChangeOrgMemberRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{68} + return file_management_proto_rawDescGZIP(), []int{68} } -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[69] + 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[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 RemoveOrgMemberRequest.ProtoReflect.Descriptor instead. func (*RemoveOrgMemberRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{69} + return file_management_proto_rawDescGZIP(), []int{69} } -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[70] + 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[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 OrgMemberSearchResponse.ProtoReflect.Descriptor instead. func (*OrgMemberSearchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{70} + return file_management_proto_rawDescGZIP(), []int{70} } -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[71] + 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[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 OrgMemberView.ProtoReflect.Descriptor instead. func (*OrgMemberView) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{71} + return file_management_proto_rawDescGZIP(), []int{71} } -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[72] + 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[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 OrgMemberSearchRequest.ProtoReflect.Descriptor instead. func (*OrgMemberSearchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{72} + return file_management_proto_rawDescGZIP(), []int{72} } -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[73] + 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[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 OrgMemberSearchQuery.ProtoReflect.Descriptor instead. func (*OrgMemberSearchQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{73} + return file_management_proto_rawDescGZIP(), []int{73} } -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[74] + 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[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 ProjectCreateRequest.ProtoReflect.Descriptor instead. func (*ProjectCreateRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{74} + return file_management_proto_rawDescGZIP(), []int{74} } -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[75] + 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[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 ProjectUpdateRequest.ProtoReflect.Descriptor instead. func (*ProjectUpdateRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{75} + return file_management_proto_rawDescGZIP(), []int{75} } -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[76] + 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[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 ProjectSearchResponse.ProtoReflect.Descriptor instead. func (*ProjectSearchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{76} + return file_management_proto_rawDescGZIP(), []int{76} } -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[77] + 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[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 ProjectView.ProtoReflect.Descriptor instead. func (*ProjectView) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{77} + return file_management_proto_rawDescGZIP(), []int{77} } -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[78] + 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[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 ProjectSearchRequest.ProtoReflect.Descriptor instead. func (*ProjectSearchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{78} + return file_management_proto_rawDescGZIP(), []int{78} } -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[79] + 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[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 ProjectSearchQuery.ProtoReflect.Descriptor instead. func (*ProjectSearchQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{79} + return file_management_proto_rawDescGZIP(), []int{79} } -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[80] + 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[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 Projects.ProtoReflect.Descriptor instead. func (*Projects) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{80} + return file_management_proto_rawDescGZIP(), []int{80} } -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[81] + 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[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 Project.ProtoReflect.Descriptor instead. func (*Project) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{81} + return file_management_proto_rawDescGZIP(), []int{81} } -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[82] + 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[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 ProjectMemberRoles.ProtoReflect.Descriptor instead. func (*ProjectMemberRoles) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{82} + return file_management_proto_rawDescGZIP(), []int{82} } -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[83] + 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[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 ProjectMember.ProtoReflect.Descriptor instead. func (*ProjectMember) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{83} + return file_management_proto_rawDescGZIP(), []int{83} } -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[84] + 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[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 ProjectMemberAdd.ProtoReflect.Descriptor instead. func (*ProjectMemberAdd) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{84} + return file_management_proto_rawDescGZIP(), []int{84} } -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[85] + 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[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 ProjectMemberChange.ProtoReflect.Descriptor instead. func (*ProjectMemberChange) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{85} + return file_management_proto_rawDescGZIP(), []int{85} } -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[86] + 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[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 ProjectMemberRemove.ProtoReflect.Descriptor instead. func (*ProjectMemberRemove) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{86} + return file_management_proto_rawDescGZIP(), []int{86} } -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[87] + 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[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 ProjectRoleAdd.ProtoReflect.Descriptor instead. func (*ProjectRoleAdd) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{87} + return file_management_proto_rawDescGZIP(), []int{87} } -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[88] + 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[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 ProjectRoleAddBulk.ProtoReflect.Descriptor instead. func (*ProjectRoleAddBulk) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{88} + return file_management_proto_rawDescGZIP(), []int{88} } -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[89] + 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[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 ProjectRoleChange.ProtoReflect.Descriptor instead. func (*ProjectRoleChange) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{89} + return file_management_proto_rawDescGZIP(), []int{89} } -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[90] + 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[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 ProjectRole.ProtoReflect.Descriptor instead. func (*ProjectRole) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{90} + return file_management_proto_rawDescGZIP(), []int{90} } -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[91] + 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[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 ProjectRoleView.ProtoReflect.Descriptor instead. func (*ProjectRoleView) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{91} + return file_management_proto_rawDescGZIP(), []int{91} } -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[92] + 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[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 ProjectRoleRemove.ProtoReflect.Descriptor instead. func (*ProjectRoleRemove) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{92} + return file_management_proto_rawDescGZIP(), []int{92} } -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[93] + 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[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 ProjectRoleSearchResponse.ProtoReflect.Descriptor instead. func (*ProjectRoleSearchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{93} + return file_management_proto_rawDescGZIP(), []int{93} } -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[94] + 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[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 ProjectRoleSearchRequest.ProtoReflect.Descriptor instead. func (*ProjectRoleSearchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{94} + return file_management_proto_rawDescGZIP(), []int{94} } -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[95] + 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[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 ProjectRoleSearchQuery.ProtoReflect.Descriptor instead. func (*ProjectRoleSearchQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{95} + return file_management_proto_rawDescGZIP(), []int{95} } -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[96] + 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[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 ProjectMemberView.ProtoReflect.Descriptor instead. func (*ProjectMemberView) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{96} + return file_management_proto_rawDescGZIP(), []int{96} } -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[97] + 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[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 ProjectMemberSearchResponse.ProtoReflect.Descriptor instead. func (*ProjectMemberSearchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{97} + return file_management_proto_rawDescGZIP(), []int{97} } -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[98] + 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[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 ProjectMemberSearchRequest.ProtoReflect.Descriptor instead. func (*ProjectMemberSearchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{98} + return file_management_proto_rawDescGZIP(), []int{98} } -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[99] + 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[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 ProjectMemberSearchQuery.ProtoReflect.Descriptor instead. func (*ProjectMemberSearchQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{99} + return file_management_proto_rawDescGZIP(), []int{99} } -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[100] + 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[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 Application.ProtoReflect.Descriptor instead. func (*Application) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{100} + return file_management_proto_rawDescGZIP(), []int{100} } -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() } @@ -7763,90 +9447,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[101] + 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[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 ApplicationUpdate.ProtoReflect.Descriptor instead. func (*ApplicationUpdate) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{101} + return file_management_proto_rawDescGZIP(), []int{101} } -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"` @@ -7859,121 +9527,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[102] + 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[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 OIDCConfig.ProtoReflect.Descriptor instead. func (*OIDCConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{102} + return file_management_proto_rawDescGZIP(), []int{102} } -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"` @@ -7984,107 +9660,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[103] + 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[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 OIDCApplicationCreate.ProtoReflect.Descriptor instead. func (*OIDCApplicationCreate) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{103} + return file_management_proto_rawDescGZIP(), []int{103} } -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"` @@ -8094,213 +9778,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[104] + 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[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 OIDCConfigUpdate.ProtoReflect.Descriptor instead. func (*OIDCConfigUpdate) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{104} + return file_management_proto_rawDescGZIP(), []int{104} } -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[105] + 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[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 ClientSecret.ProtoReflect.Descriptor instead. func (*ClientSecret) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{105} + return file_management_proto_rawDescGZIP(), []int{105} } -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[106] + 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[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 ApplicationView.ProtoReflect.Descriptor instead. func (*ApplicationView) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{106} + return file_management_proto_rawDescGZIP(), []int{106} } -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() } @@ -8311,3458 +10036,10971 @@ 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[107] + 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[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 ApplicationSearchResponse.ProtoReflect.Descriptor instead. func (*ApplicationSearchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{107} + return file_management_proto_rawDescGZIP(), []int{107} } -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[108] + 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[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 ApplicationSearchRequest.ProtoReflect.Descriptor instead. func (*ApplicationSearchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{108} + return file_management_proto_rawDescGZIP(), []int{108} } -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[109] + 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[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 ApplicationSearchQuery.ProtoReflect.Descriptor instead. func (*ApplicationSearchQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{109} + return file_management_proto_rawDescGZIP(), []int{109} } -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[110] + 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[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 ProjectGrant.ProtoReflect.Descriptor instead. func (*ProjectGrant) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{110} + return file_management_proto_rawDescGZIP(), []int{110} } -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[111] + 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[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 ProjectGrantCreate.ProtoReflect.Descriptor instead. func (*ProjectGrantCreate) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{111} + return file_management_proto_rawDescGZIP(), []int{111} } -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[112] + 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[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 ProjectGrantUpdate.ProtoReflect.Descriptor instead. func (*ProjectGrantUpdate) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{112} + return file_management_proto_rawDescGZIP(), []int{112} } -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[113] + 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[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 ProjectGrantID.ProtoReflect.Descriptor instead. func (*ProjectGrantID) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{113} + return file_management_proto_rawDescGZIP(), []int{113} } -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[114] + 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[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 ProjectGrantView.ProtoReflect.Descriptor instead. func (*ProjectGrantView) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{114} + return file_management_proto_rawDescGZIP(), []int{114} } -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[115] + 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[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 ProjectGrantSearchResponse.ProtoReflect.Descriptor instead. func (*ProjectGrantSearchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{115} + return file_management_proto_rawDescGZIP(), []int{115} } -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[116] + 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[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 GrantedProjectSearchRequest.ProtoReflect.Descriptor instead. func (*GrantedProjectSearchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{116} + return file_management_proto_rawDescGZIP(), []int{116} } -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[117] + 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[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 ProjectGrantSearchRequest.ProtoReflect.Descriptor instead. func (*ProjectGrantSearchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{117} + return file_management_proto_rawDescGZIP(), []int{117} } -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[118] + 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[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 ProjectGrantSearchQuery.ProtoReflect.Descriptor instead. func (*ProjectGrantSearchQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{118} + return file_management_proto_rawDescGZIP(), []int{118} } -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[119] + 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[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 ProjectGrantMemberRoles.ProtoReflect.Descriptor instead. func (*ProjectGrantMemberRoles) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{119} + return file_management_proto_rawDescGZIP(), []int{119} } -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[120] + 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[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 ProjectGrantMember.ProtoReflect.Descriptor instead. func (*ProjectGrantMember) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{120} + return file_management_proto_rawDescGZIP(), []int{120} } -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[121] + 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[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 ProjectGrantMemberAdd.ProtoReflect.Descriptor instead. func (*ProjectGrantMemberAdd) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{121} + return file_management_proto_rawDescGZIP(), []int{121} } -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[122] + 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[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 ProjectGrantMemberChange.ProtoReflect.Descriptor instead. func (*ProjectGrantMemberChange) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{122} + return file_management_proto_rawDescGZIP(), []int{122} } -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[123] + 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[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 ProjectGrantMemberRemove.ProtoReflect.Descriptor instead. func (*ProjectGrantMemberRemove) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{123} + return file_management_proto_rawDescGZIP(), []int{123} } -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[124] + 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[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 ProjectGrantMemberView.ProtoReflect.Descriptor instead. func (*ProjectGrantMemberView) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{124} + return file_management_proto_rawDescGZIP(), []int{124} } -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[125] + 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[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 ProjectGrantMemberSearchResponse.ProtoReflect.Descriptor instead. func (*ProjectGrantMemberSearchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{125} + return file_management_proto_rawDescGZIP(), []int{125} } -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[126] + 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[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 ProjectGrantMemberSearchRequest.ProtoReflect.Descriptor instead. func (*ProjectGrantMemberSearchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{126} + return file_management_proto_rawDescGZIP(), []int{126} } -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[127] + 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[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 ProjectGrantMemberSearchQuery.ProtoReflect.Descriptor instead. func (*ProjectGrantMemberSearchQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{127} + return file_management_proto_rawDescGZIP(), []int{127} } -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[128] + 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[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 UserGrant.ProtoReflect.Descriptor instead. func (*UserGrant) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{128} + return file_management_proto_rawDescGZIP(), []int{128} } -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 UserGrantCreateBulk struct { - UserGrants []*UserGrantCreate `protobuf:"bytes,1,rep,name=user_grants,json=userGrants,proto3" json:"user_grants,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserGrants []*UserGrantCreate `protobuf:"bytes,1,rep,name=user_grants,json=userGrants,proto3" json:"user_grants,omitempty"` } -func (m *UserGrantCreateBulk) Reset() { *m = UserGrantCreateBulk{} } -func (m *UserGrantCreateBulk) String() string { return proto.CompactTextString(m) } -func (*UserGrantCreateBulk) ProtoMessage() {} +func (x *UserGrantCreateBulk) Reset() { + *x = UserGrantCreateBulk{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[129] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserGrantCreateBulk) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserGrantCreateBulk) ProtoMessage() {} + +func (x *UserGrantCreateBulk) 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 UserGrantCreateBulk.ProtoReflect.Descriptor instead. func (*UserGrantCreateBulk) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{129} + return file_management_proto_rawDescGZIP(), []int{129} } -func (m *UserGrantCreateBulk) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserGrantCreateBulk.Unmarshal(m, b) -} -func (m *UserGrantCreateBulk) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserGrantCreateBulk.Marshal(b, m, deterministic) -} -func (m *UserGrantCreateBulk) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserGrantCreateBulk.Merge(m, src) -} -func (m *UserGrantCreateBulk) XXX_Size() int { - return xxx_messageInfo_UserGrantCreateBulk.Size(m) -} -func (m *UserGrantCreateBulk) XXX_DiscardUnknown() { - xxx_messageInfo_UserGrantCreateBulk.DiscardUnknown(m) -} - -var xxx_messageInfo_UserGrantCreateBulk proto.InternalMessageInfo - -func (m *UserGrantCreateBulk) GetUserGrants() []*UserGrantCreate { - if m != nil { - return m.UserGrants +func (x *UserGrantCreateBulk) GetUserGrants() []*UserGrantCreate { + if x != nil { + return x.UserGrants } return nil } 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[130] + 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[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 UserGrantCreate.ProtoReflect.Descriptor instead. func (*UserGrantCreate) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{130} + return file_management_proto_rawDescGZIP(), []int{130} } -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 UserGrantUpdateBulk struct { - UserGrants []*UserGrantUpdate `protobuf:"bytes,1,rep,name=user_grants,json=userGrants,proto3" json:"user_grants,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserGrants []*UserGrantUpdate `protobuf:"bytes,1,rep,name=user_grants,json=userGrants,proto3" json:"user_grants,omitempty"` } -func (m *UserGrantUpdateBulk) Reset() { *m = UserGrantUpdateBulk{} } -func (m *UserGrantUpdateBulk) String() string { return proto.CompactTextString(m) } -func (*UserGrantUpdateBulk) ProtoMessage() {} +func (x *UserGrantUpdateBulk) Reset() { + *x = UserGrantUpdateBulk{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[131] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserGrantUpdateBulk) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserGrantUpdateBulk) ProtoMessage() {} + +func (x *UserGrantUpdateBulk) 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 UserGrantUpdateBulk.ProtoReflect.Descriptor instead. func (*UserGrantUpdateBulk) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{131} + return file_management_proto_rawDescGZIP(), []int{131} } -func (m *UserGrantUpdateBulk) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserGrantUpdateBulk.Unmarshal(m, b) -} -func (m *UserGrantUpdateBulk) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserGrantUpdateBulk.Marshal(b, m, deterministic) -} -func (m *UserGrantUpdateBulk) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserGrantUpdateBulk.Merge(m, src) -} -func (m *UserGrantUpdateBulk) XXX_Size() int { - return xxx_messageInfo_UserGrantUpdateBulk.Size(m) -} -func (m *UserGrantUpdateBulk) XXX_DiscardUnknown() { - xxx_messageInfo_UserGrantUpdateBulk.DiscardUnknown(m) -} - -var xxx_messageInfo_UserGrantUpdateBulk proto.InternalMessageInfo - -func (m *UserGrantUpdateBulk) GetUserGrants() []*UserGrantUpdate { - if m != nil { - return m.UserGrants +func (x *UserGrantUpdateBulk) GetUserGrants() []*UserGrantUpdate { + if x != nil { + return x.UserGrants } return nil } 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[132] + 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[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 UserGrantUpdate.ProtoReflect.Descriptor instead. func (*UserGrantUpdate) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{132} + return file_management_proto_rawDescGZIP(), []int{132} } -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[133] + 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[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 UserGrantRemoveBulk.ProtoReflect.Descriptor instead. func (*UserGrantRemoveBulk) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{133} + return file_management_proto_rawDescGZIP(), []int{133} } -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[134] + 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[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 UserGrantID.ProtoReflect.Descriptor instead. func (*UserGrantID) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{134} + return file_management_proto_rawDescGZIP(), []int{134} } -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[135] + 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[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 UserGrantView.ProtoReflect.Descriptor instead. func (*UserGrantView) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{135} + return file_management_proto_rawDescGZIP(), []int{135} } -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[136] + 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[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 UserGrantSearchResponse.ProtoReflect.Descriptor instead. func (*UserGrantSearchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{136} + return file_management_proto_rawDescGZIP(), []int{136} } -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[137] + 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[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 UserGrantSearchRequest.ProtoReflect.Descriptor instead. func (*UserGrantSearchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{137} + return file_management_proto_rawDescGZIP(), []int{137} } -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[138] + 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[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 UserGrantSearchQuery.ProtoReflect.Descriptor instead. func (*UserGrantSearchQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{138} + return file_management_proto_rawDescGZIP(), []int{138} } -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 ProjectUserGrantSearchRequest 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 []*UserGrantSearchQuery `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 []*UserGrantSearchQuery `protobuf:"bytes,4,rep,name=queries,proto3" json:"queries,omitempty"` } -func (m *ProjectUserGrantSearchRequest) Reset() { *m = ProjectUserGrantSearchRequest{} } -func (m *ProjectUserGrantSearchRequest) String() string { return proto.CompactTextString(m) } -func (*ProjectUserGrantSearchRequest) ProtoMessage() {} +func (x *ProjectUserGrantSearchRequest) Reset() { + *x = ProjectUserGrantSearchRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[139] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProjectUserGrantSearchRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProjectUserGrantSearchRequest) ProtoMessage() {} + +func (x *ProjectUserGrantSearchRequest) 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 ProjectUserGrantSearchRequest.ProtoReflect.Descriptor instead. func (*ProjectUserGrantSearchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{139} + return file_management_proto_rawDescGZIP(), []int{139} } -func (m *ProjectUserGrantSearchRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ProjectUserGrantSearchRequest.Unmarshal(m, b) -} -func (m *ProjectUserGrantSearchRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ProjectUserGrantSearchRequest.Marshal(b, m, deterministic) -} -func (m *ProjectUserGrantSearchRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProjectUserGrantSearchRequest.Merge(m, src) -} -func (m *ProjectUserGrantSearchRequest) XXX_Size() int { - return xxx_messageInfo_ProjectUserGrantSearchRequest.Size(m) -} -func (m *ProjectUserGrantSearchRequest) XXX_DiscardUnknown() { - xxx_messageInfo_ProjectUserGrantSearchRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_ProjectUserGrantSearchRequest proto.InternalMessageInfo - -func (m *ProjectUserGrantSearchRequest) GetProjectId() string { - if m != nil { - return m.ProjectId +func (x *ProjectUserGrantSearchRequest) GetProjectId() string { + if x != nil { + return x.ProjectId } return "" } -func (m *ProjectUserGrantSearchRequest) GetOffset() uint64 { - if m != nil { - return m.Offset +func (x *ProjectUserGrantSearchRequest) GetOffset() uint64 { + if x != nil { + return x.Offset } return 0 } -func (m *ProjectUserGrantSearchRequest) GetLimit() uint64 { - if m != nil { - return m.Limit +func (x *ProjectUserGrantSearchRequest) GetLimit() uint64 { + if x != nil { + return x.Limit } return 0 } -func (m *ProjectUserGrantSearchRequest) GetQueries() []*UserGrantSearchQuery { - if m != nil { - return m.Queries +func (x *ProjectUserGrantSearchRequest) GetQueries() []*UserGrantSearchQuery { + if x != nil { + return x.Queries } return nil } type ProjectGrantUserGrantSearchRequest struct { - ProjectGrantId string `protobuf:"bytes,1,opt,name=project_grant_id,json=projectGrantId,proto3" json:"project_grant_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 []*UserGrantSearchQuery `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 + + ProjectGrantId string `protobuf:"bytes,1,opt,name=project_grant_id,json=projectGrantId,proto3" json:"project_grant_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 []*UserGrantSearchQuery `protobuf:"bytes,4,rep,name=queries,proto3" json:"queries,omitempty"` } -func (m *ProjectGrantUserGrantSearchRequest) Reset() { *m = ProjectGrantUserGrantSearchRequest{} } -func (m *ProjectGrantUserGrantSearchRequest) String() string { return proto.CompactTextString(m) } -func (*ProjectGrantUserGrantSearchRequest) ProtoMessage() {} +func (x *ProjectGrantUserGrantSearchRequest) Reset() { + *x = ProjectGrantUserGrantSearchRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[140] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProjectGrantUserGrantSearchRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProjectGrantUserGrantSearchRequest) ProtoMessage() {} + +func (x *ProjectGrantUserGrantSearchRequest) 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 ProjectGrantUserGrantSearchRequest.ProtoReflect.Descriptor instead. func (*ProjectGrantUserGrantSearchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{140} + return file_management_proto_rawDescGZIP(), []int{140} } -func (m *ProjectGrantUserGrantSearchRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ProjectGrantUserGrantSearchRequest.Unmarshal(m, b) -} -func (m *ProjectGrantUserGrantSearchRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ProjectGrantUserGrantSearchRequest.Marshal(b, m, deterministic) -} -func (m *ProjectGrantUserGrantSearchRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProjectGrantUserGrantSearchRequest.Merge(m, src) -} -func (m *ProjectGrantUserGrantSearchRequest) XXX_Size() int { - return xxx_messageInfo_ProjectGrantUserGrantSearchRequest.Size(m) -} -func (m *ProjectGrantUserGrantSearchRequest) XXX_DiscardUnknown() { - xxx_messageInfo_ProjectGrantUserGrantSearchRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_ProjectGrantUserGrantSearchRequest proto.InternalMessageInfo - -func (m *ProjectGrantUserGrantSearchRequest) GetProjectGrantId() string { - if m != nil { - return m.ProjectGrantId +func (x *ProjectGrantUserGrantSearchRequest) GetProjectGrantId() string { + if x != nil { + return x.ProjectGrantId } return "" } -func (m *ProjectGrantUserGrantSearchRequest) GetOffset() uint64 { - if m != nil { - return m.Offset +func (x *ProjectGrantUserGrantSearchRequest) GetOffset() uint64 { + if x != nil { + return x.Offset } return 0 } -func (m *ProjectGrantUserGrantSearchRequest) GetLimit() uint64 { - if m != nil { - return m.Limit +func (x *ProjectGrantUserGrantSearchRequest) GetLimit() uint64 { + if x != nil { + return x.Limit } return 0 } -func (m *ProjectGrantUserGrantSearchRequest) GetQueries() []*UserGrantSearchQuery { - if m != nil { - return m.Queries +func (x *ProjectGrantUserGrantSearchRequest) GetQueries() []*UserGrantSearchQuery { + if x != nil { + return x.Queries } return nil } 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[141] + 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[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 UserMembershipSearchResponse.ProtoReflect.Descriptor instead. func (*UserMembershipSearchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{141} + return file_management_proto_rawDescGZIP(), []int{141} } -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[142] + 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[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 UserMembershipSearchRequest.ProtoReflect.Descriptor instead. func (*UserMembershipSearchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{142} + return file_management_proto_rawDescGZIP(), []int{142} } -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[143] + 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[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 UserMembershipSearchQuery.ProtoReflect.Descriptor instead. func (*UserMembershipSearchQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{143} + return file_management_proto_rawDescGZIP(), []int{143} } -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[144] + 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[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 UserMembershipView.ProtoReflect.Descriptor instead. func (*UserMembershipView) Descriptor() ([]byte, []int) { - return fileDescriptor_edc174f991dc0a25, []int{144} + return file_management_proto_rawDescGZIP(), []int{144} } -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 "" } -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.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.ProjectType", ProjectType_name, ProjectType_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.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((*Email)(nil), "caos.zitadel.management.api.v1.Email") - 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((*User)(nil), "caos.zitadel.management.api.v1.User") - proto.RegisterType((*UserView)(nil), "caos.zitadel.management.api.v1.UserView") - 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((*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((*PasswordID)(nil), "caos.zitadel.management.api.v1.PasswordID") - proto.RegisterType((*PasswordRequest)(nil), "caos.zitadel.management.api.v1.PasswordRequest") - proto.RegisterType((*ResetPasswordRequest)(nil), "caos.zitadel.management.api.v1.ResetPasswordRequest") - 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((*OrgID)(nil), "caos.zitadel.management.api.v1.OrgID") - 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((*OrgDomains)(nil), "caos.zitadel.management.api.v1.OrgDomains") - 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((*UserGrantCreateBulk)(nil), "caos.zitadel.management.api.v1.UserGrantCreateBulk") - proto.RegisterType((*UserGrantCreate)(nil), "caos.zitadel.management.api.v1.UserGrantCreate") - proto.RegisterType((*UserGrantUpdateBulk)(nil), "caos.zitadel.management.api.v1.UserGrantUpdateBulk") - 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((*ProjectUserGrantSearchRequest)(nil), "caos.zitadel.management.api.v1.ProjectUserGrantSearchRequest") - proto.RegisterType((*ProjectGrantUserGrantSearchRequest)(nil), "caos.zitadel.management.api.v1.ProjectGrantUserGrantSearchRequest") - 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") +type IdpID struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` } -func init() { proto.RegisterFile("management.proto", fileDescriptor_edc174f991dc0a25) } +func (x *IdpID) Reset() { + *x = IdpID{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[145] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} -var fileDescriptor_edc174f991dc0a25 = []byte{ - // 9697 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x6b, 0x90, 0x23, 0xd7, - 0x75, 0x1e, 0x1b, 0xaf, 0xc1, 0x1c, 0xcc, 0x03, 0x73, 0xe7, 0x85, 0xc1, 0xec, 0x63, 0xd8, 0xdc, - 0xe5, 0xee, 0x82, 0xbb, 0x83, 0xdd, 0x25, 0xb9, 0x7c, 0x49, 0xa4, 0x30, 0x03, 0xec, 0x2c, 0xcc, - 0x99, 0xc1, 0x10, 0x98, 0xe5, 0x86, 0x4c, 0x4a, 0x50, 0x2f, 0xd0, 0x8b, 0x81, 0x17, 0x40, 0x83, - 0xdd, 0x8d, 0xa1, 0x46, 0x0c, 0x5d, 0xf1, 0x2a, 0x89, 0x1d, 0x29, 0x4e, 0x4a, 0x62, 0x24, 0xc7, - 0x8a, 0x6c, 0xc5, 0x56, 0xd9, 0x4a, 0xec, 0xa8, 0x54, 0xa9, 0x68, 0x13, 0x5a, 0x4a, 0xec, 0xaa, - 0x94, 0x9d, 0xb8, 0x9c, 0xe4, 0x87, 0x2a, 0x2e, 0xc7, 0x3f, 0xec, 0x72, 0xc5, 0x49, 0xa5, 0x12, - 0x57, 0x2a, 0x4e, 0xc5, 0x79, 0x54, 0x98, 0xaa, 0x24, 0x75, 0x1f, 0xdd, 0x7d, 0xbb, 0xd1, 0x8d, - 0xee, 0x9e, 0xd9, 0x97, 0x48, 0xfe, 0x9a, 0xc1, 0x7d, 0x7e, 0xe7, 0xdc, 0x73, 0xce, 0x3d, 0xf7, - 0xdc, 0xdb, 0xf7, 0x42, 0xba, 0x2b, 0xf5, 0xa4, 0x96, 0xdc, 0x95, 0x7b, 0xfa, 0x6a, 0x5f, 0x55, - 0x74, 0x05, 0x9d, 0x68, 0x48, 0x8a, 0xb6, 0xfa, 0xb9, 0xb6, 0x2e, 0x35, 0xe5, 0xce, 0x2a, 0x97, - 0x2d, 0xf5, 0xdb, 0xab, 0xfb, 0x97, 0xb2, 0xc7, 0x5a, 0x8a, 0xd2, 0xea, 0xc8, 0x79, 0xa9, 0xdf, - 0xce, 0x4b, 0xbd, 0x9e, 0xa2, 0x4b, 0x7a, 0x5b, 0xe9, 0x69, 0xb4, 0x76, 0x76, 0x99, 0xe5, 0x92, - 0x5f, 0x37, 0x07, 0xb7, 0xf2, 0x72, 0xb7, 0xaf, 0x1f, 0xb0, 0xcc, 0x63, 0xce, 0x4c, 0x4d, 0x57, - 0x07, 0x0d, 0xd6, 0x71, 0xf6, 0xa4, 0x33, 0x57, 0x6f, 0x77, 0x65, 0x4d, 0x97, 0xba, 0x7d, 0x56, - 0xe0, 0x3c, 0xf9, 0xd3, 0xb8, 0xd0, 0x92, 0x7b, 0x17, 0xb4, 0xb7, 0xa5, 0x56, 0x4b, 0x56, 0xf3, - 0x4a, 0x9f, 0xf4, 0xee, 0x82, 0x64, 0x71, 0x5f, 0xea, 0xb4, 0x9b, 0x92, 0x2e, 0xe7, 0x8d, 0x7f, - 0x58, 0x46, 0x46, 0x1a, 0xe8, 0x7b, 0xb4, 0x9e, 0x51, 0x9d, 0xe5, 0xcc, 0x92, 0x3f, 0xf9, 0xae, - 0xac, 0x69, 0x52, 0x8b, 0x15, 0x17, 0x77, 0x21, 0xf5, 0x26, 0x65, 0x46, 0x51, 0x69, 0x68, 0x68, - 0x01, 0x12, 0x6d, 0x4d, 0x1b, 0xc8, 0x6a, 0x46, 0x58, 0x11, 0xce, 0x8e, 0x57, 0xd9, 0x2f, 0x74, - 0x01, 0x50, 0xb3, 0xad, 0x35, 0x94, 0x7d, 0x59, 0x3d, 0xa8, 0xcb, 0xbd, 0x66, 0x5f, 0x69, 0xf7, - 0xf4, 0x4c, 0x84, 0x94, 0x99, 0x31, 0x73, 0x4a, 0x2c, 0x43, 0xfc, 0x8a, 0x00, 0xd1, 0xb2, 0xd4, - 0x45, 0x22, 0x4c, 0xb6, 0x3a, 0xca, 0x4d, 0xa9, 0x53, 0x57, 0xd4, 0x56, 0xbd, 0xdd, 0x64, 0xad, - 0xa6, 0x68, 0x62, 0x45, 0x6d, 0x95, 0x9b, 0xe8, 0x14, 0x4c, 0xb5, 0xa5, 0x6e, 0xbd, 0xaf, 0x2a, - 0x3f, 0x2a, 0x37, 0x74, 0x5c, 0x88, 0x36, 0x3b, 0xd1, 0x96, 0xba, 0x3b, 0x34, 0xb1, 0xdc, 0x44, - 0x27, 0x20, 0xa5, 0xc9, 0x7a, 0x7d, 0xd0, 0xaf, 0x37, 0x95, 0x9e, 0x9c, 0x89, 0xae, 0x08, 0x67, - 0x93, 0xd5, 0x71, 0x4d, 0xd6, 0xaf, 0xf7, 0x8b, 0x4a, 0x4f, 0xc6, 0xad, 0xb0, 0x7c, 0x4d, 0x97, - 0x54, 0x5d, 0x6e, 0x66, 0x62, 0xa4, 0xc8, 0x04, 0x29, 0x52, 0xa3, 0x69, 0xe2, 0x4f, 0x08, 0x30, - 0xb9, 0xbe, 0x27, 0xf5, 0x5a, 0x72, 0x55, 0x7e, 0x6b, 0x20, 0x6b, 0x3a, 0x9a, 0x82, 0x88, 0x09, - 0x2b, 0xd2, 0x6e, 0xa2, 0x79, 0x48, 0x68, 0x72, 0xc3, 0x42, 0x11, 0xd7, 0xe4, 0x46, 0xb9, 0x89, - 0xe6, 0x20, 0xde, 0x69, 0x77, 0xdb, 0x3a, 0xe9, 0x38, 0x56, 0xa5, 0x3f, 0xd0, 0x19, 0x98, 0xd6, - 0x70, 0x3b, 0xbd, 0x86, 0x5c, 0x57, 0x6e, 0xdd, 0xd2, 0x64, 0x9d, 0xf4, 0x1a, 0xab, 0x4e, 0x19, - 0xc9, 0x15, 0x92, 0x8a, 0xd2, 0x10, 0x95, 0xb4, 0x46, 0x26, 0x4e, 0x20, 0xe1, 0x7f, 0xc5, 0x03, - 0x18, 0xa3, 0x40, 0x34, 0xf4, 0x29, 0x18, 0x6b, 0xd0, 0x7f, 0x33, 0xc2, 0x4a, 0xf4, 0x6c, 0xea, - 0xf2, 0x93, 0xab, 0xa3, 0x85, 0x74, 0x95, 0x91, 0x60, 0x54, 0xc3, 0xa3, 0xc6, 0xba, 0x8f, 0x90, - 0xee, 0xd9, 0x2f, 0x77, 0xd4, 0xe2, 0x5f, 0x89, 0x40, 0x82, 0xb6, 0x80, 0x5e, 0x82, 0x14, 0x6d, - 0xa3, 0x8e, 0x25, 0x88, 0xb0, 0x21, 0x75, 0x39, 0xbb, 0x4a, 0x45, 0x75, 0xd5, 0x10, 0xd5, 0xd5, - 0x5d, 0x43, 0x54, 0xab, 0x40, 0x8b, 0x17, 0x25, 0x5d, 0x46, 0x45, 0x00, 0x79, 0x5f, 0xee, 0xe9, - 0x75, 0xfd, 0xa0, 0x2f, 0x93, 0x9e, 0x53, 0x97, 0x4f, 0xdb, 0xa1, 0x33, 0xbc, 0x9b, 0x4a, 0x43, - 0xea, 0xb4, 0x3f, 0x27, 0x37, 0xb7, 0xa8, 0xec, 0x55, 0xc7, 0x49, 0xc5, 0xdd, 0x83, 0xbe, 0x8c, - 0xb2, 0x90, 0x34, 0x98, 0xc5, 0x60, 0x9a, 0xbf, 0xd1, 0x32, 0x8c, 0xcb, 0xcd, 0xb6, 0xae, 0xa8, - 0x78, 0x3c, 0x62, 0x64, 0x3c, 0x92, 0x34, 0xa1, 0xdc, 0xc4, 0x44, 0xd3, 0xff, 0x09, 0x5b, 0xc7, - 0xab, 0xec, 0x17, 0x7a, 0x0a, 0x62, 0x4d, 0x49, 0x97, 0x32, 0x09, 0x02, 0x68, 0x71, 0x88, 0x98, - 0x1a, 0xd1, 0xca, 0x2a, 0x29, 0x24, 0xbe, 0x0c, 0x93, 0x85, 0x7e, 0xbf, 0xd3, 0x6e, 0x10, 0xe5, - 0x2a, 0x17, 0x87, 0xe4, 0xe1, 0x38, 0xc0, 0x90, 0x64, 0x8e, 0xf7, 0x0d, 0xb1, 0x14, 0x97, 0x61, - 0xdc, 0x90, 0xd1, 0xa1, 0xba, 0x62, 0x06, 0x12, 0xd7, 0x35, 0x59, 0x75, 0xc9, 0x39, 0x0e, 0xf1, - 0x52, 0x57, 0x6a, 0x77, 0xf0, 0x08, 0xc9, 0xf8, 0x1f, 0x96, 0x47, 0x7f, 0x88, 0x9f, 0x86, 0x99, - 0xeb, 0xbd, 0xf6, 0x5b, 0x03, 0x19, 0x57, 0x37, 0x24, 0xf5, 0x0c, 0x8c, 0x0f, 0x34, 0x59, 0xad, - 0xf7, 0xa4, 0x2e, 0x1d, 0xa9, 0xf1, 0x35, 0xf8, 0x60, 0x6d, 0x4c, 0x8d, 0xa7, 0x85, 0xcc, 0x6f, - 0x09, 0xd5, 0x24, 0xce, 0xdc, 0x96, 0xba, 0x32, 0x5a, 0x31, 0xda, 0x8c, 0x0c, 0x15, 0x62, 0xed, - 0x5f, 0x02, 0xc4, 0xb7, 0xaf, 0xf5, 0x95, 0x9e, 0x46, 0xb8, 0xdd, 0xd6, 0xea, 0x03, 0x92, 0x41, - 0x3a, 0x48, 0x56, 0x93, 0x6d, 0x8d, 0x16, 0x14, 0xdf, 0x8f, 0xc3, 0xcc, 0xba, 0x2a, 0x4b, 0xfa, - 0xe1, 0x30, 0x9d, 0x03, 0xb8, 0xd5, 0x56, 0x35, 0x9d, 0x96, 0x1c, 0x06, 0x36, 0x4e, 0x72, 0x49, - 0xd1, 0x33, 0x30, 0xde, 0x91, 0x8c, 0x92, 0xd1, 0xe1, 0x36, 0x71, 0x26, 0x29, 0x78, 0x1a, 0xc6, - 0x7b, 0xed, 0xc6, 0x6d, 0x5a, 0x90, 0x48, 0xc7, 0x5a, 0xf2, 0x83, 0xb5, 0xb8, 0x1a, 0x25, 0xc5, - 0x70, 0x16, 0x29, 0xf6, 0x1c, 0xa0, 0xbe, 0x2a, 0xdf, 0x92, 0x55, 0x55, 0x6e, 0xd6, 0x3b, 0x52, - 0xaf, 0x35, 0x90, 0x5a, 0x32, 0x95, 0x19, 0xae, 0xfc, 0x8c, 0x59, 0x66, 0x93, 0x15, 0x41, 0x2f, - 0x43, 0xa2, 0x25, 0xf7, 0x9a, 0xb2, 0x4a, 0x44, 0x69, 0xca, 0x5f, 0x2d, 0x37, 0x48, 0xe9, 0x2a, - 0xab, 0x85, 0x44, 0x63, 0x1c, 0xc6, 0x48, 0x5f, 0x13, 0x1f, 0xac, 0x8d, 0xab, 0x63, 0x84, 0x88, - 0xcf, 0x18, 0x23, 0x81, 0x72, 0x30, 0xd3, 0xd6, 0xea, 0xe4, 0xff, 0xfa, 0xbe, 0xac, 0xb6, 0x6f, - 0xb5, 0xe5, 0x66, 0x26, 0x49, 0x78, 0x3f, 0xdd, 0xd6, 0x88, 0x8c, 0xbc, 0xce, 0x92, 0xd1, 0x71, - 0x88, 0xf7, 0xf7, 0xb0, 0xf1, 0x1b, 0x27, 0xed, 0x8d, 0x7d, 0xb0, 0x16, 0x53, 0x23, 0x99, 0xb9, - 0x2a, 0x4d, 0x65, 0x4d, 0x91, 0xff, 0xad, 0xa6, 0xc0, 0x68, 0x6a, 0x07, 0xa7, 0x9b, 0x4d, 0x89, - 0x30, 0xd6, 0x50, 0x06, 0x3d, 0x5d, 0x3d, 0xc8, 0xa4, 0x1c, 0x8c, 0x30, 0x32, 0xd0, 0x29, 0x48, - 0x76, 0x88, 0xde, 0xea, 0x07, 0x99, 0x09, 0x27, 0x77, 0x8d, 0x1c, 0x74, 0x0e, 0x52, 0x7d, 0x45, - 0xd3, 0xa5, 0x4e, 0xbd, 0xa1, 0x34, 0xe5, 0xcc, 0xa4, 0xa3, 0x20, 0xd0, 0xcc, 0x75, 0xa5, 0x89, - 0xe5, 0x32, 0xa1, 0xca, 0xad, 0xb6, 0xd2, 0xcb, 0x4c, 0x39, 0x4a, 0xb1, 0x74, 0x94, 0x87, 0x29, - 0x4d, 0x57, 0x65, 0x59, 0xaf, 0x4b, 0xcd, 0xa6, 0x2a, 0x6b, 0x5a, 0x66, 0xda, 0x51, 0x72, 0x92, - 0xe6, 0x17, 0x68, 0x36, 0x7a, 0x02, 0x92, 0x7d, 0x49, 0xd3, 0xde, 0x56, 0xd4, 0x66, 0x26, 0xcd, - 0x73, 0xe5, 0x5a, 0xd5, 0xcc, 0x10, 0xdf, 0x4b, 0x40, 0x0c, 0x0b, 0xed, 0x90, 0x6e, 0xbf, 0x02, - 0x71, 0x4d, 0xc7, 0x76, 0x2f, 0x42, 0xc6, 0xf7, 0x9c, 0xdf, 0xf8, 0xe2, 0x46, 0x6a, 0xb8, 0x42, - 0x95, 0xd6, 0x43, 0xaf, 0xc0, 0x64, 0x03, 0xeb, 0x44, 0x5b, 0xe9, 0x51, 0x03, 0x1a, 0xf5, 0x35, - 0xa0, 0x13, 0x46, 0x05, 0x62, 0x42, 0x1d, 0xf6, 0x37, 0x16, 0xca, 0xfe, 0x2e, 0xf3, 0xca, 0x47, - 0x6d, 0xa0, 0xa5, 0x70, 0xc7, 0x6d, 0x0a, 0x97, 0xa0, 0x76, 0xcb, 0x52, 0xb2, 0x65, 0x5e, 0xc9, - 0xc6, 0x68, 0x5d, 0x53, 0xb1, 0x1e, 0x87, 0x89, 0x66, 0x5b, 0xeb, 0x77, 0xa4, 0x03, 0x9a, 0x9f, - 0xa4, 0x93, 0x36, 0x4b, 0x33, 0xea, 0x5b, 0xba, 0x37, 0x4e, 0xeb, 0x9b, 0x1a, 0x77, 0xc1, 0x55, - 0xe3, 0x80, 0x3a, 0x0b, 0xa3, 0xf4, 0x2c, 0x75, 0x28, 0x3d, 0x33, 0x6d, 0xe8, 0x04, 0x67, 0x43, - 0xdd, 0x35, 0x6b, 0xd2, 0x5d, 0xb3, 0xe6, 0x0c, 0xcd, 0x9a, 0xa2, 0x2d, 0x8c, 0x50, 0xa8, 0x69, - 0x77, 0x85, 0xca, 0x58, 0x0a, 0x45, 0xe4, 0xd0, 0x52, 0xa3, 0x2c, 0xa7, 0x46, 0x33, 0x8c, 0xd1, - 0x86, 0xf2, 0x9c, 0xb4, 0x2b, 0x0f, 0x22, 0xd9, 0xbc, 0xca, 0x2c, 0x98, 0x2a, 0x33, 0x4b, 0xe7, - 0x38, 0xa6, 0x28, 0xa7, 0x87, 0x14, 0x65, 0x8e, 0xe4, 0x3b, 0xd4, 0x83, 0x9f, 0x5b, 0xe7, 0xed, - 0x73, 0xab, 0xf8, 0x5e, 0x12, 0x92, 0x58, 0xa0, 0x5f, 0x6f, 0xcb, 0x6f, 0x7f, 0xd8, 0x34, 0xe3, - 0x05, 0x00, 0x22, 0xdd, 0x1d, 0xa5, 0xd5, 0xee, 0x11, 0xd5, 0x18, 0x5d, 0x97, 0xe8, 0xc2, 0x26, - 0x2e, 0x8c, 0x4a, 0x90, 0x36, 0x0c, 0x47, 0x9d, 0xb6, 0xd8, 0x64, 0x9e, 0xc4, 0xa8, 0x06, 0xa6, - 0x8d, 0x3a, 0xd4, 0xaf, 0x6a, 0xda, 0x75, 0x73, 0x6c, 0xa4, 0x6e, 0x26, 0x47, 0xea, 0xe6, 0xb8, - 0x8f, 0x6e, 0x82, 0x8f, 0x6e, 0xa6, 0x02, 0xe9, 0xe6, 0x84, 0xbf, 0x6e, 0x4e, 0x1e, 0x4d, 0x37, - 0xa7, 0x7c, 0x75, 0x73, 0xda, 0x47, 0x37, 0xd3, 0xbe, 0xba, 0x39, 0xe3, 0xab, 0x9b, 0xc8, 0x5b, - 0x37, 0x67, 0x47, 0xeb, 0xe6, 0xdc, 0x08, 0xdd, 0x9c, 0xf7, 0xd1, 0xcd, 0x05, 0x3f, 0xdd, 0x5c, - 0x74, 0xf8, 0xbd, 0xa7, 0x61, 0x4a, 0x95, 0x35, 0x65, 0xa0, 0xe2, 0x75, 0xc5, 0xdb, 0x3d, 0x59, - 0xcd, 0x64, 0x68, 0x13, 0x46, 0x6a, 0x05, 0x27, 0x62, 0x88, 0x44, 0xc2, 0xc9, 0x48, 0x6b, 0x99, - 0xa5, 0x95, 0x28, 0x86, 0x48, 0x92, 0xf0, 0x58, 0x6b, 0xe8, 0x22, 0xcc, 0x71, 0x83, 0x6d, 0x16, - 0xcd, 0x64, 0x49, 0x6b, 0x96, 0x20, 0x6c, 0x1a, 0x55, 0xc4, 0xff, 0x2b, 0xc0, 0x0c, 0x51, 0x66, - 0x59, 0x52, 0x1b, 0x7b, 0x86, 0x9b, 0x67, 0xad, 0x2f, 0x04, 0xf7, 0xf5, 0x45, 0x84, 0x5f, 0x15, - 0x7d, 0x1a, 0xa6, 0x34, 0x45, 0xd5, 0xdb, 0xbd, 0x56, 0xbd, 0xa1, 0x74, 0x06, 0xdd, 0x1e, 0x51, - 0xfe, 0xa9, 0xcb, 0x17, 0x02, 0x59, 0x11, 0xd2, 0xf1, 0xab, 0xf2, 0x01, 0x99, 0xf4, 0xef, 0x08, - 0x91, 0x95, 0xc7, 0xaa, 0x93, 0xac, 0xb9, 0x75, 0xd2, 0x9a, 0xb1, 0x98, 0x8a, 0x99, 0x8b, 0x29, - 0x54, 0x86, 0xb1, 0xb7, 0x06, 0xb2, 0xda, 0x96, 0xb5, 0x4c, 0x9c, 0xac, 0xa0, 0xf2, 0xc1, 0xbb, - 0x7a, 0x6d, 0x20, 0xab, 0x07, 0x55, 0xa3, 0xbe, 0xf8, 0xbe, 0x00, 0xd3, 0x8e, 0x4c, 0x54, 0x86, - 0xe8, 0x6d, 0xf9, 0x80, 0xd0, 0x7e, 0x04, 0x2a, 0x70, 0x1b, 0xa8, 0x08, 0x89, 0xae, 0xac, 0xef, - 0x29, 0x4d, 0x66, 0x59, 0xcf, 0xfb, 0xb5, 0x46, 0x5b, 0xda, 0x22, 0x75, 0xaa, 0xac, 0x2e, 0xe6, - 0xfb, 0xbe, 0xd4, 0x19, 0x30, 0xf7, 0xb8, 0x4a, 0x7f, 0x88, 0x3f, 0x13, 0x01, 0xc4, 0x8f, 0x1d, - 0x73, 0xeb, 0xc3, 0x0d, 0xde, 0xe3, 0x30, 0xa1, 0x2b, 0x58, 0xea, 0x55, 0x59, 0x1b, 0x74, 0x8c, - 0x95, 0x63, 0x8a, 0xa4, 0x55, 0x49, 0x12, 0xfa, 0x14, 0x16, 0x7c, 0x92, 0x19, 0x23, 0xcc, 0x3e, - 0x1b, 0x84, 0x23, 0x78, 0x9a, 0xa9, 0xb2, 0x7a, 0xd4, 0x08, 0x29, 0x0d, 0x59, 0xd3, 0xe4, 0x66, - 0xdd, 0xd4, 0x82, 0x38, 0xe9, 0x6a, 0xc6, 0xcc, 0xa9, 0x19, 0xea, 0x50, 0x80, 0xa9, 0xfd, 0xb6, - 0xfc, 0x76, 0xdd, 0x8c, 0x98, 0x04, 0xb0, 0xc8, 0x93, 0xb8, 0x86, 0xf9, 0x53, 0xfc, 0xf5, 0x28, - 0xa4, 0x30, 0x8c, 0x1d, 0x55, 0xb9, 0xd5, 0xee, 0xc8, 0x6e, 0xcb, 0x3c, 0xe7, 0xfa, 0xc4, 0xd3, - 0x24, 0x47, 0x1d, 0x26, 0x79, 0x79, 0x68, 0x1d, 0xc2, 0xd9, 0x5b, 0xa7, 0xbd, 0x8e, 0x0f, 0xdb, - 0x6b, 0x77, 0x93, 0x9c, 0xf0, 0x37, 0xc9, 0x63, 0x87, 0x32, 0xc9, 0xb6, 0xa9, 0x29, 0xe9, 0x98, - 0x9a, 0x78, 0xab, 0x34, 0xee, 0xb0, 0x4a, 0x43, 0x73, 0x3a, 0x1c, 0x6d, 0x4e, 0x4f, 0x85, 0x99, - 0xd3, 0xc5, 0xaf, 0xc6, 0xa8, 0x62, 0xb2, 0x11, 0x74, 0x75, 0x5b, 0x3e, 0x1e, 0xc5, 0x47, 0x7c, - 0x14, 0x9d, 0x53, 0xd6, 0x44, 0xe0, 0x29, 0x6b, 0xd9, 0x73, 0xca, 0xfa, 0xb9, 0x08, 0x64, 0xae, - 0xf7, 0x9b, 0x2c, 0x32, 0xc1, 0xc4, 0xc3, 0x2b, 0xbc, 0xf7, 0x11, 0x8c, 0x43, 0x88, 0xff, 0x4b, - 0x80, 0x71, 0xcc, 0x1a, 0x1a, 0x71, 0x72, 0x72, 0x64, 0xce, 0x16, 0x2d, 0x1a, 0xe9, 0xa1, 0x45, - 0xdd, 0x3d, 0x34, 0x5e, 0xda, 0x62, 0x7e, 0xd2, 0x16, 0x3f, 0x9a, 0xb4, 0x25, 0x42, 0xd9, 0x8c, - 0xff, 0x23, 0xc0, 0xa4, 0x49, 0xb9, 0xab, 0xc5, 0xf8, 0x30, 0x53, 0xbf, 0x0f, 0x0b, 0x96, 0x5e, - 0x10, 0xd0, 0x5e, 0x5a, 0xe1, 0x1b, 0x31, 0x0c, 0xc3, 0x11, 0x53, 0xde, 0x88, 0x17, 0xee, 0xc6, - 0x71, 0xea, 0xcf, 0x47, 0x7c, 0xfd, 0xf9, 0xa8, 0xbb, 0x3f, 0xcf, 0x73, 0x3c, 0xee, 0xc7, 0xf1, - 0xc4, 0xd1, 0x38, 0x3e, 0x76, 0x28, 0x79, 0xa3, 0x78, 0x3d, 0xe4, 0xed, 0x43, 0x4b, 0xfd, 0x80, - 0x97, 0x37, 0x02, 0xda, 0x4b, 0xde, 0x4e, 0xda, 0xb8, 0xb0, 0x36, 0xfe, 0xc1, 0x5a, 0x42, 0x8d, - 0xa5, 0x05, 0x9f, 0x58, 0xa6, 0x3b, 0x43, 0xc4, 0x7f, 0x15, 0xa1, 0xae, 0x9d, 0xb1, 0xb0, 0x72, - 0x76, 0xc6, 0x2d, 0xff, 0x22, 0xde, 0xcb, 0xbf, 0xe8, 0xe8, 0xe5, 0x5f, 0x6c, 0xc4, 0xf2, 0x2f, - 0xee, 0xb3, 0xfc, 0x4b, 0xf8, 0x2d, 0xff, 0xc6, 0xfc, 0x86, 0x31, 0x79, 0xb4, 0x61, 0x1c, 0x0f, - 0x35, 0x8c, 0x3f, 0x88, 0x50, 0x47, 0x8b, 0x21, 0x75, 0x15, 0xe3, 0x8f, 0x79, 0x1a, 0x8e, 0xa7, - 0xff, 0x4d, 0xe0, 0x7d, 0x14, 0x86, 0xd7, 0x4b, 0x3b, 0x44, 0x07, 0x73, 0xfd, 0x82, 0xf3, 0xd1, - 0xa0, 0xc1, 0xf9, 0x58, 0xa0, 0xe0, 0x7c, 0x3c, 0x70, 0x70, 0x3e, 0x31, 0x32, 0x38, 0x2f, 0x56, - 0x60, 0x62, 0x6b, 0xd0, 0xd1, 0xdb, 0x57, 0xa5, 0x86, 0xae, 0xa8, 0x1a, 0x7a, 0x05, 0x62, 0xdd, - 0x5b, 0x92, 0xb1, 0xc9, 0xf9, 0x94, 0x9f, 0x17, 0xc3, 0xd5, 0xad, 0x92, 0x8a, 0xe2, 0x17, 0x04, - 0x48, 0x71, 0xa9, 0xe8, 0x25, 0x88, 0x91, 0xad, 0x47, 0xba, 0x30, 0x3f, 0xe3, 0xdb, 0xe0, 0x2d, - 0x69, 0xf7, 0xa0, 0x2f, 0x57, 0x49, 0x25, 0xf4, 0xb2, 0x3d, 0xc4, 0xe9, 0xbb, 0x88, 0xdd, 0xba, - 0x5a, 0xe0, 0x23, 0x9c, 0xe2, 0x31, 0x80, 0x1d, 0x16, 0xf4, 0x73, 0xd9, 0xe0, 0xbb, 0x06, 0xd3, - 0x46, 0xae, 0xd7, 0x30, 0x9f, 0xe6, 0xf6, 0x2e, 0x1c, 0x76, 0x90, 0xdf, 0xbd, 0x78, 0x12, 0xe6, - 0xaa, 0xb2, 0x26, 0xeb, 0x3e, 0xcd, 0x89, 0xfb, 0x70, 0xa2, 0x66, 0x95, 0xda, 0x56, 0xf4, 0xf6, - 0x2d, 0xb6, 0xab, 0xe9, 0x05, 0xa0, 0xc8, 0xd8, 0x47, 0x19, 0x70, 0xd1, 0x8f, 0x01, 0x7c, 0x93, - 0x16, 0x1f, 0xc5, 0xf3, 0x90, 0x35, 0x3a, 0x5d, 0x57, 0xba, 0xfd, 0x8e, 0xfc, 0xd9, 0xb6, 0x7e, - 0xb0, 0xa3, 0x74, 0xda, 0x8d, 0x03, 0x17, 0xbe, 0xfc, 0x49, 0x14, 0x32, 0x5e, 0xc5, 0x5d, 0xdc, - 0x92, 0x54, 0x53, 0xd6, 0x1a, 0x6a, 0x9b, 0x1c, 0x63, 0x60, 0x96, 0x86, 0x4f, 0x42, 0x05, 0x63, - 0x10, 0x69, 0x84, 0xc9, 0x57, 0xa6, 0x68, 0x47, 0xa3, 0x23, 0xd5, 0xb1, 0xa3, 0x19, 0x86, 0x78, - 0xa8, 0xf5, 0xd0, 0x71, 0x80, 0x6e, 0xbb, 0x57, 0xef, 0xc8, 0xbd, 0x96, 0xbe, 0x47, 0x14, 0x2a, - 0x56, 0x1d, 0xef, 0xb6, 0x7b, 0x9b, 0x24, 0x01, 0x3d, 0x01, 0x93, 0x7b, 0x92, 0x56, 0xef, 0x28, - 0x6f, 0xcb, 0x6a, 0x43, 0xd2, 0xa8, 0x59, 0x4b, 0x56, 0x27, 0xf6, 0x24, 0x6d, 0xd3, 0x48, 0x33, - 0x0a, 0x0d, 0xfa, 0x7d, 0x56, 0x28, 0x69, 0x16, 0xba, 0x6e, 0xa4, 0xe1, 0x8e, 0x70, 0xa1, 0xde, - 0xa0, 0x7b, 0x53, 0x56, 0x89, 0xf5, 0x4a, 0x56, 0xc7, 0xf7, 0x24, 0x6d, 0x9b, 0x24, 0x18, 0xd9, - 0xda, 0x41, 0xf7, 0xa6, 0xd2, 0x61, 0xbb, 0x86, 0x38, 0xbb, 0x46, 0x12, 0x6c, 0x96, 0x35, 0xe5, - 0xb0, 0xac, 0xc7, 0x01, 0xda, 0x5a, 0xbd, 0x29, 0xdf, 0x92, 0x06, 0x1d, 0x9d, 0x44, 0x92, 0x93, - 0xd5, 0xf1, 0xb6, 0x56, 0xa4, 0x09, 0xe2, 0x9f, 0x0a, 0x70, 0xc2, 0x6b, 0xc4, 0xe9, 0x86, 0x32, - 0xca, 0xd9, 0xc7, 0x59, 0xe0, 0xcd, 0xca, 0x7f, 0x8f, 0xda, 0x47, 0xdc, 0xce, 0xb0, 0x88, 0x2f, - 0xc3, 0xa2, 0x41, 0x18, 0x16, 0xf3, 0x65, 0x58, 0x7c, 0x34, 0xc3, 0x12, 0x0e, 0x86, 0x89, 0x9f, - 0x8f, 0x78, 0x53, 0x4d, 0x27, 0x82, 0x21, 0x69, 0xcf, 0xb9, 0x48, 0x7b, 0x30, 0x2e, 0x44, 0x7d, - 0xb9, 0x10, 0x0b, 0xc2, 0x85, 0xb8, 0x2f, 0x17, 0x12, 0xa3, 0xb9, 0x30, 0xe6, 0xe4, 0xc2, 0x69, - 0x98, 0x35, 0x98, 0x50, 0x68, 0xc9, 0x9e, 0x46, 0xe1, 0xa7, 0xa2, 0x30, 0x33, 0x54, 0xee, 0xa3, - 0x68, 0x0d, 0x56, 0x60, 0xa2, 0x2b, 0x7d, 0xb6, 0x2e, 0x91, 0xda, 0x07, 0x1a, 0xb3, 0x07, 0xd0, - 0x95, 0x3e, 0x5b, 0xc0, 0x25, 0x0e, 0x34, 0x74, 0x16, 0xd2, 0xf2, 0x67, 0xfb, 0x6d, 0x55, 0xae, - 0xbf, 0x2d, 0xa9, 0x3d, 0x5a, 0x8a, 0xba, 0x3a, 0x53, 0x34, 0xfd, 0x86, 0xa4, 0xf6, 0x48, 0x49, - 0x5e, 0x65, 0x93, 0x23, 0x55, 0x76, 0xdc, 0xa9, 0xb2, 0x5f, 0x12, 0x60, 0x71, 0x68, 0x3c, 0x0e, - 0xa1, 0xab, 0x4e, 0x72, 0x22, 0x81, 0xc8, 0x89, 0xba, 0x91, 0x23, 0xfe, 0xbc, 0x1b, 0xa6, 0x7b, - 0xa0, 0x49, 0x4e, 0x8c, 0xd1, 0x40, 0x18, 0x63, 0xae, 0x18, 0xcf, 0x59, 0x10, 0x37, 0x95, 0xc6, - 0x6d, 0x65, 0xa0, 0x7b, 0x8a, 0xfc, 0xcf, 0x46, 0x61, 0xde, 0xb5, 0xec, 0x47, 0x51, 0xec, 0x1f, - 0x67, 0x63, 0xa0, 0xeb, 0x72, 0xb7, 0xaf, 0x1b, 0x62, 0x9f, 0xc2, 0x63, 0xc0, 0x92, 0xd0, 0xd3, - 0xb0, 0xa0, 0xed, 0x29, 0x6f, 0xd7, 0x3b, 0x4a, 0xe3, 0x76, 0x5d, 0x19, 0xe8, 0xf5, 0x5b, 0x52, - 0xbb, 0x33, 0x50, 0x65, 0x8d, 0x19, 0x9d, 0x59, 0x9c, 0x8b, 0x19, 0x59, 0x19, 0xe8, 0x57, 0x59, - 0xd6, 0x51, 0x54, 0xe0, 0xe7, 0x05, 0x58, 0x76, 0x1d, 0x9f, 0x43, 0xa8, 0x81, 0x93, 0xbc, 0x48, - 0x18, 0xf2, 0xa2, 0x9e, 0xe4, 0x89, 0x7f, 0xdf, 0x0b, 0xe3, 0x3d, 0x50, 0x0b, 0x27, 0xe6, 0x68, - 0x18, 0xcc, 0x31, 0x6f, 0xcc, 0x7f, 0x4b, 0x80, 0x89, 0x8a, 0xda, 0x2a, 0x4b, 0x5d, 0x26, 0xee, - 0xf3, 0x90, 0xb0, 0x1d, 0x0d, 0x8d, 0x2b, 0xe4, 0x50, 0xa8, 0xbf, 0xd4, 0x3f, 0x0f, 0x4b, 0x24, - 0x00, 0x4e, 0x63, 0xc4, 0xdd, 0x81, 0xa6, 0xd7, 0x6f, 0xca, 0xf5, 0xa6, 0xd2, 0x95, 0xda, 0x3d, - 0xc6, 0xb5, 0x79, 0x5c, 0x80, 0x04, 0x8a, 0xb7, 0x06, 0x9a, 0xbe, 0x26, 0x17, 0x49, 0x26, 0x5e, - 0xbc, 0x1a, 0xe3, 0x4e, 0x91, 0x1a, 0x3f, 0xc5, 0x45, 0x88, 0x63, 0x70, 0xc3, 0xea, 0xfa, 0x24, - 0xa4, 0x2b, 0x6a, 0x8b, 0x8e, 0xbd, 0xe1, 0x4e, 0x23, 0x88, 0x59, 0xc7, 0xde, 0xaa, 0xe4, 0x7f, - 0x3c, 0xed, 0x47, 0x2b, 0x6a, 0x6b, 0x88, 0xf5, 0x61, 0x17, 0x1b, 0x15, 0xb5, 0xf5, 0x08, 0x1d, - 0xa7, 0x30, 0x28, 0x8d, 0x5b, 0x94, 0xda, 0x74, 0x2b, 0xe1, 0x38, 0x5a, 0xf2, 0x13, 0x11, 0x18, - 0xab, 0xa8, 0x2d, 0xd7, 0xc8, 0xc1, 0x47, 0x8b, 0x13, 0x2b, 0x90, 0x60, 0x42, 0xb7, 0x00, 0x09, - 0x26, 0x9b, 0xec, 0x60, 0x35, 0xfd, 0x25, 0xbe, 0x06, 0x50, 0x51, 0x5b, 0xb4, 0x90, 0x86, 0xd6, - 0x61, 0x8c, 0xa6, 0x1b, 0xab, 0xe4, 0x73, 0x01, 0xf8, 0x43, 0x2b, 0x57, 0x8d, 0x9a, 0xe2, 0x17, - 0x22, 0x30, 0x6e, 0x26, 0x7b, 0x29, 0xd8, 0x10, 0x1f, 0x23, 0x47, 0xe3, 0x63, 0x34, 0x14, 0x1f, - 0x2d, 0x6e, 0xc4, 0x78, 0x6e, 0x60, 0x5e, 0x9a, 0xe1, 0x3e, 0xea, 0x8e, 0x9a, 0xbf, 0xb1, 0xda, - 0xf6, 0xd5, 0x76, 0x57, 0x52, 0x0f, 0x98, 0x1f, 0x6a, 0xfc, 0x1c, 0x15, 0xf7, 0x11, 0xff, 0x6b, - 0x04, 0x26, 0x4d, 0x66, 0x10, 0x89, 0xfc, 0x68, 0x33, 0x04, 0x7d, 0x06, 0xa6, 0xd9, 0x17, 0x03, - 0x98, 0x52, 0x12, 0x00, 0x48, 0x12, 0x55, 0x7c, 0x2e, 0xb0, 0xa8, 0xbd, 0x6e, 0xd6, 0x27, 0x71, - 0x80, 0xa9, 0x7d, 0xdb, 0x6f, 0xf1, 0x05, 0x98, 0x2d, 0x34, 0x9b, 0x96, 0x60, 0x32, 0x7b, 0x29, - 0xda, 0x35, 0xc0, 0xb6, 0xcb, 0x60, 0x68, 0xc3, 0x4f, 0x0b, 0x90, 0x75, 0xe9, 0x26, 0x44, 0x13, - 0xe8, 0xba, 0x2d, 0xaa, 0x71, 0x58, 0xa2, 0xb8, 0x73, 0x1b, 0x34, 0xcc, 0x51, 0x82, 0x65, 0x57, - 0x60, 0xec, 0x90, 0xc5, 0x1c, 0xc4, 0x75, 0xe5, 0xb6, 0x6c, 0x68, 0x37, 0xfd, 0x81, 0xd2, 0x10, - 0x1d, 0xa8, 0xc6, 0xde, 0x12, 0xfe, 0x57, 0x7c, 0x19, 0x32, 0xac, 0xb6, 0x7c, 0x28, 0x06, 0x7d, - 0x12, 0x16, 0x77, 0xe8, 0x20, 0x1f, 0xaa, 0xfa, 0x27, 0x60, 0xa1, 0x2a, 0x77, 0x95, 0xfd, 0xc3, - 0x75, 0xfe, 0xcd, 0x08, 0x2c, 0x9a, 0x15, 0xef, 0xf7, 0x29, 0x93, 0x92, 0xe3, 0x94, 0xc9, 0x85, - 0xe0, 0x23, 0xf9, 0x70, 0x8f, 0x9a, 0x7c, 0x55, 0x80, 0x85, 0x21, 0x2e, 0x1d, 0xe6, 0x1c, 0xd5, - 0xb6, 0x75, 0xaa, 0x29, 0x4a, 0x58, 0xf0, 0x4c, 0x60, 0x16, 0xb8, 0x1e, 0x6d, 0xfa, 0xa7, 0x02, - 0xcc, 0xb9, 0x95, 0x40, 0xdb, 0xfc, 0xf9, 0xa6, 0xcb, 0x21, 0x3b, 0x79, 0xc0, 0x87, 0x9c, 0x9e, - 0x84, 0xa9, 0x8a, 0xda, 0xda, 0x92, 0xbb, 0x37, 0x65, 0xb5, 0xaa, 0x74, 0x64, 0x0d, 0x97, 0x53, - 0xf1, 0x3f, 0x64, 0xc6, 0x1c, 0xaf, 0xd2, 0x1f, 0xe2, 0xef, 0x08, 0x64, 0x12, 0xa4, 0x05, 0xd1, - 0x22, 0x8c, 0x11, 0x67, 0xd1, 0x34, 0xfa, 0x09, 0xfc, 0x93, 0x7e, 0xd7, 0x43, 0x2b, 0x47, 0xb8, - 0xca, 0x47, 0x33, 0xe5, 0x47, 0x5e, 0x4b, 0x8d, 0xd8, 0xe1, 0x13, 0x8b, 0x86, 0x6d, 0x65, 0x1c, - 0x60, 0x82, 0x15, 0x8e, 0x3e, 0x71, 0x03, 0x16, 0xe8, 0x41, 0xd5, 0xa3, 0x36, 0x74, 0x89, 0xb3, - 0x27, 0xc1, 0x1a, 0x32, 0x8c, 0x08, 0x2d, 0xfd, 0x28, 0x1a, 0x11, 0x8a, 0xec, 0x21, 0x1b, 0x91, - 0x3f, 0xa6, 0x6e, 0x8b, 0x85, 0xe5, 0x43, 0x23, 0xc2, 0xf6, 0x93, 0x4b, 0x09, 0xc7, 0xc9, 0xa5, - 0x39, 0xdb, 0x37, 0x33, 0xc6, 0xe9, 0x83, 0xfb, 0x7b, 0x60, 0xda, 0xb0, 0xd8, 0x76, 0x91, 0x7c, - 0x60, 0x16, 0x9b, 0xef, 0xd6, 0xdd, 0x62, 0x0f, 0x95, 0x08, 0x6f, 0xb1, 0xf9, 0x26, 0x1e, 0xb0, - 0xc5, 0xbe, 0x02, 0x73, 0xec, 0x13, 0x39, 0xfb, 0xfa, 0xf9, 0x04, 0xbf, 0x7e, 0xb6, 0xf9, 0x1b, - 0x74, 0x2d, 0x7d, 0xd5, 0xac, 0x47, 0xe3, 0x19, 0x5e, 0xdb, 0x58, 0x46, 0x3b, 0x11, 0x8f, 0x76, - 0xbe, 0x11, 0x81, 0x79, 0xd6, 0xd0, 0xfd, 0x36, 0x37, 0xeb, 0x0e, 0x73, 0xe3, 0x1f, 0x8a, 0xa3, - 0xb8, 0x1e, 0xb2, 0xb1, 0xf9, 0xcd, 0x08, 0xa4, 0x38, 0x24, 0x8e, 0x6f, 0x1e, 0x05, 0xc7, 0x37, - 0x8f, 0xe6, 0x22, 0x38, 0xc2, 0x2d, 0x82, 0xd7, 0xec, 0x31, 0xc8, 0xf3, 0x01, 0x09, 0xb7, 0x2d, - 0xed, 0x8f, 0xb4, 0x32, 0x3f, 0xf2, 0x51, 0xab, 0xe1, 0x33, 0xf7, 0x09, 0xb7, 0x33, 0xf7, 0xa3, - 0xd6, 0x9a, 0x5f, 0x16, 0x4c, 0x91, 0x3d, 0x8a, 0x15, 0xd9, 0x74, 0x5a, 0x91, 0xcb, 0x41, 0xb9, - 0xe9, 0x66, 0x43, 0x7e, 0x4d, 0x00, 0x34, 0x9c, 0x8f, 0x36, 0x79, 0x0b, 0x72, 0x31, 0x54, 0x07, - 0x0f, 0xd8, 0x7e, 0x54, 0x20, 0xc9, 0xba, 0xd7, 0xd0, 0x3a, 0x24, 0x99, 0x1c, 0x1a, 0x01, 0x92, - 0x33, 0x01, 0xa1, 0x57, 0xcd, 0x8a, 0xe2, 0x17, 0x23, 0x30, 0xc6, 0x52, 0x87, 0x8c, 0xc9, 0x87, - 0x53, 0xb6, 0x47, 0x85, 0xa8, 0x72, 0xa6, 0x78, 0xf8, 0x3b, 0xd5, 0xbf, 0x27, 0xc0, 0xa4, 0xad, - 0xf0, 0x87, 0xc7, 0xb1, 0x7e, 0x0d, 0xd2, 0x36, 0xca, 0x0a, 0xcd, 0xe6, 0x90, 0x70, 0x70, 0xc4, - 0x46, 0xdc, 0x89, 0x8d, 0xf2, 0xdc, 0xda, 0x85, 0x59, 0x5b, 0x93, 0xec, 0x9b, 0xfb, 0x23, 0xb6, - 0xfa, 0xb2, 0xa3, 0x55, 0xea, 0x7f, 0x07, 0x6e, 0x55, 0xbc, 0x0d, 0x53, 0x86, 0x4a, 0x28, 0x1d, - 0xd9, 0x8d, 0xcc, 0x34, 0x35, 0x0d, 0x2c, 0x6a, 0x81, 0xd5, 0xdb, 0xe9, 0x43, 0x45, 0x87, 0x8f, - 0xbf, 0xcf, 0x41, 0xbc, 0xa5, 0x2a, 0x83, 0x3e, 0x8b, 0x5f, 0xd1, 0x1f, 0xe2, 0x81, 0x29, 0x5c, - 0xac, 0xb3, 0xb5, 0x41, 0xe7, 0xf6, 0x50, 0x87, 0x35, 0x98, 0x34, 0xe6, 0x1b, 0x4b, 0x66, 0x52, - 0x97, 0x57, 0x83, 0xaa, 0x36, 0x6d, 0xba, 0x3a, 0xd1, 0xb7, 0x7e, 0x6b, 0x62, 0x0f, 0x66, 0xb8, - 0x7c, 0x0f, 0xde, 0xdf, 0x43, 0x52, 0xbf, 0x64, 0x4d, 0xa2, 0xb8, 0x43, 0xbf, 0x49, 0xf4, 0x50, - 0x3d, 0x3f, 0xdc, 0x6d, 0x3a, 0x93, 0xee, 0x04, 0x47, 0xf7, 0xc8, 0x09, 0xf1, 0xf7, 0x04, 0x98, - 0xe6, 0x78, 0x12, 0xc4, 0xb9, 0x78, 0x38, 0x7c, 0x09, 0x4f, 0xda, 0xb3, 0x36, 0xf1, 0xf2, 0x50, - 0xc2, 0x21, 0x62, 0xc4, 0x6f, 0x45, 0x60, 0x89, 0xab, 0x77, 0xbf, 0x1d, 0xd2, 0x0d, 0x87, 0x43, - 0x9a, 0x0f, 0xa1, 0x52, 0x0f, 0xd9, 0x29, 0xfd, 0x55, 0x01, 0x32, 0x2e, 0x9c, 0xa2, 0x0e, 0x95, - 0x8f, 0x10, 0x85, 0xba, 0x0f, 0x05, 0xed, 0x58, 0xfe, 0x16, 0xe5, 0xd2, 0x95, 0x10, 0x5c, 0x72, - 0xf5, 0xb9, 0xfe, 0x99, 0x00, 0x0b, 0xee, 0x65, 0xd0, 0x0e, 0xef, 0x77, 0x3d, 0x13, 0xba, 0xa3, - 0x07, 0xec, 0x7b, 0xfd, 0x97, 0x88, 0x29, 0xe6, 0x41, 0x42, 0x11, 0xb6, 0xa5, 0x7d, 0xc4, 0x6b, - 0x69, 0x1f, 0xf5, 0x5e, 0xda, 0xc7, 0x46, 0x2e, 0xed, 0xe3, 0x8e, 0xa5, 0xbd, 0x39, 0x41, 0x26, - 0x46, 0xf8, 0x18, 0x63, 0x47, 0xf3, 0x31, 0x92, 0x47, 0xf0, 0x31, 0xc0, 0x11, 0xf9, 0x70, 0x5a, - 0xb2, 0xd4, 0x70, 0x28, 0xe2, 0x57, 0x22, 0xb0, 0x6c, 0x63, 0xf8, 0xfd, 0xb6, 0x10, 0x65, 0x87, - 0x85, 0xb8, 0x14, 0x50, 0x24, 0x1f, 0x89, 0x28, 0xd9, 0x3f, 0x11, 0x20, 0xeb, 0xca, 0xad, 0xfb, - 0x60, 0x25, 0xaa, 0x4e, 0x2b, 0xf1, 0x7c, 0x28, 0x4e, 0xb9, 0xda, 0x89, 0xdf, 0xb6, 0x6c, 0xdc, - 0x70, 0x8c, 0xa7, 0xca, 0x5b, 0x8a, 0x2b, 0x87, 0xe8, 0xec, 0x01, 0xdb, 0x8a, 0xff, 0x18, 0x81, - 0x14, 0x77, 0x97, 0xd2, 0x91, 0x77, 0xfe, 0x0b, 0xfd, 0xfe, 0x23, 0xbe, 0xf3, 0xbf, 0x05, 0x29, - 0xa5, 0xdd, 0x6c, 0xd4, 0x1b, 0x4a, 0xef, 0x56, 0xbb, 0xc5, 0x4c, 0x45, 0xce, 0x37, 0x1a, 0x57, - 0x2e, 0xae, 0xaf, 0x93, 0x1a, 0xd7, 0x1e, 0xab, 0x02, 0x6e, 0x80, 0xfe, 0x1a, 0xf5, 0xd5, 0xe6, - 0xda, 0x04, 0x80, 0xd4, 0xef, 0xb3, 0x9e, 0xc4, 0x9b, 0x30, 0xc3, 0x71, 0x9a, 0x1d, 0xf7, 0xf1, - 0x91, 0x76, 0x3a, 0x1c, 0x91, 0xa1, 0xb0, 0x59, 0xdc, 0x23, 0x6c, 0xf6, 0x3f, 0xe3, 0x00, 0x16, - 0x54, 0xf4, 0x04, 0x4c, 0xaa, 0x72, 0xb3, 0xad, 0xe2, 0xe6, 0x07, 0x6a, 0xdb, 0x58, 0x18, 0x4e, - 0x18, 0x89, 0xd7, 0xd5, 0xb6, 0x86, 0x6e, 0x90, 0x18, 0x0a, 0xb1, 0x54, 0x64, 0x67, 0x99, 0x7a, - 0xf2, 0x01, 0xe2, 0x0b, 0xb8, 0x23, 0xc3, 0xc6, 0x91, 0x3d, 0xe5, 0x49, 0x95, 0xfb, 0xa5, 0xa1, - 0x6d, 0x48, 0xb5, 0x54, 0x89, 0x5d, 0x35, 0x46, 0x17, 0x44, 0x01, 0xbe, 0xc4, 0xc7, 0xad, 0x6e, - 0xe0, 0x6a, 0xa4, 0x49, 0x68, 0x19, 0xff, 0x6a, 0xe8, 0xd3, 0x90, 0x96, 0x2c, 0x06, 0xd2, 0x5d, - 0xf0, 0x18, 0x11, 0xcb, 0xa7, 0x83, 0x34, 0xca, 0x31, 0x9f, 0x34, 0x3d, 0x2d, 0xd9, 0x13, 0xf0, - 0xb4, 0xd5, 0xe8, 0xb4, 0xe5, 0x1e, 0x19, 0x0a, 0x36, 0x6d, 0xd1, 0x84, 0x72, 0x13, 0xb3, 0x92, - 0x65, 0x6a, 0x72, 0x43, 0x95, 0x75, 0xe6, 0x74, 0x4e, 0xd0, 0xc4, 0x1a, 0x49, 0x43, 0x7f, 0x0e, - 0xd2, 0xd2, 0x40, 0xdf, 0xab, 0x53, 0x95, 0xa3, 0x08, 0xc7, 0x02, 0x86, 0x7b, 0x31, 0xc2, 0x81, - 0xce, 0xb4, 0x96, 0x6e, 0xd1, 0x4b, 0xb6, 0xdf, 0xe8, 0x05, 0x58, 0xea, 0x2b, 0xf4, 0x82, 0x14, - 0x65, 0xa0, 0xd7, 0xed, 0x23, 0x9b, 0x24, 0x23, 0xbb, 0x80, 0x0b, 0x6c, 0x92, 0xfc, 0x2a, 0x3f, - 0xc6, 0x25, 0x18, 0xdb, 0x97, 0x55, 0xad, 0xad, 0xf4, 0x88, 0x90, 0x06, 0x38, 0x6f, 0x88, 0xf1, - 0xbc, 0x4e, 0xab, 0x54, 0x8d, 0xba, 0xe8, 0x34, 0x4c, 0xf5, 0x94, 0x9e, 0x5c, 0x6f, 0x28, 0xdd, - 0x7e, 0xa7, 0x2d, 0xf5, 0x74, 0x76, 0xe8, 0x7c, 0x12, 0xa7, 0xae, 0x1b, 0x89, 0xe8, 0x75, 0x98, - 0x35, 0x4a, 0x34, 0xe4, 0x7a, 0x5f, 0x55, 0x6e, 0x76, 0xe4, 0xae, 0x96, 0x49, 0x11, 0x0b, 0x1c, - 0xf0, 0xb2, 0x39, 0x64, 0xb5, 0xb0, 0xc3, 0x1a, 0x40, 0x4b, 0x90, 0x6c, 0xca, 0xfb, 0xf5, 0xae, - 0xd2, 0x94, 0xd9, 0x91, 0xf5, 0xb1, 0xa6, 0xbc, 0xbf, 0xa5, 0x34, 0x65, 0xf1, 0xff, 0xc5, 0x60, - 0xde, 0x31, 0xc8, 0xec, 0xd0, 0x9f, 0x8f, 0x86, 0xf9, 0x04, 0xa2, 0x87, 0x55, 0x28, 0x1a, 0x48, - 0x85, 0x62, 0xf7, 0x45, 0x85, 0xe2, 0xf7, 0x43, 0x85, 0x12, 0xf7, 0x50, 0x85, 0x3e, 0xec, 0x0a, - 0xc0, 0x4b, 0x20, 0xd8, 0x25, 0xf0, 0x7b, 0x31, 0x48, 0x5b, 0xa6, 0x37, 0x98, 0x79, 0x3f, 0x0d, - 0x53, 0xfc, 0x70, 0x98, 0xa6, 0x7e, 0x92, 0x4b, 0xa5, 0xb6, 0xe7, 0x63, 0x19, 0xfc, 0xe1, 0x97, - 0x41, 0x5e, 0x78, 0xc6, 0xed, 0xc2, 0xf3, 0x34, 0x4c, 0xac, 0xf3, 0x13, 0xc9, 0xd0, 0x6c, 0x23, - 0x0c, 0xcf, 0x36, 0xe2, 0x7f, 0x8e, 0xc0, 0x34, 0xc7, 0x8d, 0x7b, 0x72, 0x72, 0xf3, 0x63, 0xff, - 0xcd, 0xd3, 0x7f, 0xfb, 0x56, 0x04, 0x96, 0x38, 0x76, 0x3f, 0x72, 0x51, 0x20, 0x87, 0x28, 0x3c, - 0xe4, 0x28, 0x90, 0x0b, 0xa7, 0x1e, 0x89, 0x28, 0xd0, 0x10, 0x2e, 0x97, 0x28, 0x90, 0x7b, 0x99, - 0x90, 0x51, 0xa0, 0xa1, 0x46, 0x1e, 0xf0, 0xca, 0xee, 0xdf, 0x45, 0x60, 0x82, 0xad, 0x2f, 0x89, - 0x1d, 0x0e, 0x79, 0x49, 0x2e, 0x3a, 0x05, 0x53, 0xc4, 0x68, 0xcb, 0x4d, 0xe3, 0x1a, 0x68, 0xda, - 0xfc, 0x04, 0x4b, 0xa5, 0xf7, 0x40, 0x2f, 0xc3, 0xb8, 0xaa, 0x74, 0xe4, 0xfa, 0x6d, 0xf9, 0x80, - 0x0e, 0xc1, 0x78, 0x35, 0x89, 0x13, 0x5e, 0x95, 0x0f, 0x34, 0xb4, 0x61, 0x18, 0x9f, 0x38, 0xa1, - 0x2e, 0x68, 0x94, 0x82, 0xc0, 0x1d, 0x6d, 0x85, 0x1e, 0xe4, 0x15, 0x09, 0xa3, 0x4c, 0x84, 0xb8, - 0x6f, 0xee, 0x95, 0x10, 0xd4, 0xc1, 0x7c, 0xce, 0x61, 0xd6, 0x46, 0xfc, 0x58, 0x1b, 0xb5, 0xb3, - 0x56, 0xfc, 0x8c, 0xbd, 0xdf, 0xc3, 0xad, 0x26, 0x47, 0xf6, 0xf0, 0x8a, 0xb9, 0xe5, 0x44, 0x7a, - 0x28, 0x17, 0x43, 0xb6, 0x2e, 0x7e, 0x31, 0x66, 0xee, 0xce, 0x91, 0x16, 0xbc, 0x2e, 0x7f, 0x3a, - 0xba, 0x10, 0x9e, 0x85, 0x34, 0x5f, 0x8a, 0x0b, 0x4a, 0x4e, 0x59, 0xe5, 0x8c, 0xc8, 0xa4, 0x45, - 0x71, 0xdc, 0x4b, 0x5c, 0x13, 0xf7, 0x5a, 0x5c, 0xc7, 0x8e, 0x26, 0xae, 0xc9, 0xb0, 0x1f, 0x66, - 0x19, 0x2c, 0xe5, 0xce, 0x56, 0xa5, 0x58, 0xda, 0xd0, 0x55, 0x53, 0xe0, 0x7b, 0x8d, 0x61, 0xca, - 0xed, 0x48, 0xc5, 0x2a, 0xcc, 0xda, 0x8b, 0xd1, 0xce, 0xd8, 0x9d, 0x94, 0xb6, 0xb2, 0x24, 0x46, - 0xfa, 0x77, 0x23, 0x66, 0xd4, 0x8f, 0x32, 0xec, 0x3e, 0x4f, 0x9f, 0xd7, 0x1c, 0xd3, 0xe7, 0xc5, - 0x30, 0xa3, 0xf9, 0x90, 0xe7, 0xcf, 0x9f, 0x11, 0x60, 0x79, 0x83, 0x0a, 0xee, 0x23, 0x77, 0x32, - 0xe5, 0xfb, 0x82, 0xb9, 0x17, 0x66, 0x1b, 0xc7, 0xfb, 0x30, 0xb9, 0xbf, 0xe6, 0x9c, 0xdc, 0x9f, - 0x0b, 0xa5, 0x91, 0x6e, 0xe8, 0x7f, 0x4b, 0x80, 0x45, 0x8f, 0x42, 0xe8, 0x35, 0x7e, 0x7a, 0x7f, - 0x36, 0x7c, 0x57, 0x0f, 0x78, 0x7e, 0xcf, 0xdb, 0x29, 0xf1, 0x3f, 0x07, 0xf2, 0x07, 0x82, 0x7d, - 0xce, 0xf8, 0xb0, 0x1d, 0x06, 0xf9, 0x0b, 0x82, 0x79, 0x64, 0x90, 0xa3, 0xaf, 0xd0, 0x6c, 0xfa, - 0x49, 0xe5, 0x12, 0x24, 0xe9, 0x02, 0xd7, 0x9c, 0x81, 0xc6, 0xc8, 0xef, 0xb2, 0xed, 0x40, 0x46, - 0xd4, 0x9d, 0x39, 0x31, 0x9e, 0xc5, 0x9f, 0xb7, 0xb6, 0x06, 0x38, 0x08, 0xec, 0x18, 0xc3, 0x03, - 0x43, 0xd1, 0x75, 0x03, 0xc1, 0x36, 0xbb, 0xef, 0x3d, 0x08, 0xf1, 0x4f, 0x23, 0xe6, 0xbe, 0x29, - 0xd7, 0xdf, 0xc7, 0x7b, 0x8e, 0x21, 0x44, 0x79, 0xdc, 0x67, 0xcf, 0xd1, 0xe5, 0xf8, 0xf3, 0xdd, - 0x08, 0xac, 0x0c, 0x73, 0xfd, 0x7e, 0xcf, 0xaa, 0xdb, 0x8e, 0x59, 0xf5, 0x4a, 0x18, 0x33, 0xf9, - 0x48, 0xec, 0x3e, 0xfe, 0x91, 0x00, 0x27, 0xbd, 0xf9, 0x16, 0x68, 0x16, 0x1b, 0xa1, 0x24, 0x16, - 0xc3, 0xa3, 0xee, 0x0c, 0x8f, 0xf1, 0x0c, 0xbf, 0xe1, 0xbc, 0x01, 0xf9, 0x93, 0xe1, 0xd9, 0xe9, - 0x3a, 0xcd, 0xfd, 0x8e, 0x00, 0xc7, 0x47, 0x16, 0x45, 0x37, 0xf8, 0xc9, 0xee, 0xa5, 0xc3, 0x76, - 0xfb, 0x80, 0xa7, 0xbc, 0x3b, 0x51, 0x7a, 0x47, 0xa1, 0xfb, 0x7a, 0xd6, 0xf3, 0x48, 0x9e, 0xf5, - 0xed, 0x68, 0x94, 0xff, 0x76, 0xd4, 0x3e, 0xca, 0x31, 0xe7, 0x28, 0x8f, 0x5c, 0x2a, 0x14, 0xed, - 0x4b, 0x85, 0xd5, 0x20, 0x97, 0x29, 0x3f, 0x6a, 0xeb, 0x84, 0x51, 0x06, 0x88, 0x17, 0x71, 0xb0, - 0x89, 0xb8, 0xd8, 0x82, 0x59, 0x93, 0x1a, 0xba, 0xdc, 0x25, 0xc7, 0x03, 0x77, 0x20, 0x45, 0xb8, - 0x4f, 0x8a, 0x19, 0xe7, 0x7c, 0xf3, 0x81, 0xf9, 0xc2, 0xbe, 0x32, 0x80, 0x81, 0x91, 0xa0, 0x89, - 0x3f, 0xce, 0x2e, 0xf5, 0xe6, 0x17, 0xd6, 0x9e, 0x13, 0x8a, 0xcf, 0x3a, 0x72, 0xd4, 0x4a, 0xd7, - 0x46, 0x6c, 0xcc, 0x9b, 0x58, 0xba, 0xc6, 0xbe, 0x17, 0xc4, 0xb2, 0x4f, 0x23, 0x78, 0x62, 0x6f, - 0x70, 0xb4, 0xb2, 0xc5, 0xbc, 0x27, 0xad, 0xa1, 0x96, 0xf1, 0x67, 0x38, 0x0a, 0xa8, 0x0f, 0x40, - 0x28, 0x48, 0x43, 0xb4, 0xdd, 0x34, 0x1c, 0x44, 0xfc, 0xaf, 0x78, 0x85, 0x5e, 0xc8, 0x68, 0x2c, - 0xf6, 0x83, 0xf6, 0x2e, 0x7e, 0x3d, 0x4e, 0xaf, 0xcf, 0xf4, 0x5e, 0xe3, 0x7f, 0xac, 0x98, 0xc9, - 0xc3, 0x3f, 0x11, 0x33, 0x3e, 0xf2, 0x19, 0x0a, 0x18, 0xe9, 0x06, 0xa5, 0x86, 0xdd, 0x20, 0x97, - 0x37, 0x57, 0x96, 0x20, 0x69, 0x46, 0x4d, 0x26, 0xa9, 0xf8, 0x2b, 0x2c, 0x5c, 0x72, 0x1c, 0x00, - 0x67, 0xb1, 0x6f, 0x8c, 0xe9, 0x6b, 0x10, 0xe3, 0x8a, 0x79, 0x4b, 0x81, 0x33, 0xd2, 0x30, 0x3d, - 0x3a, 0xd2, 0x90, 0xf6, 0x8d, 0x34, 0xcc, 0xb8, 0x45, 0x1a, 0x9c, 0xce, 0x10, 0x1a, 0x3e, 0x4a, - 0xca, 0x6b, 0xf0, 0xac, 0x5d, 0x83, 0xbf, 0x19, 0x81, 0x45, 0x6b, 0x90, 0x1f, 0xb5, 0x2f, 0x17, - 0x6d, 0x8a, 0xf3, 0x90, 0x3f, 0x7f, 0x1e, 0xe2, 0xd2, 0x83, 0xf9, 0x98, 0xce, 0xd1, 0xad, 0xc3, - 0x93, 0xf9, 0x97, 0x02, 0xcc, 0xb9, 0x95, 0x08, 0xf9, 0x31, 0x9d, 0xa3, 0x09, 0x17, 0xbf, 0x65, - 0xfb, 0x28, 0x7e, 0x8b, 0xd1, 0x58, 0xe6, 0x31, 0x1f, 0x0f, 0xe6, 0x1f, 0x5b, 0x8e, 0x99, 0x07, - 0xbb, 0xef, 0x69, 0x04, 0x65, 0xdb, 0x19, 0x41, 0x39, 0xfa, 0x68, 0x88, 0xb6, 0xb0, 0xb3, 0x3b, - 0x0d, 0x67, 0x21, 0x6d, 0xd0, 0x60, 0xaa, 0x25, 0xa5, 0x64, 0xaa, 0xcf, 0x87, 0x94, 0x1f, 0x36, - 0x39, 0xdf, 0x8e, 0xc0, 0x31, 0x5c, 0x82, 0xba, 0xb4, 0xda, 0x5e, 0xbb, 0x7f, 0xbf, 0x0d, 0xc4, - 0x8f, 0x38, 0x0c, 0x44, 0x20, 0xc1, 0xb5, 0xe0, 0x3d, 0xfc, 0x7d, 0xbd, 0x65, 0x77, 0x7e, 0xf9, - 0x7c, 0x87, 0x1e, 0x6e, 0x98, 0x6b, 0xce, 0x61, 0x7e, 0x21, 0x1c, 0x97, 0x5c, 0xc7, 0xfa, 0x77, - 0x05, 0x58, 0xf2, 0x2c, 0x86, 0x6a, 0xbc, 0x35, 0x79, 0xee, 0x30, 0xdd, 0x3d, 0x34, 0x93, 0xf2, - 0xdd, 0x28, 0x7d, 0x40, 0xc6, 0x2e, 0x25, 0xde, 0x63, 0xf1, 0x2a, 0xa4, 0xba, 0xa4, 0x68, 0x9d, - 0xbb, 0x71, 0xc5, 0x77, 0xff, 0x9c, 0xb6, 0x4e, 0xcf, 0x72, 0x74, 0xcd, 0xff, 0xb1, 0xc8, 0x4b, - 0xad, 0x96, 0x2a, 0xb7, 0x24, 0x5d, 0xb6, 0xfc, 0xb8, 0x94, 0x99, 0x46, 0xdd, 0x35, 0xe5, 0xa6, - 0xdd, 0x99, 0x4b, 0xd2, 0x04, 0x3e, 0x80, 0x15, 0xe7, 0x03, 0x33, 0xce, 0x19, 0x3f, 0x11, 0xe0, - 0xe3, 0x91, 0x47, 0x66, 0xe9, 0x34, 0xec, 0xd5, 0x80, 0x8b, 0x57, 0x93, 0xfb, 0x0e, 0xbb, 0x6f, - 0x9f, 0xf8, 0x9d, 0x68, 0x09, 0xe6, 0xaf, 0xd7, 0x4a, 0xd5, 0xda, 0x6e, 0x61, 0xb7, 0x54, 0xbf, - 0xbe, 0x5d, 0xdb, 0x29, 0xad, 0x97, 0xaf, 0x96, 0x4b, 0xc5, 0xf4, 0x63, 0x68, 0x0e, 0xd2, 0x56, - 0x56, 0x61, 0x7d, 0xb7, 0xfc, 0x7a, 0x29, 0x2d, 0xa0, 0x05, 0x40, 0x56, 0x6a, 0x79, 0x9b, 0xa5, - 0x47, 0xd0, 0x3c, 0xcc, 0x58, 0xe9, 0xc5, 0xd2, 0x66, 0x69, 0xb7, 0x54, 0x4c, 0x47, 0xed, 0x8d, - 0x6c, 0x56, 0xd6, 0x5f, 0x2d, 0x15, 0xd3, 0x31, 0x7b, 0xe1, 0xda, 0xf5, 0xda, 0x4e, 0x69, 0xbb, - 0x98, 0x8e, 0xdb, 0x93, 0xcb, 0xdb, 0xe5, 0xdd, 0x72, 0x61, 0x33, 0x9d, 0xc8, 0xfd, 0x19, 0x48, - 0xd0, 0x37, 0x2a, 0x70, 0xe7, 0x1b, 0xa5, 0xed, 0x62, 0xa9, 0xea, 0x80, 0x3a, 0x03, 0x93, 0x2c, - 0xfd, 0x6a, 0x69, 0xab, 0xb0, 0x89, 0x71, 0x4e, 0x43, 0x8a, 0x25, 0x91, 0x84, 0x08, 0x42, 0x30, - 0xc5, 0x12, 0x8a, 0xe5, 0xd7, 0x4b, 0xd5, 0x5a, 0x29, 0x1d, 0xcd, 0xfd, 0x0f, 0x76, 0x03, 0xbf, - 0xa9, 0x49, 0xe8, 0x38, 0x2c, 0x11, 0x08, 0xa5, 0x42, 0x75, 0xfd, 0xda, 0xab, 0xa5, 0x37, 0x1c, - 0x1d, 0x2d, 0xc3, 0xa2, 0x23, 0xbb, 0x56, 0xaa, 0xd6, 0xb7, 0x0b, 0x5b, 0xb8, 0xcb, 0x63, 0x90, - 0xb1, 0x67, 0x5e, 0x2d, 0x57, 0x6b, 0xbb, 0x34, 0x37, 0x32, 0x5c, 0x75, 0xb3, 0x60, 0x64, 0x46, - 0x87, 0x33, 0xb7, 0xcb, 0xeb, 0xaf, 0xd2, 0xcc, 0x18, 0x3a, 0x01, 0x59, 0x7b, 0x66, 0xb1, 0x5c, - 0xdb, 0xd9, 0x2c, 0xbc, 0x41, 0xf3, 0xe3, 0x68, 0x11, 0x66, 0xed, 0xf9, 0xa5, 0xad, 0x42, 0x79, - 0x33, 0x9d, 0x18, 0xce, 0x20, 0x9c, 0x4d, 0x8f, 0xe5, 0xfe, 0x38, 0x02, 0x13, 0xbc, 0xce, 0xe3, - 0x92, 0xb4, 0xd4, 0x56, 0x69, 0xf7, 0x5a, 0xa5, 0x58, 0x2f, 0xbd, 0x76, 0xbd, 0xb0, 0x59, 0x4b, - 0x3f, 0x86, 0x69, 0xb2, 0x65, 0xd4, 0x76, 0x0b, 0xd5, 0xdd, 0x5a, 0xfd, 0x46, 0x79, 0xf7, 0x5a, - 0x5a, 0xc0, 0xd2, 0x63, 0xcb, 0x5d, 0xaf, 0x6c, 0xef, 0x16, 0xca, 0xdb, 0xb5, 0x74, 0x04, 0x3d, - 0x01, 0x27, 0x5d, 0x5a, 0xac, 0x97, 0x37, 0xb6, 0x2b, 0xd5, 0x52, 0x7d, 0xbd, 0x80, 0xf9, 0x8f, - 0xce, 0xc2, 0x29, 0xaf, 0xd6, 0x6d, 0x25, 0x63, 0xe8, 0x34, 0x3c, 0xee, 0xda, 0x93, 0xad, 0x58, - 0x1c, 0xf3, 0xd1, 0x56, 0x6c, 0xbb, 0xb2, 0x6b, 0xd0, 0x92, 0xc0, 0x63, 0x6b, 0xcb, 0xdc, 0xa8, - 0x96, 0x0a, 0xbb, 0xa5, 0x6a, 0x7d, 0xf7, 0x5a, 0x61, 0x3b, 0x3d, 0x86, 0xb2, 0xb0, 0x60, 0xcb, - 0xde, 0x2c, 0xd5, 0x6a, 0x34, 0x2f, 0x39, 0x94, 0x57, 0xae, 0xd5, 0x2b, 0xdb, 0xa5, 0x7a, 0xe5, - 0x6a, 0x7a, 0x1c, 0x0f, 0x8f, 0xbd, 0x5e, 0xb9, 0xb6, 0x6b, 0x71, 0x02, 0x72, 0x45, 0x18, 0x63, - 0x77, 0x89, 0x63, 0x36, 0x6f, 0x5d, 0x2d, 0xec, 0xbe, 0xb1, 0xe3, 0xd4, 0xb5, 0x69, 0x48, 0x19, - 0x19, 0xb5, 0xad, 0x1a, 0x15, 0x5f, 0x23, 0xa1, 0xb2, 0xbb, 0x93, 0x8e, 0xe4, 0x6e, 0x41, 0xd2, - 0xb8, 0x53, 0x1c, 0x65, 0x60, 0x0e, 0xff, 0xef, 0xa2, 0xb3, 0x0b, 0x80, 0xcc, 0x1c, 0x4c, 0x7b, - 0xb5, 0x54, 0x28, 0xbe, 0x91, 0x16, 0xb0, 0xf0, 0x9b, 0xe9, 0x34, 0x2d, 0x82, 0x55, 0x93, 0x4b, - 0xdb, 0xaa, 0xbc, 0x8e, 0x15, 0x36, 0x77, 0x0d, 0xd2, 0xce, 0xab, 0xbb, 0x31, 0xf5, 0xdb, 0x95, - 0xdd, 0xf2, 0xd5, 0xf2, 0x7a, 0x61, 0xb7, 0x5c, 0xd9, 0x26, 0xa8, 0xa8, 0x8c, 0x3d, 0x86, 0xb1, - 0x0c, 0xe5, 0x11, 0x12, 0x72, 0x03, 0x48, 0x71, 0x77, 0x87, 0xe2, 0xa1, 0xd9, 0xa9, 0x6c, 0x96, - 0xd7, 0xdf, 0xf0, 0xc0, 0xcd, 0x67, 0x9a, 0xd6, 0x26, 0x03, 0x73, 0x7c, 0x3a, 0x67, 0x6f, 0x16, - 0x61, 0x96, 0xcf, 0x31, 0x2d, 0x4e, 0x6e, 0x07, 0x92, 0xc6, 0x2d, 0x80, 0xb8, 0x7a, 0xa5, 0xba, - 0xe1, 0xd6, 0xe1, 0x2c, 0x4c, 0x9b, 0x39, 0x66, 0x6f, 0xf3, 0x30, 0x63, 0x26, 0x5a, 0x5d, 0xe5, - 0xfe, 0x92, 0xc0, 0x5d, 0x64, 0x65, 0xbf, 0xf8, 0x0b, 0x9d, 0x81, 0x27, 0x2a, 0xd5, 0x8d, 0x62, - 0x65, 0xab, 0x50, 0xde, 0x7e, 0xbd, 0xb0, 0x59, 0x2e, 0x5a, 0x5c, 0xb0, 0x77, 0xb8, 0x02, 0xc7, - 0xbc, 0x0a, 0x5e, 0xdb, 0xdd, 0xdd, 0x49, 0x0b, 0xe8, 0x24, 0x2c, 0x7b, 0x95, 0x28, 0x62, 0x95, - 0xca, 0xdd, 0x00, 0x34, 0x7c, 0x9b, 0x12, 0x12, 0xe1, 0x84, 0x59, 0xcd, 0xcb, 0x6c, 0x1d, 0x87, - 0x25, 0x97, 0x32, 0xf4, 0x77, 0x5a, 0xc8, 0x7d, 0x5f, 0x20, 0x2d, 0x3b, 0x02, 0xac, 0xac, 0xe5, - 0xad, 0xd2, 0xd6, 0x9a, 0xb7, 0x41, 0x7c, 0x1c, 0x8e, 0xbb, 0x94, 0xe1, 0x0c, 0x9f, 0xc0, 0x28, - 0x77, 0x16, 0xb1, 0xac, 0x5f, 0x04, 0x1b, 0x19, 0x97, 0x12, 0x54, 0xc2, 0xa2, 0x58, 0xbf, 0xdc, - 0x60, 0x60, 0xc3, 0x5b, 0x2e, 0xa6, 0x63, 0xb9, 0x1b, 0xe6, 0x69, 0x0f, 0x0b, 0xfa, 0x0a, 0x1c, - 0xdb, 0xa9, 0x56, 0x7e, 0xa4, 0xb4, 0xbe, 0x3b, 0x02, 0xf8, 0x50, 0x09, 0x96, 0xc0, 0x80, 0xe7, - 0x3e, 0x63, 0x9e, 0x63, 0xa2, 0xd2, 0x74, 0x0c, 0x32, 0x46, 0x15, 0x17, 0x89, 0xc2, 0x02, 0xc9, - 0xe7, 0x9a, 0x52, 0xb5, 0x04, 0xf3, 0xb6, 0x0c, 0x4e, 0xb2, 0xde, 0x34, 0x3f, 0x02, 0x66, 0xdf, - 0x01, 0x2c, 0xb2, 0x92, 0x2e, 0x02, 0x34, 0x0f, 0x33, 0x7c, 0x66, 0xe5, 0xc6, 0x76, 0xa9, 0x98, - 0x16, 0xb8, 0x6e, 0x49, 0xf2, 0x46, 0xb5, 0xb0, 0x8d, 0xf5, 0x20, 0x92, 0xfb, 0x71, 0xeb, 0x7a, - 0x09, 0xdb, 0x07, 0x81, 0xe8, 0x14, 0xac, 0xb0, 0x1a, 0xd5, 0xca, 0x66, 0xc9, 0x8b, 0x3f, 0x16, - 0xb1, 0xf6, 0x52, 0xaf, 0x96, 0xb0, 0x3d, 0x39, 0x0d, 0x8f, 0xbb, 0xe6, 0xda, 0x66, 0xa6, 0x48, - 0xee, 0x7f, 0x5b, 0x5f, 0x36, 0x3a, 0x85, 0xeb, 0x49, 0x10, 0x59, 0x0b, 0xa3, 0x05, 0xcc, 0xea, - 0x69, 0xa4, 0x90, 0x59, 0x44, 0x8d, 0x12, 0x34, 0x4b, 0x2c, 0xbc, 0x84, 0x4d, 0x84, 0x13, 0x5e, - 0xb0, 0x0c, 0x81, 0x1b, 0xd1, 0x97, 0xe5, 0x0d, 0xc4, 0xb1, 0x1d, 0x32, 0xce, 0xb4, 0x62, 0x3b, - 0x54, 0xd8, 0xd9, 0xf1, 0xb0, 0x43, 0x66, 0x0e, 0x6f, 0x87, 0xcc, 0x44, 0x4e, 0x5a, 0x96, 0x21, - 0xc5, 0x9d, 0x0d, 0x47, 0x13, 0x90, 0x24, 0x3f, 0x2f, 0xd5, 0x2f, 0xa6, 0x1f, 0xcb, 0xbd, 0x45, - 0x0f, 0x81, 0xf3, 0xe7, 0xa9, 0xb1, 0xe4, 0x91, 0xb4, 0x52, 0x6d, 0xa7, 0xb2, 0x5d, 0x2b, 0x11, - 0x01, 0x59, 0xaf, 0x14, 0x4b, 0xcc, 0x22, 0x38, 0xb3, 0xca, 0xc5, 0xfa, 0x6e, 0xe5, 0xd5, 0xd2, - 0x76, 0x5a, 0xc0, 0xb3, 0xb7, 0x67, 0x36, 0x2b, 0x14, 0xc9, 0xa9, 0x30, 0x69, 0x3b, 0x6c, 0x8d, - 0x19, 0x43, 0x12, 0xb0, 0x0c, 0x92, 0x2a, 0x85, 0xeb, 0xbb, 0xd7, 0x2a, 0xd5, 0xf2, 0x9b, 0xc4, - 0x92, 0x19, 0x5d, 0x67, 0x61, 0xc1, 0x5e, 0xaa, 0xbc, 0xb5, 0xb3, 0x59, 0x5e, 0x2f, 0xef, 0x32, - 0x1b, 0x68, 0xcb, 0xab, 0x96, 0xae, 0x56, 0x4b, 0xb5, 0x6b, 0x66, 0x9f, 0xfb, 0x30, 0xeb, 0x72, - 0x16, 0x1b, 0x6b, 0x0e, 0x49, 0xde, 0xc1, 0x2d, 0x59, 0x76, 0xf3, 0x46, 0x69, 0x2d, 0xfd, 0x18, - 0xb1, 0x63, 0x2e, 0x99, 0x64, 0xb0, 0x0a, 0x1b, 0xa5, 0x6d, 0xdc, 0x31, 0x36, 0x32, 0x2e, 0x65, - 0xb6, 0x0b, 0x8c, 0xf7, 0x1d, 0x40, 0xc3, 0x67, 0xb4, 0x89, 0xe1, 0xc2, 0xa9, 0xd7, 0x77, 0xd9, - 0xe4, 0x4f, 0x2a, 0xad, 0x15, 0x6a, 0xe5, 0x75, 0xea, 0x2c, 0xba, 0xe4, 0xee, 0x54, 0x6a, 0xb8, - 0x43, 0xf7, 0xcc, 0xed, 0xca, 0x36, 0xee, 0xad, 0x0e, 0x73, 0x6e, 0xa7, 0x38, 0x31, 0x83, 0x39, - 0x84, 0xb5, 0x52, 0xb5, 0xe0, 0x61, 0xda, 0x6c, 0xa5, 0x0c, 0xe9, 0x2c, 0xec, 0xec, 0x18, 0xa6, - 0x4d, 0x37, 0x3f, 0xd4, 0xb5, 0x62, 0xd0, 0x9c, 0x49, 0x24, 0xfc, 0x77, 0x13, 0x57, 0xcb, 0x2a, - 0x70, 0x45, 0x4c, 0xb9, 0x3d, 0x01, 0xd9, 0xe1, 0x5c, 0x4e, 0x80, 0xbf, 0xe0, 0x38, 0x28, 0x61, - 0x11, 0x66, 0x69, 0x39, 0xad, 0xe9, 0x61, 0x0c, 0x2c, 0xa3, 0xe1, 0x28, 0x66, 0xb7, 0xdc, 0x9c, - 0x16, 0x3b, 0xca, 0x61, 0x6b, 0x45, 0x4c, 0x58, 0x24, 0xf7, 0x75, 0xeb, 0xdb, 0x59, 0xb7, 0xed, - 0x45, 0xf4, 0x14, 0x9c, 0xe1, 0xdb, 0x18, 0x6d, 0xa5, 0x72, 0xf0, 0xe4, 0xa8, 0xc2, 0x36, 0x53, - 0x75, 0x0e, 0x4e, 0x8f, 0x2a, 0xcb, 0xdb, 0x2b, 0x07, 0x5b, 0xbc, 0x8c, 0xd6, 0x19, 0x78, 0x62, - 0x24, 0x54, 0xd3, 0x72, 0xf9, 0x74, 0xcd, 0x9b, 0xaf, 0x3d, 0x98, 0xb2, 0x6f, 0x51, 0x18, 0xcb, - 0x10, 0x4f, 0xd9, 0x60, 0x4b, 0x49, 0x37, 0xc1, 0x60, 0xcb, 0x1b, 0x77, 0xa9, 0xf8, 0x7d, 0x81, - 0xc6, 0x11, 0x1c, 0x22, 0x21, 0xc2, 0x09, 0xab, 0x8e, 0xf7, 0x24, 0xee, 0x52, 0xc6, 0x10, 0x86, - 0x72, 0x91, 0xca, 0xa4, 0x5b, 0x33, 0x8c, 0x25, 0x11, 0x63, 0xc1, 0xe7, 0xc8, 0xaf, 0x54, 0x37, - 0x70, 0x76, 0x14, 0x1b, 0x24, 0x97, 0x6c, 0x53, 0x8c, 0x62, 0x1e, 0x05, 0xc8, 0x4f, 0xdc, 0x42, - 0x3c, 0xf7, 0x45, 0x81, 0xee, 0x03, 0xb8, 0xc4, 0x6d, 0xf0, 0xc0, 0xe1, 0xca, 0x6c, 0x1c, 0xae, - 0x95, 0x77, 0xbc, 0x08, 0x5d, 0x81, 0x63, 0x5e, 0x05, 0xb1, 0xdd, 0xa0, 0x33, 0xb2, 0x57, 0x89, - 0xca, 0x9a, 0xc1, 0x8e, 0x48, 0xee, 0x1d, 0x00, 0x2b, 0xa2, 0x82, 0x4d, 0x31, 0xad, 0xe0, 0xe2, - 0x6f, 0x2c, 0xc3, 0x22, 0x97, 0x57, 0xa9, 0x6e, 0x14, 0xb6, 0xcb, 0x35, 0x62, 0x51, 0x68, 0x14, - 0x80, 0xcb, 0x64, 0x0c, 0xa7, 0x9e, 0xdc, 0x70, 0x3a, 0xe5, 0x46, 0x3a, 0x7a, 0xf9, 0x7b, 0x5f, - 0x15, 0x60, 0x66, 0xcb, 0x0c, 0xf1, 0xd4, 0x64, 0x75, 0xbf, 0xdd, 0x90, 0xd1, 0xab, 0x30, 0x76, - 0x4d, 0x96, 0x3a, 0xfa, 0xde, 0xe7, 0xd0, 0xc2, 0x50, 0x1c, 0xa4, 0xd4, 0xed, 0xeb, 0x07, 0x59, - 0x8f, 0x74, 0x31, 0x7d, 0xe7, 0x5f, 0xff, 0xfb, 0xf7, 0x22, 0x80, 0x92, 0xf9, 0x3d, 0xd6, 0xc2, - 0x06, 0xc4, 0xab, 0xb2, 0xd4, 0x3c, 0x08, 0xdd, 0xd4, 0x14, 0x69, 0x2a, 0x89, 0x12, 0x79, 0x95, - 0xd4, 0xdf, 0x86, 0xa4, 0x71, 0xf7, 0xae, 0x67, 0x5b, 0x8b, 0x43, 0xe9, 0x35, 0x5d, 0x1d, 0x34, - 0x74, 0x71, 0x86, 0x34, 0x96, 0x42, 0xe3, 0xf9, 0x7d, 0xa3, 0x8d, 0x0e, 0x4c, 0x6d, 0xc8, 0xfa, - 0x9b, 0x34, 0xd0, 0x55, 0x54, 0x1a, 0x9a, 0x67, 0xab, 0xbe, 0x5f, 0x88, 0x71, 0x8d, 0x88, 0xf3, - 0xa4, 0xa7, 0x69, 0x34, 0x99, 0x67, 0xe5, 0xf3, 0x4d, 0xdc, 0xf6, 0x2d, 0x48, 0x6c, 0xc8, 0x7a, - 0x59, 0xea, 0x7a, 0xf6, 0xf2, 0x84, 0x5f, 0x2f, 0x65, 0xa9, 0x2b, 0x9e, 0xbc, 0x73, 0x37, 0x33, - 0x0d, 0x93, 0xd2, 0x40, 0xdf, 0x93, 0x7b, 0x3a, 0x9e, 0x8f, 0xe4, 0x26, 0xe9, 0x30, 0x81, 0x62, - 0xf9, 0xb6, 0xd4, 0x45, 0x9f, 0x17, 0x20, 0xb5, 0x21, 0x93, 0x78, 0xfc, 0xda, 0x41, 0xb9, 0x88, - 0x9e, 0x0c, 0x12, 0xc2, 0x2c, 0x17, 0xb3, 0x81, 0x5f, 0x81, 0x16, 0xc5, 0x3b, 0x77, 0x33, 0x29, - 0xba, 0x31, 0xb9, 0x8a, 0x47, 0x86, 0x74, 0x3f, 0x89, 0x52, 0x79, 0x9c, 0xa2, 0xe5, 0xdf, 0x69, - 0x37, 0xdf, 0x45, 0x5f, 0x15, 0x60, 0xce, 0x44, 0x41, 0x9e, 0x97, 0xdc, 0xe8, 0x28, 0x37, 0xa5, - 0x0e, 0x3a, 0xed, 0xd7, 0x0d, 0x29, 0x1c, 0x02, 0xcd, 0x05, 0x37, 0x34, 0x19, 0xb4, 0x90, 0x6f, - 0x91, 0x0e, 0x19, 0xa8, 0xfa, 0xcd, 0x03, 0xba, 0xc5, 0xf9, 0x73, 0x02, 0xa4, 0xa8, 0xba, 0xe3, - 0x16, 0x34, 0x74, 0x29, 0xf8, 0x73, 0xe0, 0x2c, 0xb6, 0x9d, 0xbd, 0x1c, 0xa6, 0x0a, 0x75, 0xfe, - 0xc4, 0xb3, 0x6e, 0x28, 0x67, 0xc5, 0x29, 0x03, 0x9e, 0x46, 0x8a, 0xbf, 0x28, 0xe4, 0x30, 0xc0, - 0x89, 0xb2, 0x86, 0x9b, 0xb8, 0xde, 0x6b, 0xbf, 0x35, 0x90, 0x03, 0x20, 0x24, 0xe5, 0x70, 0x8d, - 0xe0, 0x08, 0xb9, 0x2a, 0x0c, 0xe1, 0x19, 0x37, 0x84, 0x08, 0xa5, 0x0d, 0x84, 0x6d, 0x6d, 0x40, - 0xf1, 0xfc, 0xa4, 0x00, 0x40, 0xcf, 0x60, 0xe0, 0xfa, 0xfe, 0xf0, 0xac, 0xb2, 0x06, 0xbc, 0x53, - 0x41, 0x18, 0x28, 0x3e, 0x7e, 0xe7, 0x6e, 0x66, 0x02, 0xc8, 0xc9, 0x88, 0xd5, 0xb7, 0xd5, 0xb6, - 0x2e, 0x53, 0x0d, 0x16, 0x13, 0x14, 0x11, 0xe6, 0xd5, 0x97, 0x05, 0x98, 0x2a, 0xca, 0x52, 0x43, - 0x6f, 0xef, 0x1b, 0x70, 0x82, 0x8a, 0x7b, 0x30, 0x0c, 0x97, 0x5d, 0x31, 0x1c, 0xcb, 0x2e, 0x72, - 0xb2, 0x9e, 0xaf, 0x37, 0x4d, 0x08, 0x06, 0xa8, 0xea, 0xc3, 0x07, 0xa5, 0xda, 0x40, 0xfd, 0x65, - 0x01, 0x92, 0x9b, 0x4a, 0xe3, 0xf6, 0x7d, 0x80, 0x73, 0xde, 0x15, 0xce, 0x42, 0x76, 0xc6, 0x06, - 0xa7, 0xa3, 0x34, 0x6e, 0x63, 0x20, 0x5f, 0x10, 0x00, 0xae, 0xf7, 0x3a, 0xf7, 0x07, 0xca, 0xaa, - 0x2b, 0x94, 0x4c, 0x76, 0xd6, 0x06, 0x65, 0xd0, 0x33, 0xc0, 0xa8, 0x00, 0x45, 0xb9, 0x23, 0x87, - 0x1c, 0x25, 0xaf, 0xf9, 0xea, 0xd4, 0x9d, 0xbb, 0x99, 0x49, 0x7a, 0x1c, 0x68, 0xb5, 0x49, 0x9a, - 0xa5, 0x96, 0x31, 0x67, 0xb3, 0x8c, 0x5f, 0x12, 0xe8, 0xe9, 0x1a, 0x7a, 0x14, 0x58, 0x43, 0xbe, - 0x07, 0x03, 0x68, 0x41, 0x43, 0x77, 0xce, 0x04, 0x2b, 0xae, 0x89, 0x39, 0x37, 0x7d, 0x9e, 0x47, - 0x36, 0x56, 0x34, 0x18, 0x86, 0xf7, 0x05, 0x40, 0xfc, 0xe7, 0xf2, 0xf7, 0x19, 0xda, 0x8f, 0xdc, - 0xb9, 0x9b, 0x41, 0xe6, 0xc6, 0xf0, 0xaa, 0xd4, 0xef, 0x5b, 0x08, 0x57, 0xd1, 0xf9, 0xbc, 0x71, - 0xd3, 0x23, 0x05, 0xc9, 0x7d, 0xd4, 0xab, 0xe5, 0xdf, 0xd1, 0xe4, 0x46, 0x9d, 0x87, 0xfe, 0xd7, - 0x04, 0xf2, 0x00, 0xc7, 0xfd, 0x86, 0x8c, 0xed, 0x37, 0x90, 0xd3, 0x31, 0x16, 0xd4, 0x39, 0x84, - 0xf2, 0x8a, 0xda, 0x72, 0xf0, 0xf2, 0x6b, 0x82, 0xf9, 0xb5, 0xd4, 0xfd, 0x06, 0x75, 0xf1, 0xce, - 0xdd, 0xcc, 0x94, 0x79, 0xf0, 0xc6, 0x3e, 0xfb, 0xd9, 0x79, 0x68, 0x80, 0xfb, 0x8a, 0x40, 0x7c, - 0x1e, 0xee, 0xa1, 0xf5, 0xc0, 0x52, 0x1f, 0xe8, 0x4c, 0x1b, 0xf7, 0xb8, 0x7f, 0x20, 0x01, 0xec, - 0x33, 0x10, 0xbf, 0x2c, 0xc0, 0xcc, 0xd0, 0x1b, 0xf0, 0xc8, 0xf7, 0x86, 0x1e, 0xaf, 0x67, 0xe3, - 0xfd, 0x1d, 0x36, 0xae, 0x4e, 0x30, 0xab, 0xc1, 0x90, 0x62, 0xab, 0xf1, 0xd7, 0x05, 0x98, 0x60, - 0x4c, 0xa4, 0x4f, 0xb2, 0x07, 0x65, 0x61, 0xa0, 0x33, 0x40, 0xe6, 0x5b, 0xe7, 0x1e, 0x3e, 0x03, - 0xb2, 0xd9, 0x55, 0xea, 0xd4, 0xfc, 0x82, 0x00, 0xd3, 0x54, 0x28, 0x2c, 0x50, 0x57, 0x82, 0x33, - 0x8f, 0x7f, 0x5b, 0x3c, 0x7b, 0x2e, 0x30, 0xc8, 0x60, 0x96, 0x9f, 0x20, 0xc4, 0x6c, 0xfb, 0x86, - 0x00, 0xcb, 0x55, 0x59, 0x93, 0x7b, 0x4d, 0xee, 0xb9, 0x71, 0xaa, 0xd7, 0x5b, 0x61, 0xb8, 0xe8, - 0x65, 0x7e, 0x3f, 0xe5, 0x8a, 0x26, 0x27, 0x9e, 0x1e, 0x42, 0x83, 0x27, 0x47, 0x8c, 0x63, 0x9f, - 0x83, 0xe0, 0x18, 0x58, 0xfa, 0xf6, 0xf9, 0x3d, 0x1d, 0x58, 0xf3, 0x51, 0xf1, 0x40, 0x03, 0x4b, - 0xdf, 0xd1, 0xb6, 0x0f, 0x2c, 0x05, 0x15, 0x62, 0x60, 0xf9, 0x47, 0xbc, 0x83, 0x0d, 0x2c, 0xa9, - 0x11, 0x6c, 0x60, 0x09, 0x42, 0xcc, 0xb6, 0x3f, 0x0f, 0xd3, 0xf4, 0x38, 0x69, 0x78, 0xc6, 0x79, - 0x8d, 0xe5, 0x39, 0x57, 0x00, 0xb3, 0x39, 0x17, 0x16, 0x59, 0x62, 0xc5, 0x3d, 0x2b, 0xce, 0xe6, - 0x31, 0xa5, 0x29, 0x3f, 0x18, 0xb1, 0x22, 0x50, 0xbc, 0xc4, 0x8a, 0x33, 0xba, 0xc6, 0x4b, 0xd7, - 0xf7, 0xd4, 0xe8, 0x72, 0x0f, 0x7d, 0x07, 0x32, 0xba, 0xec, 0xf9, 0x67, 0x87, 0xd1, 0x35, 0xa0, - 0x85, 0x30, 0xba, 0xf6, 0x77, 0xb0, 0x83, 0x19, 0x5d, 0xe3, 0x71, 0xe9, 0x40, 0x46, 0x97, 0x21, - 0xc5, 0x4c, 0xfc, 0xab, 0xd6, 0xb2, 0x76, 0xeb, 0x96, 0x14, 0x9c, 0x83, 0xe7, 0x43, 0x3c, 0x53, - 0xad, 0xf9, 0x2d, 0x82, 0x08, 0xa8, 0x2e, 0xee, 0xfe, 0xfb, 0x02, 0x2c, 0xd7, 0xe4, 0x5e, 0xd3, - 0xe3, 0xc9, 0x66, 0xf4, 0xb2, 0xff, 0x01, 0x9f, 0x51, 0x6f, 0x3d, 0x7b, 0x4a, 0x63, 0xd1, 0x95, - 0x6d, 0xab, 0xe2, 0x39, 0x9b, 0x34, 0xb2, 0x86, 0xf1, 0xb2, 0xb2, 0xd7, 0xd4, 0x64, 0xbd, 0xc7, - 0xf5, 0x80, 0x99, 0xf9, 0x35, 0x01, 0x50, 0x4d, 0xd6, 0xcb, 0xbd, 0xb6, 0xde, 0x96, 0x3a, 0x06, - 0x0e, 0xe4, 0x7f, 0xbb, 0xa8, 0xfd, 0x0d, 0x6b, 0x4f, 0x94, 0x2f, 0xb9, 0xa2, 0x3c, 0x2d, 0xae, - 0xb8, 0xa3, 0x6c, 0x53, 0x1c, 0xed, 0xcf, 0x11, 0x73, 0xf2, 0x07, 0x02, 0xcc, 0x5b, 0x2b, 0x74, - 0x2b, 0x48, 0xa7, 0xa1, 0x97, 0x0e, 0x73, 0x1a, 0xcb, 0xc0, 0xfa, 0x89, 0xc3, 0x55, 0x66, 0xab, - 0xe3, 0xf2, 0x9d, 0xbb, 0x99, 0x05, 0x98, 0x23, 0x14, 0x75, 0xcd, 0x42, 0x96, 0x8c, 0x9c, 0x13, - 0x4f, 0x19, 0xb4, 0xb1, 0xb3, 0x56, 0xef, 0xe6, 0xad, 0x72, 0xb6, 0x05, 0xfe, 0xdf, 0x11, 0x60, - 0x79, 0xc3, 0x1a, 0xfd, 0xa1, 0x57, 0xb4, 0xbd, 0xc2, 0x43, 0xcf, 0x07, 0x1d, 0x1d, 0x67, 0x8b, - 0xe2, 0x73, 0x74, 0x61, 0xd2, 0x27, 0xbf, 0x2c, 0xcc, 0x2b, 0xe8, 0x44, 0x9e, 0xa4, 0xb5, 0x65, - 0xcd, 0x1c, 0x0d, 0x2d, 0xdf, 0x30, 0xab, 0xa3, 0x7f, 0x24, 0x80, 0xb8, 0x21, 0xeb, 0xec, 0x51, - 0xcd, 0x07, 0x88, 0xf8, 0x15, 0x77, 0xc4, 0x67, 0xd1, 0x93, 0xa3, 0x11, 0xe7, 0xd9, 0x4b, 0x90, - 0xe8, 0xdf, 0x08, 0x70, 0x82, 0x06, 0x1e, 0x3c, 0x51, 0xbf, 0x7c, 0x58, 0x74, 0xb4, 0xdd, 0x23, - 0x50, 0xf7, 0x12, 0xf3, 0xdb, 0x29, 0x75, 0x96, 0x82, 0x3c, 0x21, 0xfa, 0x0c, 0x08, 0x16, 0x1f, - 0x4c, 0x19, 0x35, 0xc1, 0xf7, 0x9e, 0x32, 0xda, 0xee, 0xfd, 0xa0, 0x2c, 0x1b, 0x80, 0xb2, 0xef, - 0x08, 0x70, 0x82, 0x2e, 0xc7, 0x3d, 0x29, 0x7b, 0xf1, 0xb0, 0xc8, 0x46, 0x4c, 0xf0, 0x2f, 0xd0, - 0x88, 0x2a, 0xc3, 0xcc, 0x2d, 0xdc, 0x57, 0x72, 0x7e, 0xfa, 0xf1, 0x1e, 0x8d, 0x72, 0x0e, 0xbf, - 0x7d, 0xed, 0xa5, 0x11, 0x97, 0x82, 0xe2, 0x37, 0x9b, 0x22, 0x8b, 0x3c, 0x17, 0x55, 0x58, 0x42, - 0x8b, 0x6e, 0xe0, 0xa4, 0x96, 0x8c, 0xe7, 0xa6, 0x45, 0xbb, 0xec, 0x5b, 0xc0, 0x9e, 0x0b, 0x0d, - 0x80, 0x49, 0xfb, 0x21, 0x90, 0x3f, 0xe3, 0x21, 0x0c, 0xc7, 0x44, 0x2f, 0xe8, 0x58, 0x0a, 0x30, - 0x7a, 0xbb, 0x7c, 0x1f, 0x05, 0x3d, 0x93, 0xe8, 0x7b, 0x89, 0x3e, 0x3b, 0x0a, 0xfd, 0xd7, 0x04, - 0x58, 0xb4, 0xcb, 0xb0, 0x85, 0xfe, 0xe9, 0xd0, 0x20, 0x46, 0x48, 0xed, 0x65, 0x2f, 0xa9, 0x5d, - 0xca, 0x79, 0x0a, 0xc6, 0x37, 0x04, 0xc8, 0x70, 0xe2, 0x6a, 0x7f, 0xb7, 0xda, 0x4b, 0x64, 0x9f, - 0x0d, 0x8a, 0xda, 0xd6, 0x1c, 0x61, 0x9f, 0x8b, 0xd8, 0x1e, 0x47, 0xcb, 0x6e, 0xe8, 0x3a, 0xb4, - 0x2e, 0xfa, 0x17, 0x02, 0x2c, 0xdb, 0x45, 0xd7, 0x0e, 0xf2, 0xa5, 0x43, 0x81, 0x61, 0x22, 0x7c, - 0x48, 0x4a, 0x9e, 0xf7, 0x10, 0x84, 0x15, 0x71, 0x14, 0x29, 0x58, 0x18, 0x30, 0x35, 0x76, 0x51, - 0xbe, 0x17, 0xd4, 0x30, 0x91, 0xbe, 0xd7, 0xd4, 0x64, 0xfd, 0xa8, 0xf9, 0x25, 0x01, 0x96, 0xed, - 0xa2, 0x6d, 0xa7, 0xe6, 0xb9, 0x43, 0x01, 0x1a, 0x21, 0xe2, 0x57, 0xbc, 0x44, 0xfc, 0x78, 0x6e, - 0xa4, 0x10, 0xfd, 0x45, 0x01, 0xc6, 0xe9, 0x90, 0x57, 0xd4, 0x16, 0xba, 0x18, 0xe0, 0x75, 0x2d, - 0xdb, 0xc3, 0x56, 0xfe, 0xfb, 0x70, 0x15, 0xb5, 0x25, 0xae, 0x50, 0x17, 0x57, 0x51, 0x5b, 0xab, - 0xe4, 0x30, 0x39, 0x45, 0x06, 0x62, 0x9c, 0x84, 0x04, 0x31, 0xbf, 0x6e, 0x43, 0x72, 0x43, 0xd6, - 0xb7, 0x0e, 0x30, 0x08, 0x2f, 0xe5, 0x3a, 0x13, 0xa0, 0x2b, 0xb2, 0xae, 0x3b, 0xe1, 0x12, 0x7f, - 0x04, 0x94, 0xa4, 0xf1, 0xc7, 0xae, 0x8c, 0xd7, 0x98, 0x78, 0x26, 0xaa, 0xa8, 0xad, 0xb5, 0x03, - 0x7a, 0x1e, 0x91, 0xed, 0xb7, 0xf9, 0xae, 0x93, 0x68, 0xe9, 0xe0, 0x48, 0xce, 0xbb, 0x20, 0xe1, - 0xb6, 0xdb, 0x08, 0xa0, 0xfa, 0xcd, 0x03, 0xf6, 0x9a, 0xeb, 0x8f, 0xc1, 0xb4, 0xb5, 0x41, 0x33, - 0x9a, 0x17, 0x81, 0xd8, 0xbe, 0x4a, 0x17, 0x68, 0xb8, 0x77, 0x4b, 0x76, 0x97, 0xb2, 0x73, 0x06, - 0x23, 0x9c, 0x9b, 0x31, 0x3f, 0x06, 0xd3, 0xd5, 0x07, 0xdb, 0xbf, 0x7d, 0xdf, 0xe5, 0x7d, 0xb2, - 0xd2, 0x22, 0xe7, 0xba, 0x0f, 0xb8, 0x77, 0xa2, 0xaf, 0x84, 0x7c, 0xa4, 0xd3, 0x10, 0xcd, 0xe7, - 0x42, 0xd7, 0x63, 0xeb, 0x97, 0x4b, 0x2e, 0xa3, 0x76, 0x5c, 0xcc, 0x98, 0xb0, 0xd9, 0xdb, 0xd3, - 0xfc, 0x3a, 0xe5, 0xeb, 0x02, 0x4c, 0x15, 0x9a, 0x4d, 0x0e, 0xb7, 0xff, 0x0c, 0xe6, 0xf2, 0x6e, - 0x70, 0x36, 0xf8, 0x13, 0xd8, 0x46, 0xf4, 0xc2, 0xce, 0xdd, 0x79, 0x31, 0xed, 0x84, 0x89, 0xe1, - 0xfd, 0xa1, 0x00, 0xc7, 0x37, 0xe4, 0x9e, 0xac, 0x1a, 0x03, 0xeb, 0x3c, 0x0d, 0xec, 0xef, 0x2c, - 0x7a, 0xbf, 0x54, 0x9c, 0x7d, 0xe9, 0x50, 0x75, 0x19, 0xb3, 0x4b, 0x6e, 0x64, 0x5c, 0x14, 0x9f, - 0x1a, 0xe2, 0xf6, 0x3b, 0xf4, 0x9f, 0x77, 0xf3, 0xd6, 0x0b, 0xcc, 0x79, 0x6a, 0x4d, 0x30, 0x85, - 0xdf, 0x16, 0x60, 0xd6, 0x38, 0xf0, 0xc0, 0x8f, 0x82, 0xaf, 0x7b, 0xee, 0xf5, 0x42, 0xf1, 0xc8, - 0xa8, 0xc2, 0x10, 0xe0, 0xbc, 0x98, 0x0b, 0x06, 0x78, 0x4f, 0xa6, 0xbb, 0x69, 0xdf, 0x24, 0x0b, - 0x77, 0x7d, 0xeb, 0xc0, 0xf9, 0xc2, 0x71, 0x80, 0xa9, 0xc1, 0xfd, 0x4d, 0xe4, 0x91, 0x3e, 0xfb, - 0x10, 0xe0, 0x53, 0xa2, 0xe8, 0x0d, 0xb8, 0x6e, 0xbc, 0xad, 0xfd, 0x15, 0x01, 0x66, 0x68, 0xb8, - 0x92, 0xe7, 0xa9, 0xaf, 0x42, 0xba, 0x3f, 0xbb, 0xec, 0x09, 0xf0, 0xa2, 0x1b, 0xc0, 0xe5, 0xdc, - 0x92, 0x27, 0x40, 0xf4, 0x93, 0x02, 0xcc, 0x18, 0xf3, 0x45, 0x59, 0xea, 0xfa, 0x78, 0x65, 0xe7, - 0x03, 0xc8, 0xa7, 0xd9, 0x0a, 0x39, 0x23, 0xe1, 0x7a, 0x68, 0xc4, 0xdc, 0xc2, 0xea, 0xca, 0xf9, - 0xb6, 0xd4, 0xa5, 0x53, 0x2d, 0xfa, 0x29, 0x0a, 0xc5, 0xf1, 0x4e, 0xaf, 0x17, 0x94, 0xd5, 0xc0, - 0xcf, 0x57, 0xd2, 0x87, 0x9d, 0x30, 0x6b, 0x66, 0x60, 0x1a, 0xb3, 0x86, 0x46, 0x48, 0xec, 0x81, - 0x4a, 0x06, 0x87, 0x84, 0x4e, 0xf2, 0xf4, 0x23, 0xb0, 0x6f, 0x72, 0x96, 0x88, 0x5d, 0x55, 0x15, - 0xd0, 0x12, 0xd9, 0xde, 0xb4, 0x0d, 0x64, 0x89, 0x68, 0x0d, 0x62, 0x2f, 0x11, 0xa4, 0x39, 0x90, - 0xee, 0x06, 0x89, 0x01, 0xc5, 0xe2, 0xff, 0x0f, 0x04, 0x98, 0xa1, 0xb1, 0x7a, 0x1e, 0xe8, 0x95, - 0x60, 0x9b, 0x79, 0x47, 0xc1, 0xfa, 0xd2, 0x08, 0xac, 0x27, 0xb3, 0x59, 0x27, 0x56, 0x2b, 0x42, - 0xc5, 0x8e, 0x9b, 0xf0, 0xea, 0x10, 0x14, 0xb5, 0xfb, 0xab, 0xc1, 0x23, 0xf5, 0x75, 0x16, 0x66, - 0x38, 0x88, 0x9c, 0x3b, 0x77, 0x2c, 0x37, 0x02, 0x23, 0xfa, 0x75, 0xfb, 0x0c, 0xca, 0x22, 0x74, - 0x81, 0x66, 0x50, 0x97, 0x0b, 0x7d, 0x02, 0xcd, 0xa0, 0x6e, 0x17, 0x28, 0x11, 0xc7, 0xd9, 0x43, - 0x6c, 0xf9, 0x89, 0xd4, 0x20, 0x80, 0x9b, 0x48, 0xbf, 0x2d, 0xc0, 0x14, 0x6d, 0xcc, 0x7c, 0x07, - 0xf1, 0x99, 0x50, 0xf7, 0xee, 0x19, 0xd8, 0x9f, 0x0d, 0x59, 0x8b, 0x21, 0x5f, 0xf5, 0xd8, 0x26, - 0x5e, 0x10, 0x67, 0xac, 0x6d, 0x62, 0x0e, 0xef, 0x7b, 0x82, 0xf9, 0x11, 0x04, 0x39, 0x41, 0x76, - 0x2e, 0x60, 0xb7, 0xe5, 0x62, 0x36, 0xcc, 0x83, 0xa9, 0xc4, 0x93, 0x44, 0x76, 0x5c, 0x28, 0x52, - 0xa6, 0xd8, 0xd2, 0x68, 0xca, 0xbe, 0x85, 0x8d, 0x7e, 0x5a, 0x80, 0x49, 0xb6, 0x34, 0x64, 0x6f, - 0x3f, 0x06, 0x65, 0xa2, 0xdd, 0xbb, 0x0f, 0xfa, 0xe0, 0x24, 0xd9, 0x0b, 0x98, 0x36, 0x5f, 0xb6, - 0xe3, 0x74, 0x6a, 0x4a, 0x1c, 0x37, 0xb1, 0x61, 0x7e, 0xfd, 0x6d, 0x01, 0x26, 0xd9, 0x32, 0x2f, - 0x24, 0x32, 0xdb, 0xc3, 0xb8, 0xc1, 0x91, 0x5d, 0x24, 0xda, 0x64, 0x47, 0x66, 0x72, 0x6e, 0x36, - 0xeb, 0xe0, 0x1c, 0x86, 0xf8, 0x8b, 0x02, 0xcc, 0x58, 0x7e, 0xb8, 0x01, 0x33, 0xc4, 0xc0, 0x06, - 0xc6, 0xf6, 0x89, 0x51, 0xd8, 0xb0, 0x35, 0xb2, 0x1f, 0x4c, 0x70, 0xb8, 0xeb, 0xbf, 0x48, 0xac, - 0xd1, 0xa3, 0x88, 0xd3, 0xee, 0xd6, 0xdf, 0x11, 0x60, 0x92, 0x9a, 0xc0, 0x43, 0x60, 0xf4, 0x32, - 0x92, 0x58, 0x4f, 0xe7, 0xc0, 0xb8, 0x17, 0x81, 0x59, 0x48, 0x4b, 0x23, 0x72, 0x4e, 0x8d, 0xf8, - 0xe7, 0xe6, 0x46, 0x89, 0xfd, 0x86, 0xd0, 0x00, 0x1b, 0x25, 0x23, 0xae, 0x14, 0xcd, 0xbe, 0x18, - 0xfe, 0xbe, 0x4b, 0xd3, 0xd4, 0x3c, 0xeb, 0x61, 0x6a, 0xb0, 0x85, 0x64, 0xf7, 0xef, 0xba, 0x59, - 0x9c, 0x5f, 0x13, 0x60, 0x7e, 0x43, 0xd6, 0xed, 0xa8, 0x88, 0xed, 0x59, 0x0d, 0x03, 0xa6, 0x5c, - 0xcc, 0x86, 0xbe, 0xdb, 0x55, 0x5c, 0xf7, 0x80, 0xfc, 0x14, 0x3a, 0x37, 0x04, 0xf9, 0x1d, 0xeb, - 0x3e, 0x8e, 0x77, 0x69, 0x26, 0x1b, 0x8a, 0x9f, 0xa5, 0x04, 0xb8, 0x3c, 0xc4, 0xea, 0xe5, 0x35, - 0x5d, 0x0e, 0xf5, 0x20, 0x14, 0xf5, 0x9c, 0xf0, 0x14, 0x34, 0x0f, 0xb3, 0x06, 0x54, 0xe7, 0x34, - 0x44, 0x42, 0xc2, 0x06, 0x54, 0xbb, 0x07, 0xf5, 0x1f, 0x04, 0x98, 0xb3, 0x4d, 0x41, 0xc6, 0x34, - 0xfa, 0xe2, 0x21, 0xde, 0xa5, 0x0a, 0xbc, 0x46, 0x1a, 0xf1, 0x10, 0x9a, 0x78, 0xfd, 0xce, 0xdd, - 0xcc, 0x8a, 0x2b, 0x2d, 0x68, 0xdc, 0x50, 0x15, 0x36, 0x10, 0xe2, 0x93, 0x79, 0xf7, 0x11, 0x70, - 0x99, 0x6b, 0xbf, 0x2b, 0x40, 0xba, 0xd0, 0x6c, 0xda, 0x1f, 0xb9, 0xbd, 0x18, 0x0a, 0x68, 0xa1, - 0xd9, 0xf4, 0x3f, 0xd0, 0x61, 0xab, 0x41, 0xb6, 0xab, 0xb2, 0x30, 0xe7, 0x20, 0xc6, 0x6e, 0x53, - 0x96, 0x45, 0xe7, 0xa1, 0x2c, 0xce, 0x77, 0xfc, 0x0d, 0x01, 0x66, 0xa9, 0x23, 0x68, 0x47, 0xfe, - 0x74, 0x28, 0x1c, 0xb4, 0x85, 0xb0, 0xe0, 0xcb, 0x01, 0xc0, 0x9f, 0xce, 0xae, 0xb8, 0x83, 0xb7, - 0x3b, 0x93, 0xbf, 0x22, 0xc0, 0xac, 0xcd, 0x2c, 0x1e, 0x8a, 0x0c, 0xda, 0x82, 0xa7, 0x99, 0xdc, - 0xb8, 0x73, 0x37, 0xb3, 0x0c, 0xf3, 0x0e, 0xbc, 0x0e, 0x6b, 0x29, 0xe6, 0x7c, 0x01, 0xa3, 0xdf, - 0x37, 0x3d, 0x4b, 0xee, 0xab, 0xcc, 0x00, 0x07, 0x20, 0xbc, 0x5e, 0xb5, 0xcc, 0xbe, 0x70, 0x88, - 0x9a, 0x4c, 0x1d, 0x5e, 0xbb, 0x73, 0x37, 0x73, 0x02, 0x66, 0x4c, 0x2b, 0xa4, 0x74, 0x64, 0x57, - 0x65, 0x38, 0x27, 0x9e, 0xf2, 0x50, 0x06, 0xa2, 0xe8, 0xbc, 0x2a, 0xfc, 0x32, 0x5d, 0x35, 0xf1, - 0x6f, 0xda, 0x86, 0x7c, 0x91, 0x37, 0xb0, 0x3b, 0x87, 0xcb, 0x93, 0x65, 0x48, 0x86, 0x5c, 0x44, - 0x63, 0x91, 0x60, 0x97, 0xa2, 0x25, 0x71, 0xce, 0x31, 0x28, 0x04, 0x34, 0x8b, 0x1d, 0xa0, 0xb5, - 0x41, 0xe7, 0xb6, 0x03, 0xf0, 0xe5, 0x70, 0x80, 0x71, 0x0b, 0x9e, 0x72, 0x53, 0xf0, 0xc5, 0x77, - 0x52, 0xcc, 0xba, 0xe1, 0xcb, 0xd7, 0x6f, 0x0e, 0x3a, 0x24, 0xc2, 0xf1, 0x0f, 0xcd, 0x25, 0x1e, - 0x0f, 0xf2, 0x52, 0x08, 0x90, 0x4c, 0x45, 0x43, 0x31, 0x36, 0x00, 0xf0, 0xac, 0x3b, 0xf0, 0x77, - 0x6e, 0xcb, 0x07, 0xef, 0xb2, 0xb3, 0x77, 0x33, 0x36, 0xc5, 0x0c, 0x0d, 0xdc, 0x47, 0x29, 0xb1, - 0x05, 0x5c, 0xb2, 0xcc, 0x39, 0xc1, 0xe8, 0x50, 0x49, 0xbc, 0xcc, 0xf3, 0x04, 0x89, 0xfe, 0xc8, - 0x54, 0x46, 0xee, 0x20, 0x72, 0x00, 0x65, 0xf4, 0x7a, 0x5c, 0xc4, 0x5f, 0x19, 0x3d, 0x1f, 0x70, - 0x11, 0x6f, 0xdc, 0xb9, 0x9b, 0x39, 0x3e, 0x7c, 0x3e, 0xd9, 0xa9, 0x8b, 0x17, 0xc5, 0xa7, 0x3c, - 0x74, 0xd1, 0x76, 0x64, 0x99, 0x53, 0xc9, 0xdf, 0x10, 0x6c, 0xcf, 0xf4, 0x10, 0x0f, 0xe7, 0x42, - 0x08, 0x9c, 0x41, 0x4e, 0x84, 0x39, 0xde, 0x7e, 0x21, 0x96, 0x25, 0x00, 0x31, 0x39, 0x74, 0x36, - 0x08, 0x31, 0xc4, 0xdb, 0xf9, 0x81, 0x00, 0xf3, 0x6c, 0x83, 0xc5, 0xfe, 0xe5, 0x2f, 0x7a, 0x36, - 0xe4, 0xb3, 0x4d, 0x6c, 0x67, 0xee, 0xa9, 0x10, 0x44, 0x89, 0xbb, 0x76, 0x53, 0x89, 0x09, 0xa2, - 0xda, 0xe0, 0xa0, 0xe8, 0xbc, 0x78, 0xc6, 0x83, 0x22, 0xa5, 0xdd, 0x6c, 0xf0, 0x54, 0xe1, 0xa1, - 0xf9, 0x6d, 0xf3, 0x30, 0x1c, 0x4f, 0xcf, 0xa5, 0x10, 0xc0, 0xd8, 0xbe, 0x5c, 0x28, 0x5a, 0xae, - 0x07, 0xa4, 0xe5, 0x42, 0x36, 0xf0, 0xe8, 0x60, 0x62, 0x7e, 0x57, 0x80, 0x79, 0x6b, 0xb9, 0xc7, - 0x13, 0x14, 0x52, 0xda, 0x42, 0x11, 0x23, 0x05, 0x24, 0xe6, 0x85, 0xec, 0x33, 0x41, 0x89, 0x71, - 0xae, 0x0f, 0x31, 0x61, 0xd5, 0x0f, 0x07, 0x61, 0xf6, 0x05, 0xe5, 0x77, 0x4c, 0x03, 0x7d, 0x04, - 0xa2, 0xbc, 0x8c, 0x73, 0xed, 0xce, 0xdd, 0xcc, 0x49, 0x6b, 0x02, 0xc1, 0xf8, 0x99, 0x6d, 0x76, - 0x1a, 0x81, 0x5c, 0x70, 0x23, 0xf0, 0x9f, 0xcc, 0xcd, 0x6d, 0x0e, 0x04, 0xf7, 0xe0, 0xe8, 0xc5, - 0xe0, 0xef, 0x70, 0x31, 0xcd, 0x09, 0xf1, 0x72, 0x97, 0xd8, 0x09, 0x38, 0x24, 0xc5, 0xec, 0x2b, - 0x81, 0x28, 0xb2, 0xbf, 0xbd, 0x47, 0x4d, 0x04, 0x7d, 0xec, 0x0b, 0x8f, 0xce, 0x9f, 0x08, 0x90, - 0xad, 0xca, 0x2d, 0xb6, 0xdb, 0x44, 0x60, 0xf0, 0x4f, 0xb4, 0x85, 0x1c, 0x26, 0xdf, 0xd8, 0x3d, - 0xdf, 0xb8, 0xa8, 0x07, 0xa4, 0x74, 0x33, 0xbb, 0x11, 0x58, 0xf8, 0x2c, 0xea, 0xf2, 0x75, 0xfa, - 0x69, 0x08, 0x7d, 0x4d, 0x8e, 0xbe, 0x30, 0x87, 0x29, 0xfe, 0xb7, 0x02, 0xcc, 0xda, 0x7c, 0x63, - 0x7a, 0x39, 0x31, 0x7a, 0xe1, 0x30, 0xc1, 0x81, 0xa3, 0xc7, 0x15, 0x1c, 0x12, 0x4c, 0x96, 0xde, - 0xee, 0xd3, 0x98, 0x78, 0x3a, 0x3f, 0x72, 0xb9, 0xce, 0xcd, 0xc6, 0xef, 0x0b, 0xf6, 0x57, 0x89, - 0x1e, 0x50, 0xc0, 0x61, 0x8d, 0x84, 0x79, 0x5c, 0x68, 0xa1, 0x9b, 0x58, 0x48, 0xcc, 0xfb, 0xc7, - 0x1b, 0x7e, 0x55, 0x00, 0x64, 0x0b, 0x86, 0xd2, 0x7b, 0xd0, 0x2f, 0x87, 0x01, 0xc3, 0xe6, 0xde, - 0xf3, 0x61, 0xea, 0x10, 0x5f, 0x94, 0x0b, 0x41, 0x50, 0xf0, 0x56, 0x68, 0x54, 0x14, 0x8f, 0x8f, - 0x44, 0xcf, 0x82, 0x3d, 0xc8, 0x16, 0x2e, 0x3d, 0x04, 0x76, 0x66, 0x31, 0xc2, 0x61, 0xbf, 0x3a, - 0x1a, 0xfb, 0x99, 0x6c, 0x00, 0xce, 0x33, 0x57, 0x61, 0x61, 0x28, 0x98, 0x4a, 0x89, 0x08, 0x2b, - 0x3d, 0xe1, 0x08, 0xa8, 0x8e, 0x26, 0xe0, 0xe9, 0xec, 0xaa, 0x3f, 0x01, 0xce, 0x19, 0x15, 0x13, - 0x53, 0xfd, 0xe1, 0x25, 0xc6, 0x3e, 0x8b, 0xfe, 0x82, 0x00, 0xc8, 0xb6, 0xcc, 0x39, 0x1c, 0x21, - 0xa3, 0xb6, 0xc9, 0x17, 0xac, 0x48, 0x09, 0x85, 0xcc, 0x6d, 0x64, 0x9d, 0xca, 0x05, 0xd1, 0xdd, - 0xef, 0x0a, 0x90, 0xb5, 0x62, 0x85, 0x43, 0x2f, 0xf6, 0x78, 0x05, 0x0c, 0x9f, 0x0b, 0xff, 0x32, - 0x03, 0x8d, 0x1a, 0x96, 0x48, 0xbc, 0x64, 0xc9, 0x8e, 0xda, 0x19, 0x3b, 0x24, 0x67, 0xc1, 0x0d, - 0xe8, 0x0c, 0xad, 0x3d, 0x84, 0x78, 0x27, 0x02, 0x4b, 0xc3, 0x33, 0x82, 0x11, 0x47, 0x7c, 0xe5, - 0xb0, 0xef, 0x46, 0x18, 0xb3, 0xc3, 0xa7, 0x0e, 0xdf, 0x00, 0x9b, 0x23, 0x6e, 0x06, 0xa1, 0xf3, - 0x93, 0xe2, 0xf3, 0x3e, 0x43, 0x64, 0x5c, 0x53, 0xec, 0x1a, 0x5e, 0xfc, 0x43, 0x01, 0xe6, 0xad, - 0x10, 0x05, 0xff, 0x76, 0xd2, 0xb3, 0xe1, 0xf1, 0x17, 0x9a, 0xcd, 0xec, 0xe5, 0xf0, 0xd5, 0xc4, - 0x3f, 0x7b, 0xe7, 0x6e, 0xe6, 0x18, 0x64, 0x5d, 0x09, 0xb5, 0x14, 0xe8, 0x59, 0xf1, 0x62, 0x58, - 0x4a, 0x99, 0xab, 0x93, 0xb1, 0x85, 0x38, 0x78, 0x22, 0x9f, 0x0f, 0x8f, 0x96, 0x05, 0x3c, 0x0e, - 0x43, 0xa7, 0x1c, 0x88, 0xce, 0x57, 0xb2, 0x2f, 0x86, 0x1e, 0x51, 0x5b, 0xd0, 0xf2, 0x07, 0x02, - 0x64, 0x86, 0x8d, 0xc6, 0xe1, 0x29, 0xf6, 0x89, 0x94, 0x34, 0xc8, 0x7a, 0x7c, 0xd9, 0x95, 0x2a, - 0xce, 0x96, 0x7c, 0x22, 0x77, 0x04, 0xb2, 0xd0, 0xf7, 0x04, 0x48, 0x5b, 0xdf, 0xd0, 0x30, 0xdf, - 0xed, 0x4a, 0xc8, 0x2b, 0xb2, 0x03, 0x6f, 0x99, 0x7b, 0x5c, 0xaa, 0x4f, 0x76, 0x83, 0x66, 0x60, - 0x9a, 0x7c, 0x34, 0xe3, 0x70, 0x73, 0xb2, 0xe2, 0x3c, 0xfb, 0x5e, 0x66, 0xd8, 0x2f, 0xfb, 0x25, - 0x81, 0x7b, 0x46, 0x82, 0x38, 0x65, 0x4f, 0x05, 0x46, 0x10, 0xf4, 0x63, 0x4c, 0xcb, 0x1d, 0x7b, - 0xc1, 0x1b, 0xe4, 0x09, 0x74, 0x6c, 0xe8, 0xa3, 0x1e, 0xde, 0x92, 0x7f, 0x4b, 0x80, 0x69, 0xeb, - 0x76, 0x0b, 0x3a, 0xd7, 0x84, 0x7d, 0xe7, 0x24, 0xd8, 0x67, 0x99, 0x74, 0xca, 0x7c, 0x9e, 0x1e, - 0xf4, 0xe0, 0xa0, 0xda, 0x0f, 0xd5, 0xbb, 0x63, 0xc5, 0x2c, 0xfd, 0x7b, 0x02, 0x4c, 0x5b, 0xdf, - 0xed, 0x85, 0x45, 0xca, 0xbc, 0xad, 0x10, 0x48, 0x3f, 0x39, 0x02, 0xe9, 0xe3, 0xd9, 0x91, 0x5c, - 0x65, 0x9e, 0xf9, 0xac, 0xfd, 0x5e, 0x0f, 0x0a, 0x39, 0x94, 0x1c, 0x84, 0x80, 0x5b, 0x1e, 0x01, - 0xf7, 0x42, 0xf6, 0xec, 0x28, 0xb8, 0x4e, 0x7f, 0xea, 0x7d, 0xb2, 0x05, 0xf2, 0x43, 0x02, 0xdd, - 0xee, 0x3d, 0xbd, 0x27, 0xf0, 0x1f, 0xf2, 0x1e, 0x02, 0xf6, 0xa8, 0xcf, 0x01, 0x67, 0x61, 0x86, - 0xc3, 0xc8, 0x19, 0xba, 0x13, 0xb9, 0xd1, 0x4a, 0xf6, 0x37, 0x05, 0x98, 0x5d, 0x1b, 0x74, 0x6e, - 0x3b, 0x91, 0x3d, 0x1d, 0x18, 0x99, 0xf5, 0xd6, 0x8d, 0x27, 0xc2, 0x67, 0x46, 0x21, 0x5c, 0xcc, - 0x21, 0x8a, 0xd0, 0x30, 0x55, 0x6c, 0x3b, 0x60, 0xed, 0x37, 0x85, 0x2f, 0x17, 0xfe, 0x86, 0x80, - 0x36, 0x60, 0xca, 0xba, 0x42, 0x6b, 0xa5, 0xb0, 0x53, 0x16, 0x2f, 0xa2, 0xd5, 0x3d, 0x5d, 0xef, - 0x6b, 0x2f, 0xe6, 0xf3, 0xad, 0xb6, 0xbe, 0x37, 0xb8, 0xb9, 0xda, 0x50, 0xba, 0x79, 0x8c, 0xd7, - 0xbc, 0x13, 0xaa, 0x7f, 0xbb, 0x95, 0xb7, 0x30, 0x5f, 0x8e, 0x5e, 0x5c, 0xbd, 0x94, 0x13, 0x22, - 0x97, 0xf9, 0xf7, 0xf0, 0xf3, 0x3f, 0xaa, 0x29, 0x3d, 0x7b, 0x4a, 0x4b, 0xed, 0x37, 0x5e, 0x1c, - 0x2a, 0xf3, 0xe2, 0x50, 0x99, 0x37, 0x9f, 0x1a, 0xd5, 0x2f, 0x2e, 0xc1, 0x75, 0x7e, 0x33, 0x41, - 0xb8, 0xf1, 0xf4, 0xff, 0x0f, 0x00, 0x00, 0xff, 0xff, 0x98, 0xb1, 0x5c, 0xc6, 0x6e, 0xd5, 0x00, - 0x00, +func (x *IdpID) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IdpID) ProtoMessage() {} + +func (x *IdpID) 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 IdpID.ProtoReflect.Descriptor instead. +func (*IdpID) Descriptor() ([]byte, []int) { + return file_management_proto_rawDescGZIP(), []int{145} +} + +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 assignable to IdpConfig: + // *Idp_OidcConfig + IdpConfig isIdp_IdpConfig `protobuf_oneof:"idp_config"` + Sequence uint64 `protobuf:"varint,8,opt,name=sequence,proto3" json:"sequence,omitempty"` +} + +func (x *Idp) Reset() { + *x = Idp{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[146] + 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[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 Idp.ProtoReflect.Descriptor instead. +func (*Idp) Descriptor() ([]byte, []int) { + return file_management_proto_rawDescGZIP(), []int{146} +} + +func (x *Idp) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *Idp) GetState() IdpState { + if x != nil { + return x.State + } + return IdpState_IDPCONFIGSTATE_UNSPECIFIED +} + +func (x *Idp) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate + } + return nil +} + +func (x *Idp) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate + } + return nil +} + +func (x *Idp) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +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() +} + +type Idp_OidcConfig struct { + OidcConfig *OidcIdpConfig `protobuf:"bytes,7,opt,name=oidc_config,json=oidcConfig,proto3,oneof"` +} + +func (*Idp_OidcConfig) isIdp_IdpConfig() {} + +type IdpUpdate struct { + 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 (x *IdpUpdate) Reset() { + *x = IdpUpdate{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[147] + 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[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 IdpUpdate.ProtoReflect.Descriptor instead. +func (*IdpUpdate) Descriptor() ([]byte, []int) { + return file_management_proto_rawDescGZIP(), []int{147} +} + +func (x *IdpUpdate) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *IdpUpdate) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *IdpUpdate) GetLogoSrc() []byte { + if x != nil { + return x.LogoSrc + } + return nil +} + +type OidcIdpConfig struct { + 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"` +} + +func (x *OidcIdpConfig) Reset() { + *x = OidcIdpConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[148] + 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[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 OidcIdpConfig.ProtoReflect.Descriptor instead. +func (*OidcIdpConfig) Descriptor() ([]byte, []int) { + return file_management_proto_rawDescGZIP(), []int{148} +} + +func (x *OidcIdpConfig) GetClientId() string { + if x != nil { + return x.ClientId + } + return "" +} + +func (x *OidcIdpConfig) GetClientSecret() string { + if x != nil { + return x.ClientSecret + } + return "" +} + +func (x *OidcIdpConfig) GetIssuer() string { + if x != nil { + return x.Issuer + } + return "" +} + +func (x *OidcIdpConfig) GetScopes() []string { + if x != nil { + return x.Scopes + } + return nil +} + +type OidcIdpConfigCreate struct { + 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"` +} + +func (x *OidcIdpConfigCreate) Reset() { + *x = OidcIdpConfigCreate{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[149] + 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[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 OidcIdpConfigCreate.ProtoReflect.Descriptor instead. +func (*OidcIdpConfigCreate) Descriptor() ([]byte, []int) { + return file_management_proto_rawDescGZIP(), []int{149} +} + +func (x *OidcIdpConfigCreate) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *OidcIdpConfigCreate) GetLogoSrc() []byte { + if x != nil { + return x.LogoSrc + } + return nil +} + +func (x *OidcIdpConfigCreate) GetClientId() string { + if x != nil { + return x.ClientId + } + return "" +} + +func (x *OidcIdpConfigCreate) GetClientSecret() string { + if x != nil { + return x.ClientSecret + } + return "" +} + +func (x *OidcIdpConfigCreate) GetIssuer() string { + if x != nil { + return x.Issuer + } + return "" +} + +func (x *OidcIdpConfigCreate) GetScopes() []string { + if x != nil { + return x.Scopes + } + return nil +} + +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"` +} + +func (x *OidcIdpConfigUpdate) Reset() { + *x = OidcIdpConfigUpdate{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[150] + 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[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 OidcIdpConfigUpdate.ProtoReflect.Descriptor instead. +func (*OidcIdpConfigUpdate) Descriptor() ([]byte, []int) { + return file_management_proto_rawDescGZIP(), []int{150} +} + +func (x *OidcIdpConfigUpdate) GetIdpId() string { + if x != nil { + return x.IdpId + } + return "" +} + +func (x *OidcIdpConfigUpdate) GetClientId() string { + if x != nil { + return x.ClientId + } + return "" +} + +func (x *OidcIdpConfigUpdate) GetClientSecret() string { + if x != nil { + return x.ClientSecret + } + return "" +} + +func (x *OidcIdpConfigUpdate) GetIssuer() string { + if x != nil { + return x.Issuer + } + return "" +} + +func (x *OidcIdpConfigUpdate) GetScopes() []string { + if x != nil { + return x.Scopes + } + return nil +} + +type IdpSearchResponse 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 []*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 (x *IdpSearchResponse) Reset() { + *x = IdpSearchResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[151] + 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[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 IdpSearchResponse.ProtoReflect.Descriptor instead. +func (*IdpSearchResponse) Descriptor() ([]byte, []int) { + return file_management_proto_rawDescGZIP(), []int{151} +} + +func (x *IdpSearchResponse) GetOffset() uint64 { + if x != nil { + return x.Offset + } + return 0 +} + +func (x *IdpSearchResponse) GetLimit() uint64 { + if x != nil { + return x.Limit + } + return 0 +} + +func (x *IdpSearchResponse) GetTotalResult() uint64 { + if x != nil { + return x.TotalResult + } + return 0 +} + +func (x *IdpSearchResponse) GetResult() []*IdpView { + if x != nil { + return x.Result + } + return nil +} + +func (x *IdpSearchResponse) GetProcessedSequence() uint64 { + if x != nil { + return x.ProcessedSequence + } + return 0 +} + +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"` + 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"` + 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 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"` +} + +func (x *IdpView) Reset() { + *x = IdpView{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[152] + 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[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 IdpView.ProtoReflect.Descriptor instead. +func (*IdpView) Descriptor() ([]byte, []int) { + return file_management_proto_rawDescGZIP(), []int{152} +} + +func (x *IdpView) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *IdpView) GetState() IdpState { + if x != nil { + return x.State + } + return IdpState_IDPCONFIGSTATE_UNSPECIFIED +} + +func (x *IdpView) GetCreationDate() *timestamp.Timestamp { + if x != nil { + return x.CreationDate + } + return nil +} + +func (x *IdpView) GetChangeDate() *timestamp.Timestamp { + if x != nil { + return x.ChangeDate + } + return nil +} + +func (x *IdpView) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *IdpView) GetLogoSrc() []byte { + if x != nil { + return x.LogoSrc + } + return nil +} + +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() +} + +type IdpView_OidcConfig struct { + OidcConfig *OidcIdpConfigView `protobuf:"bytes,8,opt,name=oidc_config,json=oidcConfig,proto3,oneof"` +} + +func (*IdpView_OidcConfig) isIdpView_IdpConfigView() {} + +type OidcIdpConfigView struct { + 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"` +} + +func (x *OidcIdpConfigView) Reset() { + *x = OidcIdpConfigView{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[153] + 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[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 OidcIdpConfigView.ProtoReflect.Descriptor instead. +func (*OidcIdpConfigView) Descriptor() ([]byte, []int) { + return file_management_proto_rawDescGZIP(), []int{153} +} + +func (x *OidcIdpConfigView) GetClientId() string { + if x != nil { + return x.ClientId + } + return "" +} + +func (x *OidcIdpConfigView) GetIssuer() string { + if x != nil { + return x.Issuer + } + return "" +} + +func (x *OidcIdpConfigView) GetScopes() []string { + if x != nil { + return x.Scopes + } + return nil +} + +type IdpSearchRequest 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"` + Queries []*IdpSearchQuery `protobuf:"bytes,3,rep,name=queries,proto3" json:"queries,omitempty"` +} + +func (x *IdpSearchRequest) Reset() { + *x = IdpSearchRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[154] + 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[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 IdpSearchRequest.ProtoReflect.Descriptor instead. +func (*IdpSearchRequest) Descriptor() ([]byte, []int) { + return file_management_proto_rawDescGZIP(), []int{154} +} + +func (x *IdpSearchRequest) GetOffset() uint64 { + if x != nil { + return x.Offset + } + return 0 +} + +func (x *IdpSearchRequest) GetLimit() uint64 { + if x != nil { + return x.Limit + } + return 0 +} + +func (x *IdpSearchRequest) GetQueries() []*IdpSearchQuery { + if x != nil { + return x.Queries + } + return nil +} + +type IdpSearchQuery struct { + 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 (x *IdpSearchQuery) Reset() { + *x = IdpSearchQuery{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[155] + 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[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 IdpSearchQuery.ProtoReflect.Descriptor instead. +func (*IdpSearchQuery) Descriptor() ([]byte, []int) { + return file_management_proto_rawDescGZIP(), []int{155} +} + +func (x *IdpSearchQuery) GetKey() IdpSearchKey { + if x != nil { + return x.Key + } + return IdpSearchKey_IDPSEARCHKEY_UNSPECIFIED +} + +func (x *IdpSearchQuery) GetMethod() SearchMethod { + if x != nil { + return x.Method + } + return SearchMethod_SEARCHMETHOD_EQUALS +} + +func (x *IdpSearchQuery) GetValue() string { + if x != nil { + return x.Value + } + return "" +} + +type LoginPolicy struct { + 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 (x *LoginPolicy) Reset() { + *x = LoginPolicy{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[156] + 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[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 LoginPolicy.ProtoReflect.Descriptor instead. +func (*LoginPolicy) Descriptor() ([]byte, []int) { + return file_management_proto_rawDescGZIP(), []int{156} +} + +func (x *LoginPolicy) GetAllowUsernamePassword() bool { + if x != nil { + return x.AllowUsernamePassword + } + return false +} + +func (x *LoginPolicy) GetAllowRegister() bool { + if x != nil { + return x.AllowRegister + } + return false +} + +func (x *LoginPolicy) GetAllowExternalIdp() bool { + if x != nil { + return x.AllowExternalIdp + } + return false +} + +type LoginPolicyAdd struct { + 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 (x *LoginPolicyAdd) Reset() { + *x = LoginPolicyAdd{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[157] + 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[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 LoginPolicyAdd.ProtoReflect.Descriptor instead. +func (*LoginPolicyAdd) Descriptor() ([]byte, []int) { + return file_management_proto_rawDescGZIP(), []int{157} +} + +func (x *LoginPolicyAdd) GetAllowUsernamePassword() bool { + if x != nil { + return x.AllowUsernamePassword + } + return false +} + +func (x *LoginPolicyAdd) GetAllowRegister() bool { + if x != nil { + return x.AllowRegister + } + return false +} + +func (x *LoginPolicyAdd) GetAllowExternalIdp() bool { + if x != nil { + return x.AllowExternalIdp + } + return false +} + +type IdpProviderID 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"` +} + +func (x *IdpProviderID) Reset() { + *x = IdpProviderID{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[158] + 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[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 IdpProviderID.ProtoReflect.Descriptor instead. +func (*IdpProviderID) Descriptor() ([]byte, []int) { + return file_management_proto_rawDescGZIP(), []int{158} +} + +func (x *IdpProviderID) GetIdpConfigId() string { + if x != nil { + return x.IdpConfigId + } + return "" +} + +type IdpProviderAdd 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"` + 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 (x *IdpProviderAdd) Reset() { + *x = IdpProviderAdd{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[159] + 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[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 IdpProviderAdd.ProtoReflect.Descriptor instead. +func (*IdpProviderAdd) Descriptor() ([]byte, []int) { + return file_management_proto_rawDescGZIP(), []int{159} +} + +func (x *IdpProviderAdd) GetIdpConfigId() string { + if x != nil { + return x.IdpConfigId + } + return "" +} + +func (x *IdpProviderAdd) GetIdpProviderType() IdpProviderType { + if x != nil { + return x.IdpProviderType + } + return IdpProviderType_IDPPROVIDERTYPE_UNSPECIFIED +} + +type IdpProvider 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"` + 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 (x *IdpProvider) Reset() { + *x = IdpProvider{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[160] + 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[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 IdpProvider.ProtoReflect.Descriptor instead. +func (*IdpProvider) Descriptor() ([]byte, []int) { + return file_management_proto_rawDescGZIP(), []int{160} +} + +func (x *IdpProvider) GetIdpConfigId() string { + if x != nil { + return x.IdpConfigId + } + return "" +} + +func (x *IdpProvider) GetIdpProvider_Type() IdpProviderType { + if x != nil { + return x.IdpProvider_Type + } + return IdpProviderType_IDPPROVIDERTYPE_UNSPECIFIED +} + +type LoginPolicyView struct { + 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 (x *LoginPolicyView) Reset() { + *x = LoginPolicyView{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[161] + 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[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 LoginPolicyView.ProtoReflect.Descriptor instead. +func (*LoginPolicyView) Descriptor() ([]byte, []int) { + return file_management_proto_rawDescGZIP(), []int{161} +} + +func (x *LoginPolicyView) GetDefault() bool { + if x != nil { + return x.Default + } + return false +} + +func (x *LoginPolicyView) GetAllowUsernamePassword() bool { + if x != nil { + return x.AllowUsernamePassword + } + return false +} + +func (x *LoginPolicyView) GetAllowRegister() bool { + if x != nil { + return x.AllowRegister + } + return false +} + +func (x *LoginPolicyView) GetAllowExternalIdp() bool { + if x != nil { + return x.AllowExternalIdp + } + return false +} + +type IdpProviderViews struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Providers []*IdpProviderView `protobuf:"bytes,1,rep,name=providers,proto3" json:"providers,omitempty"` +} + +func (x *IdpProviderViews) Reset() { + *x = IdpProviderViews{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[162] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IdpProviderViews) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IdpProviderViews) ProtoMessage() {} + +func (x *IdpProviderViews) 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 IdpProviderViews.ProtoReflect.Descriptor instead. +func (*IdpProviderViews) Descriptor() ([]byte, []int) { + return file_management_proto_rawDescGZIP(), []int{162} +} + +func (x *IdpProviderViews) GetProviders() []*IdpProviderView { + if x != nil { + return x.Providers + } + return nil +} + +type IdpProviderView 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"` + 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 (x *IdpProviderView) Reset() { + *x = IdpProviderView{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[163] + 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[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 IdpProviderView.ProtoReflect.Descriptor instead. +func (*IdpProviderView) Descriptor() ([]byte, []int) { + return file_management_proto_rawDescGZIP(), []int{163} +} + +func (x *IdpProviderView) GetIdpConfigId() string { + if x != nil { + return x.IdpConfigId + } + return "" +} + +func (x *IdpProviderView) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *IdpProviderView) GetType() IdpType { + if x != nil { + return x.Type + } + return IdpType_IDPTYPE_UNSPECIFIED +} + +type IdpProviderSearchResponse 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 []*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 (x *IdpProviderSearchResponse) Reset() { + *x = IdpProviderSearchResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[164] + 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[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 IdpProviderSearchResponse.ProtoReflect.Descriptor instead. +func (*IdpProviderSearchResponse) Descriptor() ([]byte, []int) { + return file_management_proto_rawDescGZIP(), []int{164} +} + +func (x *IdpProviderSearchResponse) GetOffset() uint64 { + if x != nil { + return x.Offset + } + return 0 +} + +func (x *IdpProviderSearchResponse) GetLimit() uint64 { + if x != nil { + return x.Limit + } + return 0 +} + +func (x *IdpProviderSearchResponse) GetTotalResult() uint64 { + if x != nil { + return x.TotalResult + } + return 0 +} + +func (x *IdpProviderSearchResponse) GetResult() []*IdpProviderView { + if x != nil { + return x.Result + } + return nil +} + +func (x *IdpProviderSearchResponse) GetProcessedSequence() uint64 { + if x != nil { + return x.ProcessedSequence + } + return 0 +} + +func (x *IdpProviderSearchResponse) GetViewTimestamp() *timestamp.Timestamp { + if x != nil { + return x.ViewTimestamp + } + return nil +} + +type IdpProviderSearchRequest 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"` +} + +func (x *IdpProviderSearchRequest) Reset() { + *x = IdpProviderSearchRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_management_proto_msgTypes[165] + 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[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 IdpProviderSearchRequest.ProtoReflect.Descriptor instead. +func (*IdpProviderSearchRequest) Descriptor() ([]byte, []int) { + return file_management_proto_rawDescGZIP(), []int{165} +} + +func (x *IdpProviderSearchRequest) GetOffset() uint64 { + if x != nil { + return x.Offset + } + return 0 +} + +func (x *IdpProviderSearchRequest) GetLimit() uint64 { + if x != nil { + return x.Limit + } + return 0 +} + +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, 0x3e, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x44, 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, 0x22, 0x1b, 0x0a, 0x09, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x18, + 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x1d, 0x0a, 0x05, 0x45, 0x6d, 0x61, 0x69, + 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x22, 0x5e, 0x0a, 0x11, 0x55, 0x6e, 0x69, 0x71, 0x75, + 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x09, + 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0xc8, 0x01, 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, 0xb8, 0x05, 0x0a, 0x11, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x27, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0xc8, 0x01, 0x52, + 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 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, 0x12, 0x22, 0x0a, + 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x07, 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, 0x08, 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, 0x09, 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, 0x0a, 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, 0x0b, 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, 0x0c, 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, 0x0d, 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, 0x0e, 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, 0x0f, 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, 0x10, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x18, 0x48, 0x52, 0x08, 0x70, 0x61, 0x73, + 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x93, 0x06, 0x0a, 0x04, 0x55, 0x73, 0x65, 0x72, 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, 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, 0x1d, 0x0a, 0x0a, 0x66, 0x69, + 0x72, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 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, 0x07, 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, 0x08, 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, 0x09, 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, 0x0a, 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, + 0x0b, 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, 0x0c, + 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, 0x0d, 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, 0x0e, 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, 0x0f, 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, 0x10, 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, + 0x11, 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, 0x12, + 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, 0x13, 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, 0x14, 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, 0x15, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x22, 0x93, 0x08, 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, 0x39, 0x0a, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x5f, + 0x6c, 0x6f, 0x67, 0x69, 0x6e, 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, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x67, + 0x69, 0x6e, 0x12, 0x45, 0x0a, 0x10, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 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, 0x0f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, + 0x72, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, + 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 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, 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, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x69, 0x63, 0x6b, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x0b, 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, 0x0c, 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, 0x0d, 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, 0x0e, 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, 0x0f, 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, 0x10, 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, 0x11, + 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, 0x12, 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, 0x13, 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, 0x14, 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, 0x15, 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, 0x16, 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, 0x17, 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, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x1f, + 0x0a, 0x0b, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x19, 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, 0x1a, 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, 0xfe, 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, 0x5e, 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, 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, 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, 0xbf, 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, 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x08, 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, 0x09, 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, 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, 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, 0x0b, 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, 0x96, 0x04, 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, 0x1b, 0x0a, 0x09, 0x75, 0x73, + 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 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, 0x09, 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, 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, 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, 0x0b, 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, 0x0c, 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, 0x1b, 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, 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, 0x75, 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, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 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, 0xf2, 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, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 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, 0x1c, 0x0a, 0x0a, 0x50, + 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x49, 0x44, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x48, 0x0a, 0x0f, 0x50, 0x61, 0x73, + 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 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, 0x26, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x65, 0x74, 0x50, 0x61, 0x73, 0x73, + 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x76, 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, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 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, + 0x17, 0x0a, 0x05, 0x4f, 0x72, 0x67, 0x49, 0x44, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x26, 0x0a, 0x10, 0x4f, 0x72, 0x67, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 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, 0x20, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x6f, + 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, + 0x69, 0x6e, 0x22, 0x51, 0x0a, 0x0a, 0x4f, 0x72, 0x67, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, + 0x12, 0x43, 0x0a, 0x07, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 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, 0x4f, 0x72, 0x67, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x07, 0x64, 0x6f, + 0x6d, 0x61, 0x69, 0x6e, 0x73, 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, 0x3d, 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, 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, 0x3c, 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, 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, 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, 0x44, 0x0a, 0x13, 0x41, 0x64, 0x64, 0x4f, 0x72, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 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, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x22, 0x47, 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, 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, + 0x22, 0x31, 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, 0x17, 0x0a, 0x07, 0x75, 0x73, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 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, 0x46, 0x0a, 0x14, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x02, 0x69, 0x64, 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, 0x51, 0x0a, 0x10, 0x50, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x64, 0x64, 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, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x22, 0x54, 0x0a, + 0x13, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 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, 0x14, 0x0a, + 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x72, 0x6f, + 0x6c, 0x65, 0x73, 0x22, 0x3e, 0x0a, 0x13, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 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, 0x22, 0x6b, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x6f, + 0x6c, 0x65, 0x41, 0x64, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 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, 0x79, 0x0a, 0x12, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x41, + 0x64, 0x64, 0x42, 0x75, 0x6c, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 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, 0x6e, 0x0a, 0x11, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 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, 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, 0x35, 0x0a, 0x11, 0x50, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 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, 0xb9, 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, 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, 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, + 0xbd, 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, 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, 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, 0x62, 0x0a, 0x11, 0x41, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 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, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 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, 0xff, 0x04, 0x0a, 0x15, 0x4f, 0x49, 0x44, 0x43, 0x41, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x72, 0x65, 0x61, 0x74, 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, 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, 0xba, 0x04, 0x0a, 0x10, 0x4f, 0x49, 0x44, 0x43, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 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, 0x25, 0x0a, 0x0e, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 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, 0xb9, 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, 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, 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, 0x76, 0x0a, 0x12, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x61, + 0x74, 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, 0x24, 0x0a, 0x0e, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x72, 0x67, + 0x5f, 0x69, 0x64, 0x18, 0x02, 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, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6c, 0x65, + 0x4b, 0x65, 0x79, 0x73, 0x22, 0x60, 0x0a, 0x12, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x47, + 0x72, 0x61, 0x6e, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 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, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 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, 0x3f, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x44, 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, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 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, 0xbb, 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, 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, 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, 0x80, 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, 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, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 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, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x04, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x22, 0x83, 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, 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, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x49, + 0x64, 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, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, + 0x6c, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, + 0x22, 0x6d, 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, 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, 0x19, 0x0a, 0x08, 0x67, + 0x72, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, + 0x72, 0x61, 0x6e, 0x74, 0x49, 0x64, 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, + 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, 0xe2, 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, 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, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 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, 0x67, + 0x0a, 0x13, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x42, 0x75, 0x6c, 0x6b, 0x12, 0x50, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, + 0x61, 0x6e, 0x74, 0x73, 0x18, 0x01, 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, + 0x47, 0x72, 0x61, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x75, 0x73, 0x65, + 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x73, 0x22, 0x81, 0x01, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, + 0x47, 0x72, 0x61, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 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, 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, 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, 0x67, 0x0a, 0x13, 0x55, + 0x73, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x75, + 0x6c, 0x6b, 0x12, 0x50, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x61, 0x6e, 0x74, + 0x73, 0x18, 0x01, 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, 0x47, 0x72, 0x61, + 0x6e, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, + 0x61, 0x6e, 0x74, 0x73, 0x22, 0x57, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, + 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 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, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 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, 0x27, 0x0a, + 0x13, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x42, 0x75, 0x6c, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x03, 0x69, 0x64, 0x73, 0x22, 0x36, 0x0a, 0x0b, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, + 0x61, 0x6e, 0x74, 0x49, 0x44, 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, 0x0e, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 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, 0xbc, 0x01, 0x0a, 0x1d, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 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, 0x4e, 0x0a, 0x07, 0x71, 0x75, + 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x04, 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, 0x22, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x47, + 0x72, 0x61, 0x6e, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x28, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x67, 0x72, 0x61, + 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x47, 0x72, 0x61, 0x6e, 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, 0x4e, 0x0a, 0x07, 0x71, 0x75, 0x65, + 0x72, 0x69, 0x65, 0x73, 0x18, 0x04, 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, 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, 0xb9, 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, 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, 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, 0x17, 0x0a, 0x05, 0x49, 0x64, 0x70, 0x49, 0x44, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 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, + 0x4a, 0x0a, 0x09, 0x49, 0x64, 0x70, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 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, 0x81, 0x01, 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, 0x22, + 0xe6, 0x01, 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, 0x22, 0xb6, 0x01, 0x0a, 0x13, 0x4f, 0x69, 0x64, + 0x63, 0x49, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x12, 0x15, 0x0a, 0x06, 0x69, 0x64, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 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, 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, + 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, 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, 0x33, 0x0a, 0x0d, 0x49, 0x64, 0x70, 0x50, 0x72, 0x6f, 0x76, 0x69, + 0x64, 0x65, 0x72, 0x49, 0x44, 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, 0x22, 0x9d, 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, 0x5b, 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, 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, 0x61, 0x0a, 0x10, 0x49, 0x64, 0x70, 0x50, 0x72, 0x6f, 0x76, + 0x69, 0x64, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x70, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 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, 0x09, 0x70, + 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 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, 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, 0xf5, 0x01, 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, 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, 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, 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, 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, 0x32, 0xd6, 0xa9, 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, 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, 0x96, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, + 0x42, 0x79, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 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, 0x45, + 0x6d, 0x61, 0x69, 0x6c, 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, 0x2d, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2f, + 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x5f, 0x62, 0x79, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x82, 0xb5, + 0x18, 0x0b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 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, 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, + 0x88, 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, 0x24, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 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, 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, 0x92, 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, 0x24, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 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, 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, + 0x92, 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, 0x24, 0x2e, 0x63, 0x61, 0x6f, + 0x73, 0x2e, 0x7a, 0x69, 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, + 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, 0x86, 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, 0x24, 0x2e, 0x63, 0x61, 0x6f, 0x73, + 0x2e, 0x7a, 0x69, 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, 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, 0x8a, 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, 0x24, 0x2e, 0x63, 0x61, 0x6f, 0x73, 0x2e, 0x7a, 0x69, 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, 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, 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, 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, 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, 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, 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, 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, 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, 0x95, 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, 0x2c, + 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, 0x0a, 0x0a, 0x08, 0x6f, 0x72, 0x67, 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, 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, 0x97, 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, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0e, 0x22, + 0x09, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x3a, 0x01, 0x2a, 0x82, 0xb5, 0x18, + 0x0f, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x77, 0x72, 0x69, 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, 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, 35) +var file_management_proto_msgTypes = make([]protoimpl.MessageInfo, 166) +var file_management_proto_goTypes = []interface{}{ + (UserState)(0), // 0: caos.zitadel.management.api.v1.UserState + (Gender)(0), // 1: caos.zitadel.management.api.v1.Gender + (UserSearchKey)(0), // 2: caos.zitadel.management.api.v1.UserSearchKey + (SearchMethod)(0), // 3: caos.zitadel.management.api.v1.SearchMethod + (MfaType)(0), // 4: caos.zitadel.management.api.v1.MfaType + (MFAState)(0), // 5: caos.zitadel.management.api.v1.MFAState + (NotificationType)(0), // 6: caos.zitadel.management.api.v1.NotificationType + (PolicyState)(0), // 7: caos.zitadel.management.api.v1.PolicyState + (OrgState)(0), // 8: caos.zitadel.management.api.v1.OrgState + (OrgDomainValidationType)(0), // 9: caos.zitadel.management.api.v1.OrgDomainValidationType + (OrgDomainSearchKey)(0), // 10: caos.zitadel.management.api.v1.OrgDomainSearchKey + (OrgMemberSearchKey)(0), // 11: caos.zitadel.management.api.v1.OrgMemberSearchKey + (ProjectSearchKey)(0), // 12: caos.zitadel.management.api.v1.ProjectSearchKey + (ProjectState)(0), // 13: caos.zitadel.management.api.v1.ProjectState + (ProjectType)(0), // 14: caos.zitadel.management.api.v1.ProjectType + (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 + (IdpSearchKey)(0), // 32: caos.zitadel.management.api.v1.IdpSearchKey + (IdpType)(0), // 33: caos.zitadel.management.api.v1.IdpType + (IdpProviderType)(0), // 34: caos.zitadel.management.api.v1.IdpProviderType + (*ZitadelDocs)(nil), // 35: caos.zitadel.management.api.v1.ZitadelDocs + (*Iam)(nil), // 36: caos.zitadel.management.api.v1.Iam + (*ChangeRequest)(nil), // 37: caos.zitadel.management.api.v1.ChangeRequest + (*Changes)(nil), // 38: caos.zitadel.management.api.v1.Changes + (*Change)(nil), // 39: caos.zitadel.management.api.v1.Change + (*ApplicationID)(nil), // 40: caos.zitadel.management.api.v1.ApplicationID + (*ProjectID)(nil), // 41: caos.zitadel.management.api.v1.ProjectID + (*UserID)(nil), // 42: caos.zitadel.management.api.v1.UserID + (*Email)(nil), // 43: caos.zitadel.management.api.v1.Email + (*UniqueUserRequest)(nil), // 44: caos.zitadel.management.api.v1.UniqueUserRequest + (*UniqueUserResponse)(nil), // 45: caos.zitadel.management.api.v1.UniqueUserResponse + (*CreateUserRequest)(nil), // 46: caos.zitadel.management.api.v1.CreateUserRequest + (*User)(nil), // 47: caos.zitadel.management.api.v1.User + (*UserView)(nil), // 48: caos.zitadel.management.api.v1.UserView + (*UserSearchRequest)(nil), // 49: caos.zitadel.management.api.v1.UserSearchRequest + (*UserSearchQuery)(nil), // 50: caos.zitadel.management.api.v1.UserSearchQuery + (*UserSearchResponse)(nil), // 51: caos.zitadel.management.api.v1.UserSearchResponse + (*UserProfile)(nil), // 52: caos.zitadel.management.api.v1.UserProfile + (*UserProfileView)(nil), // 53: caos.zitadel.management.api.v1.UserProfileView + (*UpdateUserProfileRequest)(nil), // 54: caos.zitadel.management.api.v1.UpdateUserProfileRequest + (*UserEmail)(nil), // 55: caos.zitadel.management.api.v1.UserEmail + (*UserEmailView)(nil), // 56: caos.zitadel.management.api.v1.UserEmailView + (*UpdateUserEmailRequest)(nil), // 57: caos.zitadel.management.api.v1.UpdateUserEmailRequest + (*UserPhone)(nil), // 58: caos.zitadel.management.api.v1.UserPhone + (*UserPhoneView)(nil), // 59: caos.zitadel.management.api.v1.UserPhoneView + (*UpdateUserPhoneRequest)(nil), // 60: caos.zitadel.management.api.v1.UpdateUserPhoneRequest + (*UserAddress)(nil), // 61: caos.zitadel.management.api.v1.UserAddress + (*UserAddressView)(nil), // 62: caos.zitadel.management.api.v1.UserAddressView + (*UpdateUserAddressRequest)(nil), // 63: caos.zitadel.management.api.v1.UpdateUserAddressRequest + (*MultiFactors)(nil), // 64: caos.zitadel.management.api.v1.MultiFactors + (*MultiFactor)(nil), // 65: caos.zitadel.management.api.v1.MultiFactor + (*PasswordID)(nil), // 66: caos.zitadel.management.api.v1.PasswordID + (*PasswordRequest)(nil), // 67: caos.zitadel.management.api.v1.PasswordRequest + (*ResetPasswordRequest)(nil), // 68: caos.zitadel.management.api.v1.ResetPasswordRequest + (*SetPasswordNotificationRequest)(nil), // 69: caos.zitadel.management.api.v1.SetPasswordNotificationRequest + (*PasswordComplexityPolicyID)(nil), // 70: caos.zitadel.management.api.v1.PasswordComplexityPolicyID + (*PasswordComplexityPolicy)(nil), // 71: caos.zitadel.management.api.v1.PasswordComplexityPolicy + (*PasswordComplexityPolicyCreate)(nil), // 72: caos.zitadel.management.api.v1.PasswordComplexityPolicyCreate + (*PasswordComplexityPolicyUpdate)(nil), // 73: caos.zitadel.management.api.v1.PasswordComplexityPolicyUpdate + (*PasswordAgePolicyID)(nil), // 74: caos.zitadel.management.api.v1.PasswordAgePolicyID + (*PasswordAgePolicy)(nil), // 75: caos.zitadel.management.api.v1.PasswordAgePolicy + (*PasswordAgePolicyCreate)(nil), // 76: caos.zitadel.management.api.v1.PasswordAgePolicyCreate + (*PasswordAgePolicyUpdate)(nil), // 77: caos.zitadel.management.api.v1.PasswordAgePolicyUpdate + (*PasswordLockoutPolicyID)(nil), // 78: caos.zitadel.management.api.v1.PasswordLockoutPolicyID + (*PasswordLockoutPolicy)(nil), // 79: caos.zitadel.management.api.v1.PasswordLockoutPolicy + (*PasswordLockoutPolicyCreate)(nil), // 80: caos.zitadel.management.api.v1.PasswordLockoutPolicyCreate + (*PasswordLockoutPolicyUpdate)(nil), // 81: caos.zitadel.management.api.v1.PasswordLockoutPolicyUpdate + (*OrgIamPolicy)(nil), // 82: caos.zitadel.management.api.v1.OrgIamPolicy + (*OrgID)(nil), // 83: caos.zitadel.management.api.v1.OrgID + (*OrgCreateRequest)(nil), // 84: caos.zitadel.management.api.v1.OrgCreateRequest + (*Org)(nil), // 85: caos.zitadel.management.api.v1.Org + (*OrgView)(nil), // 86: caos.zitadel.management.api.v1.OrgView + (*Domain)(nil), // 87: caos.zitadel.management.api.v1.Domain + (*OrgDomains)(nil), // 88: caos.zitadel.management.api.v1.OrgDomains + (*OrgDomain)(nil), // 89: caos.zitadel.management.api.v1.OrgDomain + (*OrgDomainView)(nil), // 90: caos.zitadel.management.api.v1.OrgDomainView + (*AddOrgDomainRequest)(nil), // 91: caos.zitadel.management.api.v1.AddOrgDomainRequest + (*OrgDomainValidationRequest)(nil), // 92: caos.zitadel.management.api.v1.OrgDomainValidationRequest + (*OrgDomainValidationResponse)(nil), // 93: caos.zitadel.management.api.v1.OrgDomainValidationResponse + (*ValidateOrgDomainRequest)(nil), // 94: caos.zitadel.management.api.v1.ValidateOrgDomainRequest + (*PrimaryOrgDomainRequest)(nil), // 95: caos.zitadel.management.api.v1.PrimaryOrgDomainRequest + (*RemoveOrgDomainRequest)(nil), // 96: caos.zitadel.management.api.v1.RemoveOrgDomainRequest + (*OrgDomainSearchResponse)(nil), // 97: caos.zitadel.management.api.v1.OrgDomainSearchResponse + (*OrgDomainSearchRequest)(nil), // 98: caos.zitadel.management.api.v1.OrgDomainSearchRequest + (*OrgDomainSearchQuery)(nil), // 99: caos.zitadel.management.api.v1.OrgDomainSearchQuery + (*OrgMemberRoles)(nil), // 100: caos.zitadel.management.api.v1.OrgMemberRoles + (*OrgMember)(nil), // 101: caos.zitadel.management.api.v1.OrgMember + (*AddOrgMemberRequest)(nil), // 102: caos.zitadel.management.api.v1.AddOrgMemberRequest + (*ChangeOrgMemberRequest)(nil), // 103: caos.zitadel.management.api.v1.ChangeOrgMemberRequest + (*RemoveOrgMemberRequest)(nil), // 104: caos.zitadel.management.api.v1.RemoveOrgMemberRequest + (*OrgMemberSearchResponse)(nil), // 105: caos.zitadel.management.api.v1.OrgMemberSearchResponse + (*OrgMemberView)(nil), // 106: caos.zitadel.management.api.v1.OrgMemberView + (*OrgMemberSearchRequest)(nil), // 107: caos.zitadel.management.api.v1.OrgMemberSearchRequest + (*OrgMemberSearchQuery)(nil), // 108: caos.zitadel.management.api.v1.OrgMemberSearchQuery + (*ProjectCreateRequest)(nil), // 109: caos.zitadel.management.api.v1.ProjectCreateRequest + (*ProjectUpdateRequest)(nil), // 110: caos.zitadel.management.api.v1.ProjectUpdateRequest + (*ProjectSearchResponse)(nil), // 111: caos.zitadel.management.api.v1.ProjectSearchResponse + (*ProjectView)(nil), // 112: caos.zitadel.management.api.v1.ProjectView + (*ProjectSearchRequest)(nil), // 113: caos.zitadel.management.api.v1.ProjectSearchRequest + (*ProjectSearchQuery)(nil), // 114: caos.zitadel.management.api.v1.ProjectSearchQuery + (*Projects)(nil), // 115: caos.zitadel.management.api.v1.Projects + (*Project)(nil), // 116: caos.zitadel.management.api.v1.Project + (*ProjectMemberRoles)(nil), // 117: caos.zitadel.management.api.v1.ProjectMemberRoles + (*ProjectMember)(nil), // 118: caos.zitadel.management.api.v1.ProjectMember + (*ProjectMemberAdd)(nil), // 119: caos.zitadel.management.api.v1.ProjectMemberAdd + (*ProjectMemberChange)(nil), // 120: caos.zitadel.management.api.v1.ProjectMemberChange + (*ProjectMemberRemove)(nil), // 121: caos.zitadel.management.api.v1.ProjectMemberRemove + (*ProjectRoleAdd)(nil), // 122: caos.zitadel.management.api.v1.ProjectRoleAdd + (*ProjectRoleAddBulk)(nil), // 123: caos.zitadel.management.api.v1.ProjectRoleAddBulk + (*ProjectRoleChange)(nil), // 124: caos.zitadel.management.api.v1.ProjectRoleChange + (*ProjectRole)(nil), // 125: caos.zitadel.management.api.v1.ProjectRole + (*ProjectRoleView)(nil), // 126: caos.zitadel.management.api.v1.ProjectRoleView + (*ProjectRoleRemove)(nil), // 127: caos.zitadel.management.api.v1.ProjectRoleRemove + (*ProjectRoleSearchResponse)(nil), // 128: caos.zitadel.management.api.v1.ProjectRoleSearchResponse + (*ProjectRoleSearchRequest)(nil), // 129: caos.zitadel.management.api.v1.ProjectRoleSearchRequest + (*ProjectRoleSearchQuery)(nil), // 130: caos.zitadel.management.api.v1.ProjectRoleSearchQuery + (*ProjectMemberView)(nil), // 131: caos.zitadel.management.api.v1.ProjectMemberView + (*ProjectMemberSearchResponse)(nil), // 132: caos.zitadel.management.api.v1.ProjectMemberSearchResponse + (*ProjectMemberSearchRequest)(nil), // 133: caos.zitadel.management.api.v1.ProjectMemberSearchRequest + (*ProjectMemberSearchQuery)(nil), // 134: caos.zitadel.management.api.v1.ProjectMemberSearchQuery + (*Application)(nil), // 135: caos.zitadel.management.api.v1.Application + (*ApplicationUpdate)(nil), // 136: caos.zitadel.management.api.v1.ApplicationUpdate + (*OIDCConfig)(nil), // 137: caos.zitadel.management.api.v1.OIDCConfig + (*OIDCApplicationCreate)(nil), // 138: caos.zitadel.management.api.v1.OIDCApplicationCreate + (*OIDCConfigUpdate)(nil), // 139: caos.zitadel.management.api.v1.OIDCConfigUpdate + (*ClientSecret)(nil), // 140: caos.zitadel.management.api.v1.ClientSecret + (*ApplicationView)(nil), // 141: caos.zitadel.management.api.v1.ApplicationView + (*ApplicationSearchResponse)(nil), // 142: caos.zitadel.management.api.v1.ApplicationSearchResponse + (*ApplicationSearchRequest)(nil), // 143: caos.zitadel.management.api.v1.ApplicationSearchRequest + (*ApplicationSearchQuery)(nil), // 144: caos.zitadel.management.api.v1.ApplicationSearchQuery + (*ProjectGrant)(nil), // 145: caos.zitadel.management.api.v1.ProjectGrant + (*ProjectGrantCreate)(nil), // 146: caos.zitadel.management.api.v1.ProjectGrantCreate + (*ProjectGrantUpdate)(nil), // 147: caos.zitadel.management.api.v1.ProjectGrantUpdate + (*ProjectGrantID)(nil), // 148: caos.zitadel.management.api.v1.ProjectGrantID + (*ProjectGrantView)(nil), // 149: caos.zitadel.management.api.v1.ProjectGrantView + (*ProjectGrantSearchResponse)(nil), // 150: caos.zitadel.management.api.v1.ProjectGrantSearchResponse + (*GrantedProjectSearchRequest)(nil), // 151: caos.zitadel.management.api.v1.GrantedProjectSearchRequest + (*ProjectGrantSearchRequest)(nil), // 152: caos.zitadel.management.api.v1.ProjectGrantSearchRequest + (*ProjectGrantSearchQuery)(nil), // 153: caos.zitadel.management.api.v1.ProjectGrantSearchQuery + (*ProjectGrantMemberRoles)(nil), // 154: caos.zitadel.management.api.v1.ProjectGrantMemberRoles + (*ProjectGrantMember)(nil), // 155: caos.zitadel.management.api.v1.ProjectGrantMember + (*ProjectGrantMemberAdd)(nil), // 156: caos.zitadel.management.api.v1.ProjectGrantMemberAdd + (*ProjectGrantMemberChange)(nil), // 157: caos.zitadel.management.api.v1.ProjectGrantMemberChange + (*ProjectGrantMemberRemove)(nil), // 158: caos.zitadel.management.api.v1.ProjectGrantMemberRemove + (*ProjectGrantMemberView)(nil), // 159: caos.zitadel.management.api.v1.ProjectGrantMemberView + (*ProjectGrantMemberSearchResponse)(nil), // 160: caos.zitadel.management.api.v1.ProjectGrantMemberSearchResponse + (*ProjectGrantMemberSearchRequest)(nil), // 161: caos.zitadel.management.api.v1.ProjectGrantMemberSearchRequest + (*ProjectGrantMemberSearchQuery)(nil), // 162: caos.zitadel.management.api.v1.ProjectGrantMemberSearchQuery + (*UserGrant)(nil), // 163: caos.zitadel.management.api.v1.UserGrant + (*UserGrantCreateBulk)(nil), // 164: caos.zitadel.management.api.v1.UserGrantCreateBulk + (*UserGrantCreate)(nil), // 165: caos.zitadel.management.api.v1.UserGrantCreate + (*UserGrantUpdateBulk)(nil), // 166: caos.zitadel.management.api.v1.UserGrantUpdateBulk + (*UserGrantUpdate)(nil), // 167: caos.zitadel.management.api.v1.UserGrantUpdate + (*UserGrantRemoveBulk)(nil), // 168: caos.zitadel.management.api.v1.UserGrantRemoveBulk + (*UserGrantID)(nil), // 169: caos.zitadel.management.api.v1.UserGrantID + (*UserGrantView)(nil), // 170: caos.zitadel.management.api.v1.UserGrantView + (*UserGrantSearchResponse)(nil), // 171: caos.zitadel.management.api.v1.UserGrantSearchResponse + (*UserGrantSearchRequest)(nil), // 172: caos.zitadel.management.api.v1.UserGrantSearchRequest + (*UserGrantSearchQuery)(nil), // 173: caos.zitadel.management.api.v1.UserGrantSearchQuery + (*ProjectUserGrantSearchRequest)(nil), // 174: caos.zitadel.management.api.v1.ProjectUserGrantSearchRequest + (*ProjectGrantUserGrantSearchRequest)(nil), // 175: caos.zitadel.management.api.v1.ProjectGrantUserGrantSearchRequest + (*UserMembershipSearchResponse)(nil), // 176: caos.zitadel.management.api.v1.UserMembershipSearchResponse + (*UserMembershipSearchRequest)(nil), // 177: caos.zitadel.management.api.v1.UserMembershipSearchRequest + (*UserMembershipSearchQuery)(nil), // 178: caos.zitadel.management.api.v1.UserMembershipSearchQuery + (*UserMembershipView)(nil), // 179: caos.zitadel.management.api.v1.UserMembershipView + (*IdpID)(nil), // 180: caos.zitadel.management.api.v1.IdpID + (*Idp)(nil), // 181: caos.zitadel.management.api.v1.Idp + (*IdpUpdate)(nil), // 182: caos.zitadel.management.api.v1.IdpUpdate + (*OidcIdpConfig)(nil), // 183: caos.zitadel.management.api.v1.OidcIdpConfig + (*OidcIdpConfigCreate)(nil), // 184: caos.zitadel.management.api.v1.OidcIdpConfigCreate + (*OidcIdpConfigUpdate)(nil), // 185: caos.zitadel.management.api.v1.OidcIdpConfigUpdate + (*IdpSearchResponse)(nil), // 186: caos.zitadel.management.api.v1.IdpSearchResponse + (*IdpView)(nil), // 187: caos.zitadel.management.api.v1.IdpView + (*OidcIdpConfigView)(nil), // 188: caos.zitadel.management.api.v1.OidcIdpConfigView + (*IdpSearchRequest)(nil), // 189: caos.zitadel.management.api.v1.IdpSearchRequest + (*IdpSearchQuery)(nil), // 190: caos.zitadel.management.api.v1.IdpSearchQuery + (*LoginPolicy)(nil), // 191: caos.zitadel.management.api.v1.LoginPolicy + (*LoginPolicyAdd)(nil), // 192: caos.zitadel.management.api.v1.LoginPolicyAdd + (*IdpProviderID)(nil), // 193: caos.zitadel.management.api.v1.IdpProviderID + (*IdpProviderAdd)(nil), // 194: caos.zitadel.management.api.v1.IdpProviderAdd + (*IdpProvider)(nil), // 195: caos.zitadel.management.api.v1.IdpProvider + (*LoginPolicyView)(nil), // 196: caos.zitadel.management.api.v1.LoginPolicyView + (*IdpProviderViews)(nil), // 197: caos.zitadel.management.api.v1.IdpProviderViews + (*IdpProviderView)(nil), // 198: caos.zitadel.management.api.v1.IdpProviderView + (*IdpProviderSearchResponse)(nil), // 199: caos.zitadel.management.api.v1.IdpProviderSearchResponse + (*IdpProviderSearchRequest)(nil), // 200: caos.zitadel.management.api.v1.IdpProviderSearchRequest + (*timestamp.Timestamp)(nil), // 201: google.protobuf.Timestamp + (*message.LocalizedMessage)(nil), // 202: caos.zitadel.api.v1.LocalizedMessage + (*_struct.Struct)(nil), // 203: google.protobuf.Struct + (*empty.Empty)(nil), // 204: google.protobuf.Empty +} +var file_management_proto_depIdxs = []int32{ + 39, // 0: caos.zitadel.management.api.v1.Changes.changes:type_name -> caos.zitadel.management.api.v1.Change + 201, // 1: caos.zitadel.management.api.v1.Change.change_date:type_name -> google.protobuf.Timestamp + 202, // 2: caos.zitadel.management.api.v1.Change.event_type:type_name -> caos.zitadel.api.v1.LocalizedMessage + 203, // 3: caos.zitadel.management.api.v1.Change.data:type_name -> google.protobuf.Struct + 1, // 4: caos.zitadel.management.api.v1.CreateUserRequest.gender:type_name -> caos.zitadel.management.api.v1.Gender + 0, // 5: caos.zitadel.management.api.v1.User.state:type_name -> caos.zitadel.management.api.v1.UserState + 201, // 6: caos.zitadel.management.api.v1.User.creation_date:type_name -> google.protobuf.Timestamp + 201, // 7: caos.zitadel.management.api.v1.User.change_date:type_name -> google.protobuf.Timestamp + 1, // 8: caos.zitadel.management.api.v1.User.gender:type_name -> caos.zitadel.management.api.v1.Gender + 0, // 9: caos.zitadel.management.api.v1.UserView.state:type_name -> caos.zitadel.management.api.v1.UserState + 201, // 10: caos.zitadel.management.api.v1.UserView.creation_date:type_name -> google.protobuf.Timestamp + 201, // 11: caos.zitadel.management.api.v1.UserView.change_date:type_name -> google.protobuf.Timestamp + 201, // 12: caos.zitadel.management.api.v1.UserView.last_login:type_name -> google.protobuf.Timestamp + 201, // 13: caos.zitadel.management.api.v1.UserView.password_changed:type_name -> google.protobuf.Timestamp + 1, // 14: caos.zitadel.management.api.v1.UserView.gender:type_name -> caos.zitadel.management.api.v1.Gender + 2, // 15: caos.zitadel.management.api.v1.UserSearchRequest.sorting_column:type_name -> caos.zitadel.management.api.v1.UserSearchKey + 50, // 16: caos.zitadel.management.api.v1.UserSearchRequest.queries:type_name -> caos.zitadel.management.api.v1.UserSearchQuery + 2, // 17: caos.zitadel.management.api.v1.UserSearchQuery.key:type_name -> caos.zitadel.management.api.v1.UserSearchKey + 3, // 18: caos.zitadel.management.api.v1.UserSearchQuery.method:type_name -> caos.zitadel.management.api.v1.SearchMethod + 48, // 19: caos.zitadel.management.api.v1.UserSearchResponse.result:type_name -> caos.zitadel.management.api.v1.UserView + 201, // 20: caos.zitadel.management.api.v1.UserSearchResponse.view_timestamp:type_name -> google.protobuf.Timestamp + 1, // 21: caos.zitadel.management.api.v1.UserProfile.gender:type_name -> caos.zitadel.management.api.v1.Gender + 201, // 22: caos.zitadel.management.api.v1.UserProfile.creation_date:type_name -> google.protobuf.Timestamp + 201, // 23: caos.zitadel.management.api.v1.UserProfile.change_date:type_name -> google.protobuf.Timestamp + 1, // 24: caos.zitadel.management.api.v1.UserProfileView.gender:type_name -> caos.zitadel.management.api.v1.Gender + 201, // 25: caos.zitadel.management.api.v1.UserProfileView.creation_date:type_name -> google.protobuf.Timestamp + 201, // 26: caos.zitadel.management.api.v1.UserProfileView.change_date:type_name -> google.protobuf.Timestamp + 1, // 27: caos.zitadel.management.api.v1.UpdateUserProfileRequest.gender:type_name -> caos.zitadel.management.api.v1.Gender + 201, // 28: caos.zitadel.management.api.v1.UserEmail.creation_date:type_name -> google.protobuf.Timestamp + 201, // 29: caos.zitadel.management.api.v1.UserEmail.change_date:type_name -> google.protobuf.Timestamp + 201, // 30: caos.zitadel.management.api.v1.UserEmailView.creation_date:type_name -> google.protobuf.Timestamp + 201, // 31: caos.zitadel.management.api.v1.UserEmailView.change_date:type_name -> google.protobuf.Timestamp + 201, // 32: caos.zitadel.management.api.v1.UserPhone.creation_date:type_name -> google.protobuf.Timestamp + 201, // 33: caos.zitadel.management.api.v1.UserPhone.change_date:type_name -> google.protobuf.Timestamp + 201, // 34: caos.zitadel.management.api.v1.UserPhoneView.creation_date:type_name -> google.protobuf.Timestamp + 201, // 35: caos.zitadel.management.api.v1.UserPhoneView.change_date:type_name -> google.protobuf.Timestamp + 201, // 36: caos.zitadel.management.api.v1.UserAddress.creation_date:type_name -> google.protobuf.Timestamp + 201, // 37: caos.zitadel.management.api.v1.UserAddress.change_date:type_name -> google.protobuf.Timestamp + 201, // 38: caos.zitadel.management.api.v1.UserAddressView.creation_date:type_name -> google.protobuf.Timestamp + 201, // 39: caos.zitadel.management.api.v1.UserAddressView.change_date:type_name -> google.protobuf.Timestamp + 65, // 40: caos.zitadel.management.api.v1.MultiFactors.mfas:type_name -> caos.zitadel.management.api.v1.MultiFactor + 4, // 41: caos.zitadel.management.api.v1.MultiFactor.type:type_name -> caos.zitadel.management.api.v1.MfaType + 5, // 42: caos.zitadel.management.api.v1.MultiFactor.state:type_name -> caos.zitadel.management.api.v1.MFAState + 6, // 43: caos.zitadel.management.api.v1.SetPasswordNotificationRequest.type:type_name -> caos.zitadel.management.api.v1.NotificationType + 7, // 44: caos.zitadel.management.api.v1.PasswordComplexityPolicy.state:type_name -> caos.zitadel.management.api.v1.PolicyState + 201, // 45: caos.zitadel.management.api.v1.PasswordComplexityPolicy.creation_date:type_name -> google.protobuf.Timestamp + 201, // 46: caos.zitadel.management.api.v1.PasswordComplexityPolicy.change_date:type_name -> google.protobuf.Timestamp + 7, // 47: caos.zitadel.management.api.v1.PasswordAgePolicy.state:type_name -> caos.zitadel.management.api.v1.PolicyState + 201, // 48: caos.zitadel.management.api.v1.PasswordAgePolicy.creation_date:type_name -> google.protobuf.Timestamp + 201, // 49: caos.zitadel.management.api.v1.PasswordAgePolicy.change_date:type_name -> google.protobuf.Timestamp + 7, // 50: caos.zitadel.management.api.v1.PasswordLockoutPolicy.state:type_name -> caos.zitadel.management.api.v1.PolicyState + 201, // 51: caos.zitadel.management.api.v1.PasswordLockoutPolicy.creation_date:type_name -> google.protobuf.Timestamp + 201, // 52: caos.zitadel.management.api.v1.PasswordLockoutPolicy.change_date:type_name -> google.protobuf.Timestamp + 8, // 53: caos.zitadel.management.api.v1.Org.state:type_name -> caos.zitadel.management.api.v1.OrgState + 201, // 54: caos.zitadel.management.api.v1.Org.creation_date:type_name -> google.protobuf.Timestamp + 201, // 55: caos.zitadel.management.api.v1.Org.change_date:type_name -> google.protobuf.Timestamp + 8, // 56: caos.zitadel.management.api.v1.OrgView.state:type_name -> caos.zitadel.management.api.v1.OrgState + 201, // 57: caos.zitadel.management.api.v1.OrgView.creation_date:type_name -> google.protobuf.Timestamp + 201, // 58: caos.zitadel.management.api.v1.OrgView.change_date:type_name -> google.protobuf.Timestamp + 89, // 59: caos.zitadel.management.api.v1.OrgDomains.domains:type_name -> caos.zitadel.management.api.v1.OrgDomain + 201, // 60: caos.zitadel.management.api.v1.OrgDomain.creation_date:type_name -> google.protobuf.Timestamp + 201, // 61: caos.zitadel.management.api.v1.OrgDomain.change_date:type_name -> google.protobuf.Timestamp + 201, // 62: caos.zitadel.management.api.v1.OrgDomainView.creation_date:type_name -> google.protobuf.Timestamp + 201, // 63: caos.zitadel.management.api.v1.OrgDomainView.change_date:type_name -> google.protobuf.Timestamp + 9, // 64: caos.zitadel.management.api.v1.OrgDomainView.validation_type:type_name -> caos.zitadel.management.api.v1.OrgDomainValidationType + 9, // 65: caos.zitadel.management.api.v1.OrgDomainValidationRequest.type:type_name -> caos.zitadel.management.api.v1.OrgDomainValidationType + 90, // 66: caos.zitadel.management.api.v1.OrgDomainSearchResponse.result:type_name -> caos.zitadel.management.api.v1.OrgDomainView + 201, // 67: caos.zitadel.management.api.v1.OrgDomainSearchResponse.view_timestamp:type_name -> google.protobuf.Timestamp + 99, // 68: caos.zitadel.management.api.v1.OrgDomainSearchRequest.queries:type_name -> caos.zitadel.management.api.v1.OrgDomainSearchQuery + 10, // 69: caos.zitadel.management.api.v1.OrgDomainSearchQuery.key:type_name -> caos.zitadel.management.api.v1.OrgDomainSearchKey + 3, // 70: caos.zitadel.management.api.v1.OrgDomainSearchQuery.method:type_name -> caos.zitadel.management.api.v1.SearchMethod + 201, // 71: caos.zitadel.management.api.v1.OrgMember.change_date:type_name -> google.protobuf.Timestamp + 201, // 72: caos.zitadel.management.api.v1.OrgMember.creation_date:type_name -> google.protobuf.Timestamp + 106, // 73: caos.zitadel.management.api.v1.OrgMemberSearchResponse.result:type_name -> caos.zitadel.management.api.v1.OrgMemberView + 201, // 74: caos.zitadel.management.api.v1.OrgMemberSearchResponse.view_timestamp:type_name -> google.protobuf.Timestamp + 201, // 75: caos.zitadel.management.api.v1.OrgMemberView.change_date:type_name -> google.protobuf.Timestamp + 201, // 76: caos.zitadel.management.api.v1.OrgMemberView.creation_date:type_name -> google.protobuf.Timestamp + 108, // 77: caos.zitadel.management.api.v1.OrgMemberSearchRequest.queries:type_name -> caos.zitadel.management.api.v1.OrgMemberSearchQuery + 11, // 78: caos.zitadel.management.api.v1.OrgMemberSearchQuery.key:type_name -> caos.zitadel.management.api.v1.OrgMemberSearchKey + 3, // 79: caos.zitadel.management.api.v1.OrgMemberSearchQuery.method:type_name -> caos.zitadel.management.api.v1.SearchMethod + 112, // 80: caos.zitadel.management.api.v1.ProjectSearchResponse.result:type_name -> caos.zitadel.management.api.v1.ProjectView + 201, // 81: caos.zitadel.management.api.v1.ProjectSearchResponse.view_timestamp:type_name -> google.protobuf.Timestamp + 13, // 82: caos.zitadel.management.api.v1.ProjectView.state:type_name -> caos.zitadel.management.api.v1.ProjectState + 201, // 83: caos.zitadel.management.api.v1.ProjectView.change_date:type_name -> google.protobuf.Timestamp + 201, // 84: caos.zitadel.management.api.v1.ProjectView.creation_date:type_name -> google.protobuf.Timestamp + 114, // 85: caos.zitadel.management.api.v1.ProjectSearchRequest.queries:type_name -> caos.zitadel.management.api.v1.ProjectSearchQuery + 12, // 86: caos.zitadel.management.api.v1.ProjectSearchQuery.key:type_name -> caos.zitadel.management.api.v1.ProjectSearchKey + 3, // 87: caos.zitadel.management.api.v1.ProjectSearchQuery.method:type_name -> caos.zitadel.management.api.v1.SearchMethod + 116, // 88: caos.zitadel.management.api.v1.Projects.projects:type_name -> caos.zitadel.management.api.v1.Project + 13, // 89: caos.zitadel.management.api.v1.Project.state:type_name -> caos.zitadel.management.api.v1.ProjectState + 201, // 90: caos.zitadel.management.api.v1.Project.change_date:type_name -> google.protobuf.Timestamp + 201, // 91: caos.zitadel.management.api.v1.Project.creation_date:type_name -> google.protobuf.Timestamp + 201, // 92: caos.zitadel.management.api.v1.ProjectMember.change_date:type_name -> google.protobuf.Timestamp + 201, // 93: caos.zitadel.management.api.v1.ProjectMember.creation_date:type_name -> google.protobuf.Timestamp + 122, // 94: caos.zitadel.management.api.v1.ProjectRoleAddBulk.project_roles:type_name -> caos.zitadel.management.api.v1.ProjectRoleAdd + 201, // 95: caos.zitadel.management.api.v1.ProjectRole.creation_date:type_name -> google.protobuf.Timestamp + 201, // 96: caos.zitadel.management.api.v1.ProjectRole.change_date:type_name -> google.protobuf.Timestamp + 201, // 97: caos.zitadel.management.api.v1.ProjectRoleView.creation_date:type_name -> google.protobuf.Timestamp + 126, // 98: caos.zitadel.management.api.v1.ProjectRoleSearchResponse.result:type_name -> caos.zitadel.management.api.v1.ProjectRoleView + 201, // 99: caos.zitadel.management.api.v1.ProjectRoleSearchResponse.view_timestamp:type_name -> google.protobuf.Timestamp + 130, // 100: caos.zitadel.management.api.v1.ProjectRoleSearchRequest.queries:type_name -> caos.zitadel.management.api.v1.ProjectRoleSearchQuery + 15, // 101: caos.zitadel.management.api.v1.ProjectRoleSearchQuery.key:type_name -> caos.zitadel.management.api.v1.ProjectRoleSearchKey + 3, // 102: caos.zitadel.management.api.v1.ProjectRoleSearchQuery.method:type_name -> caos.zitadel.management.api.v1.SearchMethod + 201, // 103: caos.zitadel.management.api.v1.ProjectMemberView.change_date:type_name -> google.protobuf.Timestamp + 201, // 104: caos.zitadel.management.api.v1.ProjectMemberView.creation_date:type_name -> google.protobuf.Timestamp + 131, // 105: caos.zitadel.management.api.v1.ProjectMemberSearchResponse.result:type_name -> caos.zitadel.management.api.v1.ProjectMemberView + 201, // 106: caos.zitadel.management.api.v1.ProjectMemberSearchResponse.view_timestamp:type_name -> google.protobuf.Timestamp + 134, // 107: caos.zitadel.management.api.v1.ProjectMemberSearchRequest.queries:type_name -> caos.zitadel.management.api.v1.ProjectMemberSearchQuery + 16, // 108: caos.zitadel.management.api.v1.ProjectMemberSearchQuery.key:type_name -> caos.zitadel.management.api.v1.ProjectMemberSearchKey + 3, // 109: caos.zitadel.management.api.v1.ProjectMemberSearchQuery.method:type_name -> caos.zitadel.management.api.v1.SearchMethod + 17, // 110: caos.zitadel.management.api.v1.Application.state:type_name -> caos.zitadel.management.api.v1.AppState + 201, // 111: caos.zitadel.management.api.v1.Application.creation_date:type_name -> google.protobuf.Timestamp + 201, // 112: caos.zitadel.management.api.v1.Application.change_date:type_name -> google.protobuf.Timestamp + 137, // 113: caos.zitadel.management.api.v1.Application.oidc_config:type_name -> caos.zitadel.management.api.v1.OIDCConfig + 19, // 114: caos.zitadel.management.api.v1.OIDCConfig.response_types:type_name -> caos.zitadel.management.api.v1.OIDCResponseType + 20, // 115: caos.zitadel.management.api.v1.OIDCConfig.grant_types:type_name -> caos.zitadel.management.api.v1.OIDCGrantType + 21, // 116: caos.zitadel.management.api.v1.OIDCConfig.application_type:type_name -> caos.zitadel.management.api.v1.OIDCApplicationType + 22, // 117: caos.zitadel.management.api.v1.OIDCConfig.auth_method_type:type_name -> caos.zitadel.management.api.v1.OIDCAuthMethodType + 18, // 118: caos.zitadel.management.api.v1.OIDCConfig.version:type_name -> caos.zitadel.management.api.v1.OIDCVersion + 202, // 119: caos.zitadel.management.api.v1.OIDCConfig.compliance_problems:type_name -> caos.zitadel.api.v1.LocalizedMessage + 19, // 120: caos.zitadel.management.api.v1.OIDCApplicationCreate.response_types:type_name -> caos.zitadel.management.api.v1.OIDCResponseType + 20, // 121: caos.zitadel.management.api.v1.OIDCApplicationCreate.grant_types:type_name -> caos.zitadel.management.api.v1.OIDCGrantType + 21, // 122: caos.zitadel.management.api.v1.OIDCApplicationCreate.application_type:type_name -> caos.zitadel.management.api.v1.OIDCApplicationType + 22, // 123: caos.zitadel.management.api.v1.OIDCApplicationCreate.auth_method_type:type_name -> caos.zitadel.management.api.v1.OIDCAuthMethodType + 18, // 124: caos.zitadel.management.api.v1.OIDCApplicationCreate.version:type_name -> caos.zitadel.management.api.v1.OIDCVersion + 19, // 125: caos.zitadel.management.api.v1.OIDCConfigUpdate.response_types:type_name -> caos.zitadel.management.api.v1.OIDCResponseType + 20, // 126: caos.zitadel.management.api.v1.OIDCConfigUpdate.grant_types:type_name -> caos.zitadel.management.api.v1.OIDCGrantType + 21, // 127: caos.zitadel.management.api.v1.OIDCConfigUpdate.application_type:type_name -> caos.zitadel.management.api.v1.OIDCApplicationType + 22, // 128: caos.zitadel.management.api.v1.OIDCConfigUpdate.auth_method_type:type_name -> caos.zitadel.management.api.v1.OIDCAuthMethodType + 17, // 129: caos.zitadel.management.api.v1.ApplicationView.state:type_name -> caos.zitadel.management.api.v1.AppState + 201, // 130: caos.zitadel.management.api.v1.ApplicationView.creation_date:type_name -> google.protobuf.Timestamp + 201, // 131: caos.zitadel.management.api.v1.ApplicationView.change_date:type_name -> google.protobuf.Timestamp + 137, // 132: caos.zitadel.management.api.v1.ApplicationView.oidc_config:type_name -> caos.zitadel.management.api.v1.OIDCConfig + 141, // 133: caos.zitadel.management.api.v1.ApplicationSearchResponse.result:type_name -> caos.zitadel.management.api.v1.ApplicationView + 201, // 134: caos.zitadel.management.api.v1.ApplicationSearchResponse.view_timestamp:type_name -> google.protobuf.Timestamp + 144, // 135: caos.zitadel.management.api.v1.ApplicationSearchRequest.queries:type_name -> caos.zitadel.management.api.v1.ApplicationSearchQuery + 23, // 136: caos.zitadel.management.api.v1.ApplicationSearchQuery.key:type_name -> caos.zitadel.management.api.v1.ApplicationSearchKey + 3, // 137: caos.zitadel.management.api.v1.ApplicationSearchQuery.method:type_name -> caos.zitadel.management.api.v1.SearchMethod + 24, // 138: caos.zitadel.management.api.v1.ProjectGrant.state:type_name -> caos.zitadel.management.api.v1.ProjectGrantState + 201, // 139: caos.zitadel.management.api.v1.ProjectGrant.creation_date:type_name -> google.protobuf.Timestamp + 201, // 140: caos.zitadel.management.api.v1.ProjectGrant.change_date:type_name -> google.protobuf.Timestamp + 24, // 141: caos.zitadel.management.api.v1.ProjectGrantView.state:type_name -> caos.zitadel.management.api.v1.ProjectGrantState + 201, // 142: caos.zitadel.management.api.v1.ProjectGrantView.creation_date:type_name -> google.protobuf.Timestamp + 201, // 143: caos.zitadel.management.api.v1.ProjectGrantView.change_date:type_name -> google.protobuf.Timestamp + 149, // 144: caos.zitadel.management.api.v1.ProjectGrantSearchResponse.result:type_name -> caos.zitadel.management.api.v1.ProjectGrantView + 201, // 145: caos.zitadel.management.api.v1.ProjectGrantSearchResponse.view_timestamp:type_name -> google.protobuf.Timestamp + 114, // 146: caos.zitadel.management.api.v1.GrantedProjectSearchRequest.queries:type_name -> caos.zitadel.management.api.v1.ProjectSearchQuery + 153, // 147: caos.zitadel.management.api.v1.ProjectGrantSearchRequest.queries:type_name -> caos.zitadel.management.api.v1.ProjectGrantSearchQuery + 25, // 148: caos.zitadel.management.api.v1.ProjectGrantSearchQuery.key:type_name -> caos.zitadel.management.api.v1.ProjectGrantSearchKey + 3, // 149: caos.zitadel.management.api.v1.ProjectGrantSearchQuery.method:type_name -> caos.zitadel.management.api.v1.SearchMethod + 201, // 150: caos.zitadel.management.api.v1.ProjectGrantMember.change_date:type_name -> google.protobuf.Timestamp + 201, // 151: caos.zitadel.management.api.v1.ProjectGrantMember.creation_date:type_name -> google.protobuf.Timestamp + 201, // 152: caos.zitadel.management.api.v1.ProjectGrantMemberView.change_date:type_name -> google.protobuf.Timestamp + 201, // 153: caos.zitadel.management.api.v1.ProjectGrantMemberView.creation_date:type_name -> google.protobuf.Timestamp + 159, // 154: caos.zitadel.management.api.v1.ProjectGrantMemberSearchResponse.result:type_name -> caos.zitadel.management.api.v1.ProjectGrantMemberView + 201, // 155: caos.zitadel.management.api.v1.ProjectGrantMemberSearchResponse.view_timestamp:type_name -> google.protobuf.Timestamp + 162, // 156: caos.zitadel.management.api.v1.ProjectGrantMemberSearchRequest.queries:type_name -> caos.zitadel.management.api.v1.ProjectGrantMemberSearchQuery + 26, // 157: caos.zitadel.management.api.v1.ProjectGrantMemberSearchQuery.key:type_name -> caos.zitadel.management.api.v1.ProjectGrantMemberSearchKey + 3, // 158: caos.zitadel.management.api.v1.ProjectGrantMemberSearchQuery.method:type_name -> caos.zitadel.management.api.v1.SearchMethod + 27, // 159: caos.zitadel.management.api.v1.UserGrant.state:type_name -> caos.zitadel.management.api.v1.UserGrantState + 201, // 160: caos.zitadel.management.api.v1.UserGrant.creation_date:type_name -> google.protobuf.Timestamp + 201, // 161: caos.zitadel.management.api.v1.UserGrant.change_date:type_name -> google.protobuf.Timestamp + 165, // 162: caos.zitadel.management.api.v1.UserGrantCreateBulk.user_grants:type_name -> caos.zitadel.management.api.v1.UserGrantCreate + 167, // 163: caos.zitadel.management.api.v1.UserGrantUpdateBulk.user_grants:type_name -> caos.zitadel.management.api.v1.UserGrantUpdate + 27, // 164: caos.zitadel.management.api.v1.UserGrantView.state:type_name -> caos.zitadel.management.api.v1.UserGrantState + 201, // 165: caos.zitadel.management.api.v1.UserGrantView.creation_date:type_name -> google.protobuf.Timestamp + 201, // 166: caos.zitadel.management.api.v1.UserGrantView.change_date:type_name -> google.protobuf.Timestamp + 170, // 167: caos.zitadel.management.api.v1.UserGrantSearchResponse.result:type_name -> caos.zitadel.management.api.v1.UserGrantView + 201, // 168: caos.zitadel.management.api.v1.UserGrantSearchResponse.view_timestamp:type_name -> google.protobuf.Timestamp + 173, // 169: caos.zitadel.management.api.v1.UserGrantSearchRequest.queries:type_name -> caos.zitadel.management.api.v1.UserGrantSearchQuery + 28, // 170: caos.zitadel.management.api.v1.UserGrantSearchQuery.key:type_name -> caos.zitadel.management.api.v1.UserGrantSearchKey + 3, // 171: caos.zitadel.management.api.v1.UserGrantSearchQuery.method:type_name -> caos.zitadel.management.api.v1.SearchMethod + 173, // 172: caos.zitadel.management.api.v1.ProjectUserGrantSearchRequest.queries:type_name -> caos.zitadel.management.api.v1.UserGrantSearchQuery + 173, // 173: caos.zitadel.management.api.v1.ProjectGrantUserGrantSearchRequest.queries:type_name -> caos.zitadel.management.api.v1.UserGrantSearchQuery + 179, // 174: caos.zitadel.management.api.v1.UserMembershipSearchResponse.result:type_name -> caos.zitadel.management.api.v1.UserMembershipView + 201, // 175: caos.zitadel.management.api.v1.UserMembershipSearchResponse.view_timestamp:type_name -> google.protobuf.Timestamp + 178, // 176: caos.zitadel.management.api.v1.UserMembershipSearchRequest.queries:type_name -> caos.zitadel.management.api.v1.UserMembershipSearchQuery + 29, // 177: caos.zitadel.management.api.v1.UserMembershipSearchQuery.key:type_name -> caos.zitadel.management.api.v1.UserMembershipSearchKey + 3, // 178: caos.zitadel.management.api.v1.UserMembershipSearchQuery.method:type_name -> caos.zitadel.management.api.v1.SearchMethod + 30, // 179: caos.zitadel.management.api.v1.UserMembershipView.member_type:type_name -> caos.zitadel.management.api.v1.MemberType + 201, // 180: caos.zitadel.management.api.v1.UserMembershipView.creation_date:type_name -> google.protobuf.Timestamp + 201, // 181: caos.zitadel.management.api.v1.UserMembershipView.change_date:type_name -> google.protobuf.Timestamp + 31, // 182: caos.zitadel.management.api.v1.Idp.state:type_name -> caos.zitadel.management.api.v1.IdpState + 201, // 183: caos.zitadel.management.api.v1.Idp.creation_date:type_name -> google.protobuf.Timestamp + 201, // 184: caos.zitadel.management.api.v1.Idp.change_date:type_name -> google.protobuf.Timestamp + 183, // 185: caos.zitadel.management.api.v1.Idp.oidc_config:type_name -> caos.zitadel.management.api.v1.OidcIdpConfig + 187, // 186: caos.zitadel.management.api.v1.IdpSearchResponse.result:type_name -> caos.zitadel.management.api.v1.IdpView + 201, // 187: caos.zitadel.management.api.v1.IdpSearchResponse.view_timestamp:type_name -> google.protobuf.Timestamp + 31, // 188: caos.zitadel.management.api.v1.IdpView.state:type_name -> caos.zitadel.management.api.v1.IdpState + 201, // 189: caos.zitadel.management.api.v1.IdpView.creation_date:type_name -> google.protobuf.Timestamp + 201, // 190: caos.zitadel.management.api.v1.IdpView.change_date:type_name -> google.protobuf.Timestamp + 34, // 191: caos.zitadel.management.api.v1.IdpView.provider_type:type_name -> caos.zitadel.management.api.v1.IdpProviderType + 188, // 192: caos.zitadel.management.api.v1.IdpView.oidc_config:type_name -> caos.zitadel.management.api.v1.OidcIdpConfigView + 190, // 193: caos.zitadel.management.api.v1.IdpSearchRequest.queries:type_name -> caos.zitadel.management.api.v1.IdpSearchQuery + 32, // 194: caos.zitadel.management.api.v1.IdpSearchQuery.key:type_name -> caos.zitadel.management.api.v1.IdpSearchKey + 3, // 195: caos.zitadel.management.api.v1.IdpSearchQuery.method:type_name -> caos.zitadel.management.api.v1.SearchMethod + 34, // 196: caos.zitadel.management.api.v1.IdpProviderAdd.idp_provider_type:type_name -> caos.zitadel.management.api.v1.IdpProviderType + 34, // 197: caos.zitadel.management.api.v1.IdpProvider.idp_provider_Type:type_name -> caos.zitadel.management.api.v1.IdpProviderType + 198, // 198: caos.zitadel.management.api.v1.IdpProviderViews.providers:type_name -> caos.zitadel.management.api.v1.IdpProviderView + 33, // 199: caos.zitadel.management.api.v1.IdpProviderView.type:type_name -> caos.zitadel.management.api.v1.IdpType + 198, // 200: caos.zitadel.management.api.v1.IdpProviderSearchResponse.result:type_name -> caos.zitadel.management.api.v1.IdpProviderView + 201, // 201: caos.zitadel.management.api.v1.IdpProviderSearchResponse.view_timestamp:type_name -> google.protobuf.Timestamp + 204, // 202: caos.zitadel.management.api.v1.ManagementService.Healthz:input_type -> google.protobuf.Empty + 204, // 203: caos.zitadel.management.api.v1.ManagementService.Ready:input_type -> google.protobuf.Empty + 204, // 204: caos.zitadel.management.api.v1.ManagementService.Validate:input_type -> google.protobuf.Empty + 204, // 205: caos.zitadel.management.api.v1.ManagementService.GetZitadelDocs:input_type -> google.protobuf.Empty + 204, // 206: caos.zitadel.management.api.v1.ManagementService.GetIam:input_type -> google.protobuf.Empty + 42, // 207: caos.zitadel.management.api.v1.ManagementService.GetUserByID:input_type -> caos.zitadel.management.api.v1.UserID + 43, // 208: caos.zitadel.management.api.v1.ManagementService.GetUserByEmailGlobal:input_type -> caos.zitadel.management.api.v1.Email + 49, // 209: caos.zitadel.management.api.v1.ManagementService.SearchUsers:input_type -> caos.zitadel.management.api.v1.UserSearchRequest + 44, // 210: caos.zitadel.management.api.v1.ManagementService.IsUserUnique:input_type -> caos.zitadel.management.api.v1.UniqueUserRequest + 46, // 211: caos.zitadel.management.api.v1.ManagementService.CreateUser:input_type -> caos.zitadel.management.api.v1.CreateUserRequest + 42, // 212: caos.zitadel.management.api.v1.ManagementService.DeactivateUser:input_type -> caos.zitadel.management.api.v1.UserID + 42, // 213: caos.zitadel.management.api.v1.ManagementService.ReactivateUser:input_type -> caos.zitadel.management.api.v1.UserID + 42, // 214: caos.zitadel.management.api.v1.ManagementService.LockUser:input_type -> caos.zitadel.management.api.v1.UserID + 42, // 215: caos.zitadel.management.api.v1.ManagementService.UnlockUser:input_type -> caos.zitadel.management.api.v1.UserID + 42, // 216: caos.zitadel.management.api.v1.ManagementService.DeleteUser:input_type -> caos.zitadel.management.api.v1.UserID + 37, // 217: caos.zitadel.management.api.v1.ManagementService.UserChanges:input_type -> caos.zitadel.management.api.v1.ChangeRequest + 37, // 218: caos.zitadel.management.api.v1.ManagementService.ApplicationChanges:input_type -> caos.zitadel.management.api.v1.ChangeRequest + 37, // 219: caos.zitadel.management.api.v1.ManagementService.OrgChanges:input_type -> caos.zitadel.management.api.v1.ChangeRequest + 37, // 220: caos.zitadel.management.api.v1.ManagementService.ProjectChanges:input_type -> caos.zitadel.management.api.v1.ChangeRequest + 42, // 221: caos.zitadel.management.api.v1.ManagementService.GetUserProfile:input_type -> caos.zitadel.management.api.v1.UserID + 54, // 222: caos.zitadel.management.api.v1.ManagementService.UpdateUserProfile:input_type -> caos.zitadel.management.api.v1.UpdateUserProfileRequest + 42, // 223: caos.zitadel.management.api.v1.ManagementService.GetUserEmail:input_type -> caos.zitadel.management.api.v1.UserID + 57, // 224: caos.zitadel.management.api.v1.ManagementService.ChangeUserEmail:input_type -> caos.zitadel.management.api.v1.UpdateUserEmailRequest + 42, // 225: caos.zitadel.management.api.v1.ManagementService.ResendEmailVerificationMail:input_type -> caos.zitadel.management.api.v1.UserID + 42, // 226: caos.zitadel.management.api.v1.ManagementService.GetUserPhone:input_type -> caos.zitadel.management.api.v1.UserID + 60, // 227: caos.zitadel.management.api.v1.ManagementService.ChangeUserPhone:input_type -> caos.zitadel.management.api.v1.UpdateUserPhoneRequest + 42, // 228: caos.zitadel.management.api.v1.ManagementService.RemoveUserPhone:input_type -> caos.zitadel.management.api.v1.UserID + 42, // 229: caos.zitadel.management.api.v1.ManagementService.ResendPhoneVerificationCode:input_type -> caos.zitadel.management.api.v1.UserID + 42, // 230: caos.zitadel.management.api.v1.ManagementService.GetUserAddress:input_type -> caos.zitadel.management.api.v1.UserID + 63, // 231: caos.zitadel.management.api.v1.ManagementService.UpdateUserAddress:input_type -> caos.zitadel.management.api.v1.UpdateUserAddressRequest + 42, // 232: caos.zitadel.management.api.v1.ManagementService.GetUserMfas:input_type -> caos.zitadel.management.api.v1.UserID + 69, // 233: caos.zitadel.management.api.v1.ManagementService.SendSetPasswordNotification:input_type -> caos.zitadel.management.api.v1.SetPasswordNotificationRequest + 67, // 234: caos.zitadel.management.api.v1.ManagementService.SetInitialPassword:input_type -> caos.zitadel.management.api.v1.PasswordRequest + 177, // 235: caos.zitadel.management.api.v1.ManagementService.SearchUserMemberships:input_type -> caos.zitadel.management.api.v1.UserMembershipSearchRequest + 204, // 236: caos.zitadel.management.api.v1.ManagementService.GetPasswordComplexityPolicy:input_type -> google.protobuf.Empty + 204, // 237: caos.zitadel.management.api.v1.ManagementService.GetDefaultPasswordComplexityPolicy:input_type -> google.protobuf.Empty + 72, // 238: caos.zitadel.management.api.v1.ManagementService.CreatePasswordComplexityPolicy:input_type -> caos.zitadel.management.api.v1.PasswordComplexityPolicyCreate + 73, // 239: caos.zitadel.management.api.v1.ManagementService.UpdatePasswordComplexityPolicy:input_type -> caos.zitadel.management.api.v1.PasswordComplexityPolicyUpdate + 70, // 240: caos.zitadel.management.api.v1.ManagementService.DeletePasswordComplexityPolicy:input_type -> caos.zitadel.management.api.v1.PasswordComplexityPolicyID + 204, // 241: caos.zitadel.management.api.v1.ManagementService.GetPasswordAgePolicy:input_type -> google.protobuf.Empty + 76, // 242: caos.zitadel.management.api.v1.ManagementService.CreatePasswordAgePolicy:input_type -> caos.zitadel.management.api.v1.PasswordAgePolicyCreate + 77, // 243: caos.zitadel.management.api.v1.ManagementService.UpdatePasswordAgePolicy:input_type -> caos.zitadel.management.api.v1.PasswordAgePolicyUpdate + 74, // 244: caos.zitadel.management.api.v1.ManagementService.DeletePasswordAgePolicy:input_type -> caos.zitadel.management.api.v1.PasswordAgePolicyID + 204, // 245: caos.zitadel.management.api.v1.ManagementService.GetPasswordLockoutPolicy:input_type -> google.protobuf.Empty + 80, // 246: caos.zitadel.management.api.v1.ManagementService.CreatePasswordLockoutPolicy:input_type -> caos.zitadel.management.api.v1.PasswordLockoutPolicyCreate + 81, // 247: caos.zitadel.management.api.v1.ManagementService.UpdatePasswordLockoutPolicy:input_type -> caos.zitadel.management.api.v1.PasswordLockoutPolicyUpdate + 78, // 248: caos.zitadel.management.api.v1.ManagementService.DeletePasswordLockoutPolicy:input_type -> caos.zitadel.management.api.v1.PasswordLockoutPolicyID + 84, // 249: caos.zitadel.management.api.v1.ManagementService.CreateOrg:input_type -> caos.zitadel.management.api.v1.OrgCreateRequest + 204, // 250: caos.zitadel.management.api.v1.ManagementService.GetMyOrg:input_type -> google.protobuf.Empty + 87, // 251: caos.zitadel.management.api.v1.ManagementService.GetOrgByDomainGlobal:input_type -> caos.zitadel.management.api.v1.Domain + 204, // 252: caos.zitadel.management.api.v1.ManagementService.DeactivateMyOrg:input_type -> google.protobuf.Empty + 204, // 253: caos.zitadel.management.api.v1.ManagementService.ReactivateMyOrg:input_type -> google.protobuf.Empty + 98, // 254: caos.zitadel.management.api.v1.ManagementService.SearchMyOrgDomains:input_type -> caos.zitadel.management.api.v1.OrgDomainSearchRequest + 91, // 255: caos.zitadel.management.api.v1.ManagementService.AddMyOrgDomain:input_type -> caos.zitadel.management.api.v1.AddOrgDomainRequest + 92, // 256: caos.zitadel.management.api.v1.ManagementService.GenerateMyOrgDomainValidation:input_type -> caos.zitadel.management.api.v1.OrgDomainValidationRequest + 94, // 257: caos.zitadel.management.api.v1.ManagementService.ValidateMyOrgDomain:input_type -> caos.zitadel.management.api.v1.ValidateOrgDomainRequest + 95, // 258: caos.zitadel.management.api.v1.ManagementService.SetMyPrimaryOrgDomain:input_type -> caos.zitadel.management.api.v1.PrimaryOrgDomainRequest + 96, // 259: caos.zitadel.management.api.v1.ManagementService.RemoveMyOrgDomain:input_type -> caos.zitadel.management.api.v1.RemoveOrgDomainRequest + 204, // 260: caos.zitadel.management.api.v1.ManagementService.GetMyOrgIamPolicy:input_type -> google.protobuf.Empty + 204, // 261: caos.zitadel.management.api.v1.ManagementService.GetOrgMemberRoles:input_type -> google.protobuf.Empty + 102, // 262: caos.zitadel.management.api.v1.ManagementService.AddMyOrgMember:input_type -> caos.zitadel.management.api.v1.AddOrgMemberRequest + 103, // 263: caos.zitadel.management.api.v1.ManagementService.ChangeMyOrgMember:input_type -> caos.zitadel.management.api.v1.ChangeOrgMemberRequest + 104, // 264: caos.zitadel.management.api.v1.ManagementService.RemoveMyOrgMember:input_type -> caos.zitadel.management.api.v1.RemoveOrgMemberRequest + 107, // 265: caos.zitadel.management.api.v1.ManagementService.SearchMyOrgMembers:input_type -> caos.zitadel.management.api.v1.OrgMemberSearchRequest + 113, // 266: caos.zitadel.management.api.v1.ManagementService.SearchProjects:input_type -> caos.zitadel.management.api.v1.ProjectSearchRequest + 41, // 267: caos.zitadel.management.api.v1.ManagementService.ProjectByID:input_type -> caos.zitadel.management.api.v1.ProjectID + 109, // 268: caos.zitadel.management.api.v1.ManagementService.CreateProject:input_type -> caos.zitadel.management.api.v1.ProjectCreateRequest + 110, // 269: caos.zitadel.management.api.v1.ManagementService.UpdateProject:input_type -> caos.zitadel.management.api.v1.ProjectUpdateRequest + 41, // 270: caos.zitadel.management.api.v1.ManagementService.DeactivateProject:input_type -> caos.zitadel.management.api.v1.ProjectID + 41, // 271: caos.zitadel.management.api.v1.ManagementService.ReactivateProject:input_type -> caos.zitadel.management.api.v1.ProjectID + 41, // 272: caos.zitadel.management.api.v1.ManagementService.RemoveProject:input_type -> caos.zitadel.management.api.v1.ProjectID + 151, // 273: caos.zitadel.management.api.v1.ManagementService.SearchGrantedProjects:input_type -> caos.zitadel.management.api.v1.GrantedProjectSearchRequest + 148, // 274: caos.zitadel.management.api.v1.ManagementService.GetGrantedProjectByID:input_type -> caos.zitadel.management.api.v1.ProjectGrantID + 204, // 275: caos.zitadel.management.api.v1.ManagementService.GetProjectMemberRoles:input_type -> google.protobuf.Empty + 133, // 276: caos.zitadel.management.api.v1.ManagementService.SearchProjectMembers:input_type -> caos.zitadel.management.api.v1.ProjectMemberSearchRequest + 119, // 277: caos.zitadel.management.api.v1.ManagementService.AddProjectMember:input_type -> caos.zitadel.management.api.v1.ProjectMemberAdd + 120, // 278: caos.zitadel.management.api.v1.ManagementService.ChangeProjectMember:input_type -> caos.zitadel.management.api.v1.ProjectMemberChange + 121, // 279: caos.zitadel.management.api.v1.ManagementService.RemoveProjectMember:input_type -> caos.zitadel.management.api.v1.ProjectMemberRemove + 129, // 280: caos.zitadel.management.api.v1.ManagementService.SearchProjectRoles:input_type -> caos.zitadel.management.api.v1.ProjectRoleSearchRequest + 122, // 281: caos.zitadel.management.api.v1.ManagementService.AddProjectRole:input_type -> caos.zitadel.management.api.v1.ProjectRoleAdd + 123, // 282: caos.zitadel.management.api.v1.ManagementService.BulkAddProjectRole:input_type -> caos.zitadel.management.api.v1.ProjectRoleAddBulk + 124, // 283: caos.zitadel.management.api.v1.ManagementService.ChangeProjectRole:input_type -> caos.zitadel.management.api.v1.ProjectRoleChange + 127, // 284: caos.zitadel.management.api.v1.ManagementService.RemoveProjectRole:input_type -> caos.zitadel.management.api.v1.ProjectRoleRemove + 143, // 285: caos.zitadel.management.api.v1.ManagementService.SearchApplications:input_type -> caos.zitadel.management.api.v1.ApplicationSearchRequest + 40, // 286: caos.zitadel.management.api.v1.ManagementService.ApplicationByID:input_type -> caos.zitadel.management.api.v1.ApplicationID + 138, // 287: caos.zitadel.management.api.v1.ManagementService.CreateOIDCApplication:input_type -> caos.zitadel.management.api.v1.OIDCApplicationCreate + 136, // 288: caos.zitadel.management.api.v1.ManagementService.UpdateApplication:input_type -> caos.zitadel.management.api.v1.ApplicationUpdate + 40, // 289: caos.zitadel.management.api.v1.ManagementService.DeactivateApplication:input_type -> caos.zitadel.management.api.v1.ApplicationID + 40, // 290: caos.zitadel.management.api.v1.ManagementService.ReactivateApplication:input_type -> caos.zitadel.management.api.v1.ApplicationID + 40, // 291: caos.zitadel.management.api.v1.ManagementService.RemoveApplication:input_type -> caos.zitadel.management.api.v1.ApplicationID + 139, // 292: caos.zitadel.management.api.v1.ManagementService.UpdateApplicationOIDCConfig:input_type -> caos.zitadel.management.api.v1.OIDCConfigUpdate + 40, // 293: caos.zitadel.management.api.v1.ManagementService.RegenerateOIDCClientSecret:input_type -> caos.zitadel.management.api.v1.ApplicationID + 152, // 294: caos.zitadel.management.api.v1.ManagementService.SearchProjectGrants:input_type -> caos.zitadel.management.api.v1.ProjectGrantSearchRequest + 148, // 295: caos.zitadel.management.api.v1.ManagementService.ProjectGrantByID:input_type -> caos.zitadel.management.api.v1.ProjectGrantID + 146, // 296: caos.zitadel.management.api.v1.ManagementService.CreateProjectGrant:input_type -> caos.zitadel.management.api.v1.ProjectGrantCreate + 147, // 297: caos.zitadel.management.api.v1.ManagementService.UpdateProjectGrant:input_type -> caos.zitadel.management.api.v1.ProjectGrantUpdate + 148, // 298: caos.zitadel.management.api.v1.ManagementService.DeactivateProjectGrant:input_type -> caos.zitadel.management.api.v1.ProjectGrantID + 148, // 299: caos.zitadel.management.api.v1.ManagementService.ReactivateProjectGrant:input_type -> caos.zitadel.management.api.v1.ProjectGrantID + 148, // 300: caos.zitadel.management.api.v1.ManagementService.RemoveProjectGrant:input_type -> caos.zitadel.management.api.v1.ProjectGrantID + 204, // 301: caos.zitadel.management.api.v1.ManagementService.GetProjectGrantMemberRoles:input_type -> google.protobuf.Empty + 161, // 302: caos.zitadel.management.api.v1.ManagementService.SearchProjectGrantMembers:input_type -> caos.zitadel.management.api.v1.ProjectGrantMemberSearchRequest + 156, // 303: caos.zitadel.management.api.v1.ManagementService.AddProjectGrantMember:input_type -> caos.zitadel.management.api.v1.ProjectGrantMemberAdd + 157, // 304: caos.zitadel.management.api.v1.ManagementService.ChangeProjectGrantMember:input_type -> caos.zitadel.management.api.v1.ProjectGrantMemberChange + 158, // 305: caos.zitadel.management.api.v1.ManagementService.RemoveProjectGrantMember:input_type -> caos.zitadel.management.api.v1.ProjectGrantMemberRemove + 172, // 306: caos.zitadel.management.api.v1.ManagementService.SearchUserGrants:input_type -> caos.zitadel.management.api.v1.UserGrantSearchRequest + 169, // 307: caos.zitadel.management.api.v1.ManagementService.UserGrantByID:input_type -> caos.zitadel.management.api.v1.UserGrantID + 165, // 308: caos.zitadel.management.api.v1.ManagementService.CreateUserGrant:input_type -> caos.zitadel.management.api.v1.UserGrantCreate + 167, // 309: caos.zitadel.management.api.v1.ManagementService.UpdateUserGrant:input_type -> caos.zitadel.management.api.v1.UserGrantUpdate + 169, // 310: caos.zitadel.management.api.v1.ManagementService.DeactivateUserGrant:input_type -> caos.zitadel.management.api.v1.UserGrantID + 169, // 311: caos.zitadel.management.api.v1.ManagementService.ReactivateUserGrant:input_type -> caos.zitadel.management.api.v1.UserGrantID + 169, // 312: caos.zitadel.management.api.v1.ManagementService.RemoveUserGrant:input_type -> caos.zitadel.management.api.v1.UserGrantID + 168, // 313: caos.zitadel.management.api.v1.ManagementService.BulkRemoveUserGrant:input_type -> caos.zitadel.management.api.v1.UserGrantRemoveBulk + 180, // 314: caos.zitadel.management.api.v1.ManagementService.IdpByID:input_type -> caos.zitadel.management.api.v1.IdpID + 184, // 315: caos.zitadel.management.api.v1.ManagementService.CreateOidcIdp:input_type -> caos.zitadel.management.api.v1.OidcIdpConfigCreate + 182, // 316: caos.zitadel.management.api.v1.ManagementService.UpdateIdpConfig:input_type -> caos.zitadel.management.api.v1.IdpUpdate + 180, // 317: caos.zitadel.management.api.v1.ManagementService.DeactivateIdpConfig:input_type -> caos.zitadel.management.api.v1.IdpID + 180, // 318: caos.zitadel.management.api.v1.ManagementService.ReactivateIdpConfig:input_type -> caos.zitadel.management.api.v1.IdpID + 180, // 319: caos.zitadel.management.api.v1.ManagementService.RemoveIdpConfig:input_type -> caos.zitadel.management.api.v1.IdpID + 185, // 320: caos.zitadel.management.api.v1.ManagementService.UpdateOidcIdpConfig:input_type -> caos.zitadel.management.api.v1.OidcIdpConfigUpdate + 189, // 321: caos.zitadel.management.api.v1.ManagementService.SearchIdps:input_type -> caos.zitadel.management.api.v1.IdpSearchRequest + 204, // 322: caos.zitadel.management.api.v1.ManagementService.GetLoginPolicy:input_type -> google.protobuf.Empty + 192, // 323: caos.zitadel.management.api.v1.ManagementService.CreateLoginPolicy:input_type -> caos.zitadel.management.api.v1.LoginPolicyAdd + 191, // 324: caos.zitadel.management.api.v1.ManagementService.UpdateLoginPolicy:input_type -> caos.zitadel.management.api.v1.LoginPolicy + 204, // 325: caos.zitadel.management.api.v1.ManagementService.RemoveLoginPolicy:input_type -> google.protobuf.Empty + 200, // 326: caos.zitadel.management.api.v1.ManagementService.GetLoginPolicyIdpProviders:input_type -> caos.zitadel.management.api.v1.IdpProviderSearchRequest + 194, // 327: caos.zitadel.management.api.v1.ManagementService.AddIdpProviderToLoginPolicy:input_type -> caos.zitadel.management.api.v1.IdpProviderAdd + 193, // 328: caos.zitadel.management.api.v1.ManagementService.RemoveIdpProviderFromLoginPolicy:input_type -> caos.zitadel.management.api.v1.IdpProviderID + 204, // 329: caos.zitadel.management.api.v1.ManagementService.Healthz:output_type -> google.protobuf.Empty + 204, // 330: caos.zitadel.management.api.v1.ManagementService.Ready:output_type -> google.protobuf.Empty + 203, // 331: caos.zitadel.management.api.v1.ManagementService.Validate:output_type -> google.protobuf.Struct + 35, // 332: caos.zitadel.management.api.v1.ManagementService.GetZitadelDocs:output_type -> caos.zitadel.management.api.v1.ZitadelDocs + 36, // 333: caos.zitadel.management.api.v1.ManagementService.GetIam:output_type -> caos.zitadel.management.api.v1.Iam + 48, // 334: caos.zitadel.management.api.v1.ManagementService.GetUserByID:output_type -> caos.zitadel.management.api.v1.UserView + 48, // 335: caos.zitadel.management.api.v1.ManagementService.GetUserByEmailGlobal:output_type -> caos.zitadel.management.api.v1.UserView + 51, // 336: caos.zitadel.management.api.v1.ManagementService.SearchUsers:output_type -> caos.zitadel.management.api.v1.UserSearchResponse + 45, // 337: caos.zitadel.management.api.v1.ManagementService.IsUserUnique:output_type -> caos.zitadel.management.api.v1.UniqueUserResponse + 47, // 338: caos.zitadel.management.api.v1.ManagementService.CreateUser:output_type -> caos.zitadel.management.api.v1.User + 47, // 339: caos.zitadel.management.api.v1.ManagementService.DeactivateUser:output_type -> caos.zitadel.management.api.v1.User + 47, // 340: caos.zitadel.management.api.v1.ManagementService.ReactivateUser:output_type -> caos.zitadel.management.api.v1.User + 47, // 341: caos.zitadel.management.api.v1.ManagementService.LockUser:output_type -> caos.zitadel.management.api.v1.User + 47, // 342: caos.zitadel.management.api.v1.ManagementService.UnlockUser:output_type -> caos.zitadel.management.api.v1.User + 204, // 343: caos.zitadel.management.api.v1.ManagementService.DeleteUser:output_type -> google.protobuf.Empty + 38, // 344: caos.zitadel.management.api.v1.ManagementService.UserChanges:output_type -> caos.zitadel.management.api.v1.Changes + 38, // 345: caos.zitadel.management.api.v1.ManagementService.ApplicationChanges:output_type -> caos.zitadel.management.api.v1.Changes + 38, // 346: caos.zitadel.management.api.v1.ManagementService.OrgChanges:output_type -> caos.zitadel.management.api.v1.Changes + 38, // 347: caos.zitadel.management.api.v1.ManagementService.ProjectChanges:output_type -> caos.zitadel.management.api.v1.Changes + 53, // 348: caos.zitadel.management.api.v1.ManagementService.GetUserProfile:output_type -> caos.zitadel.management.api.v1.UserProfileView + 52, // 349: caos.zitadel.management.api.v1.ManagementService.UpdateUserProfile:output_type -> caos.zitadel.management.api.v1.UserProfile + 56, // 350: caos.zitadel.management.api.v1.ManagementService.GetUserEmail:output_type -> caos.zitadel.management.api.v1.UserEmailView + 55, // 351: caos.zitadel.management.api.v1.ManagementService.ChangeUserEmail:output_type -> caos.zitadel.management.api.v1.UserEmail + 204, // 352: caos.zitadel.management.api.v1.ManagementService.ResendEmailVerificationMail:output_type -> google.protobuf.Empty + 59, // 353: caos.zitadel.management.api.v1.ManagementService.GetUserPhone:output_type -> caos.zitadel.management.api.v1.UserPhoneView + 58, // 354: caos.zitadel.management.api.v1.ManagementService.ChangeUserPhone:output_type -> caos.zitadel.management.api.v1.UserPhone + 204, // 355: caos.zitadel.management.api.v1.ManagementService.RemoveUserPhone:output_type -> google.protobuf.Empty + 204, // 356: caos.zitadel.management.api.v1.ManagementService.ResendPhoneVerificationCode:output_type -> google.protobuf.Empty + 62, // 357: caos.zitadel.management.api.v1.ManagementService.GetUserAddress:output_type -> caos.zitadel.management.api.v1.UserAddressView + 61, // 358: caos.zitadel.management.api.v1.ManagementService.UpdateUserAddress:output_type -> caos.zitadel.management.api.v1.UserAddress + 64, // 359: caos.zitadel.management.api.v1.ManagementService.GetUserMfas:output_type -> caos.zitadel.management.api.v1.MultiFactors + 204, // 360: caos.zitadel.management.api.v1.ManagementService.SendSetPasswordNotification:output_type -> google.protobuf.Empty + 204, // 361: caos.zitadel.management.api.v1.ManagementService.SetInitialPassword:output_type -> google.protobuf.Empty + 176, // 362: caos.zitadel.management.api.v1.ManagementService.SearchUserMemberships:output_type -> caos.zitadel.management.api.v1.UserMembershipSearchResponse + 71, // 363: caos.zitadel.management.api.v1.ManagementService.GetPasswordComplexityPolicy:output_type -> caos.zitadel.management.api.v1.PasswordComplexityPolicy + 71, // 364: caos.zitadel.management.api.v1.ManagementService.GetDefaultPasswordComplexityPolicy:output_type -> caos.zitadel.management.api.v1.PasswordComplexityPolicy + 71, // 365: caos.zitadel.management.api.v1.ManagementService.CreatePasswordComplexityPolicy:output_type -> caos.zitadel.management.api.v1.PasswordComplexityPolicy + 71, // 366: caos.zitadel.management.api.v1.ManagementService.UpdatePasswordComplexityPolicy:output_type -> caos.zitadel.management.api.v1.PasswordComplexityPolicy + 204, // 367: caos.zitadel.management.api.v1.ManagementService.DeletePasswordComplexityPolicy:output_type -> google.protobuf.Empty + 75, // 368: caos.zitadel.management.api.v1.ManagementService.GetPasswordAgePolicy:output_type -> caos.zitadel.management.api.v1.PasswordAgePolicy + 75, // 369: caos.zitadel.management.api.v1.ManagementService.CreatePasswordAgePolicy:output_type -> caos.zitadel.management.api.v1.PasswordAgePolicy + 75, // 370: caos.zitadel.management.api.v1.ManagementService.UpdatePasswordAgePolicy:output_type -> caos.zitadel.management.api.v1.PasswordAgePolicy + 204, // 371: caos.zitadel.management.api.v1.ManagementService.DeletePasswordAgePolicy:output_type -> google.protobuf.Empty + 79, // 372: caos.zitadel.management.api.v1.ManagementService.GetPasswordLockoutPolicy:output_type -> caos.zitadel.management.api.v1.PasswordLockoutPolicy + 79, // 373: caos.zitadel.management.api.v1.ManagementService.CreatePasswordLockoutPolicy:output_type -> caos.zitadel.management.api.v1.PasswordLockoutPolicy + 79, // 374: caos.zitadel.management.api.v1.ManagementService.UpdatePasswordLockoutPolicy:output_type -> caos.zitadel.management.api.v1.PasswordLockoutPolicy + 204, // 375: caos.zitadel.management.api.v1.ManagementService.DeletePasswordLockoutPolicy:output_type -> google.protobuf.Empty + 85, // 376: caos.zitadel.management.api.v1.ManagementService.CreateOrg:output_type -> caos.zitadel.management.api.v1.Org + 86, // 377: caos.zitadel.management.api.v1.ManagementService.GetMyOrg:output_type -> caos.zitadel.management.api.v1.OrgView + 86, // 378: caos.zitadel.management.api.v1.ManagementService.GetOrgByDomainGlobal:output_type -> caos.zitadel.management.api.v1.OrgView + 85, // 379: caos.zitadel.management.api.v1.ManagementService.DeactivateMyOrg:output_type -> caos.zitadel.management.api.v1.Org + 85, // 380: caos.zitadel.management.api.v1.ManagementService.ReactivateMyOrg:output_type -> caos.zitadel.management.api.v1.Org + 97, // 381: caos.zitadel.management.api.v1.ManagementService.SearchMyOrgDomains:output_type -> caos.zitadel.management.api.v1.OrgDomainSearchResponse + 89, // 382: caos.zitadel.management.api.v1.ManagementService.AddMyOrgDomain:output_type -> caos.zitadel.management.api.v1.OrgDomain + 93, // 383: caos.zitadel.management.api.v1.ManagementService.GenerateMyOrgDomainValidation:output_type -> caos.zitadel.management.api.v1.OrgDomainValidationResponse + 204, // 384: caos.zitadel.management.api.v1.ManagementService.ValidateMyOrgDomain:output_type -> google.protobuf.Empty + 204, // 385: caos.zitadel.management.api.v1.ManagementService.SetMyPrimaryOrgDomain:output_type -> google.protobuf.Empty + 204, // 386: caos.zitadel.management.api.v1.ManagementService.RemoveMyOrgDomain:output_type -> google.protobuf.Empty + 82, // 387: caos.zitadel.management.api.v1.ManagementService.GetMyOrgIamPolicy:output_type -> caos.zitadel.management.api.v1.OrgIamPolicy + 100, // 388: caos.zitadel.management.api.v1.ManagementService.GetOrgMemberRoles:output_type -> caos.zitadel.management.api.v1.OrgMemberRoles + 101, // 389: caos.zitadel.management.api.v1.ManagementService.AddMyOrgMember:output_type -> caos.zitadel.management.api.v1.OrgMember + 101, // 390: caos.zitadel.management.api.v1.ManagementService.ChangeMyOrgMember:output_type -> caos.zitadel.management.api.v1.OrgMember + 204, // 391: caos.zitadel.management.api.v1.ManagementService.RemoveMyOrgMember:output_type -> google.protobuf.Empty + 105, // 392: caos.zitadel.management.api.v1.ManagementService.SearchMyOrgMembers:output_type -> caos.zitadel.management.api.v1.OrgMemberSearchResponse + 111, // 393: caos.zitadel.management.api.v1.ManagementService.SearchProjects:output_type -> caos.zitadel.management.api.v1.ProjectSearchResponse + 112, // 394: caos.zitadel.management.api.v1.ManagementService.ProjectByID:output_type -> caos.zitadel.management.api.v1.ProjectView + 116, // 395: caos.zitadel.management.api.v1.ManagementService.CreateProject:output_type -> caos.zitadel.management.api.v1.Project + 116, // 396: caos.zitadel.management.api.v1.ManagementService.UpdateProject:output_type -> caos.zitadel.management.api.v1.Project + 116, // 397: caos.zitadel.management.api.v1.ManagementService.DeactivateProject:output_type -> caos.zitadel.management.api.v1.Project + 116, // 398: caos.zitadel.management.api.v1.ManagementService.ReactivateProject:output_type -> caos.zitadel.management.api.v1.Project + 204, // 399: caos.zitadel.management.api.v1.ManagementService.RemoveProject:output_type -> google.protobuf.Empty + 150, // 400: caos.zitadel.management.api.v1.ManagementService.SearchGrantedProjects:output_type -> caos.zitadel.management.api.v1.ProjectGrantSearchResponse + 149, // 401: caos.zitadel.management.api.v1.ManagementService.GetGrantedProjectByID:output_type -> caos.zitadel.management.api.v1.ProjectGrantView + 117, // 402: caos.zitadel.management.api.v1.ManagementService.GetProjectMemberRoles:output_type -> caos.zitadel.management.api.v1.ProjectMemberRoles + 132, // 403: caos.zitadel.management.api.v1.ManagementService.SearchProjectMembers:output_type -> caos.zitadel.management.api.v1.ProjectMemberSearchResponse + 118, // 404: caos.zitadel.management.api.v1.ManagementService.AddProjectMember:output_type -> caos.zitadel.management.api.v1.ProjectMember + 118, // 405: caos.zitadel.management.api.v1.ManagementService.ChangeProjectMember:output_type -> caos.zitadel.management.api.v1.ProjectMember + 204, // 406: caos.zitadel.management.api.v1.ManagementService.RemoveProjectMember:output_type -> google.protobuf.Empty + 128, // 407: caos.zitadel.management.api.v1.ManagementService.SearchProjectRoles:output_type -> caos.zitadel.management.api.v1.ProjectRoleSearchResponse + 125, // 408: caos.zitadel.management.api.v1.ManagementService.AddProjectRole:output_type -> caos.zitadel.management.api.v1.ProjectRole + 204, // 409: caos.zitadel.management.api.v1.ManagementService.BulkAddProjectRole:output_type -> google.protobuf.Empty + 125, // 410: caos.zitadel.management.api.v1.ManagementService.ChangeProjectRole:output_type -> caos.zitadel.management.api.v1.ProjectRole + 204, // 411: caos.zitadel.management.api.v1.ManagementService.RemoveProjectRole:output_type -> google.protobuf.Empty + 142, // 412: caos.zitadel.management.api.v1.ManagementService.SearchApplications:output_type -> caos.zitadel.management.api.v1.ApplicationSearchResponse + 141, // 413: caos.zitadel.management.api.v1.ManagementService.ApplicationByID:output_type -> caos.zitadel.management.api.v1.ApplicationView + 135, // 414: caos.zitadel.management.api.v1.ManagementService.CreateOIDCApplication:output_type -> caos.zitadel.management.api.v1.Application + 135, // 415: caos.zitadel.management.api.v1.ManagementService.UpdateApplication:output_type -> caos.zitadel.management.api.v1.Application + 135, // 416: caos.zitadel.management.api.v1.ManagementService.DeactivateApplication:output_type -> caos.zitadel.management.api.v1.Application + 135, // 417: caos.zitadel.management.api.v1.ManagementService.ReactivateApplication:output_type -> caos.zitadel.management.api.v1.Application + 204, // 418: caos.zitadel.management.api.v1.ManagementService.RemoveApplication:output_type -> google.protobuf.Empty + 137, // 419: caos.zitadel.management.api.v1.ManagementService.UpdateApplicationOIDCConfig:output_type -> caos.zitadel.management.api.v1.OIDCConfig + 140, // 420: caos.zitadel.management.api.v1.ManagementService.RegenerateOIDCClientSecret:output_type -> caos.zitadel.management.api.v1.ClientSecret + 150, // 421: caos.zitadel.management.api.v1.ManagementService.SearchProjectGrants:output_type -> caos.zitadel.management.api.v1.ProjectGrantSearchResponse + 149, // 422: caos.zitadel.management.api.v1.ManagementService.ProjectGrantByID:output_type -> caos.zitadel.management.api.v1.ProjectGrantView + 145, // 423: caos.zitadel.management.api.v1.ManagementService.CreateProjectGrant:output_type -> caos.zitadel.management.api.v1.ProjectGrant + 145, // 424: caos.zitadel.management.api.v1.ManagementService.UpdateProjectGrant:output_type -> caos.zitadel.management.api.v1.ProjectGrant + 145, // 425: caos.zitadel.management.api.v1.ManagementService.DeactivateProjectGrant:output_type -> caos.zitadel.management.api.v1.ProjectGrant + 145, // 426: caos.zitadel.management.api.v1.ManagementService.ReactivateProjectGrant:output_type -> caos.zitadel.management.api.v1.ProjectGrant + 204, // 427: caos.zitadel.management.api.v1.ManagementService.RemoveProjectGrant:output_type -> google.protobuf.Empty + 154, // 428: caos.zitadel.management.api.v1.ManagementService.GetProjectGrantMemberRoles:output_type -> caos.zitadel.management.api.v1.ProjectGrantMemberRoles + 160, // 429: caos.zitadel.management.api.v1.ManagementService.SearchProjectGrantMembers:output_type -> caos.zitadel.management.api.v1.ProjectGrantMemberSearchResponse + 155, // 430: caos.zitadel.management.api.v1.ManagementService.AddProjectGrantMember:output_type -> caos.zitadel.management.api.v1.ProjectGrantMember + 155, // 431: caos.zitadel.management.api.v1.ManagementService.ChangeProjectGrantMember:output_type -> caos.zitadel.management.api.v1.ProjectGrantMember + 204, // 432: caos.zitadel.management.api.v1.ManagementService.RemoveProjectGrantMember:output_type -> google.protobuf.Empty + 171, // 433: caos.zitadel.management.api.v1.ManagementService.SearchUserGrants:output_type -> caos.zitadel.management.api.v1.UserGrantSearchResponse + 170, // 434: caos.zitadel.management.api.v1.ManagementService.UserGrantByID:output_type -> caos.zitadel.management.api.v1.UserGrantView + 163, // 435: caos.zitadel.management.api.v1.ManagementService.CreateUserGrant:output_type -> caos.zitadel.management.api.v1.UserGrant + 163, // 436: caos.zitadel.management.api.v1.ManagementService.UpdateUserGrant:output_type -> caos.zitadel.management.api.v1.UserGrant + 163, // 437: caos.zitadel.management.api.v1.ManagementService.DeactivateUserGrant:output_type -> caos.zitadel.management.api.v1.UserGrant + 163, // 438: caos.zitadel.management.api.v1.ManagementService.ReactivateUserGrant:output_type -> caos.zitadel.management.api.v1.UserGrant + 204, // 439: caos.zitadel.management.api.v1.ManagementService.RemoveUserGrant:output_type -> google.protobuf.Empty + 204, // 440: caos.zitadel.management.api.v1.ManagementService.BulkRemoveUserGrant:output_type -> google.protobuf.Empty + 187, // 441: caos.zitadel.management.api.v1.ManagementService.IdpByID:output_type -> caos.zitadel.management.api.v1.IdpView + 181, // 442: caos.zitadel.management.api.v1.ManagementService.CreateOidcIdp:output_type -> caos.zitadel.management.api.v1.Idp + 181, // 443: caos.zitadel.management.api.v1.ManagementService.UpdateIdpConfig:output_type -> caos.zitadel.management.api.v1.Idp + 181, // 444: caos.zitadel.management.api.v1.ManagementService.DeactivateIdpConfig:output_type -> caos.zitadel.management.api.v1.Idp + 181, // 445: caos.zitadel.management.api.v1.ManagementService.ReactivateIdpConfig:output_type -> caos.zitadel.management.api.v1.Idp + 204, // 446: caos.zitadel.management.api.v1.ManagementService.RemoveIdpConfig:output_type -> google.protobuf.Empty + 183, // 447: caos.zitadel.management.api.v1.ManagementService.UpdateOidcIdpConfig:output_type -> caos.zitadel.management.api.v1.OidcIdpConfig + 186, // 448: caos.zitadel.management.api.v1.ManagementService.SearchIdps:output_type -> caos.zitadel.management.api.v1.IdpSearchResponse + 196, // 449: caos.zitadel.management.api.v1.ManagementService.GetLoginPolicy:output_type -> caos.zitadel.management.api.v1.LoginPolicyView + 191, // 450: caos.zitadel.management.api.v1.ManagementService.CreateLoginPolicy:output_type -> caos.zitadel.management.api.v1.LoginPolicy + 191, // 451: caos.zitadel.management.api.v1.ManagementService.UpdateLoginPolicy:output_type -> caos.zitadel.management.api.v1.LoginPolicy + 204, // 452: caos.zitadel.management.api.v1.ManagementService.RemoveLoginPolicy:output_type -> google.protobuf.Empty + 199, // 453: caos.zitadel.management.api.v1.ManagementService.GetLoginPolicyIdpProviders:output_type -> caos.zitadel.management.api.v1.IdpProviderSearchResponse + 195, // 454: caos.zitadel.management.api.v1.ManagementService.AddIdpProviderToLoginPolicy:output_type -> caos.zitadel.management.api.v1.IdpProvider + 204, // 455: caos.zitadel.management.api.v1.ManagementService.RemoveIdpProviderFromLoginPolicy:output_type -> google.protobuf.Empty + 329, // [329:456] is the sub-list for method output_type + 202, // [202:329] is the sub-list for method input_type + 202, // [202:202] is the sub-list for extension type_name + 202, // [202:202] is the sub-list for extension extendee + 0, // [0:202] 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.(*Email); 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.(*User); 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.(*UserView); 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.(*UserSearchRequest); 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.(*UserSearchQuery); 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.(*UserSearchResponse); 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.(*UserProfile); 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.(*UserProfileView); 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.(*UpdateUserProfileRequest); 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.(*UserEmail); 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.(*UserEmailView); 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.(*UpdateUserEmailRequest); 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.(*UserPhone); 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.(*UserPhoneView); 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.(*UpdateUserPhoneRequest); 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.(*UserAddress); 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.(*UserAddressView); 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.(*UpdateUserAddressRequest); 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.(*MultiFactors); 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.(*MultiFactor); 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.(*PasswordID); 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.(*PasswordRequest); 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.(*ResetPasswordRequest); 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.(*SetPasswordNotificationRequest); 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.(*PasswordComplexityPolicyID); 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.(*PasswordComplexityPolicy); 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.(*PasswordComplexityPolicyCreate); 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.(*PasswordComplexityPolicyUpdate); 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.(*PasswordAgePolicyID); 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.(*PasswordAgePolicy); 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.(*PasswordAgePolicyCreate); 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.(*PasswordAgePolicyUpdate); 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.(*PasswordLockoutPolicyID); 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.(*PasswordLockoutPolicy); 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.(*PasswordLockoutPolicyCreate); 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.(*PasswordLockoutPolicyUpdate); 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.(*OrgIamPolicy); 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.(*OrgID); 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.(*OrgCreateRequest); 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.(*Org); 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.(*OrgView); 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.(*Domain); 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.(*OrgDomains); 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.(*OrgDomain); 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.(*OrgDomainView); 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.(*AddOrgDomainRequest); 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.(*OrgDomainValidationRequest); 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.(*OrgDomainValidationResponse); 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.(*ValidateOrgDomainRequest); 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.(*PrimaryOrgDomainRequest); 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.(*RemoveOrgDomainRequest); 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.(*OrgDomainSearchResponse); 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.(*OrgDomainSearchRequest); 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.(*OrgDomainSearchQuery); 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.(*OrgMemberRoles); 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.(*OrgMember); 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.(*AddOrgMemberRequest); 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.(*ChangeOrgMemberRequest); 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.(*RemoveOrgMemberRequest); 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.(*OrgMemberSearchResponse); 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.(*OrgMemberView); 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.(*OrgMemberSearchRequest); 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.(*OrgMemberSearchQuery); 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.(*ProjectCreateRequest); 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.(*ProjectUpdateRequest); 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.(*ProjectSearchResponse); 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.(*ProjectView); 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.(*ProjectSearchRequest); 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.(*ProjectSearchQuery); 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.(*Projects); 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.(*Project); 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.(*ProjectMemberRoles); 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.(*ProjectMember); 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.(*ProjectMemberAdd); 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.(*ProjectMemberChange); 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.(*ProjectMemberRemove); 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.(*ProjectRoleAdd); 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.(*ProjectRoleAddBulk); 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.(*ProjectRoleChange); 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.(*ProjectRole); 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.(*ProjectRoleView); 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.(*ProjectRoleRemove); 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.(*ProjectRoleSearchResponse); 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.(*ProjectRoleSearchRequest); 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.(*ProjectRoleSearchQuery); 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.(*ProjectMemberView); 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.(*ProjectMemberSearchResponse); 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.(*ProjectMemberSearchRequest); 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.(*ProjectMemberSearchQuery); 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.(*Application); 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.(*ApplicationUpdate); 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.(*OIDCConfig); 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.(*OIDCApplicationCreate); 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.(*OIDCConfigUpdate); 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.(*ClientSecret); 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.(*ApplicationView); 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.(*ApplicationSearchResponse); 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.(*ApplicationSearchRequest); 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.(*ApplicationSearchQuery); 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.(*ProjectGrant); 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.(*ProjectGrantCreate); 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.(*ProjectGrantUpdate); 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.(*ProjectGrantID); 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.(*ProjectGrantView); 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.(*ProjectGrantSearchResponse); 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.(*GrantedProjectSearchRequest); 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.(*ProjectGrantSearchRequest); 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.(*ProjectGrantSearchQuery); 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.(*ProjectGrantMemberRoles); 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.(*ProjectGrantMember); 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.(*ProjectGrantMemberAdd); 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.(*ProjectGrantMemberChange); 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.(*ProjectGrantMemberRemove); 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.(*ProjectGrantMemberView); 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.(*ProjectGrantMemberSearchResponse); 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.(*ProjectGrantMemberSearchRequest); 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.(*ProjectGrantMemberSearchQuery); 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.(*UserGrant); 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.(*UserGrantCreateBulk); 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.(*UserGrantCreate); 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.(*UserGrantUpdateBulk); 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.(*UserGrantUpdate); 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.(*UserGrantRemoveBulk); 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.(*UserGrantID); 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.(*UserGrantView); 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.(*UserGrantSearchResponse); 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.(*UserGrantSearchRequest); 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.(*UserGrantSearchQuery); 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.(*ProjectUserGrantSearchRequest); 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.(*ProjectGrantUserGrantSearchRequest); 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.(*UserMembershipSearchResponse); 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.(*UserMembershipSearchRequest); 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.(*UserMembershipSearchQuery); 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.(*UserMembershipView); 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.(*IdpID); 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.(*Idp); 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.(*IdpUpdate); 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.(*OidcIdpConfig); 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.(*OidcIdpConfigCreate); 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.(*OidcIdpConfigUpdate); 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.(*IdpSearchResponse); 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.(*IdpView); 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.(*OidcIdpConfigView); 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.(*IdpSearchRequest); 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.(*IdpSearchQuery); 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.(*LoginPolicy); 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.(*LoginPolicyAdd); 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.(*IdpProviderID); 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.(*IdpProviderAdd); 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.(*IdpProvider); 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.(*LoginPolicyView); 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.(*IdpProviderViews); 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.(*IdpProviderView); 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.(*IdpProviderSearchResponse); 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.(*IdpProviderSearchRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_management_proto_msgTypes[100].OneofWrappers = []interface{}{ + (*Application_OidcConfig)(nil), + } + file_management_proto_msgTypes[106].OneofWrappers = []interface{}{ + (*ApplicationView_OidcConfig)(nil), + } + file_management_proto_msgTypes[146].OneofWrappers = []interface{}{ + (*Idp_OidcConfig)(nil), + } + file_management_proto_msgTypes[152].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: 35, + NumMessages: 166, + 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. @@ -11909,6 +21147,21 @@ type ManagementServiceClient interface { RemoveUserGrant(ctx context.Context, in *UserGrantID, opts ...grpc.CallOption) (*empty.Empty, error) // remove a list of user grants in one request BulkRemoveUserGrant(ctx context.Context, in *UserGrantRemoveBulk, opts ...grpc.CallOption) (*empty.Empty, error) + IdpByID(ctx context.Context, in *IdpID, opts ...grpc.CallOption) (*IdpView, error) + CreateOidcIdp(ctx context.Context, in *OidcIdpConfigCreate, opts ...grpc.CallOption) (*Idp, error) + UpdateIdpConfig(ctx context.Context, in *IdpUpdate, opts ...grpc.CallOption) (*Idp, error) + DeactivateIdpConfig(ctx context.Context, in *IdpID, opts ...grpc.CallOption) (*Idp, error) + ReactivateIdpConfig(ctx context.Context, in *IdpID, opts ...grpc.CallOption) (*Idp, error) + RemoveIdpConfig(ctx context.Context, in *IdpID, opts ...grpc.CallOption) (*empty.Empty, error) + UpdateOidcIdpConfig(ctx context.Context, in *OidcIdpConfigUpdate, opts ...grpc.CallOption) (*OidcIdpConfig, error) + SearchIdps(ctx context.Context, in *IdpSearchRequest, opts ...grpc.CallOption) (*IdpSearchResponse, error) + GetLoginPolicy(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*LoginPolicyView, error) + CreateLoginPolicy(ctx context.Context, in *LoginPolicyAdd, opts ...grpc.CallOption) (*LoginPolicy, error) + UpdateLoginPolicy(ctx context.Context, in *LoginPolicy, opts ...grpc.CallOption) (*LoginPolicy, error) + RemoveLoginPolicy(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*empty.Empty, error) + GetLoginPolicyIdpProviders(ctx context.Context, in *IdpProviderSearchRequest, opts ...grpc.CallOption) (*IdpProviderSearchResponse, error) + AddIdpProviderToLoginPolicy(ctx context.Context, in *IdpProviderAdd, opts ...grpc.CallOption) (*IdpProvider, error) + RemoveIdpProviderFromLoginPolicy(ctx context.Context, in *IdpProviderID, opts ...grpc.CallOption) (*empty.Empty, error) } type managementServiceClient struct { @@ -12927,6 +22180,141 @@ func (c *managementServiceClient) BulkRemoveUserGrant(ctx context.Context, in *U return out, nil } +func (c *managementServiceClient) IdpByID(ctx context.Context, in *IdpID, opts ...grpc.CallOption) (*IdpView, error) { + out := new(IdpView) + err := c.cc.Invoke(ctx, "/caos.zitadel.management.api.v1.ManagementService/IdpByID", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *managementServiceClient) CreateOidcIdp(ctx context.Context, in *OidcIdpConfigCreate, opts ...grpc.CallOption) (*Idp, error) { + out := new(Idp) + err := c.cc.Invoke(ctx, "/caos.zitadel.management.api.v1.ManagementService/CreateOidcIdp", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *managementServiceClient) UpdateIdpConfig(ctx context.Context, in *IdpUpdate, opts ...grpc.CallOption) (*Idp, error) { + out := new(Idp) + err := c.cc.Invoke(ctx, "/caos.zitadel.management.api.v1.ManagementService/UpdateIdpConfig", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *managementServiceClient) DeactivateIdpConfig(ctx context.Context, in *IdpID, opts ...grpc.CallOption) (*Idp, error) { + out := new(Idp) + err := c.cc.Invoke(ctx, "/caos.zitadel.management.api.v1.ManagementService/DeactivateIdpConfig", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *managementServiceClient) ReactivateIdpConfig(ctx context.Context, in *IdpID, opts ...grpc.CallOption) (*Idp, error) { + out := new(Idp) + err := c.cc.Invoke(ctx, "/caos.zitadel.management.api.v1.ManagementService/ReactivateIdpConfig", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *managementServiceClient) RemoveIdpConfig(ctx context.Context, in *IdpID, opts ...grpc.CallOption) (*empty.Empty, error) { + out := new(empty.Empty) + err := c.cc.Invoke(ctx, "/caos.zitadel.management.api.v1.ManagementService/RemoveIdpConfig", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *managementServiceClient) UpdateOidcIdpConfig(ctx context.Context, in *OidcIdpConfigUpdate, opts ...grpc.CallOption) (*OidcIdpConfig, error) { + out := new(OidcIdpConfig) + err := c.cc.Invoke(ctx, "/caos.zitadel.management.api.v1.ManagementService/UpdateOidcIdpConfig", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *managementServiceClient) SearchIdps(ctx context.Context, in *IdpSearchRequest, opts ...grpc.CallOption) (*IdpSearchResponse, error) { + out := new(IdpSearchResponse) + err := c.cc.Invoke(ctx, "/caos.zitadel.management.api.v1.ManagementService/SearchIdps", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *managementServiceClient) GetLoginPolicy(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*LoginPolicyView, error) { + out := new(LoginPolicyView) + err := c.cc.Invoke(ctx, "/caos.zitadel.management.api.v1.ManagementService/GetLoginPolicy", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *managementServiceClient) CreateLoginPolicy(ctx context.Context, in *LoginPolicyAdd, opts ...grpc.CallOption) (*LoginPolicy, error) { + out := new(LoginPolicy) + err := c.cc.Invoke(ctx, "/caos.zitadel.management.api.v1.ManagementService/CreateLoginPolicy", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *managementServiceClient) UpdateLoginPolicy(ctx context.Context, in *LoginPolicy, opts ...grpc.CallOption) (*LoginPolicy, error) { + out := new(LoginPolicy) + err := c.cc.Invoke(ctx, "/caos.zitadel.management.api.v1.ManagementService/UpdateLoginPolicy", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *managementServiceClient) RemoveLoginPolicy(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*empty.Empty, error) { + out := new(empty.Empty) + err := c.cc.Invoke(ctx, "/caos.zitadel.management.api.v1.ManagementService/RemoveLoginPolicy", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *managementServiceClient) GetLoginPolicyIdpProviders(ctx context.Context, in *IdpProviderSearchRequest, opts ...grpc.CallOption) (*IdpProviderSearchResponse, error) { + out := new(IdpProviderSearchResponse) + err := c.cc.Invoke(ctx, "/caos.zitadel.management.api.v1.ManagementService/GetLoginPolicyIdpProviders", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *managementServiceClient) AddIdpProviderToLoginPolicy(ctx context.Context, in *IdpProviderAdd, opts ...grpc.CallOption) (*IdpProvider, error) { + out := new(IdpProvider) + err := c.cc.Invoke(ctx, "/caos.zitadel.management.api.v1.ManagementService/AddIdpProviderToLoginPolicy", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *managementServiceClient) RemoveIdpProviderFromLoginPolicy(ctx context.Context, in *IdpProviderID, opts ...grpc.CallOption) (*empty.Empty, error) { + out := new(empty.Empty) + err := c.cc.Invoke(ctx, "/caos.zitadel.management.api.v1.ManagementService/RemoveIdpProviderFromLoginPolicy", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // ManagementServiceServer is the server API for ManagementService service. type ManagementServiceServer interface { //READINESS @@ -13061,348 +22449,408 @@ type ManagementServiceServer interface { RemoveUserGrant(context.Context, *UserGrantID) (*empty.Empty, error) // remove a list of user grants in one request BulkRemoveUserGrant(context.Context, *UserGrantRemoveBulk) (*empty.Empty, error) + IdpByID(context.Context, *IdpID) (*IdpView, error) + CreateOidcIdp(context.Context, *OidcIdpConfigCreate) (*Idp, error) + UpdateIdpConfig(context.Context, *IdpUpdate) (*Idp, error) + DeactivateIdpConfig(context.Context, *IdpID) (*Idp, error) + ReactivateIdpConfig(context.Context, *IdpID) (*Idp, error) + RemoveIdpConfig(context.Context, *IdpID) (*empty.Empty, error) + UpdateOidcIdpConfig(context.Context, *OidcIdpConfigUpdate) (*OidcIdpConfig, error) + SearchIdps(context.Context, *IdpSearchRequest) (*IdpSearchResponse, error) + GetLoginPolicy(context.Context, *empty.Empty) (*LoginPolicyView, error) + CreateLoginPolicy(context.Context, *LoginPolicyAdd) (*LoginPolicy, error) + UpdateLoginPolicy(context.Context, *LoginPolicy) (*LoginPolicy, error) + RemoveLoginPolicy(context.Context, *empty.Empty) (*empty.Empty, error) + GetLoginPolicyIdpProviders(context.Context, *IdpProviderSearchRequest) (*IdpProviderSearchResponse, error) + AddIdpProviderToLoginPolicy(context.Context, *IdpProviderAdd) (*IdpProvider, error) + RemoveIdpProviderFromLoginPolicy(context.Context, *IdpProviderID) (*empty.Empty, error) } // UnimplementedManagementServiceServer can be embedded to have forward compatible implementations. 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) 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) GetUserByEmailGlobal(ctx context.Context, req *Email) (*UserView, error) { +func (*UnimplementedManagementServiceServer) GetUserByEmailGlobal(context.Context, *Email) (*UserView, error) { return nil, status.Errorf(codes.Unimplemented, "method GetUserByEmailGlobal 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) 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) CreateUser(ctx context.Context, req *CreateUserRequest) (*User, error) { +func (*UnimplementedManagementServiceServer) CreateUser(context.Context, *CreateUserRequest) (*User, error) { return nil, status.Errorf(codes.Unimplemented, "method CreateUser not implemented") } -func (*UnimplementedManagementServiceServer) DeactivateUser(ctx context.Context, req *UserID) (*User, error) { +func (*UnimplementedManagementServiceServer) DeactivateUser(context.Context, *UserID) (*User, error) { return nil, status.Errorf(codes.Unimplemented, "method DeactivateUser not implemented") } -func (*UnimplementedManagementServiceServer) ReactivateUser(ctx context.Context, req *UserID) (*User, error) { +func (*UnimplementedManagementServiceServer) ReactivateUser(context.Context, *UserID) (*User, error) { return nil, status.Errorf(codes.Unimplemented, "method ReactivateUser not implemented") } -func (*UnimplementedManagementServiceServer) LockUser(ctx context.Context, req *UserID) (*User, error) { +func (*UnimplementedManagementServiceServer) LockUser(context.Context, *UserID) (*User, error) { return nil, status.Errorf(codes.Unimplemented, "method LockUser not implemented") } -func (*UnimplementedManagementServiceServer) UnlockUser(ctx context.Context, req *UserID) (*User, error) { +func (*UnimplementedManagementServiceServer) UnlockUser(context.Context, *UserID) (*User, 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) 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) 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) 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) 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) 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) GetUserMfas(ctx context.Context, req *UserID) (*MultiFactors, error) { +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) 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) 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) 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(context.Context, *IdpID) (*IdpView, error) { + return nil, status.Errorf(codes.Unimplemented, "method IdpByID not implemented") +} +func (*UnimplementedManagementServiceServer) CreateOidcIdp(context.Context, *OidcIdpConfigCreate) (*Idp, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateOidcIdp not implemented") +} +func (*UnimplementedManagementServiceServer) UpdateIdpConfig(context.Context, *IdpUpdate) (*Idp, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateIdpConfig not implemented") +} +func (*UnimplementedManagementServiceServer) DeactivateIdpConfig(context.Context, *IdpID) (*Idp, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeactivateIdpConfig not implemented") +} +func (*UnimplementedManagementServiceServer) ReactivateIdpConfig(context.Context, *IdpID) (*Idp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ReactivateIdpConfig not implemented") +} +func (*UnimplementedManagementServiceServer) RemoveIdpConfig(context.Context, *IdpID) (*empty.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method RemoveIdpConfig not implemented") +} +func (*UnimplementedManagementServiceServer) UpdateOidcIdpConfig(context.Context, *OidcIdpConfigUpdate) (*OidcIdpConfig, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateOidcIdpConfig not implemented") +} +func (*UnimplementedManagementServiceServer) SearchIdps(context.Context, *IdpSearchRequest) (*IdpSearchResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SearchIdps not implemented") +} +func (*UnimplementedManagementServiceServer) GetLoginPolicy(context.Context, *empty.Empty) (*LoginPolicyView, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetLoginPolicy not implemented") +} +func (*UnimplementedManagementServiceServer) CreateLoginPolicy(context.Context, *LoginPolicyAdd) (*LoginPolicy, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateLoginPolicy not implemented") +} +func (*UnimplementedManagementServiceServer) UpdateLoginPolicy(context.Context, *LoginPolicy) (*LoginPolicy, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateLoginPolicy not implemented") +} +func (*UnimplementedManagementServiceServer) RemoveLoginPolicy(context.Context, *empty.Empty) (*empty.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method RemoveLoginPolicy not implemented") +} +func (*UnimplementedManagementServiceServer) GetLoginPolicyIdpProviders(context.Context, *IdpProviderSearchRequest) (*IdpProviderSearchResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetLoginPolicyIdpProviders not implemented") +} +func (*UnimplementedManagementServiceServer) AddIdpProviderToLoginPolicy(context.Context, *IdpProviderAdd) (*IdpProvider, error) { + return nil, status.Errorf(codes.Unimplemented, "method AddIdpProviderToLoginPolicy not implemented") +} +func (*UnimplementedManagementServiceServer) RemoveIdpProviderFromLoginPolicy(context.Context, *IdpProviderID) (*empty.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method RemoveIdpProviderFromLoginPolicy not implemented") +} func RegisterManagementServiceServer(s *grpc.Server, srv ManagementServiceServer) { s.RegisterService(&_ManagementService_serviceDesc, srv) @@ -15424,6 +24872,276 @@ func _ManagementService_BulkRemoveUserGrant_Handler(srv interface{}, ctx context return interceptor(ctx, in, info, handler) } +func _ManagementService_IdpByID_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(IdpID) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ManagementServiceServer).IdpByID(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/caos.zitadel.management.api.v1.ManagementService/IdpByID", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ManagementServiceServer).IdpByID(ctx, req.(*IdpID)) + } + return interceptor(ctx, in, info, handler) +} + +func _ManagementService_CreateOidcIdp_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(OidcIdpConfigCreate) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ManagementServiceServer).CreateOidcIdp(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/caos.zitadel.management.api.v1.ManagementService/CreateOidcIdp", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ManagementServiceServer).CreateOidcIdp(ctx, req.(*OidcIdpConfigCreate)) + } + return interceptor(ctx, in, info, handler) +} + +func _ManagementService_UpdateIdpConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(IdpUpdate) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ManagementServiceServer).UpdateIdpConfig(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/caos.zitadel.management.api.v1.ManagementService/UpdateIdpConfig", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ManagementServiceServer).UpdateIdpConfig(ctx, req.(*IdpUpdate)) + } + return interceptor(ctx, in, info, handler) +} + +func _ManagementService_DeactivateIdpConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(IdpID) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ManagementServiceServer).DeactivateIdpConfig(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/caos.zitadel.management.api.v1.ManagementService/DeactivateIdpConfig", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ManagementServiceServer).DeactivateIdpConfig(ctx, req.(*IdpID)) + } + return interceptor(ctx, in, info, handler) +} + +func _ManagementService_ReactivateIdpConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(IdpID) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ManagementServiceServer).ReactivateIdpConfig(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/caos.zitadel.management.api.v1.ManagementService/ReactivateIdpConfig", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ManagementServiceServer).ReactivateIdpConfig(ctx, req.(*IdpID)) + } + return interceptor(ctx, in, info, handler) +} + +func _ManagementService_RemoveIdpConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(IdpID) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ManagementServiceServer).RemoveIdpConfig(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/caos.zitadel.management.api.v1.ManagementService/RemoveIdpConfig", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ManagementServiceServer).RemoveIdpConfig(ctx, req.(*IdpID)) + } + return interceptor(ctx, in, info, handler) +} + +func _ManagementService_UpdateOidcIdpConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(OidcIdpConfigUpdate) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ManagementServiceServer).UpdateOidcIdpConfig(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/caos.zitadel.management.api.v1.ManagementService/UpdateOidcIdpConfig", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ManagementServiceServer).UpdateOidcIdpConfig(ctx, req.(*OidcIdpConfigUpdate)) + } + return interceptor(ctx, in, info, handler) +} + +func _ManagementService_SearchIdps_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(IdpSearchRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ManagementServiceServer).SearchIdps(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/caos.zitadel.management.api.v1.ManagementService/SearchIdps", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ManagementServiceServer).SearchIdps(ctx, req.(*IdpSearchRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ManagementService_GetLoginPolicy_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 { + return nil, err + } + if interceptor == nil { + return srv.(ManagementServiceServer).GetLoginPolicy(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/caos.zitadel.management.api.v1.ManagementService/GetLoginPolicy", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ManagementServiceServer).GetLoginPolicy(ctx, req.(*empty.Empty)) + } + return interceptor(ctx, in, info, handler) +} + +func _ManagementService_CreateLoginPolicy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(LoginPolicyAdd) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ManagementServiceServer).CreateLoginPolicy(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/caos.zitadel.management.api.v1.ManagementService/CreateLoginPolicy", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ManagementServiceServer).CreateLoginPolicy(ctx, req.(*LoginPolicyAdd)) + } + return interceptor(ctx, in, info, handler) +} + +func _ManagementService_UpdateLoginPolicy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(LoginPolicy) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ManagementServiceServer).UpdateLoginPolicy(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/caos.zitadel.management.api.v1.ManagementService/UpdateLoginPolicy", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ManagementServiceServer).UpdateLoginPolicy(ctx, req.(*LoginPolicy)) + } + return interceptor(ctx, in, info, handler) +} + +func _ManagementService_RemoveLoginPolicy_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 { + return nil, err + } + if interceptor == nil { + return srv.(ManagementServiceServer).RemoveLoginPolicy(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/caos.zitadel.management.api.v1.ManagementService/RemoveLoginPolicy", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ManagementServiceServer).RemoveLoginPolicy(ctx, req.(*empty.Empty)) + } + return interceptor(ctx, in, info, handler) +} + +func _ManagementService_GetLoginPolicyIdpProviders_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(IdpProviderSearchRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ManagementServiceServer).GetLoginPolicyIdpProviders(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/caos.zitadel.management.api.v1.ManagementService/GetLoginPolicyIdpProviders", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ManagementServiceServer).GetLoginPolicyIdpProviders(ctx, req.(*IdpProviderSearchRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ManagementService_AddIdpProviderToLoginPolicy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(IdpProviderAdd) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ManagementServiceServer).AddIdpProviderToLoginPolicy(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/caos.zitadel.management.api.v1.ManagementService/AddIdpProviderToLoginPolicy", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ManagementServiceServer).AddIdpProviderToLoginPolicy(ctx, req.(*IdpProviderAdd)) + } + return interceptor(ctx, in, info, handler) +} + +func _ManagementService_RemoveIdpProviderFromLoginPolicy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(IdpProviderID) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ManagementServiceServer).RemoveIdpProviderFromLoginPolicy(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/caos.zitadel.management.api.v1.ManagementService/RemoveIdpProviderFromLoginPolicy", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ManagementServiceServer).RemoveIdpProviderFromLoginPolicy(ctx, req.(*IdpProviderID)) + } + return interceptor(ctx, in, info, handler) +} + var _ManagementService_serviceDesc = grpc.ServiceDesc{ ServiceName: "caos.zitadel.management.api.v1.ManagementService", HandlerType: (*ManagementServiceServer)(nil), @@ -15876,6 +25594,66 @@ var _ManagementService_serviceDesc = grpc.ServiceDesc{ MethodName: "BulkRemoveUserGrant", Handler: _ManagementService_BulkRemoveUserGrant_Handler, }, + { + MethodName: "IdpByID", + Handler: _ManagementService_IdpByID_Handler, + }, + { + MethodName: "CreateOidcIdp", + Handler: _ManagementService_CreateOidcIdp_Handler, + }, + { + MethodName: "UpdateIdpConfig", + Handler: _ManagementService_UpdateIdpConfig_Handler, + }, + { + MethodName: "DeactivateIdpConfig", + Handler: _ManagementService_DeactivateIdpConfig_Handler, + }, + { + MethodName: "ReactivateIdpConfig", + Handler: _ManagementService_ReactivateIdpConfig_Handler, + }, + { + MethodName: "RemoveIdpConfig", + Handler: _ManagementService_RemoveIdpConfig_Handler, + }, + { + MethodName: "UpdateOidcIdpConfig", + Handler: _ManagementService_UpdateOidcIdpConfig_Handler, + }, + { + MethodName: "SearchIdps", + Handler: _ManagementService_SearchIdps_Handler, + }, + { + MethodName: "GetLoginPolicy", + Handler: _ManagementService_GetLoginPolicy_Handler, + }, + { + MethodName: "CreateLoginPolicy", + Handler: _ManagementService_CreateLoginPolicy_Handler, + }, + { + MethodName: "UpdateLoginPolicy", + Handler: _ManagementService_UpdateLoginPolicy_Handler, + }, + { + MethodName: "RemoveLoginPolicy", + Handler: _ManagementService_RemoveLoginPolicy_Handler, + }, + { + MethodName: "GetLoginPolicyIdpProviders", + Handler: _ManagementService_GetLoginPolicyIdpProviders_Handler, + }, + { + MethodName: "AddIdpProviderToLoginPolicy", + Handler: _ManagementService_AddIdpProviderToLoginPolicy_Handler, + }, + { + MethodName: "RemoveIdpProviderFromLoginPolicy", + Handler: _ManagementService_RemoveIdpProviderFromLoginPolicy_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "management.proto", diff --git a/pkg/grpc/management/management.pb.gw.go b/pkg/grpc/management/management.pb.gw.go index e445379b4..c31426e75 100644 --- a/pkg/grpc/management/management.pb.gw.go +++ b/pkg/grpc/management/management.pb.gw.go @@ -38,15 +38,6 @@ func request_ManagementService_Healthz_0(ctx context.Context, marshaler runtime. } -func local_request_ManagementService_Healthz_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq empty.Empty - var metadata runtime.ServerMetadata - - msg, err := server.Healthz(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_Ready_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq empty.Empty var metadata runtime.ServerMetadata @@ -56,15 +47,6 @@ func request_ManagementService_Ready_0(ctx context.Context, marshaler runtime.Ma } -func local_request_ManagementService_Ready_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq empty.Empty - var metadata runtime.ServerMetadata - - msg, err := server.Ready(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_Validate_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq empty.Empty var metadata runtime.ServerMetadata @@ -74,15 +56,6 @@ func request_ManagementService_Validate_0(ctx context.Context, marshaler runtime } -func local_request_ManagementService_Validate_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq empty.Empty - var metadata runtime.ServerMetadata - - msg, err := server.Validate(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_GetZitadelDocs_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq empty.Empty var metadata runtime.ServerMetadata @@ -92,15 +65,6 @@ func request_ManagementService_GetZitadelDocs_0(ctx context.Context, marshaler r } -func local_request_ManagementService_GetZitadelDocs_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq empty.Empty - var metadata runtime.ServerMetadata - - msg, err := server.GetZitadelDocs(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_GetIam_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq empty.Empty var metadata runtime.ServerMetadata @@ -110,15 +74,6 @@ func request_ManagementService_GetIam_0(ctx context.Context, marshaler runtime.M } -func local_request_ManagementService_GetIam_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq empty.Empty - var metadata runtime.ServerMetadata - - msg, err := server.GetIam(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_GetUserByID_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 @@ -146,33 +101,6 @@ func request_ManagementService_GetUserByID_0(ctx context.Context, marshaler runt } -func local_request_ManagementService_GetUserByID_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq UserID - var metadata runtime.ServerMetadata - - var ( - val string - ok bool - err error - _ = err - ) - - val, ok = pathParams["id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") - } - - protoReq.Id, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) - } - - msg, err := server.GetUserByID(ctx, &protoReq) - return msg, metadata, err - -} - var ( filter_ManagementService_GetUserByEmailGlobal_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} ) @@ -181,27 +109,11 @@ func request_ManagementService_GetUserByEmailGlobal_0(ctx context.Context, marsh var protoReq Email var metadata runtime.ServerMetadata - if err := req.ParseForm(); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ManagementService_GetUserByEmailGlobal_0); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.GetUserByEmailGlobal(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_ManagementService_GetUserByEmailGlobal_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq Email - var metadata runtime.ServerMetadata - if err := runtime.PopulateQueryParameters(&protoReq, req.URL.Query(), filter_ManagementService_GetUserByEmailGlobal_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := server.GetUserByEmailGlobal(ctx, &protoReq) + msg, err := client.GetUserByEmailGlobal(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -223,23 +135,6 @@ func request_ManagementService_SearchUsers_0(ctx context.Context, marshaler runt } -func local_request_ManagementService_SearchUsers_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq UserSearchRequest - 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.SearchUsers(ctx, &protoReq) - return msg, metadata, err - -} - var ( filter_ManagementService_IsUserUnique_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} ) @@ -248,27 +143,11 @@ func request_ManagementService_IsUserUnique_0(ctx context.Context, marshaler run var protoReq UniqueUserRequest var metadata runtime.ServerMetadata - 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) - } - - msg, err := client.IsUserUnique(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_ManagementService_IsUserUnique_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq UniqueUserRequest - var metadata runtime.ServerMetadata - if err := runtime.PopulateQueryParameters(&protoReq, req.URL.Query(), filter_ManagementService_IsUserUnique_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := server.IsUserUnique(ctx, &protoReq) + msg, err := client.IsUserUnique(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -290,23 +169,6 @@ func request_ManagementService_CreateUser_0(ctx context.Context, marshaler runti } -func local_request_ManagementService_CreateUser_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq CreateUserRequest - 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.CreateUser(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_DeactivateUser_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 @@ -342,41 +204,6 @@ func request_ManagementService_DeactivateUser_0(ctx context.Context, marshaler r } -func local_request_ManagementService_DeactivateUser_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq UserID - 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["id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") - } - - protoReq.Id, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) - } - - msg, err := server.DeactivateUser(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_ReactivateUser_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 @@ -412,41 +239,6 @@ func request_ManagementService_ReactivateUser_0(ctx context.Context, marshaler r } -func local_request_ManagementService_ReactivateUser_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq UserID - 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["id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") - } - - protoReq.Id, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) - } - - msg, err := server.ReactivateUser(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_LockUser_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 @@ -482,41 +274,6 @@ func request_ManagementService_LockUser_0(ctx context.Context, marshaler runtime } -func local_request_ManagementService_LockUser_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq UserID - 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["id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") - } - - protoReq.Id, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) - } - - msg, err := server.LockUser(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_UnlockUser_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 @@ -552,41 +309,6 @@ func request_ManagementService_UnlockUser_0(ctx context.Context, marshaler runti } -func local_request_ManagementService_UnlockUser_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq UserID - 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["id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") - } - - protoReq.Id, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) - } - - msg, err := server.UnlockUser(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_DeleteUser_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 @@ -614,33 +336,6 @@ func request_ManagementService_DeleteUser_0(ctx context.Context, marshaler runti } -func local_request_ManagementService_DeleteUser_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq UserID - var metadata runtime.ServerMetadata - - var ( - val string - ok bool - err error - _ = err - ) - - val, ok = pathParams["id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") - } - - protoReq.Id, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) - } - - msg, err := server.DeleteUser(ctx, &protoReq) - return msg, metadata, err - -} - var ( filter_ManagementService_UserChanges_0 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}} ) @@ -667,45 +362,11 @@ func request_ManagementService_UserChanges_0(ctx context.Context, marshaler runt return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } - 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) - } - - msg, err := client.UserChanges(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_ManagementService_UserChanges_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ChangeRequest - var metadata runtime.ServerMetadata - - var ( - val string - ok bool - err error - _ = err - ) - - val, ok = pathParams["id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") - } - - protoReq.Id, err = runtime.String(val) - - if err != nil { - 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 { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := server.UserChanges(ctx, &protoReq) + msg, err := client.UserChanges(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -747,56 +408,11 @@ func request_ManagementService_ApplicationChanges_0(ctx context.Context, marshal return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "sec_id", err) } - 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) - } - - msg, err := client.ApplicationChanges(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_ManagementService_ApplicationChanges_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ChangeRequest - var metadata runtime.ServerMetadata - - var ( - val string - ok bool - err error - _ = err - ) - - val, ok = pathParams["id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") - } - - protoReq.Id, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) - } - - val, ok = pathParams["sec_id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "sec_id") - } - - protoReq.SecId, err = runtime.String(val) - - if err != nil { - 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 { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := server.ApplicationChanges(ctx, &protoReq) + msg, err := client.ApplicationChanges(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -827,45 +443,11 @@ func request_ManagementService_OrgChanges_0(ctx context.Context, marshaler runti return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } - 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) - } - - msg, err := client.OrgChanges(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_ManagementService_OrgChanges_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ChangeRequest - var metadata runtime.ServerMetadata - - var ( - val string - ok bool - err error - _ = err - ) - - val, ok = pathParams["id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") - } - - protoReq.Id, err = runtime.String(val) - - if err != nil { - 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 { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := server.OrgChanges(ctx, &protoReq) + msg, err := client.OrgChanges(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -896,45 +478,11 @@ func request_ManagementService_ProjectChanges_0(ctx context.Context, marshaler r return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } - 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) - } - - msg, err := client.ProjectChanges(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_ManagementService_ProjectChanges_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ChangeRequest - var metadata runtime.ServerMetadata - - var ( - val string - ok bool - err error - _ = err - ) - - val, ok = pathParams["id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") - } - - protoReq.Id, err = runtime.String(val) - - if err != nil { - 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 { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := server.ProjectChanges(ctx, &protoReq) + msg, err := client.ProjectChanges(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -966,33 +514,6 @@ func request_ManagementService_GetUserProfile_0(ctx context.Context, marshaler r } -func local_request_ManagementService_GetUserProfile_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq UserID - var metadata runtime.ServerMetadata - - var ( - val string - ok bool - err error - _ = err - ) - - val, ok = pathParams["id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") - } - - protoReq.Id, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) - } - - msg, err := server.GetUserProfile(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_UpdateUserProfile_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq UpdateUserProfileRequest var metadata runtime.ServerMetadata @@ -1028,41 +549,6 @@ func request_ManagementService_UpdateUserProfile_0(ctx context.Context, marshale } -func local_request_ManagementService_UpdateUserProfile_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq UpdateUserProfileRequest - 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["id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") - } - - protoReq.Id, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) - } - - msg, err := server.UpdateUserProfile(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_GetUserEmail_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 @@ -1090,33 +576,6 @@ func request_ManagementService_GetUserEmail_0(ctx context.Context, marshaler run } -func local_request_ManagementService_GetUserEmail_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq UserID - var metadata runtime.ServerMetadata - - var ( - val string - ok bool - err error - _ = err - ) - - val, ok = pathParams["id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") - } - - protoReq.Id, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) - } - - msg, err := server.GetUserEmail(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_ChangeUserEmail_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq UpdateUserEmailRequest var metadata runtime.ServerMetadata @@ -1152,41 +611,6 @@ func request_ManagementService_ChangeUserEmail_0(ctx context.Context, marshaler } -func local_request_ManagementService_ChangeUserEmail_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq UpdateUserEmailRequest - 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["id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") - } - - protoReq.Id, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) - } - - msg, err := server.ChangeUserEmail(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_ResendEmailVerificationMail_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 @@ -1222,41 +646,6 @@ func request_ManagementService_ResendEmailVerificationMail_0(ctx context.Context } -func local_request_ManagementService_ResendEmailVerificationMail_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq UserID - 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["id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") - } - - protoReq.Id, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) - } - - msg, err := server.ResendEmailVerificationMail(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_GetUserPhone_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 @@ -1284,33 +673,6 @@ func request_ManagementService_GetUserPhone_0(ctx context.Context, marshaler run } -func local_request_ManagementService_GetUserPhone_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq UserID - var metadata runtime.ServerMetadata - - var ( - val string - ok bool - err error - _ = err - ) - - val, ok = pathParams["id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") - } - - protoReq.Id, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) - } - - msg, err := server.GetUserPhone(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_ChangeUserPhone_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq UpdateUserPhoneRequest var metadata runtime.ServerMetadata @@ -1346,41 +708,6 @@ func request_ManagementService_ChangeUserPhone_0(ctx context.Context, marshaler } -func local_request_ManagementService_ChangeUserPhone_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq UpdateUserPhoneRequest - 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["id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") - } - - protoReq.Id, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) - } - - msg, err := server.ChangeUserPhone(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_RemoveUserPhone_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 @@ -1408,33 +735,6 @@ func request_ManagementService_RemoveUserPhone_0(ctx context.Context, marshaler } -func local_request_ManagementService_RemoveUserPhone_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq UserID - var metadata runtime.ServerMetadata - - var ( - val string - ok bool - err error - _ = err - ) - - val, ok = pathParams["id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") - } - - protoReq.Id, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) - } - - msg, err := server.RemoveUserPhone(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_ResendPhoneVerificationCode_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 @@ -1470,41 +770,6 @@ func request_ManagementService_ResendPhoneVerificationCode_0(ctx context.Context } -func local_request_ManagementService_ResendPhoneVerificationCode_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq UserID - 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["id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") - } - - protoReq.Id, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) - } - - msg, err := server.ResendPhoneVerificationCode(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_GetUserAddress_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 @@ -1532,33 +797,6 @@ func request_ManagementService_GetUserAddress_0(ctx context.Context, marshaler r } -func local_request_ManagementService_GetUserAddress_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq UserID - var metadata runtime.ServerMetadata - - var ( - val string - ok bool - err error - _ = err - ) - - val, ok = pathParams["id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") - } - - protoReq.Id, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) - } - - msg, err := server.GetUserAddress(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_UpdateUserAddress_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq UpdateUserAddressRequest var metadata runtime.ServerMetadata @@ -1594,41 +832,6 @@ func request_ManagementService_UpdateUserAddress_0(ctx context.Context, marshale } -func local_request_ManagementService_UpdateUserAddress_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq UpdateUserAddressRequest - 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["id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") - } - - protoReq.Id, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) - } - - msg, err := server.UpdateUserAddress(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 @@ -1656,33 +859,6 @@ func request_ManagementService_GetUserMfas_0(ctx context.Context, marshaler runt } -func local_request_ManagementService_GetUserMfas_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq UserID - var metadata runtime.ServerMetadata - - var ( - val string - ok bool - err error - _ = err - ) - - val, ok = pathParams["id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") - } - - protoReq.Id, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) - } - - msg, err := server.GetUserMfas(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_SendSetPasswordNotification_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq SetPasswordNotificationRequest var metadata runtime.ServerMetadata @@ -1718,41 +894,6 @@ func request_ManagementService_SendSetPasswordNotification_0(ctx context.Context } -func local_request_ManagementService_SendSetPasswordNotification_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq SetPasswordNotificationRequest - 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["id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") - } - - protoReq.Id, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) - } - - msg, err := server.SendSetPasswordNotification(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_SetInitialPassword_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq PasswordRequest var metadata runtime.ServerMetadata @@ -1788,41 +929,6 @@ func request_ManagementService_SetInitialPassword_0(ctx context.Context, marshal } -func local_request_ManagementService_SetInitialPassword_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq PasswordRequest - 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["id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") - } - - protoReq.Id, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) - } - - msg, err := server.SetInitialPassword(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_SearchUserMemberships_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq UserMembershipSearchRequest var metadata runtime.ServerMetadata @@ -1858,41 +964,6 @@ func request_ManagementService_SearchUserMemberships_0(ctx context.Context, mars } -func local_request_ManagementService_SearchUserMemberships_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq UserMembershipSearchRequest - 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.SearchUserMemberships(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_GetPasswordComplexityPolicy_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq empty.Empty var metadata runtime.ServerMetadata @@ -1902,15 +973,6 @@ func request_ManagementService_GetPasswordComplexityPolicy_0(ctx context.Context } -func local_request_ManagementService_GetPasswordComplexityPolicy_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq empty.Empty - var metadata runtime.ServerMetadata - - msg, err := server.GetPasswordComplexityPolicy(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_GetDefaultPasswordComplexityPolicy_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq empty.Empty var metadata runtime.ServerMetadata @@ -1920,15 +982,6 @@ func request_ManagementService_GetDefaultPasswordComplexityPolicy_0(ctx context. } -func local_request_ManagementService_GetDefaultPasswordComplexityPolicy_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq empty.Empty - var metadata runtime.ServerMetadata - - msg, err := server.GetDefaultPasswordComplexityPolicy(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_CreatePasswordComplexityPolicy_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq PasswordComplexityPolicyCreate var metadata runtime.ServerMetadata @@ -1946,23 +999,6 @@ func request_ManagementService_CreatePasswordComplexityPolicy_0(ctx context.Cont } -func local_request_ManagementService_CreatePasswordComplexityPolicy_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq PasswordComplexityPolicyCreate - 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.CreatePasswordComplexityPolicy(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_UpdatePasswordComplexityPolicy_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq PasswordComplexityPolicyUpdate var metadata runtime.ServerMetadata @@ -1980,23 +1016,6 @@ func request_ManagementService_UpdatePasswordComplexityPolicy_0(ctx context.Cont } -func local_request_ManagementService_UpdatePasswordComplexityPolicy_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq PasswordComplexityPolicyUpdate - 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.UpdatePasswordComplexityPolicy(ctx, &protoReq) - return msg, metadata, err - -} - var ( filter_ManagementService_DeletePasswordComplexityPolicy_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} ) @@ -2005,27 +1024,11 @@ func request_ManagementService_DeletePasswordComplexityPolicy_0(ctx context.Cont var protoReq PasswordComplexityPolicyID var metadata runtime.ServerMetadata - 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) - } - - msg, err := client.DeletePasswordComplexityPolicy(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_ManagementService_DeletePasswordComplexityPolicy_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq PasswordComplexityPolicyID - var metadata runtime.ServerMetadata - if err := runtime.PopulateQueryParameters(&protoReq, req.URL.Query(), filter_ManagementService_DeletePasswordComplexityPolicy_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := server.DeletePasswordComplexityPolicy(ctx, &protoReq) + msg, err := client.DeletePasswordComplexityPolicy(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -2039,15 +1042,6 @@ func request_ManagementService_GetPasswordAgePolicy_0(ctx context.Context, marsh } -func local_request_ManagementService_GetPasswordAgePolicy_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq empty.Empty - var metadata runtime.ServerMetadata - - msg, err := server.GetPasswordAgePolicy(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_CreatePasswordAgePolicy_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq PasswordAgePolicyCreate var metadata runtime.ServerMetadata @@ -2065,23 +1059,6 @@ func request_ManagementService_CreatePasswordAgePolicy_0(ctx context.Context, ma } -func local_request_ManagementService_CreatePasswordAgePolicy_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq PasswordAgePolicyCreate - 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.CreatePasswordAgePolicy(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_UpdatePasswordAgePolicy_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq PasswordAgePolicyUpdate var metadata runtime.ServerMetadata @@ -2099,23 +1076,6 @@ func request_ManagementService_UpdatePasswordAgePolicy_0(ctx context.Context, ma } -func local_request_ManagementService_UpdatePasswordAgePolicy_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq PasswordAgePolicyUpdate - 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.UpdatePasswordAgePolicy(ctx, &protoReq) - return msg, metadata, err - -} - var ( filter_ManagementService_DeletePasswordAgePolicy_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} ) @@ -2124,27 +1084,11 @@ func request_ManagementService_DeletePasswordAgePolicy_0(ctx context.Context, ma var protoReq PasswordAgePolicyID var metadata runtime.ServerMetadata - 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) - } - - msg, err := client.DeletePasswordAgePolicy(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_ManagementService_DeletePasswordAgePolicy_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq PasswordAgePolicyID - var metadata runtime.ServerMetadata - if err := runtime.PopulateQueryParameters(&protoReq, req.URL.Query(), filter_ManagementService_DeletePasswordAgePolicy_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := server.DeletePasswordAgePolicy(ctx, &protoReq) + msg, err := client.DeletePasswordAgePolicy(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -2158,15 +1102,6 @@ func request_ManagementService_GetPasswordLockoutPolicy_0(ctx context.Context, m } -func local_request_ManagementService_GetPasswordLockoutPolicy_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq empty.Empty - var metadata runtime.ServerMetadata - - msg, err := server.GetPasswordLockoutPolicy(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_CreatePasswordLockoutPolicy_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq PasswordLockoutPolicyCreate var metadata runtime.ServerMetadata @@ -2184,23 +1119,6 @@ func request_ManagementService_CreatePasswordLockoutPolicy_0(ctx context.Context } -func local_request_ManagementService_CreatePasswordLockoutPolicy_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq PasswordLockoutPolicyCreate - 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.CreatePasswordLockoutPolicy(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_UpdatePasswordLockoutPolicy_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq PasswordLockoutPolicyUpdate var metadata runtime.ServerMetadata @@ -2218,23 +1136,6 @@ func request_ManagementService_UpdatePasswordLockoutPolicy_0(ctx context.Context } -func local_request_ManagementService_UpdatePasswordLockoutPolicy_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq PasswordLockoutPolicyUpdate - 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.UpdatePasswordLockoutPolicy(ctx, &protoReq) - return msg, metadata, err - -} - var ( filter_ManagementService_DeletePasswordLockoutPolicy_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} ) @@ -2243,27 +1144,11 @@ func request_ManagementService_DeletePasswordLockoutPolicy_0(ctx context.Context var protoReq PasswordLockoutPolicyID var metadata runtime.ServerMetadata - 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) - } - - msg, err := client.DeletePasswordLockoutPolicy(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_ManagementService_DeletePasswordLockoutPolicy_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq PasswordLockoutPolicyID - var metadata runtime.ServerMetadata - if err := runtime.PopulateQueryParameters(&protoReq, req.URL.Query(), filter_ManagementService_DeletePasswordLockoutPolicy_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := server.DeletePasswordLockoutPolicy(ctx, &protoReq) + msg, err := client.DeletePasswordLockoutPolicy(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -2285,23 +1170,6 @@ func request_ManagementService_CreateOrg_0(ctx context.Context, marshaler runtim } -func local_request_ManagementService_CreateOrg_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq OrgCreateRequest - 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.CreateOrg(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_GetMyOrg_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq empty.Empty var metadata runtime.ServerMetadata @@ -2311,15 +1179,6 @@ func request_ManagementService_GetMyOrg_0(ctx context.Context, marshaler runtime } -func local_request_ManagementService_GetMyOrg_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq empty.Empty - var metadata runtime.ServerMetadata - - msg, err := server.GetMyOrg(ctx, &protoReq) - return msg, metadata, err - -} - var ( filter_ManagementService_GetOrgByDomainGlobal_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} ) @@ -2328,27 +1187,11 @@ func request_ManagementService_GetOrgByDomainGlobal_0(ctx context.Context, marsh var protoReq Domain var metadata runtime.ServerMetadata - 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) - } - - msg, err := client.GetOrgByDomainGlobal(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_ManagementService_GetOrgByDomainGlobal_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq Domain - var metadata runtime.ServerMetadata - if err := runtime.PopulateQueryParameters(&protoReq, req.URL.Query(), filter_ManagementService_GetOrgByDomainGlobal_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := server.GetOrgByDomainGlobal(ctx, &protoReq) + msg, err := client.GetOrgByDomainGlobal(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -2370,23 +1213,6 @@ func request_ManagementService_DeactivateMyOrg_0(ctx context.Context, marshaler } -func local_request_ManagementService_DeactivateMyOrg_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq empty.Empty - 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.DeactivateMyOrg(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_ReactivateMyOrg_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq empty.Empty var metadata runtime.ServerMetadata @@ -2404,23 +1230,6 @@ func request_ManagementService_ReactivateMyOrg_0(ctx context.Context, marshaler } -func local_request_ManagementService_ReactivateMyOrg_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq empty.Empty - 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.ReactivateMyOrg(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_SearchMyOrgDomains_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq OrgDomainSearchRequest var metadata runtime.ServerMetadata @@ -2438,23 +1247,6 @@ func request_ManagementService_SearchMyOrgDomains_0(ctx context.Context, marshal } -func local_request_ManagementService_SearchMyOrgDomains_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq OrgDomainSearchRequest - 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.SearchMyOrgDomains(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_AddMyOrgDomain_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq AddOrgDomainRequest var metadata runtime.ServerMetadata @@ -2472,23 +1264,6 @@ func request_ManagementService_AddMyOrgDomain_0(ctx context.Context, marshaler r } -func local_request_ManagementService_AddMyOrgDomain_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq AddOrgDomainRequest - 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.AddMyOrgDomain(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_GenerateMyOrgDomainValidation_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq OrgDomainValidationRequest var metadata runtime.ServerMetadata @@ -2524,41 +1299,6 @@ func request_ManagementService_GenerateMyOrgDomainValidation_0(ctx context.Conte } -func local_request_ManagementService_GenerateMyOrgDomainValidation_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq OrgDomainValidationRequest - 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["domain"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "domain") - } - - protoReq.Domain, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "domain", err) - } - - msg, err := server.GenerateMyOrgDomainValidation(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_ValidateMyOrgDomain_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq ValidateOrgDomainRequest var metadata runtime.ServerMetadata @@ -2594,41 +1334,6 @@ func request_ManagementService_ValidateMyOrgDomain_0(ctx context.Context, marsha } -func local_request_ManagementService_ValidateMyOrgDomain_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ValidateOrgDomainRequest - 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["domain"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "domain") - } - - protoReq.Domain, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "domain", err) - } - - msg, err := server.ValidateMyOrgDomain(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_SetMyPrimaryOrgDomain_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq PrimaryOrgDomainRequest var metadata runtime.ServerMetadata @@ -2656,33 +1361,6 @@ func request_ManagementService_SetMyPrimaryOrgDomain_0(ctx context.Context, mars } -func local_request_ManagementService_SetMyPrimaryOrgDomain_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq PrimaryOrgDomainRequest - var metadata runtime.ServerMetadata - - var ( - val string - ok bool - err error - _ = err - ) - - val, ok = pathParams["domain"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "domain") - } - - protoReq.Domain, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "domain", err) - } - - msg, err := server.SetMyPrimaryOrgDomain(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_RemoveMyOrgDomain_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq RemoveOrgDomainRequest var metadata runtime.ServerMetadata @@ -2710,33 +1388,6 @@ func request_ManagementService_RemoveMyOrgDomain_0(ctx context.Context, marshale } -func local_request_ManagementService_RemoveMyOrgDomain_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq RemoveOrgDomainRequest - var metadata runtime.ServerMetadata - - var ( - val string - ok bool - err error - _ = err - ) - - val, ok = pathParams["domain"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "domain") - } - - protoReq.Domain, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "domain", err) - } - - msg, err := server.RemoveMyOrgDomain(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_GetMyOrgIamPolicy_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq empty.Empty var metadata runtime.ServerMetadata @@ -2746,15 +1397,6 @@ func request_ManagementService_GetMyOrgIamPolicy_0(ctx context.Context, marshale } -func local_request_ManagementService_GetMyOrgIamPolicy_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq empty.Empty - var metadata runtime.ServerMetadata - - msg, err := server.GetMyOrgIamPolicy(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_GetOrgMemberRoles_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq empty.Empty var metadata runtime.ServerMetadata @@ -2764,15 +1406,6 @@ func request_ManagementService_GetOrgMemberRoles_0(ctx context.Context, marshale } -func local_request_ManagementService_GetOrgMemberRoles_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq empty.Empty - var metadata runtime.ServerMetadata - - msg, err := server.GetOrgMemberRoles(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_AddMyOrgMember_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq AddOrgMemberRequest var metadata runtime.ServerMetadata @@ -2790,23 +1423,6 @@ func request_ManagementService_AddMyOrgMember_0(ctx context.Context, marshaler r } -func local_request_ManagementService_AddMyOrgMember_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq AddOrgMemberRequest - 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.AddMyOrgMember(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_ChangeMyOrgMember_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq ChangeOrgMemberRequest var metadata runtime.ServerMetadata @@ -2842,41 +1458,6 @@ func request_ManagementService_ChangeMyOrgMember_0(ctx context.Context, marshale } -func local_request_ManagementService_ChangeMyOrgMember_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ChangeOrgMemberRequest - 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.ChangeMyOrgMember(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_RemoveMyOrgMember_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq RemoveOrgMemberRequest var metadata runtime.ServerMetadata @@ -2904,33 +1485,6 @@ func request_ManagementService_RemoveMyOrgMember_0(ctx context.Context, marshale } -func local_request_ManagementService_RemoveMyOrgMember_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq RemoveOrgMemberRequest - 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) - } - - msg, err := server.RemoveMyOrgMember(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_SearchMyOrgMembers_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq OrgMemberSearchRequest var metadata runtime.ServerMetadata @@ -2948,23 +1502,6 @@ func request_ManagementService_SearchMyOrgMembers_0(ctx context.Context, marshal } -func local_request_ManagementService_SearchMyOrgMembers_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq OrgMemberSearchRequest - 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.SearchMyOrgMembers(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_SearchProjects_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq ProjectSearchRequest var metadata runtime.ServerMetadata @@ -2982,23 +1519,6 @@ func request_ManagementService_SearchProjects_0(ctx context.Context, marshaler r } -func local_request_ManagementService_SearchProjects_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ProjectSearchRequest - 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.SearchProjects(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_ProjectByID_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq ProjectID var metadata runtime.ServerMetadata @@ -3026,33 +1546,6 @@ func request_ManagementService_ProjectByID_0(ctx context.Context, marshaler runt } -func local_request_ManagementService_ProjectByID_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ProjectID - var metadata runtime.ServerMetadata - - var ( - val string - ok bool - err error - _ = err - ) - - val, ok = pathParams["id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") - } - - protoReq.Id, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) - } - - msg, err := server.ProjectByID(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_CreateProject_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq ProjectCreateRequest var metadata runtime.ServerMetadata @@ -3070,23 +1563,6 @@ func request_ManagementService_CreateProject_0(ctx context.Context, marshaler ru } -func local_request_ManagementService_CreateProject_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ProjectCreateRequest - 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.CreateProject(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_UpdateProject_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq ProjectUpdateRequest var metadata runtime.ServerMetadata @@ -3122,41 +1598,6 @@ func request_ManagementService_UpdateProject_0(ctx context.Context, marshaler ru } -func local_request_ManagementService_UpdateProject_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ProjectUpdateRequest - 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["id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") - } - - protoReq.Id, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) - } - - msg, err := server.UpdateProject(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_DeactivateProject_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq ProjectID var metadata runtime.ServerMetadata @@ -3192,41 +1633,6 @@ func request_ManagementService_DeactivateProject_0(ctx context.Context, marshale } -func local_request_ManagementService_DeactivateProject_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ProjectID - 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["id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") - } - - protoReq.Id, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) - } - - msg, err := server.DeactivateProject(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_ReactivateProject_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq ProjectID var metadata runtime.ServerMetadata @@ -3262,41 +1668,6 @@ func request_ManagementService_ReactivateProject_0(ctx context.Context, marshale } -func local_request_ManagementService_ReactivateProject_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ProjectID - 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["id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") - } - - protoReq.Id, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) - } - - msg, err := server.ReactivateProject(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_RemoveProject_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq ProjectID var metadata runtime.ServerMetadata @@ -3324,33 +1695,6 @@ func request_ManagementService_RemoveProject_0(ctx context.Context, marshaler ru } -func local_request_ManagementService_RemoveProject_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ProjectID - var metadata runtime.ServerMetadata - - var ( - val string - ok bool - err error - _ = err - ) - - val, ok = pathParams["id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") - } - - protoReq.Id, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) - } - - msg, err := server.RemoveProject(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_SearchGrantedProjects_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq GrantedProjectSearchRequest var metadata runtime.ServerMetadata @@ -3368,23 +1712,6 @@ func request_ManagementService_SearchGrantedProjects_0(ctx context.Context, mars } -func local_request_ManagementService_SearchGrantedProjects_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GrantedProjectSearchRequest - 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.SearchGrantedProjects(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_GetGrantedProjectByID_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq ProjectGrantID var metadata runtime.ServerMetadata @@ -3423,44 +1750,6 @@ func request_ManagementService_GetGrantedProjectByID_0(ctx context.Context, mars } -func local_request_ManagementService_GetGrantedProjectByID_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ProjectGrantID - var metadata runtime.ServerMetadata - - var ( - val string - ok bool - err error - _ = err - ) - - val, ok = pathParams["project_id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project_id") - } - - protoReq.ProjectId, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project_id", err) - } - - val, ok = pathParams["id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") - } - - protoReq.Id, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) - } - - msg, err := server.GetGrantedProjectByID(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_GetProjectMemberRoles_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq empty.Empty var metadata runtime.ServerMetadata @@ -3470,15 +1759,6 @@ func request_ManagementService_GetProjectMemberRoles_0(ctx context.Context, mars } -func local_request_ManagementService_GetProjectMemberRoles_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq empty.Empty - var metadata runtime.ServerMetadata - - msg, err := server.GetProjectMemberRoles(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_SearchProjectMembers_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq ProjectMemberSearchRequest var metadata runtime.ServerMetadata @@ -3514,41 +1794,6 @@ func request_ManagementService_SearchProjectMembers_0(ctx context.Context, marsh } -func local_request_ManagementService_SearchProjectMembers_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ProjectMemberSearchRequest - 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["project_id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project_id") - } - - protoReq.ProjectId, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project_id", err) - } - - msg, err := server.SearchProjectMembers(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_AddProjectMember_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq ProjectMemberAdd var metadata runtime.ServerMetadata @@ -3584,41 +1829,6 @@ func request_ManagementService_AddProjectMember_0(ctx context.Context, marshaler } -func local_request_ManagementService_AddProjectMember_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ProjectMemberAdd - 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["id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") - } - - protoReq.Id, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) - } - - msg, err := server.AddProjectMember(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_ChangeProjectMember_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq ProjectMemberChange var metadata runtime.ServerMetadata @@ -3665,52 +1875,6 @@ func request_ManagementService_ChangeProjectMember_0(ctx context.Context, marsha } -func local_request_ManagementService_ChangeProjectMember_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ProjectMemberChange - 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["id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") - } - - protoReq.Id, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", 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.ChangeProjectMember(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_RemoveProjectMember_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq ProjectMemberRemove var metadata runtime.ServerMetadata @@ -3749,44 +1913,6 @@ func request_ManagementService_RemoveProjectMember_0(ctx context.Context, marsha } -func local_request_ManagementService_RemoveProjectMember_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ProjectMemberRemove - var metadata runtime.ServerMetadata - - var ( - val string - ok bool - err error - _ = err - ) - - val, ok = pathParams["id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") - } - - protoReq.Id, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", 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.RemoveProjectMember(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_SearchProjectRoles_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq ProjectRoleSearchRequest var metadata runtime.ServerMetadata @@ -3822,41 +1948,6 @@ func request_ManagementService_SearchProjectRoles_0(ctx context.Context, marshal } -func local_request_ManagementService_SearchProjectRoles_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ProjectRoleSearchRequest - 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["project_id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project_id") - } - - protoReq.ProjectId, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project_id", err) - } - - msg, err := server.SearchProjectRoles(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_AddProjectRole_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq ProjectRoleAdd var metadata runtime.ServerMetadata @@ -3892,41 +1983,6 @@ func request_ManagementService_AddProjectRole_0(ctx context.Context, marshaler r } -func local_request_ManagementService_AddProjectRole_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ProjectRoleAdd - 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["id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") - } - - protoReq.Id, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) - } - - msg, err := server.AddProjectRole(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_BulkAddProjectRole_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq ProjectRoleAddBulk var metadata runtime.ServerMetadata @@ -3962,41 +2018,6 @@ func request_ManagementService_BulkAddProjectRole_0(ctx context.Context, marshal } -func local_request_ManagementService_BulkAddProjectRole_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ProjectRoleAddBulk - 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["id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") - } - - protoReq.Id, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) - } - - msg, err := server.BulkAddProjectRole(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_ChangeProjectRole_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq ProjectRoleChange var metadata runtime.ServerMetadata @@ -4043,52 +2064,6 @@ func request_ManagementService_ChangeProjectRole_0(ctx context.Context, marshale } -func local_request_ManagementService_ChangeProjectRole_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ProjectRoleChange - 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["id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") - } - - protoReq.Id, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) - } - - val, ok = pathParams["key"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "key") - } - - protoReq.Key, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "key", err) - } - - msg, err := server.ChangeProjectRole(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_RemoveProjectRole_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq ProjectRoleRemove var metadata runtime.ServerMetadata @@ -4127,44 +2102,6 @@ func request_ManagementService_RemoveProjectRole_0(ctx context.Context, marshale } -func local_request_ManagementService_RemoveProjectRole_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ProjectRoleRemove - var metadata runtime.ServerMetadata - - var ( - val string - ok bool - err error - _ = err - ) - - val, ok = pathParams["id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") - } - - protoReq.Id, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) - } - - val, ok = pathParams["key"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "key") - } - - protoReq.Key, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "key", err) - } - - msg, err := server.RemoveProjectRole(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_SearchApplications_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq ApplicationSearchRequest var metadata runtime.ServerMetadata @@ -4200,41 +2137,6 @@ func request_ManagementService_SearchApplications_0(ctx context.Context, marshal } -func local_request_ManagementService_SearchApplications_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ApplicationSearchRequest - 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["project_id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project_id") - } - - protoReq.ProjectId, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project_id", err) - } - - msg, err := server.SearchApplications(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_ApplicationByID_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq ApplicationID var metadata runtime.ServerMetadata @@ -4273,44 +2175,6 @@ func request_ManagementService_ApplicationByID_0(ctx context.Context, marshaler } -func local_request_ManagementService_ApplicationByID_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ApplicationID - var metadata runtime.ServerMetadata - - var ( - val string - ok bool - err error - _ = err - ) - - val, ok = pathParams["project_id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project_id") - } - - protoReq.ProjectId, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project_id", err) - } - - val, ok = pathParams["id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") - } - - protoReq.Id, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) - } - - msg, err := server.ApplicationByID(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_CreateOIDCApplication_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq OIDCApplicationCreate var metadata runtime.ServerMetadata @@ -4346,41 +2210,6 @@ func request_ManagementService_CreateOIDCApplication_0(ctx context.Context, mars } -func local_request_ManagementService_CreateOIDCApplication_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq OIDCApplicationCreate - 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["project_id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project_id") - } - - protoReq.ProjectId, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project_id", err) - } - - msg, err := server.CreateOIDCApplication(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_UpdateApplication_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq ApplicationUpdate var metadata runtime.ServerMetadata @@ -4427,52 +2256,6 @@ func request_ManagementService_UpdateApplication_0(ctx context.Context, marshale } -func local_request_ManagementService_UpdateApplication_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ApplicationUpdate - 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["project_id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project_id") - } - - protoReq.ProjectId, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project_id", err) - } - - val, ok = pathParams["id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") - } - - protoReq.Id, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) - } - - msg, err := server.UpdateApplication(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_DeactivateApplication_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq ApplicationID var metadata runtime.ServerMetadata @@ -4519,52 +2302,6 @@ func request_ManagementService_DeactivateApplication_0(ctx context.Context, mars } -func local_request_ManagementService_DeactivateApplication_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ApplicationID - 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["project_id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project_id") - } - - protoReq.ProjectId, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project_id", err) - } - - val, ok = pathParams["id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") - } - - protoReq.Id, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) - } - - msg, err := server.DeactivateApplication(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_ReactivateApplication_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq ApplicationID var metadata runtime.ServerMetadata @@ -4611,52 +2348,6 @@ func request_ManagementService_ReactivateApplication_0(ctx context.Context, mars } -func local_request_ManagementService_ReactivateApplication_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ApplicationID - 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["project_id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project_id") - } - - protoReq.ProjectId, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project_id", err) - } - - val, ok = pathParams["id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") - } - - protoReq.Id, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) - } - - msg, err := server.ReactivateApplication(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_RemoveApplication_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq ApplicationID var metadata runtime.ServerMetadata @@ -4695,44 +2386,6 @@ func request_ManagementService_RemoveApplication_0(ctx context.Context, marshale } -func local_request_ManagementService_RemoveApplication_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ApplicationID - var metadata runtime.ServerMetadata - - var ( - val string - ok bool - err error - _ = err - ) - - val, ok = pathParams["project_id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project_id") - } - - protoReq.ProjectId, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project_id", err) - } - - val, ok = pathParams["id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") - } - - protoReq.Id, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) - } - - msg, err := server.RemoveApplication(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_UpdateApplicationOIDCConfig_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq OIDCConfigUpdate var metadata runtime.ServerMetadata @@ -4779,52 +2432,6 @@ func request_ManagementService_UpdateApplicationOIDCConfig_0(ctx context.Context } -func local_request_ManagementService_UpdateApplicationOIDCConfig_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq OIDCConfigUpdate - 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["project_id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project_id") - } - - protoReq.ProjectId, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project_id", err) - } - - val, ok = pathParams["application_id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "application_id") - } - - protoReq.ApplicationId, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "application_id", err) - } - - msg, err := server.UpdateApplicationOIDCConfig(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_RegenerateOIDCClientSecret_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq ApplicationID var metadata runtime.ServerMetadata @@ -4871,52 +2478,6 @@ func request_ManagementService_RegenerateOIDCClientSecret_0(ctx context.Context, } -func local_request_ManagementService_RegenerateOIDCClientSecret_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ApplicationID - 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["project_id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project_id") - } - - protoReq.ProjectId, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project_id", err) - } - - val, ok = pathParams["id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") - } - - protoReq.Id, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) - } - - msg, err := server.RegenerateOIDCClientSecret(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_SearchProjectGrants_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq ProjectGrantSearchRequest var metadata runtime.ServerMetadata @@ -4952,41 +2513,6 @@ func request_ManagementService_SearchProjectGrants_0(ctx context.Context, marsha } -func local_request_ManagementService_SearchProjectGrants_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ProjectGrantSearchRequest - 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["project_id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project_id") - } - - protoReq.ProjectId, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project_id", err) - } - - msg, err := server.SearchProjectGrants(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_ProjectGrantByID_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq ProjectGrantID var metadata runtime.ServerMetadata @@ -5025,44 +2551,6 @@ func request_ManagementService_ProjectGrantByID_0(ctx context.Context, marshaler } -func local_request_ManagementService_ProjectGrantByID_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ProjectGrantID - var metadata runtime.ServerMetadata - - var ( - val string - ok bool - err error - _ = err - ) - - val, ok = pathParams["project_id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project_id") - } - - protoReq.ProjectId, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project_id", err) - } - - val, ok = pathParams["id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") - } - - protoReq.Id, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) - } - - msg, err := server.ProjectGrantByID(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_CreateProjectGrant_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq ProjectGrantCreate var metadata runtime.ServerMetadata @@ -5098,41 +2586,6 @@ func request_ManagementService_CreateProjectGrant_0(ctx context.Context, marshal } -func local_request_ManagementService_CreateProjectGrant_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ProjectGrantCreate - 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["project_id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project_id") - } - - protoReq.ProjectId, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project_id", err) - } - - msg, err := server.CreateProjectGrant(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_UpdateProjectGrant_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq ProjectGrantUpdate var metadata runtime.ServerMetadata @@ -5179,52 +2632,6 @@ func request_ManagementService_UpdateProjectGrant_0(ctx context.Context, marshal } -func local_request_ManagementService_UpdateProjectGrant_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ProjectGrantUpdate - 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["project_id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project_id") - } - - protoReq.ProjectId, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project_id", err) - } - - val, ok = pathParams["id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") - } - - protoReq.Id, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) - } - - msg, err := server.UpdateProjectGrant(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_DeactivateProjectGrant_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq ProjectGrantID var metadata runtime.ServerMetadata @@ -5271,52 +2678,6 @@ func request_ManagementService_DeactivateProjectGrant_0(ctx context.Context, mar } -func local_request_ManagementService_DeactivateProjectGrant_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ProjectGrantID - 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["project_id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project_id") - } - - protoReq.ProjectId, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project_id", err) - } - - val, ok = pathParams["id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") - } - - protoReq.Id, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) - } - - msg, err := server.DeactivateProjectGrant(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_ReactivateProjectGrant_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq ProjectGrantID var metadata runtime.ServerMetadata @@ -5363,52 +2724,6 @@ func request_ManagementService_ReactivateProjectGrant_0(ctx context.Context, mar } -func local_request_ManagementService_ReactivateProjectGrant_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ProjectGrantID - 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["project_id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project_id") - } - - protoReq.ProjectId, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project_id", err) - } - - val, ok = pathParams["id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") - } - - protoReq.Id, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) - } - - msg, err := server.ReactivateProjectGrant(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_RemoveProjectGrant_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq ProjectGrantID var metadata runtime.ServerMetadata @@ -5447,44 +2762,6 @@ func request_ManagementService_RemoveProjectGrant_0(ctx context.Context, marshal } -func local_request_ManagementService_RemoveProjectGrant_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ProjectGrantID - var metadata runtime.ServerMetadata - - var ( - val string - ok bool - err error - _ = err - ) - - val, ok = pathParams["project_id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project_id") - } - - protoReq.ProjectId, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project_id", err) - } - - val, ok = pathParams["id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") - } - - protoReq.Id, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) - } - - msg, err := server.RemoveProjectGrant(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_GetProjectGrantMemberRoles_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq empty.Empty var metadata runtime.ServerMetadata @@ -5494,15 +2771,6 @@ func request_ManagementService_GetProjectGrantMemberRoles_0(ctx context.Context, } -func local_request_ManagementService_GetProjectGrantMemberRoles_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq empty.Empty - var metadata runtime.ServerMetadata - - msg, err := server.GetProjectGrantMemberRoles(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_SearchProjectGrantMembers_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq ProjectGrantMemberSearchRequest var metadata runtime.ServerMetadata @@ -5549,52 +2817,6 @@ func request_ManagementService_SearchProjectGrantMembers_0(ctx context.Context, } -func local_request_ManagementService_SearchProjectGrantMembers_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ProjectGrantMemberSearchRequest - 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["project_id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project_id") - } - - protoReq.ProjectId, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project_id", err) - } - - val, ok = pathParams["grant_id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "grant_id") - } - - protoReq.GrantId, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "grant_id", err) - } - - msg, err := server.SearchProjectGrantMembers(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_AddProjectGrantMember_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq ProjectGrantMemberAdd var metadata runtime.ServerMetadata @@ -5641,52 +2863,6 @@ func request_ManagementService_AddProjectGrantMember_0(ctx context.Context, mars } -func local_request_ManagementService_AddProjectGrantMember_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ProjectGrantMemberAdd - 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["project_id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project_id") - } - - protoReq.ProjectId, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project_id", err) - } - - val, ok = pathParams["grant_id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "grant_id") - } - - protoReq.GrantId, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "grant_id", err) - } - - msg, err := server.AddProjectGrantMember(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_ChangeProjectGrantMember_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq ProjectGrantMemberChange var metadata runtime.ServerMetadata @@ -5744,63 +2920,6 @@ func request_ManagementService_ChangeProjectGrantMember_0(ctx context.Context, m } -func local_request_ManagementService_ChangeProjectGrantMember_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ProjectGrantMemberChange - 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["project_id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project_id") - } - - protoReq.ProjectId, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project_id", err) - } - - val, ok = pathParams["grant_id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "grant_id") - } - - protoReq.GrantId, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "grant_id", 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.ChangeProjectGrantMember(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_RemoveProjectGrantMember_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq ProjectGrantMemberRemove var metadata runtime.ServerMetadata @@ -5850,55 +2969,6 @@ func request_ManagementService_RemoveProjectGrantMember_0(ctx context.Context, m } -func local_request_ManagementService_RemoveProjectGrantMember_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ProjectGrantMemberRemove - var metadata runtime.ServerMetadata - - var ( - val string - ok bool - err error - _ = err - ) - - val, ok = pathParams["project_id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project_id") - } - - protoReq.ProjectId, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project_id", err) - } - - val, ok = pathParams["grant_id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "grant_id") - } - - protoReq.GrantId, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "grant_id", 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.RemoveProjectGrantMember(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_SearchUserGrants_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq UserGrantSearchRequest var metadata runtime.ServerMetadata @@ -5916,23 +2986,6 @@ func request_ManagementService_SearchUserGrants_0(ctx context.Context, marshaler } -func local_request_ManagementService_SearchUserGrants_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq UserGrantSearchRequest - 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.SearchUserGrants(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_UserGrantByID_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq UserGrantID var metadata runtime.ServerMetadata @@ -5971,44 +3024,6 @@ func request_ManagementService_UserGrantByID_0(ctx context.Context, marshaler ru } -func local_request_ManagementService_UserGrantByID_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq UserGrantID - 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["id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") - } - - protoReq.Id, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) - } - - msg, err := server.UserGrantByID(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_CreateUserGrant_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq UserGrantCreate var metadata runtime.ServerMetadata @@ -6044,41 +3059,6 @@ func request_ManagementService_CreateUserGrant_0(ctx context.Context, marshaler } -func local_request_ManagementService_CreateUserGrant_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq UserGrantCreate - 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.CreateUserGrant(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_UpdateUserGrant_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq UserGrantUpdate var metadata runtime.ServerMetadata @@ -6125,52 +3105,6 @@ func request_ManagementService_UpdateUserGrant_0(ctx context.Context, marshaler } -func local_request_ManagementService_UpdateUserGrant_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq UserGrantUpdate - 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) - } - - val, ok = pathParams["id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") - } - - protoReq.Id, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) - } - - msg, err := server.UpdateUserGrant(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_DeactivateUserGrant_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq UserGrantID var metadata runtime.ServerMetadata @@ -6217,52 +3151,6 @@ func request_ManagementService_DeactivateUserGrant_0(ctx context.Context, marsha } -func local_request_ManagementService_DeactivateUserGrant_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq UserGrantID - 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) - } - - val, ok = pathParams["id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") - } - - protoReq.Id, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) - } - - msg, err := server.DeactivateUserGrant(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_ReactivateUserGrant_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq UserGrantID var metadata runtime.ServerMetadata @@ -6309,52 +3197,6 @@ func request_ManagementService_ReactivateUserGrant_0(ctx context.Context, marsha } -func local_request_ManagementService_ReactivateUserGrant_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq UserGrantID - 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) - } - - val, ok = pathParams["id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") - } - - protoReq.Id, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) - } - - msg, err := server.ReactivateUserGrant(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_RemoveUserGrant_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq UserGrantID var metadata runtime.ServerMetadata @@ -6393,44 +3235,6 @@ func request_ManagementService_RemoveUserGrant_0(ctx context.Context, marshaler } -func local_request_ManagementService_RemoveUserGrant_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq UserGrantID - 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["id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") - } - - protoReq.Id, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) - } - - msg, err := server.RemoveUserGrant(ctx, &protoReq) - return msg, metadata, err - -} - func request_ManagementService_BulkRemoveUserGrant_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq UserGrantRemoveBulk var metadata runtime.ServerMetadata @@ -6448,8 +3252,35 @@ func request_ManagementService_BulkRemoveUserGrant_0(ctx context.Context, marsha } -func local_request_ManagementService_BulkRemoveUserGrant_0(ctx context.Context, marshaler runtime.Marshaler, server ManagementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq UserGrantRemoveBulk +func request_ManagementService_IdpByID_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq IdpID + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") + } + + protoReq.Id, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) + } + + msg, err := client.IdpByID(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func request_ManagementService_CreateOidcIdp_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq OidcIdpConfigCreate var metadata runtime.ServerMetadata newReader, berr := utilities.IOReaderFactory(req.Body) @@ -6460,2257 +3291,314 @@ func local_request_ManagementService_BulkRemoveUserGrant_0(ctx context.Context, return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := server.BulkRemoveUserGrant(ctx, &protoReq) + msg, err := client.CreateOidcIdp(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } -// RegisterManagementServiceHandlerServer registers the http handlers for service ManagementService to "mux". -// UnaryRPC :call ManagementServiceServer directly. -// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. -func RegisterManagementServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server ManagementServiceServer, opts []grpc.DialOption) error { - - mux.Handle("GET", pattern_ManagementService_Healthz_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 := local_request_ManagementService_Healthz_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_Healthz_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_ManagementService_Ready_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 := local_request_ManagementService_Ready_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_Ready_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_ManagementService_Validate_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 := local_request_ManagementService_Validate_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_Validate_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_ManagementService_GetZitadelDocs_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 := local_request_ManagementService_GetZitadelDocs_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_GetZitadelDocs_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_ManagementService_GetIam_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 := local_request_ManagementService_GetIam_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_GetIam_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_ManagementService_GetUserByID_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 := local_request_ManagementService_GetUserByID_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_GetUserByID_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_ManagementService_GetUserByEmailGlobal_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 := local_request_ManagementService_GetUserByEmailGlobal_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_GetUserByEmailGlobal_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_ManagementService_SearchUsers_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 := local_request_ManagementService_SearchUsers_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_SearchUsers_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_ManagementService_IsUserUnique_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 := local_request_ManagementService_IsUserUnique_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_IsUserUnique_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_ManagementService_CreateUser_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 := local_request_ManagementService_CreateUser_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_CreateUser_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("PUT", pattern_ManagementService_DeactivateUser_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 := local_request_ManagementService_DeactivateUser_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_DeactivateUser_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("PUT", pattern_ManagementService_ReactivateUser_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 := local_request_ManagementService_ReactivateUser_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_ReactivateUser_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("PUT", pattern_ManagementService_LockUser_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 := local_request_ManagementService_LockUser_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_LockUser_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("PUT", pattern_ManagementService_UnlockUser_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 := local_request_ManagementService_UnlockUser_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_UnlockUser_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("DELETE", pattern_ManagementService_DeleteUser_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 := local_request_ManagementService_DeleteUser_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_DeleteUser_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_ManagementService_UserChanges_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 := local_request_ManagementService_UserChanges_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_UserChanges_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_ManagementService_ApplicationChanges_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 := local_request_ManagementService_ApplicationChanges_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_ApplicationChanges_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_ManagementService_OrgChanges_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 := local_request_ManagementService_OrgChanges_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_OrgChanges_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_ManagementService_ProjectChanges_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 := local_request_ManagementService_ProjectChanges_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_ProjectChanges_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_ManagementService_GetUserProfile_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 := local_request_ManagementService_GetUserProfile_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_GetUserProfile_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("PUT", pattern_ManagementService_UpdateUserProfile_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 := local_request_ManagementService_UpdateUserProfile_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_UpdateUserProfile_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_ManagementService_GetUserEmail_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 := local_request_ManagementService_GetUserEmail_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_GetUserEmail_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("PUT", pattern_ManagementService_ChangeUserEmail_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 := local_request_ManagementService_ChangeUserEmail_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_ChangeUserEmail_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_ManagementService_ResendEmailVerificationMail_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 := local_request_ManagementService_ResendEmailVerificationMail_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_ResendEmailVerificationMail_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_ManagementService_GetUserPhone_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 := local_request_ManagementService_GetUserPhone_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_GetUserPhone_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("PUT", pattern_ManagementService_ChangeUserPhone_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 := local_request_ManagementService_ChangeUserPhone_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_ChangeUserPhone_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("DELETE", pattern_ManagementService_RemoveUserPhone_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 := local_request_ManagementService_RemoveUserPhone_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_RemoveUserPhone_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_ManagementService_ResendPhoneVerificationCode_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 := local_request_ManagementService_ResendPhoneVerificationCode_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_ResendPhoneVerificationCode_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_ManagementService_GetUserAddress_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 := local_request_ManagementService_GetUserAddress_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_GetUserAddress_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("PUT", pattern_ManagementService_UpdateUserAddress_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 := local_request_ManagementService_UpdateUserAddress_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_UpdateUserAddress_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() - 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 := local_request_ManagementService_GetUserMfas_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_GetUserMfas_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_ManagementService_SendSetPasswordNotification_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 := local_request_ManagementService_SendSetPasswordNotification_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_SendSetPasswordNotification_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_ManagementService_SetInitialPassword_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 := local_request_ManagementService_SetInitialPassword_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_SetInitialPassword_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_ManagementService_SearchUserMemberships_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 := local_request_ManagementService_SearchUserMemberships_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_SearchUserMemberships_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_ManagementService_GetPasswordComplexityPolicy_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 := local_request_ManagementService_GetPasswordComplexityPolicy_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_GetPasswordComplexityPolicy_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_ManagementService_GetDefaultPasswordComplexityPolicy_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 := local_request_ManagementService_GetDefaultPasswordComplexityPolicy_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_GetDefaultPasswordComplexityPolicy_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_ManagementService_CreatePasswordComplexityPolicy_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 := local_request_ManagementService_CreatePasswordComplexityPolicy_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_CreatePasswordComplexityPolicy_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("PUT", pattern_ManagementService_UpdatePasswordComplexityPolicy_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 := local_request_ManagementService_UpdatePasswordComplexityPolicy_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_UpdatePasswordComplexityPolicy_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("DELETE", pattern_ManagementService_DeletePasswordComplexityPolicy_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 := local_request_ManagementService_DeletePasswordComplexityPolicy_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_DeletePasswordComplexityPolicy_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_ManagementService_GetPasswordAgePolicy_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 := local_request_ManagementService_GetPasswordAgePolicy_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_GetPasswordAgePolicy_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_ManagementService_CreatePasswordAgePolicy_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 := local_request_ManagementService_CreatePasswordAgePolicy_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_CreatePasswordAgePolicy_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("PUT", pattern_ManagementService_UpdatePasswordAgePolicy_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 := local_request_ManagementService_UpdatePasswordAgePolicy_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_UpdatePasswordAgePolicy_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("DELETE", pattern_ManagementService_DeletePasswordAgePolicy_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 := local_request_ManagementService_DeletePasswordAgePolicy_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_DeletePasswordAgePolicy_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_ManagementService_GetPasswordLockoutPolicy_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 := local_request_ManagementService_GetPasswordLockoutPolicy_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_GetPasswordLockoutPolicy_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_ManagementService_CreatePasswordLockoutPolicy_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 := local_request_ManagementService_CreatePasswordLockoutPolicy_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_CreatePasswordLockoutPolicy_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("PUT", pattern_ManagementService_UpdatePasswordLockoutPolicy_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 := local_request_ManagementService_UpdatePasswordLockoutPolicy_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_UpdatePasswordLockoutPolicy_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("DELETE", pattern_ManagementService_DeletePasswordLockoutPolicy_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 := local_request_ManagementService_DeletePasswordLockoutPolicy_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_DeletePasswordLockoutPolicy_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_ManagementService_CreateOrg_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 := local_request_ManagementService_CreateOrg_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_CreateOrg_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_ManagementService_GetMyOrg_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 := local_request_ManagementService_GetMyOrg_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_GetMyOrg_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_ManagementService_GetOrgByDomainGlobal_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 := local_request_ManagementService_GetOrgByDomainGlobal_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_GetOrgByDomainGlobal_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("PUT", pattern_ManagementService_DeactivateMyOrg_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 := local_request_ManagementService_DeactivateMyOrg_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_DeactivateMyOrg_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("PUT", pattern_ManagementService_ReactivateMyOrg_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 := local_request_ManagementService_ReactivateMyOrg_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_ReactivateMyOrg_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_ManagementService_SearchMyOrgDomains_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 := local_request_ManagementService_SearchMyOrgDomains_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_SearchMyOrgDomains_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_ManagementService_AddMyOrgDomain_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 := local_request_ManagementService_AddMyOrgDomain_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_AddMyOrgDomain_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_ManagementService_GenerateMyOrgDomainValidation_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 := local_request_ManagementService_GenerateMyOrgDomainValidation_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_GenerateMyOrgDomainValidation_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_ManagementService_ValidateMyOrgDomain_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 := local_request_ManagementService_ValidateMyOrgDomain_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_ValidateMyOrgDomain_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_ManagementService_SetMyPrimaryOrgDomain_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 := local_request_ManagementService_SetMyPrimaryOrgDomain_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_SetMyPrimaryOrgDomain_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("DELETE", pattern_ManagementService_RemoveMyOrgDomain_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 := local_request_ManagementService_RemoveMyOrgDomain_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_RemoveMyOrgDomain_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_ManagementService_GetMyOrgIamPolicy_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 := local_request_ManagementService_GetMyOrgIamPolicy_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_GetMyOrgIamPolicy_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_ManagementService_GetOrgMemberRoles_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 := local_request_ManagementService_GetOrgMemberRoles_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_GetOrgMemberRoles_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_ManagementService_AddMyOrgMember_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 := local_request_ManagementService_AddMyOrgMember_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_AddMyOrgMember_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("PUT", pattern_ManagementService_ChangeMyOrgMember_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 := local_request_ManagementService_ChangeMyOrgMember_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_ChangeMyOrgMember_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("DELETE", pattern_ManagementService_RemoveMyOrgMember_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 := local_request_ManagementService_RemoveMyOrgMember_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_RemoveMyOrgMember_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_ManagementService_SearchMyOrgMembers_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 := local_request_ManagementService_SearchMyOrgMembers_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_SearchMyOrgMembers_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_ManagementService_SearchProjects_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 := local_request_ManagementService_SearchProjects_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_SearchProjects_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_ManagementService_ProjectByID_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 := local_request_ManagementService_ProjectByID_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_ProjectByID_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_ManagementService_CreateProject_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 := local_request_ManagementService_CreateProject_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_CreateProject_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("PUT", pattern_ManagementService_UpdateProject_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 := local_request_ManagementService_UpdateProject_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_UpdateProject_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("PUT", pattern_ManagementService_DeactivateProject_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 := local_request_ManagementService_DeactivateProject_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_DeactivateProject_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("PUT", pattern_ManagementService_ReactivateProject_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 := local_request_ManagementService_ReactivateProject_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_ReactivateProject_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("DELETE", pattern_ManagementService_RemoveProject_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 := local_request_ManagementService_RemoveProject_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_RemoveProject_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_ManagementService_SearchGrantedProjects_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 := local_request_ManagementService_SearchGrantedProjects_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_SearchGrantedProjects_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_ManagementService_GetGrantedProjectByID_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 := local_request_ManagementService_GetGrantedProjectByID_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_GetGrantedProjectByID_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_ManagementService_GetProjectMemberRoles_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 := local_request_ManagementService_GetProjectMemberRoles_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_GetProjectMemberRoles_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_ManagementService_SearchProjectMembers_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 := local_request_ManagementService_SearchProjectMembers_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_SearchProjectMembers_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_ManagementService_AddProjectMember_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 := local_request_ManagementService_AddProjectMember_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_AddProjectMember_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("PUT", pattern_ManagementService_ChangeProjectMember_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 := local_request_ManagementService_ChangeProjectMember_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_ChangeProjectMember_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("DELETE", pattern_ManagementService_RemoveProjectMember_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 := local_request_ManagementService_RemoveProjectMember_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_RemoveProjectMember_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_ManagementService_SearchProjectRoles_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 := local_request_ManagementService_SearchProjectRoles_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_SearchProjectRoles_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_ManagementService_AddProjectRole_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 := local_request_ManagementService_AddProjectRole_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_AddProjectRole_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_ManagementService_BulkAddProjectRole_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 := local_request_ManagementService_BulkAddProjectRole_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_BulkAddProjectRole_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("PUT", pattern_ManagementService_ChangeProjectRole_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 := local_request_ManagementService_ChangeProjectRole_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_ChangeProjectRole_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("DELETE", pattern_ManagementService_RemoveProjectRole_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 := local_request_ManagementService_RemoveProjectRole_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_RemoveProjectRole_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_ManagementService_SearchApplications_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 := local_request_ManagementService_SearchApplications_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_SearchApplications_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_ManagementService_ApplicationByID_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 := local_request_ManagementService_ApplicationByID_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_ApplicationByID_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_ManagementService_CreateOIDCApplication_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 := local_request_ManagementService_CreateOIDCApplication_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_CreateOIDCApplication_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("PUT", pattern_ManagementService_UpdateApplication_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 := local_request_ManagementService_UpdateApplication_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_UpdateApplication_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("PUT", pattern_ManagementService_DeactivateApplication_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 := local_request_ManagementService_DeactivateApplication_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_DeactivateApplication_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("PUT", pattern_ManagementService_ReactivateApplication_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 := local_request_ManagementService_ReactivateApplication_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_ReactivateApplication_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("DELETE", pattern_ManagementService_RemoveApplication_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 := local_request_ManagementService_RemoveApplication_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_RemoveApplication_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("PUT", pattern_ManagementService_UpdateApplicationOIDCConfig_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 := local_request_ManagementService_UpdateApplicationOIDCConfig_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_UpdateApplicationOIDCConfig_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("PUT", pattern_ManagementService_RegenerateOIDCClientSecret_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 := local_request_ManagementService_RegenerateOIDCClientSecret_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_RegenerateOIDCClientSecret_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_ManagementService_SearchProjectGrants_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 := local_request_ManagementService_SearchProjectGrants_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_SearchProjectGrants_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_ManagementService_ProjectGrantByID_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 := local_request_ManagementService_ProjectGrantByID_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_ProjectGrantByID_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_ManagementService_CreateProjectGrant_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 := local_request_ManagementService_CreateProjectGrant_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_CreateProjectGrant_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("PUT", pattern_ManagementService_UpdateProjectGrant_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 := local_request_ManagementService_UpdateProjectGrant_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_UpdateProjectGrant_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("PUT", pattern_ManagementService_DeactivateProjectGrant_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 := local_request_ManagementService_DeactivateProjectGrant_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_DeactivateProjectGrant_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("PUT", pattern_ManagementService_ReactivateProjectGrant_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 := local_request_ManagementService_ReactivateProjectGrant_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_ReactivateProjectGrant_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("DELETE", pattern_ManagementService_RemoveProjectGrant_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 := local_request_ManagementService_RemoveProjectGrant_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_RemoveProjectGrant_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_ManagementService_GetProjectGrantMemberRoles_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 := local_request_ManagementService_GetProjectGrantMemberRoles_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_GetProjectGrantMemberRoles_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_ManagementService_SearchProjectGrantMembers_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 := local_request_ManagementService_SearchProjectGrantMembers_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_SearchProjectGrantMembers_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_ManagementService_AddProjectGrantMember_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 := local_request_ManagementService_AddProjectGrantMember_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_AddProjectGrantMember_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("PUT", pattern_ManagementService_ChangeProjectGrantMember_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 := local_request_ManagementService_ChangeProjectGrantMember_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_ChangeProjectGrantMember_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("DELETE", pattern_ManagementService_RemoveProjectGrantMember_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 := local_request_ManagementService_RemoveProjectGrantMember_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_RemoveProjectGrantMember_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_ManagementService_SearchUserGrants_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 := local_request_ManagementService_SearchUserGrants_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_SearchUserGrants_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_ManagementService_UserGrantByID_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 := local_request_ManagementService_UserGrantByID_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_UserGrantByID_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_ManagementService_CreateUserGrant_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 := local_request_ManagementService_CreateUserGrant_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_CreateUserGrant_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("PUT", pattern_ManagementService_UpdateUserGrant_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 := local_request_ManagementService_UpdateUserGrant_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_UpdateUserGrant_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("PUT", pattern_ManagementService_DeactivateUserGrant_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 := local_request_ManagementService_DeactivateUserGrant_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_DeactivateUserGrant_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("PUT", pattern_ManagementService_ReactivateUserGrant_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 := local_request_ManagementService_ReactivateUserGrant_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_ReactivateUserGrant_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("DELETE", pattern_ManagementService_RemoveUserGrant_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 := local_request_ManagementService_RemoveUserGrant_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_RemoveUserGrant_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("DELETE", pattern_ManagementService_BulkRemoveUserGrant_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 := local_request_ManagementService_BulkRemoveUserGrant_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_BulkRemoveUserGrant_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - return nil +func request_ManagementService_UpdateIdpConfig_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq IdpUpdate + 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["id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") + } + + protoReq.Id, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) + } + + msg, err := client.UpdateIdpConfig(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func request_ManagementService_DeactivateIdpConfig_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq IdpID + 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["id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") + } + + protoReq.Id, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) + } + + msg, err := client.DeactivateIdpConfig(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func request_ManagementService_ReactivateIdpConfig_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq IdpID + 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["id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") + } + + protoReq.Id, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) + } + + msg, err := client.ReactivateIdpConfig(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func request_ManagementService_RemoveIdpConfig_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq IdpID + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") + } + + protoReq.Id, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) + } + + msg, err := client.RemoveIdpConfig(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func request_ManagementService_UpdateOidcIdpConfig_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq OidcIdpConfigUpdate + 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["idp_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "idp_id") + } + + protoReq.IdpId, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "idp_id", err) + } + + msg, err := client.UpdateOidcIdpConfig(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func request_ManagementService_SearchIdps_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq IdpSearchRequest + 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.SearchIdps(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func request_ManagementService_GetLoginPolicy_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq empty.Empty + var metadata runtime.ServerMetadata + + msg, err := client.GetLoginPolicy(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func request_ManagementService_CreateLoginPolicy_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq LoginPolicyAdd + 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.CreateLoginPolicy(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func request_ManagementService_UpdateLoginPolicy_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq LoginPolicy + 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.UpdateLoginPolicy(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func request_ManagementService_RemoveLoginPolicy_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq empty.Empty + var metadata runtime.ServerMetadata + + msg, err := client.RemoveLoginPolicy(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func request_ManagementService_GetLoginPolicyIdpProviders_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq IdpProviderSearchRequest + 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.GetLoginPolicyIdpProviders(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func request_ManagementService_AddIdpProviderToLoginPolicy_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq IdpProviderAdd + 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.AddIdpProviderToLoginPolicy(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func request_ManagementService_RemoveIdpProviderFromLoginPolicy_0(ctx context.Context, marshaler runtime.Marshaler, client ManagementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq IdpProviderID + 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["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) + } + + msg, err := client.RemoveIdpProviderFromLoginPolicy(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + } // RegisterManagementServiceHandlerFromEndpoint is same as RegisterManagementServiceHandler but @@ -10991,233 +5879,563 @@ func RegisterManagementServiceHandlerClient(ctx context.Context, mux *runtime.Se }) + mux.Handle("GET", pattern_ManagementService_IdpByID_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_IdpByID_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_IdpByID_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_ManagementService_CreateOidcIdp_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_CreateOidcIdp_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_CreateOidcIdp_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PUT", pattern_ManagementService_UpdateIdpConfig_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_UpdateIdpConfig_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_UpdateIdpConfig_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PUT", pattern_ManagementService_DeactivateIdpConfig_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_DeactivateIdpConfig_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_DeactivateIdpConfig_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PUT", pattern_ManagementService_ReactivateIdpConfig_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_ReactivateIdpConfig_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_ReactivateIdpConfig_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_ManagementService_RemoveIdpConfig_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_RemoveIdpConfig_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_RemoveIdpConfig_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PUT", pattern_ManagementService_UpdateOidcIdpConfig_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_UpdateOidcIdpConfig_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_UpdateOidcIdpConfig_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_ManagementService_SearchIdps_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_SearchIdps_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_SearchIdps_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_ManagementService_GetLoginPolicy_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_GetLoginPolicy_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_GetLoginPolicy_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_ManagementService_CreateLoginPolicy_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_CreateLoginPolicy_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_CreateLoginPolicy_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PUT", pattern_ManagementService_UpdateLoginPolicy_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_UpdateLoginPolicy_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_UpdateLoginPolicy_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_ManagementService_RemoveLoginPolicy_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_RemoveLoginPolicy_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_RemoveLoginPolicy_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_ManagementService_GetLoginPolicyIdpProviders_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_GetLoginPolicyIdpProviders_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_GetLoginPolicyIdpProviders_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_ManagementService_AddIdpProviderToLoginPolicy_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_AddIdpProviderToLoginPolicy_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_AddIdpProviderToLoginPolicy_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_ManagementService_RemoveIdpProviderFromLoginPolicy_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_RemoveIdpProviderFromLoginPolicy_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_RemoveIdpProviderFromLoginPolicy_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } var ( - pattern_ManagementService_Healthz_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0}, []string{"healthz"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_Healthz_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0}, []string{"healthz"}, "")) - pattern_ManagementService_Ready_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0}, []string{"ready"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_Ready_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0}, []string{"ready"}, "")) - pattern_ManagementService_Validate_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0}, []string{"validate"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_Validate_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0}, []string{"validate"}, "")) - pattern_ManagementService_GetZitadelDocs_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"zitadel", "docs"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_GetZitadelDocs_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"zitadel", "docs"}, "")) - pattern_ManagementService_GetIam_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0}, []string{"iam"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_GetIam_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0}, []string{"iam"}, "")) - pattern_ManagementService_GetUserByID_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1}, []string{"users", "id"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_GetUserByID_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1}, []string{"users", "id"}, "")) - pattern_ManagementService_GetUserByEmailGlobal_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"global", "users", "_byemail"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_GetUserByEmailGlobal_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"global", "users", "_byemail"}, "")) - pattern_ManagementService_SearchUsers_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"users", "_search"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_SearchUsers_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"users", "_search"}, "")) - pattern_ManagementService_IsUserUnique_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"users", "_isunique"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_IsUserUnique_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"users", "_isunique"}, "")) - pattern_ManagementService_CreateUser_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0}, []string{"users"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_CreateUser_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0}, []string{"users"}, "")) - pattern_ManagementService_DeactivateUser_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"users", "id", "_deactivate"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_DeactivateUser_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"users", "id", "_deactivate"}, "")) - pattern_ManagementService_ReactivateUser_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"users", "id", "_reactivate"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_ReactivateUser_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"users", "id", "_reactivate"}, "")) - pattern_ManagementService_LockUser_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"users", "id", "_lock"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_LockUser_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"users", "id", "_lock"}, "")) - pattern_ManagementService_UnlockUser_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"users", "id", "_unlock"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_UnlockUser_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"users", "id", "_unlock"}, "")) - pattern_ManagementService_DeleteUser_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1}, []string{"users", "id"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_DeleteUser_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1}, []string{"users", "id"}, "")) - pattern_ManagementService_UserChanges_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"users", "id", "changes"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_UserChanges_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"users", "id", "changes"}, "")) - pattern_ManagementService_ApplicationChanges_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4}, []string{"projects", "id", "applications", "sec_id", "changes"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_ApplicationChanges_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4}, []string{"projects", "id", "applications", "sec_id", "changes"}, "")) - pattern_ManagementService_OrgChanges_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"orgs", "id", "changes"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_OrgChanges_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"orgs", "id", "changes"}, "")) - pattern_ManagementService_ProjectChanges_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"projects", "id", "changes"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_ProjectChanges_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"projects", "id", "changes"}, "")) - pattern_ManagementService_GetUserProfile_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"users", "id", "profile"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_GetUserProfile_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"users", "id", "profile"}, "")) - pattern_ManagementService_UpdateUserProfile_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"users", "id", "profile"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_UpdateUserProfile_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"users", "id", "profile"}, "")) - pattern_ManagementService_GetUserEmail_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"users", "id", "email"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_GetUserEmail_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"users", "id", "email"}, "")) - pattern_ManagementService_ChangeUserEmail_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"users", "id", "email"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_ChangeUserEmail_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"users", "id", "email"}, "")) - pattern_ManagementService_ResendEmailVerificationMail_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 2, 3}, []string{"users", "id", "email", "_resendverification"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_ResendEmailVerificationMail_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 2, 3}, []string{"users", "id", "email", "_resendverification"}, "")) - pattern_ManagementService_GetUserPhone_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"users", "id", "phone"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_GetUserPhone_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"users", "id", "phone"}, "")) - pattern_ManagementService_ChangeUserPhone_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"users", "id", "phone"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_ChangeUserPhone_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"users", "id", "phone"}, "")) - pattern_ManagementService_RemoveUserPhone_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"users", "id", "phone"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_RemoveUserPhone_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"users", "id", "phone"}, "")) - pattern_ManagementService_ResendPhoneVerificationCode_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 2, 3}, []string{"users", "id", "phone", "_resendverification"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_ResendPhoneVerificationCode_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 2, 3}, []string{"users", "id", "phone", "_resendverification"}, "")) - pattern_ManagementService_GetUserAddress_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"users", "id", "address"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_GetUserAddress_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"users", "id", "address"}, "")) - pattern_ManagementService_UpdateUserAddress_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"users", "id", "address"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_UpdateUserAddress_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"users", "id", "address"}, "")) - 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_GetUserMfas_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"users", "id", "mfas"}, "")) - 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))) + 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"}, "")) - pattern_ManagementService_SetInitialPassword_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 2, 3}, []string{"users", "id", "password", "_initialize"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_SetInitialPassword_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 2, 3}, []string{"users", "id", "password", "_initialize"}, "")) - pattern_ManagementService_SearchUserMemberships_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 2, 3}, []string{"users", "user_id", "memberships", "_search"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_SearchUserMemberships_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 2, 3}, []string{"users", "user_id", "memberships", "_search"}, "")) - pattern_ManagementService_GetPasswordComplexityPolicy_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"policies", "passwords", "complexity"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_GetPasswordComplexityPolicy_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"policies", "passwords", "complexity"}, "")) - pattern_ManagementService_GetDefaultPasswordComplexityPolicy_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"policies", "passwords", "complexity", "default"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_GetDefaultPasswordComplexityPolicy_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"policies", "passwords", "complexity", "default"}, "")) - pattern_ManagementService_CreatePasswordComplexityPolicy_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"policies", "passwords", "complexity"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_CreatePasswordComplexityPolicy_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"policies", "passwords", "complexity"}, "")) - pattern_ManagementService_UpdatePasswordComplexityPolicy_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"policies", "passwords", "complexity"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_UpdatePasswordComplexityPolicy_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"policies", "passwords", "complexity"}, "")) - pattern_ManagementService_DeletePasswordComplexityPolicy_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"policies", "passwords", "complexity"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_DeletePasswordComplexityPolicy_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"policies", "passwords", "complexity"}, "")) - pattern_ManagementService_GetPasswordAgePolicy_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"policies", "passwords", "age"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_GetPasswordAgePolicy_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"policies", "passwords", "age"}, "")) - pattern_ManagementService_CreatePasswordAgePolicy_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"policies", "passwords", "age"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_CreatePasswordAgePolicy_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"policies", "passwords", "age"}, "")) - pattern_ManagementService_UpdatePasswordAgePolicy_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"policies", "passwords", "age"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_UpdatePasswordAgePolicy_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"policies", "passwords", "age"}, "")) - pattern_ManagementService_DeletePasswordAgePolicy_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"policies", "passwords", "age"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_DeletePasswordAgePolicy_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"policies", "passwords", "age"}, "")) - pattern_ManagementService_GetPasswordLockoutPolicy_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"policies", "passwords", "lockout"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_GetPasswordLockoutPolicy_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"policies", "passwords", "lockout"}, "")) - pattern_ManagementService_CreatePasswordLockoutPolicy_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"policies", "passwords", "lockout"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_CreatePasswordLockoutPolicy_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"policies", "passwords", "lockout"}, "")) - pattern_ManagementService_UpdatePasswordLockoutPolicy_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"policies", "passwords", "lockout"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_UpdatePasswordLockoutPolicy_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"policies", "passwords", "lockout"}, "")) - pattern_ManagementService_DeletePasswordLockoutPolicy_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"policies", "passwords", "lockout"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_DeletePasswordLockoutPolicy_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"policies", "passwords", "lockout"}, "")) - pattern_ManagementService_CreateOrg_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0}, []string{"orgs"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_CreateOrg_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0}, []string{"orgs"}, "")) - pattern_ManagementService_GetMyOrg_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"orgs", "me"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_GetMyOrg_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"orgs", "me"}, "")) - pattern_ManagementService_GetOrgByDomainGlobal_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"global", "orgs", "_bydomain"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_GetOrgByDomainGlobal_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"global", "orgs", "_bydomain"}, "")) - pattern_ManagementService_DeactivateMyOrg_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"orgs", "me", "_deactivate"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_DeactivateMyOrg_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"orgs", "me", "_deactivate"}, "")) - pattern_ManagementService_ReactivateMyOrg_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"orgs", "me", "_reactivate"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_ReactivateMyOrg_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"orgs", "me", "_reactivate"}, "")) - pattern_ManagementService_SearchMyOrgDomains_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"orgs", "me", "domains", "_search"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_SearchMyOrgDomains_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"orgs", "me", "domains", "_search"}, "")) - pattern_ManagementService_AddMyOrgDomain_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"orgs", "me", "domains"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_AddMyOrgDomain_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"orgs", "me", "domains"}, "")) - pattern_ManagementService_GenerateMyOrgDomainValidation_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4, 2, 5}, []string{"orgs", "me", "domains", "domain", "validation", "create"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_GenerateMyOrgDomainValidation_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4, 2, 5}, []string{"orgs", "me", "domains", "domain", "validation", "create"}, "")) - pattern_ManagementService_ValidateMyOrgDomain_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4, 2, 5}, []string{"orgs", "me", "domains", "domain", "validation", "check"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_ValidateMyOrgDomain_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4, 2, 5}, []string{"orgs", "me", "domains", "domain", "validation", "check"}, "")) - pattern_ManagementService_SetMyPrimaryOrgDomain_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4}, []string{"orgs", "me", "domains", "domain", "_primary"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_SetMyPrimaryOrgDomain_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4}, []string{"orgs", "me", "domains", "domain", "_primary"}, "")) - pattern_ManagementService_RemoveMyOrgDomain_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"orgs", "me", "domains", "domain"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_RemoveMyOrgDomain_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"orgs", "me", "domains", "domain"}, "")) - pattern_ManagementService_GetMyOrgIamPolicy_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"orgs", "me", "iampolicy"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_GetMyOrgIamPolicy_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"orgs", "me", "iampolicy"}, "")) - pattern_ManagementService_GetOrgMemberRoles_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"orgs", "members", "roles"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_GetOrgMemberRoles_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"orgs", "members", "roles"}, "")) - pattern_ManagementService_AddMyOrgMember_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"orgs", "me", "members"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_AddMyOrgMember_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"orgs", "me", "members"}, "")) - pattern_ManagementService_ChangeMyOrgMember_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"orgs", "me", "members", "user_id"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_ChangeMyOrgMember_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"orgs", "me", "members", "user_id"}, "")) - pattern_ManagementService_RemoveMyOrgMember_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"orgs", "me", "members", "user_id"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_RemoveMyOrgMember_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"orgs", "me", "members", "user_id"}, "")) - pattern_ManagementService_SearchMyOrgMembers_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"orgs", "me", "members", "_search"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_SearchMyOrgMembers_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"orgs", "me", "members", "_search"}, "")) - pattern_ManagementService_SearchProjects_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"projects", "_search"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_SearchProjects_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"projects", "_search"}, "")) - pattern_ManagementService_ProjectByID_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1}, []string{"projects", "id"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_ProjectByID_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1}, []string{"projects", "id"}, "")) - pattern_ManagementService_CreateProject_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0}, []string{"projects"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_CreateProject_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0}, []string{"projects"}, "")) - pattern_ManagementService_UpdateProject_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1}, []string{"projects", "id"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_UpdateProject_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1}, []string{"projects", "id"}, "")) - pattern_ManagementService_DeactivateProject_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"projects", "id", "_deactivate"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_DeactivateProject_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"projects", "id", "_deactivate"}, "")) - pattern_ManagementService_ReactivateProject_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"projects", "id", "_reactivate"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_ReactivateProject_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"projects", "id", "_reactivate"}, "")) - pattern_ManagementService_RemoveProject_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1}, []string{"projects", "id"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_RemoveProject_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1}, []string{"projects", "id"}, "")) - pattern_ManagementService_SearchGrantedProjects_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"grantedprojects", "_search"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_SearchGrantedProjects_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"grantedprojects", "_search"}, "")) - pattern_ManagementService_GetGrantedProjectByID_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"grantedprojects", "project_id", "grants", "id"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_GetGrantedProjectByID_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"grantedprojects", "project_id", "grants", "id"}, "")) - pattern_ManagementService_GetProjectMemberRoles_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"projects", "members", "roles"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_GetProjectMemberRoles_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"projects", "members", "roles"}, "")) - pattern_ManagementService_SearchProjectMembers_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 2, 3}, []string{"projects", "project_id", "members", "_search"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_SearchProjectMembers_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 2, 3}, []string{"projects", "project_id", "members", "_search"}, "")) - pattern_ManagementService_AddProjectMember_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"projects", "id", "members"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_AddProjectMember_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"projects", "id", "members"}, "")) - pattern_ManagementService_ChangeProjectMember_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"projects", "id", "members", "user_id"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_ChangeProjectMember_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"projects", "id", "members", "user_id"}, "")) - pattern_ManagementService_RemoveProjectMember_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"projects", "id", "members", "user_id"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_RemoveProjectMember_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"projects", "id", "members", "user_id"}, "")) - pattern_ManagementService_SearchProjectRoles_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 2, 3}, []string{"projects", "project_id", "roles", "_search"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_SearchProjectRoles_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 2, 3}, []string{"projects", "project_id", "roles", "_search"}, "")) - pattern_ManagementService_AddProjectRole_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"projects", "id", "roles"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_AddProjectRole_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"projects", "id", "roles"}, "")) - pattern_ManagementService_BulkAddProjectRole_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 2, 3}, []string{"projects", "id", "roles", "_bulk"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_BulkAddProjectRole_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 2, 3}, []string{"projects", "id", "roles", "_bulk"}, "")) - pattern_ManagementService_ChangeProjectRole_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"projects", "id", "roles", "key"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_ChangeProjectRole_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"projects", "id", "roles", "key"}, "")) - pattern_ManagementService_RemoveProjectRole_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"projects", "id", "roles", "key"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_RemoveProjectRole_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"projects", "id", "roles", "key"}, "")) - pattern_ManagementService_SearchApplications_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 2, 3}, []string{"projects", "project_id", "applications", "_search"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_SearchApplications_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 2, 3}, []string{"projects", "project_id", "applications", "_search"}, "")) - pattern_ManagementService_ApplicationByID_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"projects", "project_id", "applications", "id"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_ApplicationByID_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"projects", "project_id", "applications", "id"}, "")) - pattern_ManagementService_CreateOIDCApplication_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"projects", "project_id", "oidcapplications"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_CreateOIDCApplication_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 2, 3}, []string{"projects", "project_id", "applications", "oidc"}, "")) - pattern_ManagementService_UpdateApplication_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"projects", "project_id", "applications", "id"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_UpdateApplication_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"projects", "project_id", "applications", "id"}, "")) - pattern_ManagementService_DeactivateApplication_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4}, []string{"projects", "project_id", "applications", "id", "_deactivate"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_DeactivateApplication_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4}, []string{"projects", "project_id", "applications", "id", "_deactivate"}, "")) - pattern_ManagementService_ReactivateApplication_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4}, []string{"projects", "project_id", "applications", "id", "_reactivate"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_ReactivateApplication_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4}, []string{"projects", "project_id", "applications", "id", "_reactivate"}, "")) - pattern_ManagementService_RemoveApplication_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"projects", "project_id", "applications", "id"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_RemoveApplication_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"projects", "project_id", "applications", "id"}, "")) - pattern_ManagementService_UpdateApplicationOIDCConfig_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4}, []string{"projects", "project_id", "applications", "application_id", "oidcconfig"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_UpdateApplicationOIDCConfig_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4}, []string{"projects", "project_id", "applications", "application_id", "oidcconfig"}, "")) - pattern_ManagementService_RegenerateOIDCClientSecret_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4, 2, 5}, []string{"projects", "project_id", "applications", "id", "oidcconfig", "_changeclientsecret"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_RegenerateOIDCClientSecret_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4, 2, 5}, []string{"projects", "project_id", "applications", "id", "oidcconfig", "_changeclientsecret"}, "")) - pattern_ManagementService_SearchProjectGrants_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 2, 3}, []string{"projects", "project_id", "grants", "_search"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_SearchProjectGrants_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 2, 3}, []string{"projects", "project_id", "grants", "_search"}, "")) - pattern_ManagementService_ProjectGrantByID_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"projects", "project_id", "grants", "id"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_ProjectGrantByID_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"projects", "project_id", "grants", "id"}, "")) - pattern_ManagementService_CreateProjectGrant_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"projects", "project_id", "grants"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_CreateProjectGrant_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"projects", "project_id", "grants"}, "")) - pattern_ManagementService_UpdateProjectGrant_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"projects", "project_id", "grants", "id"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_UpdateProjectGrant_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"projects", "project_id", "grants", "id"}, "")) - pattern_ManagementService_DeactivateProjectGrant_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4}, []string{"projects", "project_id", "grants", "id", "_deactivate"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_DeactivateProjectGrant_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4}, []string{"projects", "project_id", "grants", "id", "_deactivate"}, "")) - pattern_ManagementService_ReactivateProjectGrant_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4}, []string{"projects", "project_id", "grants", "id", "_reactivate"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_ReactivateProjectGrant_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4}, []string{"projects", "project_id", "grants", "id", "_reactivate"}, "")) - pattern_ManagementService_RemoveProjectGrant_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"projects", "project_id", "grants", "id"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_RemoveProjectGrant_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"projects", "project_id", "grants", "id"}, "")) - pattern_ManagementService_GetProjectGrantMemberRoles_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"projects", "grants", "members", "roles"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_GetProjectGrantMemberRoles_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"projects", "grants", "members", "roles"}, "")) - pattern_ManagementService_SearchProjectGrantMembers_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4, 2, 5}, []string{"projects", "project_id", "grants", "grant_id", "members", "_search"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_SearchProjectGrantMembers_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4, 2, 5}, []string{"projects", "project_id", "grants", "grant_id", "members", "_search"}, "")) - pattern_ManagementService_AddProjectGrantMember_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4}, []string{"projects", "project_id", "grants", "grant_id", "members"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_AddProjectGrantMember_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4}, []string{"projects", "project_id", "grants", "grant_id", "members"}, "")) - pattern_ManagementService_ChangeProjectGrantMember_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4, 1, 0, 4, 1, 5, 5}, []string{"projects", "project_id", "grants", "grant_id", "members", "user_id"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_ChangeProjectGrantMember_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4, 1, 0, 4, 1, 5, 5}, []string{"projects", "project_id", "grants", "grant_id", "members", "user_id"}, "")) - pattern_ManagementService_RemoveProjectGrantMember_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4, 1, 0, 4, 1, 5, 5}, []string{"projects", "project_id", "grants", "grant_id", "members", "user_id"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_RemoveProjectGrantMember_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4, 1, 0, 4, 1, 5, 5}, []string{"projects", "project_id", "grants", "grant_id", "members", "user_id"}, "")) - pattern_ManagementService_SearchUserGrants_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"users", "grants", "_search"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_SearchUserGrants_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"users", "grants", "_search"}, "")) - pattern_ManagementService_UserGrantByID_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"users", "user_id", "grants", "id"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_UserGrantByID_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"users", "user_id", "grants", "id"}, "")) - pattern_ManagementService_CreateUserGrant_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"users", "user_id", "grants"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_CreateUserGrant_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2}, []string{"users", "user_id", "grants"}, "")) - pattern_ManagementService_UpdateUserGrant_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"users", "user_id", "grants", "id"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_UpdateUserGrant_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"users", "user_id", "grants", "id"}, "")) - pattern_ManagementService_DeactivateUserGrant_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4}, []string{"users", "user_id", "grants", "id", "_deactivate"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_DeactivateUserGrant_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4}, []string{"users", "user_id", "grants", "id", "_deactivate"}, "")) - pattern_ManagementService_ReactivateUserGrant_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4}, []string{"users", "user_id", "grants", "id", "_reactivate"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_ReactivateUserGrant_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4}, []string{"users", "user_id", "grants", "id", "_reactivate"}, "")) - pattern_ManagementService_RemoveUserGrant_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"users", "user_id", "grants", "id"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_RemoveUserGrant_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"users", "user_id", "grants", "id"}, "")) - pattern_ManagementService_BulkRemoveUserGrant_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"usersgrants", "_bulk"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_ManagementService_BulkRemoveUserGrant_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"usersgrants", "_bulk"}, "")) + + pattern_ManagementService_IdpByID_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"orgs", "me", "idps", "id"}, "")) + + pattern_ManagementService_CreateOidcIdp_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"orgs", "me", "idps", "oidc"}, "")) + + pattern_ManagementService_UpdateIdpConfig_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"orgs", "me", "idps", "id"}, "")) + + pattern_ManagementService_DeactivateIdpConfig_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4}, []string{"orgs", "me", "idps", "id", "_deactivate"}, "")) + + pattern_ManagementService_ReactivateIdpConfig_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4}, []string{"orgs", "me", "idps", "id", "_reactivate"}, "")) + + pattern_ManagementService_RemoveIdpConfig_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"orgs", "me", "idps", "id"}, "")) + + pattern_ManagementService_UpdateOidcIdpConfig_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4}, []string{"orgs", "me", "idps", "idp_id", "oidcconfig"}, "")) + + pattern_ManagementService_SearchIdps_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"orgs", "me", "idps", "_search"}, "")) + + pattern_ManagementService_GetLoginPolicy_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"orgs", "me", "policies", "login"}, "")) + + pattern_ManagementService_CreateLoginPolicy_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"orgs", "me", "policies", "login"}, "")) + + pattern_ManagementService_UpdateLoginPolicy_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"orgs", "me", "policies", "login"}, "")) + + pattern_ManagementService_RemoveLoginPolicy_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"orgs", "me", "policies", "login"}, "")) + + pattern_ManagementService_GetLoginPolicyIdpProviders_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 2, 4, 2, 5}, []string{"orgs", "me", "policies", "login", "idpproviders", "_search"}, "")) + + pattern_ManagementService_AddIdpProviderToLoginPolicy_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 2, 4}, []string{"orgs", "me", "policies", "login", "idpproviders"}, "")) + + pattern_ManagementService_RemoveIdpProviderFromLoginPolicy_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 2, 4, 1, 0, 4, 1, 5, 5}, []string{"orgs", "me", "policies", "login", "idpproviders", "idp_config_id"}, "")) ) var ( @@ -11444,4 +6662,34 @@ var ( forward_ManagementService_RemoveUserGrant_0 = runtime.ForwardResponseMessage forward_ManagementService_BulkRemoveUserGrant_0 = runtime.ForwardResponseMessage + + forward_ManagementService_IdpByID_0 = runtime.ForwardResponseMessage + + forward_ManagementService_CreateOidcIdp_0 = runtime.ForwardResponseMessage + + forward_ManagementService_UpdateIdpConfig_0 = runtime.ForwardResponseMessage + + forward_ManagementService_DeactivateIdpConfig_0 = runtime.ForwardResponseMessage + + forward_ManagementService_ReactivateIdpConfig_0 = runtime.ForwardResponseMessage + + forward_ManagementService_RemoveIdpConfig_0 = runtime.ForwardResponseMessage + + forward_ManagementService_UpdateOidcIdpConfig_0 = runtime.ForwardResponseMessage + + forward_ManagementService_SearchIdps_0 = runtime.ForwardResponseMessage + + forward_ManagementService_GetLoginPolicy_0 = runtime.ForwardResponseMessage + + forward_ManagementService_CreateLoginPolicy_0 = runtime.ForwardResponseMessage + + forward_ManagementService_UpdateLoginPolicy_0 = runtime.ForwardResponseMessage + + forward_ManagementService_RemoveLoginPolicy_0 = runtime.ForwardResponseMessage + + forward_ManagementService_GetLoginPolicyIdpProviders_0 = runtime.ForwardResponseMessage + + forward_ManagementService_AddIdpProviderToLoginPolicy_0 = runtime.ForwardResponseMessage + + forward_ManagementService_RemoveIdpProviderFromLoginPolicy_0 = runtime.ForwardResponseMessage ) diff --git a/pkg/grpc/management/mock/management.proto.mock.go b/pkg/grpc/management/mock/management.proto.mock.go index 599c8df1c..979eaf80f 100644 --- a/pkg/grpc/management/mock/management.proto.mock.go +++ b/pkg/grpc/management/mock/management.proto.mock.go @@ -37,6 +37,26 @@ func (m *MockManagementServiceClient) EXPECT() *MockManagementServiceClientMockR return m.recorder } +// AddIdpProviderToLoginPolicy mocks base method +func (m *MockManagementServiceClient) AddIdpProviderToLoginPolicy(arg0 context.Context, arg1 *management.IdpProviderAdd, arg2 ...grpc.CallOption) (*management.IdpProvider, error) { + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "AddIdpProviderToLoginPolicy", varargs...) + ret0, _ := ret[0].(*management.IdpProvider) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// AddIdpProviderToLoginPolicy indicates an expected call of AddIdpProviderToLoginPolicy +func (mr *MockManagementServiceClientMockRecorder) AddIdpProviderToLoginPolicy(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, "AddIdpProviderToLoginPolicy", reflect.TypeOf((*MockManagementServiceClient)(nil).AddIdpProviderToLoginPolicy), varargs...) +} + // AddMyOrgDomain mocks base method func (m *MockManagementServiceClient) AddMyOrgDomain(arg0 context.Context, arg1 *management.AddOrgDomainRequest, arg2 ...grpc.CallOption) (*management.OrgDomain, error) { m.ctrl.T.Helper() @@ -337,6 +357,26 @@ func (mr *MockManagementServiceClientMockRecorder) ChangeUserPhone(arg0, arg1 in return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ChangeUserPhone", reflect.TypeOf((*MockManagementServiceClient)(nil).ChangeUserPhone), varargs...) } +// CreateLoginPolicy mocks base method +func (m *MockManagementServiceClient) CreateLoginPolicy(arg0 context.Context, arg1 *management.LoginPolicyAdd, arg2 ...grpc.CallOption) (*management.LoginPolicy, error) { + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "CreateLoginPolicy", varargs...) + ret0, _ := ret[0].(*management.LoginPolicy) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// CreateLoginPolicy indicates an expected call of CreateLoginPolicy +func (mr *MockManagementServiceClientMockRecorder) CreateLoginPolicy(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, "CreateLoginPolicy", reflect.TypeOf((*MockManagementServiceClient)(nil).CreateLoginPolicy), varargs...) +} + // CreateOIDCApplication mocks base method func (m *MockManagementServiceClient) CreateOIDCApplication(arg0 context.Context, arg1 *management.OIDCApplicationCreate, arg2 ...grpc.CallOption) (*management.Application, error) { m.ctrl.T.Helper() @@ -357,6 +397,26 @@ func (mr *MockManagementServiceClientMockRecorder) CreateOIDCApplication(arg0, a return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateOIDCApplication", reflect.TypeOf((*MockManagementServiceClient)(nil).CreateOIDCApplication), varargs...) } +// CreateOidcIdp mocks base method +func (m *MockManagementServiceClient) CreateOidcIdp(arg0 context.Context, arg1 *management.OidcIdpConfigCreate, arg2 ...grpc.CallOption) (*management.Idp, error) { + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "CreateOidcIdp", varargs...) + ret0, _ := ret[0].(*management.Idp) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// CreateOidcIdp indicates an expected call of CreateOidcIdp +func (mr *MockManagementServiceClientMockRecorder) CreateOidcIdp(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, "CreateOidcIdp", reflect.TypeOf((*MockManagementServiceClient)(nil).CreateOidcIdp), varargs...) +} + // CreateOrg mocks base method func (m *MockManagementServiceClient) CreateOrg(arg0 context.Context, arg1 *management.OrgCreateRequest, arg2 ...grpc.CallOption) (*management.Org, error) { m.ctrl.T.Helper() @@ -537,6 +597,26 @@ func (mr *MockManagementServiceClientMockRecorder) DeactivateApplication(arg0, a return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeactivateApplication", reflect.TypeOf((*MockManagementServiceClient)(nil).DeactivateApplication), varargs...) } +// DeactivateIdpConfig mocks base method +func (m *MockManagementServiceClient) DeactivateIdpConfig(arg0 context.Context, arg1 *management.IdpID, arg2 ...grpc.CallOption) (*management.Idp, error) { + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "DeactivateIdpConfig", varargs...) + ret0, _ := ret[0].(*management.Idp) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// DeactivateIdpConfig indicates an expected call of DeactivateIdpConfig +func (mr *MockManagementServiceClientMockRecorder) DeactivateIdpConfig(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, "DeactivateIdpConfig", reflect.TypeOf((*MockManagementServiceClient)(nil).DeactivateIdpConfig), varargs...) +} + // DeactivateMyOrg mocks base method func (m *MockManagementServiceClient) DeactivateMyOrg(arg0 context.Context, arg1 *emptypb.Empty, arg2 ...grpc.CallOption) (*management.Org, error) { m.ctrl.T.Helper() @@ -797,6 +877,46 @@ func (mr *MockManagementServiceClientMockRecorder) GetIam(arg0, arg1 interface{} return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetIam", reflect.TypeOf((*MockManagementServiceClient)(nil).GetIam), varargs...) } +// GetLoginPolicy mocks base method +func (m *MockManagementServiceClient) GetLoginPolicy(arg0 context.Context, arg1 *emptypb.Empty, arg2 ...grpc.CallOption) (*management.LoginPolicyView, error) { + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetLoginPolicy", varargs...) + ret0, _ := ret[0].(*management.LoginPolicyView) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetLoginPolicy indicates an expected call of GetLoginPolicy +func (mr *MockManagementServiceClientMockRecorder) GetLoginPolicy(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, "GetLoginPolicy", reflect.TypeOf((*MockManagementServiceClient)(nil).GetLoginPolicy), varargs...) +} + +// GetLoginPolicyIdpProviders mocks base method +func (m *MockManagementServiceClient) GetLoginPolicyIdpProviders(arg0 context.Context, arg1 *management.IdpProviderSearchRequest, arg2 ...grpc.CallOption) (*management.IdpProviderSearchResponse, error) { + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetLoginPolicyIdpProviders", varargs...) + ret0, _ := ret[0].(*management.IdpProviderSearchResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetLoginPolicyIdpProviders indicates an expected call of GetLoginPolicyIdpProviders +func (mr *MockManagementServiceClientMockRecorder) GetLoginPolicyIdpProviders(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, "GetLoginPolicyIdpProviders", reflect.TypeOf((*MockManagementServiceClient)(nil).GetLoginPolicyIdpProviders), varargs...) +} + // GetMyOrg mocks base method func (m *MockManagementServiceClient) GetMyOrg(arg0 context.Context, arg1 *emptypb.Empty, arg2 ...grpc.CallOption) (*management.OrgView, error) { m.ctrl.T.Helper() @@ -1157,6 +1277,26 @@ func (mr *MockManagementServiceClientMockRecorder) Healthz(arg0, arg1 interface{ return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Healthz", reflect.TypeOf((*MockManagementServiceClient)(nil).Healthz), varargs...) } +// IdpByID mocks base method +func (m *MockManagementServiceClient) IdpByID(arg0 context.Context, arg1 *management.IdpID, arg2 ...grpc.CallOption) (*management.IdpView, error) { + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "IdpByID", varargs...) + ret0, _ := ret[0].(*management.IdpView) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// IdpByID indicates an expected call of IdpByID +func (mr *MockManagementServiceClientMockRecorder) IdpByID(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, "IdpByID", reflect.TypeOf((*MockManagementServiceClient)(nil).IdpByID), varargs...) +} + // IsUserUnique mocks base method func (m *MockManagementServiceClient) IsUserUnique(arg0 context.Context, arg1 *management.UniqueUserRequest, arg2 ...grpc.CallOption) (*management.UniqueUserResponse, error) { m.ctrl.T.Helper() @@ -1297,6 +1437,26 @@ func (mr *MockManagementServiceClientMockRecorder) ReactivateApplication(arg0, a return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReactivateApplication", reflect.TypeOf((*MockManagementServiceClient)(nil).ReactivateApplication), varargs...) } +// ReactivateIdpConfig mocks base method +func (m *MockManagementServiceClient) ReactivateIdpConfig(arg0 context.Context, arg1 *management.IdpID, arg2 ...grpc.CallOption) (*management.Idp, error) { + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "ReactivateIdpConfig", varargs...) + ret0, _ := ret[0].(*management.Idp) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ReactivateIdpConfig indicates an expected call of ReactivateIdpConfig +func (mr *MockManagementServiceClientMockRecorder) ReactivateIdpConfig(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, "ReactivateIdpConfig", reflect.TypeOf((*MockManagementServiceClient)(nil).ReactivateIdpConfig), varargs...) +} + // ReactivateMyOrg mocks base method func (m *MockManagementServiceClient) ReactivateMyOrg(arg0 context.Context, arg1 *emptypb.Empty, arg2 ...grpc.CallOption) (*management.Org, error) { m.ctrl.T.Helper() @@ -1457,6 +1617,66 @@ func (mr *MockManagementServiceClientMockRecorder) RemoveApplication(arg0, arg1 return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveApplication", reflect.TypeOf((*MockManagementServiceClient)(nil).RemoveApplication), 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() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "RemoveIdpConfig", varargs...) + ret0, _ := ret[0].(*emptypb.Empty) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// RemoveIdpConfig indicates an expected call of RemoveIdpConfig +func (mr *MockManagementServiceClientMockRecorder) RemoveIdpConfig(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, "RemoveIdpConfig", reflect.TypeOf((*MockManagementServiceClient)(nil).RemoveIdpConfig), varargs...) +} + +// RemoveIdpProviderFromLoginPolicy mocks base method +func (m *MockManagementServiceClient) RemoveIdpProviderFromLoginPolicy(arg0 context.Context, arg1 *management.IdpProviderID, 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, "RemoveIdpProviderFromLoginPolicy", varargs...) + ret0, _ := ret[0].(*emptypb.Empty) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// RemoveIdpProviderFromLoginPolicy indicates an expected call of RemoveIdpProviderFromLoginPolicy +func (mr *MockManagementServiceClientMockRecorder) RemoveIdpProviderFromLoginPolicy(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, "RemoveIdpProviderFromLoginPolicy", reflect.TypeOf((*MockManagementServiceClient)(nil).RemoveIdpProviderFromLoginPolicy), varargs...) +} + +// RemoveLoginPolicy mocks base method +func (m *MockManagementServiceClient) RemoveLoginPolicy(arg0 context.Context, arg1 *emptypb.Empty, 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, "RemoveLoginPolicy", varargs...) + ret0, _ := ret[0].(*emptypb.Empty) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// RemoveLoginPolicy indicates an expected call of RemoveLoginPolicy +func (mr *MockManagementServiceClientMockRecorder) RemoveLoginPolicy(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, "RemoveLoginPolicy", reflect.TypeOf((*MockManagementServiceClient)(nil).RemoveLoginPolicy), varargs...) +} + // RemoveMyOrgDomain mocks base method func (m *MockManagementServiceClient) RemoveMyOrgDomain(arg0 context.Context, arg1 *management.RemoveOrgDomainRequest, arg2 ...grpc.CallOption) (*emptypb.Empty, error) { m.ctrl.T.Helper() @@ -1717,6 +1937,26 @@ func (mr *MockManagementServiceClientMockRecorder) SearchGrantedProjects(arg0, a return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SearchGrantedProjects", reflect.TypeOf((*MockManagementServiceClient)(nil).SearchGrantedProjects), varargs...) } +// SearchIdps mocks base method +func (m *MockManagementServiceClient) SearchIdps(arg0 context.Context, arg1 *management.IdpSearchRequest, arg2 ...grpc.CallOption) (*management.IdpSearchResponse, error) { + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "SearchIdps", varargs...) + ret0, _ := ret[0].(*management.IdpSearchResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// SearchIdps indicates an expected call of SearchIdps +func (mr *MockManagementServiceClientMockRecorder) SearchIdps(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, "SearchIdps", reflect.TypeOf((*MockManagementServiceClient)(nil).SearchIdps), varargs...) +} + // SearchMyOrgDomains mocks base method func (m *MockManagementServiceClient) SearchMyOrgDomains(arg0 context.Context, arg1 *management.OrgDomainSearchRequest, arg2 ...grpc.CallOption) (*management.OrgDomainSearchResponse, error) { m.ctrl.T.Helper() @@ -2037,6 +2277,66 @@ func (mr *MockManagementServiceClientMockRecorder) UpdateApplicationOIDCConfig(a return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateApplicationOIDCConfig", reflect.TypeOf((*MockManagementServiceClient)(nil).UpdateApplicationOIDCConfig), varargs...) } +// UpdateIdpConfig mocks base method +func (m *MockManagementServiceClient) UpdateIdpConfig(arg0 context.Context, arg1 *management.IdpUpdate, arg2 ...grpc.CallOption) (*management.Idp, error) { + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "UpdateIdpConfig", varargs...) + ret0, _ := ret[0].(*management.Idp) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateIdpConfig indicates an expected call of UpdateIdpConfig +func (mr *MockManagementServiceClientMockRecorder) UpdateIdpConfig(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, "UpdateIdpConfig", reflect.TypeOf((*MockManagementServiceClient)(nil).UpdateIdpConfig), varargs...) +} + +// UpdateLoginPolicy mocks base method +func (m *MockManagementServiceClient) UpdateLoginPolicy(arg0 context.Context, arg1 *management.LoginPolicy, arg2 ...grpc.CallOption) (*management.LoginPolicy, error) { + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "UpdateLoginPolicy", varargs...) + ret0, _ := ret[0].(*management.LoginPolicy) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateLoginPolicy indicates an expected call of UpdateLoginPolicy +func (mr *MockManagementServiceClientMockRecorder) UpdateLoginPolicy(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, "UpdateLoginPolicy", reflect.TypeOf((*MockManagementServiceClient)(nil).UpdateLoginPolicy), varargs...) +} + +// UpdateOidcIdpConfig mocks base method +func (m *MockManagementServiceClient) UpdateOidcIdpConfig(arg0 context.Context, arg1 *management.OidcIdpConfigUpdate, arg2 ...grpc.CallOption) (*management.OidcIdpConfig, error) { + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "UpdateOidcIdpConfig", varargs...) + ret0, _ := ret[0].(*management.OidcIdpConfig) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateOidcIdpConfig indicates an expected call of UpdateOidcIdpConfig +func (mr *MockManagementServiceClientMockRecorder) UpdateOidcIdpConfig(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, "UpdateOidcIdpConfig", reflect.TypeOf((*MockManagementServiceClient)(nil).UpdateOidcIdpConfig), varargs...) +} + // UpdatePasswordAgePolicy mocks base method func (m *MockManagementServiceClient) UpdatePasswordAgePolicy(arg0 context.Context, arg1 *management.PasswordAgePolicyUpdate, arg2 ...grpc.CallOption) (*management.PasswordAgePolicy, error) { m.ctrl.T.Helper() diff --git a/pkg/grpc/management/proto/management.proto b/pkg/grpc/management/proto/management.proto index a8e1734c7..e771e486d 100644 --- a/pkg/grpc/management/proto/management.proto +++ b/pkg/grpc/management/proto/management.proto @@ -950,7 +950,7 @@ service ManagementService { rpc CreateOIDCApplication(OIDCApplicationCreate) returns (Application) { option (google.api.http) = { - post: "/projects/{project_id}/oidcapplications" + post: "/projects/{project_id}/applications/oidc" body: "*" }; @@ -1243,10 +1243,172 @@ service ManagementService { body: "*" }; - option (caos.zitadel.utils.v1.auth_option) = { - permission: "user.grant.delete" - }; - } + option (caos.zitadel.utils.v1.auth_option) = { + permission: "user.grant.delete" + }; + } + + rpc IdpByID(IdpID) returns (IdpView) { + option (google.api.http) = { + get: "/orgs/me/idps/{id}" + }; + + option (caos.zitadel.utils.v1.auth_option) = { + permission: "org.idp.read" + }; + } + + rpc CreateOidcIdp(OidcIdpConfigCreate) returns (Idp) { + option (google.api.http) = { + post: "/orgs/me/idps/oidc" + body: "*" + }; + + option (caos.zitadel.utils.v1.auth_option) = { + permission: "org.idp.write" + }; + } + + rpc UpdateIdpConfig(IdpUpdate) returns (Idp) { + option (google.api.http) = { + put: "/orgs/me/idps/{id}" + body: "*" + }; + + option (caos.zitadel.utils.v1.auth_option) = { + permission: "org.idp.write" + }; + } + + rpc DeactivateIdpConfig(IdpID) returns (Idp) { + option (google.api.http) = { + put: "/orgs/me/idps/{id}/_deactivate" + body: "*" + }; + + option (caos.zitadel.utils.v1.auth_option) = { + permission: "org.idp.write" + }; + } + + rpc ReactivateIdpConfig(IdpID) returns (Idp) { + option (google.api.http) = { + put: "/orgs/me/idps/{id}/_reactivate" + body: "*" + }; + + option (caos.zitadel.utils.v1.auth_option) = { + permission: "org.idp.write" + }; + } + + rpc RemoveIdpConfig(IdpID) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/orgs/me/idps/{id}" + }; + + option (caos.zitadel.utils.v1.auth_option) = { + permission: "org.idp.write" + }; + } + + rpc UpdateOidcIdpConfig(OidcIdpConfigUpdate) returns (OidcIdpConfig) { + option (google.api.http) = { + put: "/orgs/me/idps/{idp_id}/oidcconfig" + body: "*" + }; + + option (caos.zitadel.utils.v1.auth_option) = { + permission: "org.idp.write" + }; + } + + rpc SearchIdps(IdpSearchRequest) returns (IdpSearchResponse) { + option (google.api.http) = { + post: "/orgs/me/idps/_search" + body: "*" + }; + + option (caos.zitadel.utils.v1.auth_option) = { + permission: "org.idp.read" + }; + } + + + rpc GetLoginPolicy(google.protobuf.Empty) returns (LoginPolicyView) { + option (google.api.http) = { + get: "/orgs/me/policies/login" + }; + + option (caos.zitadel.utils.v1.auth_option) = { + permission: "policy.read" + }; + } + + rpc CreateLoginPolicy(LoginPolicyAdd) returns (LoginPolicy) { + option (google.api.http) = { + post: "/orgs/me/policies/login" + body: "*" + }; + + option (caos.zitadel.utils.v1.auth_option) = { + permission: "policy.write" + }; + } + + rpc UpdateLoginPolicy(LoginPolicy) returns (LoginPolicy) { + option (google.api.http) = { + put: "/orgs/me/policies/login" + body: "*" + }; + + option (caos.zitadel.utils.v1.auth_option) = { + permission: "policy.write" + }; + } + + rpc RemoveLoginPolicy(google.protobuf.Empty) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/orgs/me/policies/login" + }; + + option (caos.zitadel.utils.v1.auth_option) = { + permission: "policy.delete" + }; + } + + rpc GetLoginPolicyIdpProviders(IdpProviderSearchRequest) returns (IdpProviderSearchResponse) { + option (google.api.http) = { + post: "/orgs/me/policies/login/idpproviders/_search" + body: "*" + }; + + option (caos.zitadel.utils.v1.auth_option) = { + permission: "policy.read" + }; + } + + rpc AddIdpProviderToLoginPolicy(IdpProviderAdd) returns (IdpProvider) { + option (google.api.http) = { + post: "/orgs/me/policies/login/idpproviders" + body: "*" + }; + + option (caos.zitadel.utils.v1.auth_option) = { + permission: "policy.write" + }; + } + + rpc RemoveIdpProviderFromLoginPolicy(IdpProviderID) returns (google.protobuf.Empty) { + option (google.api.http) = { + post: "/orgs/me/policies/login/idpproviders/{idp_config_id}" + body: "*" + }; + + option (caos.zitadel.utils.v1.auth_option) = { + permission: "policy.write" + }; + } } message ZitadelDocs { @@ -2583,3 +2745,173 @@ enum MemberType { MEMBERTYPE_PROJECT = 2; MEMBERTYPE_PROJECT_GRANT = 3; } + + +message IdpID { + string id = 1; +} + +message Idp { + string id = 1; + IdpState state = 2; + google.protobuf.Timestamp creation_date = 3; + google.protobuf.Timestamp change_date = 4; + string name = 5; + bytes logo_src = 6; + oneof idp_config { + OidcIdpConfig oidc_config = 7; + } + uint64 sequence = 8; +} + +message IdpUpdate { + string id = 1; + string name = 2; + bytes logo_src = 3; +} + +message OidcIdpConfig { + string client_id = 1; + string client_secret = 2; + string issuer = 3; + repeated string scopes = 4; +} +enum IdpState { + IDPCONFIGSTATE_UNSPECIFIED = 0; + IDPCONFIGSTATE_ACTIVE = 1; + IDPCONFIGSTATE_INACTIVE = 2; +} + +message OidcIdpConfigCreate { + string name = 1 [(validate.rules).string = {min_len: 1, max_len: 200}]; + bytes logo_src = 2; + string client_id = 3 [(validate.rules).string = {min_len: 1, max_len: 200}]; + 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; +} + +message OidcIdpConfigUpdate { + string idp_id = 1; + string client_id = 2 [(validate.rules).string = {min_len: 1, max_len: 200}]; + string client_secret = 3; + string issuer = 4 [(validate.rules).string = {min_len: 1, max_len: 200}]; + repeated string scopes = 5; +} + +message IdpSearchResponse { + uint64 offset = 1; + uint64 limit = 2; + uint64 total_result = 3; + repeated IdpView result = 4; + uint64 processed_sequence = 5; + google.protobuf.Timestamp view_timestamp = 6; +} + +message IdpView { + string id = 1; + IdpState state = 2; + google.protobuf.Timestamp creation_date = 3; + google.protobuf.Timestamp change_date = 4; + string name = 5; + bytes logo_src = 6; + IdpProviderType provider_type = 7; + oneof idp_config_view { + OidcIdpConfigView oidc_config = 8; + } + uint64 sequence = 9; +} + +message OidcIdpConfigView { + string client_id = 1; + string issuer = 2; + repeated string scopes = 3; +} + +message IdpSearchRequest { + uint64 offset = 1; + uint64 limit = 2; + repeated IdpSearchQuery queries = 3; +} + +message IdpSearchQuery { + IdpSearchKey key = 1 [(validate.rules).enum = {not_in: [0]}]; + SearchMethod method = 2; + string value = 3; +} + +enum IdpSearchKey { + IDPSEARCHKEY_UNSPECIFIED = 0; + IDPSEARCHKEY_IDP_CONFIG_ID = 1; + IDPSEARCHKEY_NAME = 2; + IDPSEARCHKEY_PROVIDER_TYPE = 3; +} + +message LoginPolicy { + bool allow_username_password = 1; + bool allow_register = 2; + bool allow_external_idp = 3; +} + +message LoginPolicyAdd { + bool allow_username_password = 1; + bool allow_register = 2; + bool allow_external_idp = 3; +} + +message IdpProviderID { + string idp_config_id = 1; +} + +message IdpProviderAdd { + string idp_config_id = 1 [(validate.rules).string = {min_len: 1, max_len: 200}]; + IdpProviderType idp_provider_type = 2; +} + +message IdpProvider { + string idp_config_id = 1; + IdpProviderType idp_provider_Type = 2; +} + +message LoginPolicyView { + bool default = 1; + bool allow_username_password = 2; + bool allow_register = 3; + bool allow_external_idp = 4; +} + +message IdpProviderViews { + repeated IdpProviderView providers = 1; +} + +message IdpProviderView { + string idp_config_id = 1; + string name = 2; + IdpType type = 3; +} + +enum IdpType { + IDPTYPE_UNSPECIFIED = 0; + IDPTYPE_OIDC = 1; + IDPTYPE_SAML = 2; +} + +enum IdpProviderType { + IDPPROVIDERTYPE_UNSPECIFIED = 0; + IDPPROVIDERTYPE_SYSTEM = 1; + IDPPROVIDERTYPE_ORG = 2; +} + +message IdpProviderSearchResponse { + uint64 offset = 1; + uint64 limit = 2; + uint64 total_result = 3; + repeated IdpProviderView result = 4; + uint64 processed_sequence = 5; + google.protobuf.Timestamp view_timestamp = 6; +} + +message IdpProviderSearchRequest { + uint64 offset = 1; + uint64 limit = 2; +}