From 23d7088093d99f4638ab818e5fd31fbd3b8b1ea2 Mon Sep 17 00:00:00 2001 From: Juan Antonio Osorio Date: Mon, 9 Oct 2023 10:15:20 +0300 Subject: [PATCH] cleanup: remove APIs we won't be exposing soon This removes the APIs that we don't intend to expose in the beginning. Leaving only the minimum necessary things for folks to self-enroll and for mediator to be useful. This also removes the tests that are no longer relevant. Closes: https://github.com/stacklok/mediator/issues/1141 --- docs/docs/protodocs/proto.md | 1133 +- internal/controlplane/default_project.go | 115 + internal/controlplane/handlers_authz_test.go | 133 +- .../controlplane/handlers_organization.go | 440 - .../handlers_organization_test.go | 935 -- internal/controlplane/handlers_projects.go | 334 - .../controlplane/handlers_projects_test.go | 702 - internal/controlplane/handlers_role.go | 399 - internal/controlplane/handlers_role_test.go | 684 - internal/controlplane/handlers_user.go | 241 +- internal/controlplane/handlers_user_test.go | 373 - internal/controlplane/register_handlers.go | 23 - internal/controlplane/server.go | 3 - .../openapi/mediator/v1/mediator.swagger.json | 1587 +-- .../protobuf/go/mediator/v1/mediator.pb.go | 11278 +++++----------- .../protobuf/go/mediator/v1/mediator.pb.gw.go | 4186 ++---- .../go/mediator/v1/mediator_grpc.pb.go | 979 +- proto/mediator/v1/mediator.proto | 565 +- 18 files changed, 4862 insertions(+), 19248 deletions(-) create mode 100644 internal/controlplane/default_project.go delete mode 100644 internal/controlplane/handlers_organization.go delete mode 100644 internal/controlplane/handlers_organization_test.go delete mode 100644 internal/controlplane/handlers_projects.go delete mode 100644 internal/controlplane/handlers_projects_test.go delete mode 100644 internal/controlplane/handlers_role.go delete mode 100644 internal/controlplane/handlers_role_test.go diff --git a/docs/docs/protodocs/proto.md b/docs/docs/protodocs/proto.md index 08dc115725..f8dd13d30c 100644 --- a/docs/docs/protodocs/proto.md +++ b/docs/docs/protodocs/proto.md @@ -14,28 +14,14 @@ - [Context](#mediator-v1-Context) - [CreateKeyPairRequest](#mediator-v1-CreateKeyPairRequest) - [CreateKeyPairResponse](#mediator-v1-CreateKeyPairResponse) - - [CreateOrganizationRequest](#mediator-v1-CreateOrganizationRequest) - - [CreateOrganizationResponse](#mediator-v1-CreateOrganizationResponse) - [CreateProfileRequest](#mediator-v1-CreateProfileRequest) - [CreateProfileResponse](#mediator-v1-CreateProfileResponse) - - [CreateProjectRequest](#mediator-v1-CreateProjectRequest) - - [CreateProjectResponse](#mediator-v1-CreateProjectResponse) - - [CreateRoleByOrganizationRequest](#mediator-v1-CreateRoleByOrganizationRequest) - - [CreateRoleByOrganizationResponse](#mediator-v1-CreateRoleByOrganizationResponse) - - [CreateRoleByProjectRequest](#mediator-v1-CreateRoleByProjectRequest) - - [CreateRoleByProjectResponse](#mediator-v1-CreateRoleByProjectResponse) - [CreateRuleTypeRequest](#mediator-v1-CreateRuleTypeRequest) - [CreateRuleTypeResponse](#mediator-v1-CreateRuleTypeResponse) - [CreateUserRequest](#mediator-v1-CreateUserRequest) - [CreateUserResponse](#mediator-v1-CreateUserResponse) - - [DeleteOrganizationRequest](#mediator-v1-DeleteOrganizationRequest) - - [DeleteOrganizationResponse](#mediator-v1-DeleteOrganizationResponse) - [DeleteProfileRequest](#mediator-v1-DeleteProfileRequest) - [DeleteProfileResponse](#mediator-v1-DeleteProfileResponse) - - [DeleteProjectRequest](#mediator-v1-DeleteProjectRequest) - - [DeleteProjectResponse](#mediator-v1-DeleteProjectResponse) - - [DeleteRoleRequest](#mediator-v1-DeleteRoleRequest) - - [DeleteRoleResponse](#mediator-v1-DeleteRoleResponse) - [DeleteRuleTypeRequest](#mediator-v1-DeleteRuleTypeRequest) - [DeleteRuleTypeResponse](#mediator-v1-DeleteRuleTypeResponse) - [DeleteUserRequest](#mediator-v1-DeleteUserRequest) @@ -52,12 +38,6 @@ - [GetAuthorizationURLResponse](#mediator-v1-GetAuthorizationURLResponse) - [GetBranchProtectionRequest](#mediator-v1-GetBranchProtectionRequest) - [GetBranchProtectionResponse](#mediator-v1-GetBranchProtectionResponse) - - [GetOrganizationByNameRequest](#mediator-v1-GetOrganizationByNameRequest) - - [GetOrganizationByNameResponse](#mediator-v1-GetOrganizationByNameResponse) - - [GetOrganizationRequest](#mediator-v1-GetOrganizationRequest) - - [GetOrganizationResponse](#mediator-v1-GetOrganizationResponse) - - [GetOrganizationsRequest](#mediator-v1-GetOrganizationsRequest) - - [GetOrganizationsResponse](#mediator-v1-GetOrganizationsResponse) - [GetProfileByIdRequest](#mediator-v1-GetProfileByIdRequest) - [GetProfileByIdResponse](#mediator-v1-GetProfileByIdResponse) - [GetProfileStatusByNameRequest](#mediator-v1-GetProfileStatusByNameRequest) @@ -65,26 +45,12 @@ - [GetProfileStatusByNameResponse](#mediator-v1-GetProfileStatusByNameResponse) - [GetProfileStatusByProjectRequest](#mediator-v1-GetProfileStatusByProjectRequest) - [GetProfileStatusByProjectResponse](#mediator-v1-GetProfileStatusByProjectResponse) - - [GetProjectByIdRequest](#mediator-v1-GetProjectByIdRequest) - - [GetProjectByIdResponse](#mediator-v1-GetProjectByIdResponse) - - [GetProjectByNameRequest](#mediator-v1-GetProjectByNameRequest) - - [GetProjectByNameResponse](#mediator-v1-GetProjectByNameResponse) - - [GetProjectsRequest](#mediator-v1-GetProjectsRequest) - - [GetProjectsResponse](#mediator-v1-GetProjectsResponse) - [GetPublicKeyRequest](#mediator-v1-GetPublicKeyRequest) - [GetPublicKeyResponse](#mediator-v1-GetPublicKeyResponse) - [GetRepositoryByIdRequest](#mediator-v1-GetRepositoryByIdRequest) - [GetRepositoryByIdResponse](#mediator-v1-GetRepositoryByIdResponse) - [GetRepositoryByNameRequest](#mediator-v1-GetRepositoryByNameRequest) - [GetRepositoryByNameResponse](#mediator-v1-GetRepositoryByNameResponse) - - [GetRoleByIdRequest](#mediator-v1-GetRoleByIdRequest) - - [GetRoleByIdResponse](#mediator-v1-GetRoleByIdResponse) - - [GetRoleByNameRequest](#mediator-v1-GetRoleByNameRequest) - - [GetRoleByNameResponse](#mediator-v1-GetRoleByNameResponse) - - [GetRolesByProjectRequest](#mediator-v1-GetRolesByProjectRequest) - - [GetRolesByProjectResponse](#mediator-v1-GetRolesByProjectResponse) - - [GetRolesRequest](#mediator-v1-GetRolesRequest) - - [GetRolesResponse](#mediator-v1-GetRolesResponse) - [GetRuleTypeByIdRequest](#mediator-v1-GetRuleTypeByIdRequest) - [GetRuleTypeByIdResponse](#mediator-v1-GetRuleTypeByIdResponse) - [GetRuleTypeByNameRequest](#mediator-v1-GetRuleTypeByNameRequest) @@ -93,18 +59,8 @@ - [GetSecretByIdResponse](#mediator-v1-GetSecretByIdResponse) - [GetSecretsRequest](#mediator-v1-GetSecretsRequest) - [GetSecretsResponse](#mediator-v1-GetSecretsResponse) - - [GetUserByIdRequest](#mediator-v1-GetUserByIdRequest) - - [GetUserByIdResponse](#mediator-v1-GetUserByIdResponse) - - [GetUserBySubjectRequest](#mediator-v1-GetUserBySubjectRequest) - - [GetUserBySubjectResponse](#mediator-v1-GetUserBySubjectResponse) - [GetUserRequest](#mediator-v1-GetUserRequest) - [GetUserResponse](#mediator-v1-GetUserResponse) - - [GetUsersByOrganizationRequest](#mediator-v1-GetUsersByOrganizationRequest) - - [GetUsersByOrganizationResponse](#mediator-v1-GetUsersByOrganizationResponse) - - [GetUsersByProjectRequest](#mediator-v1-GetUsersByProjectRequest) - - [GetUsersByProjectResponse](#mediator-v1-GetUsersByProjectResponse) - - [GetUsersRequest](#mediator-v1-GetUsersRequest) - - [GetUsersResponse](#mediator-v1-GetUsersResponse) - [GetVulnerabilitiesRequest](#mediator-v1-GetVulnerabilitiesRequest) - [GetVulnerabilitiesResponse](#mediator-v1-GetVulnerabilitiesResponse) - [GetVulnerabilityByIdRequest](#mediator-v1-GetVulnerabilityByIdRequest) @@ -122,14 +78,13 @@ - [ListRuleTypesResponse](#mediator-v1-ListRuleTypesResponse) - [LogOutRequest](#mediator-v1-LogOutRequest) - [LogOutResponse](#mediator-v1-LogOutResponse) - - [OrganizationRecord](#mediator-v1-OrganizationRecord) - [PrDependencies](#mediator-v1-PrDependencies) - [PrDependencies.ContextualDependency](#mediator-v1-PrDependencies-ContextualDependency) - [PrDependencies.ContextualDependency.FilePatch](#mediator-v1-PrDependencies-ContextualDependency-FilePatch) - [Profile](#mediator-v1-Profile) - [Profile.Rule](#mediator-v1-Profile-Rule) - [ProfileStatus](#mediator-v1-ProfileStatus) - - [ProjectRecord](#mediator-v1-ProjectRecord) + - [Project](#mediator-v1-Project) - [Provider](#mediator-v1-Provider) - [Provider.Context](#mediator-v1-Provider-Context) - [Provider.Definition](#mediator-v1-Provider-Definition) @@ -151,7 +106,6 @@ - [RevokeTokensResponse](#mediator-v1-RevokeTokensResponse) - [RevokeUserTokenRequest](#mediator-v1-RevokeUserTokenRequest) - [RevokeUserTokenResponse](#mediator-v1-RevokeUserTokenResponse) - - [RoleRecord](#mediator-v1-RoleRecord) - [RpcOptions](#mediator-v1-RpcOptions) - [RuleEvaluationStatus](#mediator-v1-RuleEvaluationStatus) - [RuleEvaluationStatus.EntityInfoEntry](#mediator-v1-RuleEvaluationStatus-EntityInfoEntry) @@ -190,11 +144,8 @@ - [HealthService](#mediator-v1-HealthService) - [KeyService](#mediator-v1-KeyService) - [OAuthService](#mediator-v1-OAuthService) - - [OrganizationService](#mediator-v1-OrganizationService) - [ProfileService](#mediator-v1-ProfileService) - - [ProjectService](#mediator-v1-ProjectService) - [RepositoryService](#mediator-v1-RepositoryService) - - [RoleService](#mediator-v1-RoleService) - [UserService](#mediator-v1-UserService) - [Scalar Value Types](#scalar-value-types) @@ -366,45 +317,6 @@ this normally refers to a combination of the provider, organization and project. - - -### CreateOrganizationRequest -Organization service - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| name | [string](#string) | | | -| company | [string](#string) | | | -| create_default_records | [bool](#bool) | | | - - - - - - - - -### CreateOrganizationResponse - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| id | [string](#string) | | | -| name | [string](#string) | | | -| company | [string](#string) | | | -| created_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | | -| updated_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | | -| default_project | [ProjectRecord](#mediator-v1-ProjectRecord) | optional | | -| default_roles | [RoleRecord](#mediator-v1-RoleRecord) | repeated | | -| default_user | [UserRecord](#mediator-v1-UserRecord) | optional | | - - - - - - ### CreateProfileRequest @@ -435,125 +347,6 @@ Profile service - - -### CreateProjectRequest -The CreateProjectRequest message represents a request to create a project - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| organization_id | [string](#string) | | | -| name | [string](#string) | | | -| description | [string](#string) | | | -| is_protected | [bool](#bool) | optional | | - - - - - - - - -### CreateProjectResponse - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| project_id | [string](#string) | | | -| organization_id | [string](#string) | | | -| name | [string](#string) | | | -| description | [string](#string) | | | -| is_protected | [bool](#bool) | | | -| created_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | | -| updated_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | | - - - - - - - - -### CreateRoleByOrganizationRequest -Role service - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| organization_id | [string](#string) | | | -| name | [string](#string) | | | -| is_admin | [bool](#bool) | optional | | -| is_protected | [bool](#bool) | optional | | - - - - - - - - -### CreateRoleByOrganizationResponse - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| id | [int32](#int32) | | | -| organization_id | [string](#string) | | | -| name | [string](#string) | | | -| is_admin | [bool](#bool) | | | -| is_protected | [bool](#bool) | | | -| created_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | | -| updated_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | | - - - - - - - - -### CreateRoleByProjectRequest - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| organization_id | [string](#string) | | | -| project_id | [string](#string) | | | -| name | [string](#string) | | | -| is_admin | [bool](#bool) | optional | | -| is_protected | [bool](#bool) | optional | | - - - - - - - - -### CreateRoleByProjectResponse - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| id | [int32](#int32) | | | -| organization_id | [string](#string) | | | -| project_id | [string](#string) | | | -| name | [string](#string) | | | -| is_admin | [bool](#bool) | | | -| is_protected | [bool](#bool) | | | -| created_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | | -| updated_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | | - - - - - - ### CreateRuleTypeRequest @@ -618,32 +411,6 @@ User service - - -### DeleteOrganizationRequest -DeleteOrganizationRequest represents a request to delete a organization - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| id | [string](#string) | | | -| force | [bool](#bool) | optional | | - - - - - - - - -### DeleteOrganizationResponse -DeleteOrganizationResponse represents a response to a delete organization request - - - - - - ### DeleteProfileRequest @@ -670,58 +437,6 @@ DeleteOrganizationResponse represents a response to a delete organization reques - - -### DeleteProjectRequest -DeleteProjectRequest represents a request to delete a project - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| id | [string](#string) | | | -| force | [bool](#bool) | optional | | - - - - - - - - -### DeleteProjectResponse -DeleteProjectResponse represents a response to a delete project request - - - - - - - - -### DeleteRoleRequest -delete role - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| id | [int32](#int32) | | | -| force | [bool](#bool) | optional | | - - - - - - - - -### DeleteRoleResponse - - - - - - - ### DeleteRuleTypeRequest @@ -850,948 +565,471 @@ DiffType defines the diff data ingester. | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | provider | [string](#string) | | | -| project_id | [string](#string) | | | -| code | [string](#string) | | | -| redirect_uri | [string](#string) | | | - - - - - - - - -### ExchangeCodeForTokenWEBResponse - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| access_token | [string](#string) | | | -| token_type | [string](#string) | | | -| expires_in | [int64](#int64) | | | -| status | [string](#string) | | | - - - - - - - - -### GetArtifactByIdRequest - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| id | [string](#string) | | | -| latest_versions | [int32](#int32) | | | -| tag | [string](#string) | | | - - - - - - - - -### GetArtifactByIdResponse - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| artifact | [Artifact](#mediator-v1-Artifact) | | | -| versions | [ArtifactVersion](#mediator-v1-ArtifactVersion) | repeated | | - - - - - - - - -### GetAuthorizationURLRequest - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| provider | [string](#string) | | | -| project_id | [string](#string) | | | -| cli | [bool](#bool) | | | -| port | [int32](#int32) | | | -| owner | [string](#string) | optional | | - - - - - - - - -### GetAuthorizationURLResponse - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| url | [string](#string) | | | - - - - - - - - -### GetBranchProtectionRequest - - - - - - - - - -### GetBranchProtectionResponse - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| branch_protections | [BranchProtection](#mediator-v1-BranchProtection) | repeated | | - - - - - - - - -### GetOrganizationByNameRequest -get organization by name - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| name | [string](#string) | | | - - - - - - - - -### GetOrganizationByNameResponse - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| organization | [OrganizationRecord](#mediator-v1-OrganizationRecord) | optional | | -| projects | [ProjectRecord](#mediator-v1-ProjectRecord) | repeated | | -| roles | [RoleRecord](#mediator-v1-RoleRecord) | repeated | | -| users | [UserRecord](#mediator-v1-UserRecord) | repeated | | - - - - - - - - -### GetOrganizationRequest -get organization by id - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| organization_id | [string](#string) | | | - - - - - - - - -### GetOrganizationResponse - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| organization | [OrganizationRecord](#mediator-v1-OrganizationRecord) | optional | | -| projects | [ProjectRecord](#mediator-v1-ProjectRecord) | repeated | | -| roles | [RoleRecord](#mediator-v1-RoleRecord) | repeated | | -| users | [UserRecord](#mediator-v1-UserRecord) | repeated | | - - - - - - - - -### GetOrganizationsRequest -list organizations - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| limit | [int32](#int32) | optional | | -| offset | [int32](#int32) | optional | | - - - - - - - - -### GetOrganizationsResponse - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| organizations | [OrganizationRecord](#mediator-v1-OrganizationRecord) | repeated | | - - - - - - - - -### GetProfileByIdRequest -get profile by id - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| context | [Context](#mediator-v1-Context) | | context is the context which contains the profiles | -| id | [string](#string) | | id is the id of the profile to get | - - - - - - - - -### GetProfileByIdResponse - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| profile | [Profile](#mediator-v1-Profile) | | | - - - - - - - - -### GetProfileStatusByNameRequest - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| context | [Context](#mediator-v1-Context) | | context is the context in which the rule type is evaluated. | -| name | [string](#string) | | name is the name of the profile to get | -| entity | [GetProfileStatusByNameRequest.EntityTypedId](#mediator-v1-GetProfileStatusByNameRequest-EntityTypedId) | | | -| all | [bool](#bool) | | | -| rule | [string](#string) | | | - - - - - - - - -### GetProfileStatusByNameRequest.EntityTypedId -EntiryTypeId is a message that carries an ID together with a type to uniquely identify an entity -such as (repo, 1), (artifact, 2), ... -if the struct is reused in other messages, it should be moved to a top-level definition - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| type | [Entity](#mediator-v1-Entity) | | entity is the entity to get status for. Incompatible with `all` | -| id | [string](#string) | | id is the ID of the entity to get status for. Incompatible with `all` | - - - - - - - - -### GetProfileStatusByNameResponse - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| profile_status | [ProfileStatus](#mediator-v1-ProfileStatus) | | profile_status is the status of the profile | -| rule_evaluation_status | [RuleEvaluationStatus](#mediator-v1-RuleEvaluationStatus) | repeated | rule_evaluation_status is the status of the rules | - - - - - - - - -### GetProfileStatusByProjectRequest - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| context | [Context](#mediator-v1-Context) | | context is the context in which the rule type is evaluated. | - - - - - - - - -### GetProfileStatusByProjectResponse - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| profile_status | [ProfileStatus](#mediator-v1-ProfileStatus) | repeated | profile_status is the status of the profile | - - - - - - - - -### GetProjectByIdRequest -The GetProjectByIdRequest message represents a request to get a project by ID - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| project_id | [string](#string) | | | - - - - - - - - -### GetProjectByIdResponse - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| project | [ProjectRecord](#mediator-v1-ProjectRecord) | optional | | -| roles | [RoleRecord](#mediator-v1-RoleRecord) | repeated | | -| users | [UserRecord](#mediator-v1-UserRecord) | repeated | | - - - - - - - - -### GetProjectByNameRequest -The GetProjectByNameRequest message represents a request to get a project by name - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| name | [string](#string) | | | - - - - - - - - -### GetProjectByNameResponse - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| project | [ProjectRecord](#mediator-v1-ProjectRecord) | optional | | -| roles | [RoleRecord](#mediator-v1-RoleRecord) | repeated | | -| users | [UserRecord](#mediator-v1-UserRecord) | repeated | | - - - - - - - - -### GetProjectsRequest -The GetProjectsRequest message represents a request to get an array of projects - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| organization_id | [string](#string) | | | -| limit | [int32](#int32) | | | -| offset | [int32](#int32) | | | - - - - - - - - -### GetProjectsResponse -The GetProjectsResponse message represents a response with an array of projects - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| projects | [ProjectRecord](#mediator-v1-ProjectRecord) | repeated | | - - - - - - - - -### GetPublicKeyRequest - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| key_identifier | [string](#string) | | | - - - - - - - - -### GetPublicKeyResponse - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| public_key | [string](#string) | | | - - - - - - - - -### GetRepositoryByIdRequest - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| repository_id | [string](#string) | | | - - - - - - - - -### GetRepositoryByIdResponse - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| repository | [RepositoryRecord](#mediator-v1-RepositoryRecord) | | | +| project_id | [string](#string) | | | +| code | [string](#string) | | | +| redirect_uri | [string](#string) | | | - + -### GetRepositoryByNameRequest +### ExchangeCodeForTokenWEBResponse | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| provider | [string](#string) | | | -| project_id | [string](#string) | | | -| name | [string](#string) | | | +| access_token | [string](#string) | | | +| token_type | [string](#string) | | | +| expires_in | [int64](#int64) | | | +| status | [string](#string) | | | - + -### GetRepositoryByNameResponse +### GetArtifactByIdRequest | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| repository | [RepositoryRecord](#mediator-v1-RepositoryRecord) | | | +| id | [string](#string) | | | +| latest_versions | [int32](#int32) | | | +| tag | [string](#string) | | | - + + +### GetArtifactByIdResponse -### GetRoleByIdRequest -get role by id | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| id | [int32](#int32) | | | +| artifact | [Artifact](#mediator-v1-Artifact) | | | +| versions | [ArtifactVersion](#mediator-v1-ArtifactVersion) | repeated | | - + -### GetRoleByIdResponse +### GetAuthorizationURLRequest | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| role | [RoleRecord](#mediator-v1-RoleRecord) | optional | | +| provider | [string](#string) | | | +| project_id | [string](#string) | | | +| cli | [bool](#bool) | | | +| port | [int32](#int32) | | | +| owner | [string](#string) | optional | | + + - +### GetAuthorizationURLResponse -### GetRoleByNameRequest -get role by project and name | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| organization_id | [string](#string) | | | -| name | [string](#string) | | | - - +| url | [string](#string) | | | - -### GetRoleByNameResponse + +### GetBranchProtectionRequest -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| role | [RoleRecord](#mediator-v1-RoleRecord) | optional | | - + -### GetRolesByProjectRequest +### GetBranchProtectionResponse | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| project_id | [string](#string) | | | -| limit | [int32](#int32) | optional | | -| offset | [int32](#int32) | optional | | - +| branch_protections | [BranchProtection](#mediator-v1-BranchProtection) | repeated | | - -### GetRolesByProjectResponse + +### GetProfileByIdRequest +get profile by id | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| roles | [RoleRecord](#mediator-v1-RoleRecord) | repeated | | +| context | [Context](#mediator-v1-Context) | | context is the context which contains the profiles | +| id | [string](#string) | | id is the id of the profile to get | + + - +### GetProfileByIdResponse -### GetRolesRequest -list roles | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| organization_id | [string](#string) | | | -| limit | [int32](#int32) | optional | | -| offset | [int32](#int32) | optional | | +| profile | [Profile](#mediator-v1-Profile) | | | - + -### GetRolesResponse +### GetProfileStatusByNameRequest | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| roles | [RoleRecord](#mediator-v1-RoleRecord) | repeated | | +| context | [Context](#mediator-v1-Context) | | context is the context in which the rule type is evaluated. | +| name | [string](#string) | | name is the name of the profile to get | +| entity | [GetProfileStatusByNameRequest.EntityTypedId](#mediator-v1-GetProfileStatusByNameRequest-EntityTypedId) | | | +| all | [bool](#bool) | | | +| rule | [string](#string) | | | - + -### GetRuleTypeByIdRequest -GetRuleTypeByIdRequest is the request to get a rule type by id. +### GetProfileStatusByNameRequest.EntityTypedId +EntiryTypeId is a message that carries an ID together with a type to uniquely identify an entity +such as (repo, 1), (artifact, 2), ... +if the struct is reused in other messages, it should be moved to a top-level definition | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| context | [Context](#mediator-v1-Context) | | context is the context in which the rule type is evaluated. | -| id | [string](#string) | | id is the id of the rule type. | +| type | [Entity](#mediator-v1-Entity) | | entity is the entity to get status for. Incompatible with `all` | +| id | [string](#string) | | id is the ID of the entity to get status for. Incompatible with `all` | - + + +### GetProfileStatusByNameResponse -### GetRuleTypeByIdResponse -GetRuleTypeByIdResponse is the response to get a rule type by id. | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| rule_type | [RuleType](#mediator-v1-RuleType) | | rule_type is the rule type. | +| profile_status | [ProfileStatus](#mediator-v1-ProfileStatus) | | profile_status is the status of the profile | +| rule_evaluation_status | [RuleEvaluationStatus](#mediator-v1-RuleEvaluationStatus) | repeated | rule_evaluation_status is the status of the rules | - + + +### GetProfileStatusByProjectRequest -### GetRuleTypeByNameRequest -GetRuleTypeByNameRequest is the request to get a rule type by name. | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | context | [Context](#mediator-v1-Context) | | context is the context in which the rule type is evaluated. | -| name | [string](#string) | | name is the name of the rule type. | - + + +### GetProfileStatusByProjectResponse -### GetRuleTypeByNameResponse -GetRuleTypeByNameResponse is the response to get a rule type by name. | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| rule_type | [RuleType](#mediator-v1-RuleType) | | rule_type is the rule type. | +| profile_status | [ProfileStatus](#mediator-v1-ProfileStatus) | repeated | profile_status is the status of the profile | - + -### GetSecretByIdRequest +### GetPublicKeyRequest | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| id | [string](#string) | | | +| key_identifier | [string](#string) | | | - + -### GetSecretByIdResponse +### GetPublicKeyResponse | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| id | [string](#string) | | | -| name | [string](#string) | | | -| description | [string](#string) | | Add other relevant fields | +| public_key | [string](#string) | | | - + -### GetSecretsRequest +### GetRepositoryByIdRequest +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| repository_id | [string](#string) | | | - -### GetSecretsResponse + + + +### GetRepositoryByIdResponse | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| secrets | [GetSecretByIdResponse](#mediator-v1-GetSecretByIdResponse) | repeated | | +| repository | [RepositoryRecord](#mediator-v1-RepositoryRecord) | | | - + + +### GetRepositoryByNameRequest -### GetUserByIdRequest -get user by id | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| user_id | [int32](#int32) | | | +| provider | [string](#string) | | | +| project_id | [string](#string) | | | +| name | [string](#string) | | | - + -### GetUserByIdResponse +### GetRepositoryByNameResponse | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| user | [UserRecord](#mediator-v1-UserRecord) | optional | | -| projects | [ProjectRecord](#mediator-v1-ProjectRecord) | repeated | | -| roles | [RoleRecord](#mediator-v1-RoleRecord) | repeated | | +| repository | [RepositoryRecord](#mediator-v1-RepositoryRecord) | | | - + -### GetUserBySubjectRequest -get user by subject +### GetRuleTypeByIdRequest +GetRuleTypeByIdRequest is the request to get a rule type by id. | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| subject | [string](#string) | | | - +| context | [Context](#mediator-v1-Context) | | context is the context in which the rule type is evaluated. | +| id | [string](#string) | | id is the id of the rule type. | - -### GetUserBySubjectResponse + +### GetRuleTypeByIdResponse +GetRuleTypeByIdResponse is the response to get a rule type by id. | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| user | [UserRecord](#mediator-v1-UserRecord) | optional | | -| projects | [ProjectRecord](#mediator-v1-ProjectRecord) | repeated | | -| roles | [RoleRecord](#mediator-v1-RoleRecord) | repeated | | +| rule_type | [RuleType](#mediator-v1-RuleType) | | rule_type is the rule type. | - + -### GetUserRequest -get user +### GetRuleTypeByNameRequest +GetRuleTypeByNameRequest is the request to get a rule type by name. +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| context | [Context](#mediator-v1-Context) | | context is the context in which the rule type is evaluated. | +| name | [string](#string) | | name is the name of the rule type. | - -### GetUserResponse + + +### GetRuleTypeByNameResponse +GetRuleTypeByNameResponse is the response to get a rule type by name. | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| user | [UserRecord](#mediator-v1-UserRecord) | optional | | -| projects | [ProjectRecord](#mediator-v1-ProjectRecord) | repeated | | -| roles | [RoleRecord](#mediator-v1-RoleRecord) | repeated | | +| rule_type | [RuleType](#mediator-v1-RuleType) | | rule_type is the rule type. | - + -### GetUsersByOrganizationRequest +### GetSecretByIdRequest | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| organization_id | [string](#string) | | | -| limit | [int32](#int32) | optional | | -| offset | [int32](#int32) | optional | | +| id | [string](#string) | | | - + -### GetUsersByOrganizationResponse +### GetSecretByIdResponse | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| users | [UserRecord](#mediator-v1-UserRecord) | repeated | | - - +| id | [string](#string) | | | +| name | [string](#string) | | | +| description | [string](#string) | | Add other relevant fields | - -### GetUsersByProjectRequest + +### GetSecretsRequest -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| project_id | [string](#string) | | | -| limit | [int32](#int32) | optional | | -| offset | [int32](#int32) | optional | | - + -### GetUsersByProjectResponse +### GetSecretsResponse | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| users | [UserRecord](#mediator-v1-UserRecord) | repeated | | +| secrets | [GetSecretByIdResponse](#mediator-v1-GetSecretByIdResponse) | repeated | | - + -### GetUsersRequest +### GetUserRequest list users - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| limit | [int32](#int32) | optional | | -| offset | [int32](#int32) | optional | | +get user - + -### GetUsersResponse +### GetUserResponse | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| users | [UserRecord](#mediator-v1-UserRecord) | repeated | | +| user | [UserRecord](#mediator-v1-UserRecord) | optional | | +| projects | [Project](#mediator-v1-Project) | repeated | | @@ -2064,25 +1302,6 @@ ListRuleTypesResponse is the response to list rule types. - - -### OrganizationRecord - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| id | [string](#string) | | | -| name | [string](#string) | | | -| company | [string](#string) | | | -| created_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | | -| updated_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | | - - - - - - ### PrDependencies @@ -2188,16 +1407,15 @@ get the overall profile status - + -### ProjectRecord -BUF does not allow grouping (which is a shame) +### Project +Project API Objects | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | project_id | [string](#string) | | | -| organization_id | [string](#string) | | | | name | [string](#string) | | | | description | [string](#string) | | | | is_protected | [bool](#bool) | | | @@ -2549,28 +1767,6 @@ This is used to fetch data from a REST endpoint. - - -### RoleRecord - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| id | [int32](#int32) | | | -| organization_id | [string](#string) | | | -| project_id | [string](#string) | optional | | -| name | [string](#string) | | | -| is_admin | [bool](#bool) | | | -| is_protected | [bool](#bool) | | | -| created_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | | -| updated_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | | - - - - - - ### RpcOptions @@ -3122,20 +2318,6 @@ protolint:disable:this | | VerifyProviderTokenFrom | [VerifyProviderTokenFromRequest](#mediator-v1-VerifyProviderTokenFromRequest) | [VerifyProviderTokenFromResponse](#mediator-v1-VerifyProviderTokenFromResponse) | VerifyProviderTokenFrom verifies that a token has been created for a provider since given timestamp | - - -### OrganizationService -manage Organizations CRUD - -| Method Name | Request Type | Response Type | Description | -| ----------- | ------------ | ------------- | ------------| -| CreateOrganization | [CreateOrganizationRequest](#mediator-v1-CreateOrganizationRequest) | [CreateOrganizationResponse](#mediator-v1-CreateOrganizationResponse) | | -| GetOrganizations | [GetOrganizationsRequest](#mediator-v1-GetOrganizationsRequest) | [GetOrganizationsResponse](#mediator-v1-GetOrganizationsResponse) | | -| GetOrganization | [GetOrganizationRequest](#mediator-v1-GetOrganizationRequest) | [GetOrganizationResponse](#mediator-v1-GetOrganizationResponse) | | -| GetOrganizationByName | [GetOrganizationByNameRequest](#mediator-v1-GetOrganizationByNameRequest) | [GetOrganizationByNameResponse](#mediator-v1-GetOrganizationByNameResponse) | | -| DeleteOrganization | [DeleteOrganizationRequest](#mediator-v1-DeleteOrganizationRequest) | [DeleteOrganizationResponse](#mediator-v1-DeleteOrganizationResponse) | | - - ### ProfileService @@ -3157,20 +2339,6 @@ manage Organizations CRUD | DeleteRuleType | [DeleteRuleTypeRequest](#mediator-v1-DeleteRuleTypeRequest) | [DeleteRuleTypeResponse](#mediator-v1-DeleteRuleTypeResponse) | | - - -### ProjectService -manage Projects CRUD - -| Method Name | Request Type | Response Type | Description | -| ----------- | ------------ | ------------- | ------------| -| CreateProject | [CreateProjectRequest](#mediator-v1-CreateProjectRequest) | [CreateProjectResponse](#mediator-v1-CreateProjectResponse) | | -| GetProjects | [GetProjectsRequest](#mediator-v1-GetProjectsRequest) | [GetProjectsResponse](#mediator-v1-GetProjectsResponse) | | -| GetProjectByName | [GetProjectByNameRequest](#mediator-v1-GetProjectByNameRequest) | [GetProjectByNameResponse](#mediator-v1-GetProjectByNameResponse) | | -| GetProjectById | [GetProjectByIdRequest](#mediator-v1-GetProjectByIdRequest) | [GetProjectByIdResponse](#mediator-v1-GetProjectByIdResponse) | | -| DeleteProject | [DeleteProjectRequest](#mediator-v1-DeleteProjectRequest) | [DeleteProjectResponse](#mediator-v1-DeleteProjectResponse) | | - - ### RepositoryService @@ -3185,22 +2353,6 @@ manage Projects CRUD | GetRepositoryByName | [GetRepositoryByNameRequest](#mediator-v1-GetRepositoryByNameRequest) | [GetRepositoryByNameResponse](#mediator-v1-GetRepositoryByNameResponse) | | - - -### RoleService -manage Roles CRUD - -| Method Name | Request Type | Response Type | Description | -| ----------- | ------------ | ------------- | ------------| -| CreateRoleByOrganization | [CreateRoleByOrganizationRequest](#mediator-v1-CreateRoleByOrganizationRequest) | [CreateRoleByOrganizationResponse](#mediator-v1-CreateRoleByOrganizationResponse) | | -| CreateRoleByProject | [CreateRoleByProjectRequest](#mediator-v1-CreateRoleByProjectRequest) | [CreateRoleByProjectResponse](#mediator-v1-CreateRoleByProjectResponse) | | -| DeleteRole | [DeleteRoleRequest](#mediator-v1-DeleteRoleRequest) | [DeleteRoleResponse](#mediator-v1-DeleteRoleResponse) | | -| GetRoles | [GetRolesRequest](#mediator-v1-GetRolesRequest) | [GetRolesResponse](#mediator-v1-GetRolesResponse) | | -| GetRolesByProject | [GetRolesByProjectRequest](#mediator-v1-GetRolesByProjectRequest) | [GetRolesByProjectResponse](#mediator-v1-GetRolesByProjectResponse) | | -| GetRoleById | [GetRoleByIdRequest](#mediator-v1-GetRoleByIdRequest) | [GetRoleByIdResponse](#mediator-v1-GetRoleByIdResponse) | | -| GetRoleByName | [GetRoleByNameRequest](#mediator-v1-GetRoleByNameRequest) | [GetRoleByNameResponse](#mediator-v1-GetRoleByNameResponse) | | - - ### UserService @@ -3210,11 +2362,6 @@ manage Users CRUD | ----------- | ------------ | ------------- | ------------| | CreateUser | [CreateUserRequest](#mediator-v1-CreateUserRequest) | [CreateUserResponse](#mediator-v1-CreateUserResponse) | | | DeleteUser | [DeleteUserRequest](#mediator-v1-DeleteUserRequest) | [DeleteUserResponse](#mediator-v1-DeleteUserResponse) | | -| GetUsers | [GetUsersRequest](#mediator-v1-GetUsersRequest) | [GetUsersResponse](#mediator-v1-GetUsersResponse) | | -| GetUsersByOrganization | [GetUsersByOrganizationRequest](#mediator-v1-GetUsersByOrganizationRequest) | [GetUsersByOrganizationResponse](#mediator-v1-GetUsersByOrganizationResponse) | | -| GetUsersByProject | [GetUsersByProjectRequest](#mediator-v1-GetUsersByProjectRequest) | [GetUsersByProjectResponse](#mediator-v1-GetUsersByProjectResponse) | | -| GetUserById | [GetUserByIdRequest](#mediator-v1-GetUserByIdRequest) | [GetUserByIdResponse](#mediator-v1-GetUserByIdResponse) | | -| GetUserBySubject | [GetUserBySubjectRequest](#mediator-v1-GetUserBySubjectRequest) | [GetUserBySubjectResponse](#mediator-v1-GetUserBySubjectResponse) | | | GetUser | [GetUserRequest](#mediator-v1-GetUserRequest) | [GetUserResponse](#mediator-v1-GetUserResponse) | | diff --git a/internal/controlplane/default_project.go b/internal/controlplane/default_project.go new file mode 100644 index 0000000000..475c70503b --- /dev/null +++ b/internal/controlplane/default_project.go @@ -0,0 +1,115 @@ +// +// Copyright 2023 Stacklok, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package controlplane + +import ( + "context" + "encoding/json" + "fmt" + + "github.com/google/uuid" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" + "google.golang.org/protobuf/types/known/timestamppb" + + "github.com/stacklok/mediator/internal/db" + github "github.com/stacklok/mediator/internal/providers/github" + pb "github.com/stacklok/mediator/pkg/api/protobuf/go/mediator/v1" +) + +// OrgMeta is the metadata associated with an organization +type OrgMeta struct { + Company string `json:"company"` +} + +// ProjectMeta is the metadata associated with a project +type ProjectMeta struct { + Description string `json:"description"` + IsProtected bool `json:"is_protected"` +} + +// CreateDefaultRecordsForOrg creates the default records, such as projects, roles and provider for the organization +func CreateDefaultRecordsForOrg(ctx context.Context, qtx db.Querier, + org db.Project, projectName string) (*pb.Project, []int32, error) { + projectmeta := &ProjectMeta{ + IsProtected: true, + Description: fmt.Sprintf("Default admin project for %s", org.Name), + } + + jsonmeta, err := json.Marshal(projectmeta) + if err != nil { + return nil, nil, status.Errorf(codes.Internal, "failed to marshal meta: %v", err) + } + + // we need to create the default records for the organization + project, err := qtx.CreateProject(ctx, db.CreateProjectParams{ + ParentID: uuid.NullUUID{ + UUID: org.ID, + Valid: true, + }, + Name: projectName, + Metadata: jsonmeta, + }) + if err != nil { + return nil, nil, status.Errorf(codes.Internal, "failed to create default project: %v", err) + } + + prj := pb.Project{ + ProjectId: project.ID.String(), + Name: project.Name, + Description: projectmeta.Description, + IsProtected: projectmeta.IsProtected, + CreatedAt: timestamppb.New(project.CreatedAt), + UpdatedAt: timestamppb.New(project.UpdatedAt), + } + + // we can create the default role for org and for project + // This creates the role for the organization admin + role1, err := qtx.CreateRole(ctx, db.CreateRoleParams{ + OrganizationID: org.ID, + Name: fmt.Sprintf("%s-org-admin", org.Name), + IsAdmin: true, + IsProtected: true, + }) + if err != nil { + return nil, nil, status.Errorf(codes.Internal, "failed to create default org role: %v", err) + } + + // this creates te role for the project admin + role2, err := qtx.CreateRole(ctx, db.CreateRoleParams{ + OrganizationID: org.ID, + ProjectID: uuid.NullUUID{UUID: project.ID, Valid: true}, + Name: fmt.Sprintf("%s-project-admin", org.Name), + IsAdmin: true, + IsProtected: true, + }) + + if err != nil { + return nil, nil, status.Errorf(codes.Internal, "failed to create default project role: %v", err) + } + + // Create GitHub provider + _, err = qtx.CreateProvider(ctx, db.CreateProviderParams{ + Name: github.Github, + ProjectID: project.ID, + Implements: github.Implements, + Definition: json.RawMessage(`{"github": {}}`), + }) + if err != nil { + return nil, nil, status.Errorf(codes.Internal, "failed to create provider: %v", err) + } + return &prj, []int32{role1.ID, role2.ID}, nil +} diff --git a/internal/controlplane/handlers_authz_test.go b/internal/controlplane/handlers_authz_test.go index 4fe2984594..795ec91bc7 100644 --- a/internal/controlplane/handlers_authz_test.go +++ b/internal/controlplane/handlers_authz_test.go @@ -14,134 +14,5 @@ package controlplane -import ( - "context" - "testing" - - "github.com/golang/mock/gomock" - "github.com/google/uuid" - "github.com/stretchr/testify/assert" - "google.golang.org/grpc" - - mockdb "github.com/stacklok/mediator/database/mock" - "github.com/stacklok/mediator/internal/auth" - pb "github.com/stacklok/mediator/pkg/api/protobuf/go/mediator/v1" -) - -func TestIsSuperadminAuthorized(t *testing.T) { - t.Parallel() - - ctrl := gomock.NewController(t) - defer ctrl.Finish() - - orgID := uuid.New() - projectID := uuid.New() - - request := &pb.GetProjectByIdRequest{ProjectId: projectID.String()} - // Create a new context and set the claims value - ctx := auth.WithPermissionsContext(context.Background(), auth.UserPermissions{ - UserId: 1, - OrganizationId: orgID, - ProjectIds: []uuid.UUID{projectID}, - IsStaff: true, // TODO: remove this - Roles: []auth.RoleInfo{ - {RoleID: 1, IsAdmin: true, ProjectID: &projectID, OrganizationID: orgID}}, - }) - - mockStore := mockdb.NewMockStore(ctrl) - mockStore.EXPECT().GetProjectByID(ctx, gomock.Any()) - mockStore.EXPECT().ListRolesByProjectID(ctx, gomock.Any()) - mockStore.EXPECT().ListUsersByProject(ctx, gomock.Any()) - - server := &Server{ - store: mockStore, - } - - response, err := server.GetProjectById(ctx, request) - - assert.NoError(t, err) - assert.NotNil(t, response) -} - -func TestIsNonadminAuthorized(t *testing.T) { - t.Parallel() - - ctrl := gomock.NewController(t) - defer ctrl.Finish() - - orgID := uuid.New() - projectID := uuid.New() - - request := &pb.CreateRoleByOrganizationRequest{OrganizationId: orgID.String(), Name: "test"} - // Create a new context and set the claims value - ctx := auth.WithPermissionsContext(context.Background(), auth.UserPermissions{ - UserId: 1, - OrganizationId: orgID, - ProjectIds: []uuid.UUID{projectID}, - Roles: []auth.RoleInfo{ - {RoleID: 1, IsAdmin: false, ProjectID: &projectID, OrganizationID: orgID}}, - }) - - rpcOpts, err := optionsForMethod(&grpc.UnaryServerInfo{FullMethod: "/mediator.v1.RoleService/CreateRoleByOrganization"}) - if err != nil { - t.Fatalf("Unable to get rpc options: %v", err) - } - ctx = withRpcOptions(ctx, rpcOpts) - - mockStore := mockdb.NewMockStore(ctrl) - server := &Server{ - store: mockStore, - } - mockStore.EXPECT().CreateRole(ctx, gomock.Any()).Times(0) - - _, err = server.CreateRoleByOrganization(ctx, request) - - t.Logf("Got error: %v", err) - - if err == nil { - t.Error("Expected error when user is not authorized, but got nil") - } else { - t.Logf("Successfully received error when user is not authorized: %v", err) - } -} - -func TestByResourceUnauthorized(t *testing.T) { - t.Parallel() - - ctrl := gomock.NewController(t) - defer ctrl.Finish() - - orgID := uuid.New() - projectID1 := uuid.New() - projectID2 := uuid.New() - - request := &pb.GetRoleByIdRequest{Id: 1} - // Create a new context and set the claims value - ctx := auth.WithPermissionsContext(context.Background(), auth.UserPermissions{ - UserId: 2, - OrganizationId: orgID, - ProjectIds: []uuid.UUID{projectID1}, - Roles: []auth.RoleInfo{ - {RoleID: 2, IsAdmin: true, ProjectID: &projectID2, OrganizationID: orgID}}, - }) - - rpcOpts, err := optionsForMethod(&grpc.UnaryServerInfo{FullMethod: "/mediator.v1.RoleService/GetRoleById"}) - if err != nil { - t.Fatalf("Unable to get rpc options: %v", err) - } - ctx = withRpcOptions(ctx, rpcOpts) - - mockStore := mockdb.NewMockStore(ctrl) - server := &Server{ - store: mockStore, - } - mockStore.EXPECT().GetRoleByID(ctx, gomock.Any()).Times(1) - - _, err = server.GetRoleById(ctx, request) - - if err == nil { - t.Error("Expected error when user is not authorized, but got nil") - } else { - t.Logf("Successfully received error when user is not authorized: %v", err) - } -} +// TODO: We shoul come up with a different set of tests for authorization +// since we no longer have most privileged operations. diff --git a/internal/controlplane/handlers_organization.go b/internal/controlplane/handlers_organization.go deleted file mode 100644 index 12ae588909..0000000000 --- a/internal/controlplane/handlers_organization.go +++ /dev/null @@ -1,440 +0,0 @@ -// Copyright 2023 Stacklok, Inc -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package controlplane - -import ( - "context" - "database/sql" - "encoding/json" - "errors" - "fmt" - - "github.com/go-playground/validator/v10" - "github.com/google/uuid" - "google.golang.org/grpc/codes" - "google.golang.org/grpc/status" - "google.golang.org/protobuf/types/known/timestamppb" - - "github.com/stacklok/mediator/internal/db" - "github.com/stacklok/mediator/internal/providers/github" - "github.com/stacklok/mediator/internal/util" - pb "github.com/stacklok/mediator/pkg/api/protobuf/go/mediator/v1" -) - -// OrgMeta is the metadata associated with an organization -type OrgMeta struct { - Company string `json:"company"` -} - -type createOrganizationValidation struct { - Name string `db:"name" validate:"required"` - Company string `db:"company" validate:"required"` -} - -// CreateOrganization is a service for creating an organization -// nolint:gocyclo // we should reactor this later. -func (s *Server) CreateOrganization(ctx context.Context, - in *pb.CreateOrganizationRequest) (*pb.CreateOrganizationResponse, error) { - // validate that the company and name are not empty - validator := validator.New() - err := validator.Struct(createOrganizationValidation{Name: in.Name, Company: in.Company}) - if err != nil { - return nil, status.Errorf(codes.InvalidArgument, "invalid argument: %v", err) - } - - tx, err := s.store.BeginTransaction() - if err != nil { - return nil, status.Errorf(codes.Internal, "failed to begin transaction") - } - defer s.store.Rollback(tx) - qtx := s.store.GetQuerierWithTransaction(tx) - if qtx == nil { - return nil, status.Errorf(codes.Internal, "failed to get transaction") - } - - meta := OrgMeta{Company: in.Company} - jsonmeta, err := json.Marshal(meta) - if err != nil { - return nil, status.Errorf(codes.Internal, "failed to marshal meta: %v", err) - } - - org, err := qtx.CreateOrganization(ctx, db.CreateOrganizationParams{Name: in.Name, Metadata: jsonmeta}) - if err != nil { - return nil, status.Errorf(codes.Internal, "failed to create organization: %v", err) - } - - response := &pb.CreateOrganizationResponse{Id: org.ID.String(), Name: org.Name, - Company: meta.Company, CreatedAt: timestamppb.New(org.CreatedAt), - UpdatedAt: timestamppb.New(org.UpdatedAt)} - - if in.CreateDefaultRecords { - // we need to create the default records for the organization - defaultProject, defaultRoles, err := CreateDefaultRecordsForOrg(ctx, qtx, org, org.Name+"-project") - if err != nil { - return nil, err - } - response.DefaultProject = defaultProject - response.DefaultRoles = defaultRoles - } - // commit and return - err = s.store.Commit(tx) - if err != nil { - return nil, status.Errorf(codes.Internal, "failed to commit transaction") - } - - return response, nil -} - -// CreateDefaultRecordsForOrg creates the default records, such as projects, roles and provider for the organization -func CreateDefaultRecordsForOrg(ctx context.Context, qtx db.Querier, - org db.Project, projectName string) (*pb.ProjectRecord, []*pb.RoleRecord, error) { - projectmeta := &ProjectMeta{ - IsProtected: true, - Description: fmt.Sprintf("Default admin project for %s", org.Name), - } - - jsonmeta, err := json.Marshal(projectmeta) - if err != nil { - return nil, nil, status.Errorf(codes.Internal, "failed to marshal meta: %v", err) - } - - // we need to create the default records for the organization - project, err := qtx.CreateProject(ctx, db.CreateProjectParams{ - ParentID: uuid.NullUUID{ - UUID: org.ID, - Valid: true, - }, - Name: projectName, - Metadata: jsonmeta, - }) - if err != nil { - return nil, nil, status.Errorf(codes.Internal, "failed to create default project: %v", err) - } - - prj := pb.ProjectRecord{ - ProjectId: project.ID.String(), - OrganizationId: project.ParentID.UUID.String(), - Name: project.Name, - Description: projectmeta.Description, - IsProtected: projectmeta.IsProtected, - CreatedAt: timestamppb.New(project.CreatedAt), - UpdatedAt: timestamppb.New(project.UpdatedAt), - } - - // we can create the default role for org and for project - role, err := qtx.CreateRole(ctx, db.CreateRoleParams{ - OrganizationID: org.ID, - Name: fmt.Sprintf("%s-org-admin", org.Name), - IsAdmin: true, - IsProtected: true, - }) - if err != nil { - return nil, nil, status.Errorf(codes.Internal, "failed to create default org role: %v", err) - } - - roleProject, err := qtx.CreateRole(ctx, db.CreateRoleParams{ - OrganizationID: org.ID, - ProjectID: uuid.NullUUID{UUID: project.ID, Valid: true}, - Name: fmt.Sprintf("%s-project-admin", org.Name), - IsAdmin: true, - IsProtected: true, - }) - - if err != nil { - return nil, nil, status.Errorf(codes.Internal, "failed to create default project role: %v", err) - } - - pID := roleProject.ProjectID.UUID.String() - rl := pb.RoleRecord{Id: role.ID, OrganizationId: role.OrganizationID.String(), Name: role.Name, IsAdmin: role.IsAdmin, - IsProtected: role.IsProtected, CreatedAt: timestamppb.New(role.CreatedAt), UpdatedAt: timestamppb.New(role.UpdatedAt)} - rg := pb.RoleRecord{Id: roleProject.ID, Name: roleProject.Name, ProjectId: &pID, - IsAdmin: roleProject.IsAdmin, IsProtected: roleProject.IsProtected, - CreatedAt: timestamppb.New(roleProject.CreatedAt), UpdatedAt: timestamppb.New(roleProject.UpdatedAt)} - - // Create GitHub provider - _, err = qtx.CreateProvider(ctx, db.CreateProviderParams{ - Name: github.Github, - ProjectID: project.ID, - Implements: github.Implements, - Definition: json.RawMessage(`{"github": {}}`), - }) - if err != nil { - return nil, nil, status.Errorf(codes.Internal, "failed to create provider: %v", err) - } - return &prj, []*pb.RoleRecord{&rl, &rg}, nil -} - -// GetOrganizations is a service for getting a list of organizations -func (s *Server) GetOrganizations(ctx context.Context, - in *pb.GetOrganizationsRequest) (*pb.GetOrganizationsResponse, error) { - - // define default values for limit and offset - if in.Limit == nil || *in.Limit == -1 { - in.Limit = new(int32) - *in.Limit = PaginationLimit - } - if in.Offset == nil { - in.Offset = new(int32) - *in.Offset = 0 - } - - orgs, err := s.store.ListOrganizations(ctx, db.ListOrganizationsParams{ - Limit: *in.Limit, - Offset: *in.Offset, - }) - if err != nil { - return nil, status.Errorf(codes.Unknown, "failed to get projects: %s", err) - } - - var resp pb.GetOrganizationsResponse - resp.Organizations = make([]*pb.OrganizationRecord, 0, len(orgs)) - for _, org := range orgs { - var orgmeta OrgMeta - err := json.Unmarshal(org.Metadata, &orgmeta) - if err != nil { - return nil, status.Errorf(codes.Internal, "failed to unmarshal metadata: %s", err) - } - - resp.Organizations = append(resp.Organizations, &pb.OrganizationRecord{ - Id: org.ID.String(), - Name: org.Name, - Company: orgmeta.Company, - CreatedAt: timestamppb.New(org.CreatedAt), - UpdatedAt: timestamppb.New(org.UpdatedAt), - }) - } - - return &resp, nil -} - -func getOrganizationDependencies(ctx context.Context, store db.Store, - org db.Project) ([]*pb.ProjectRecord, []*pb.RoleRecord, []*pb.UserRecord, error) { - const MAX_ITEMS = 999 - // get the projects for the organization - projects, err := store.GetChildrenProjects(ctx, org.ID) - if err != nil { - return nil, nil, nil, err - } - - // if there are more than one project, we need to remove the calling project - // from the list - if len(projects) > 1 { - // NOTE(jaosorior): We need to remove the calling project from the list - // since it's included in the list of projects. - projects = projects[db.CalculateProjectHierarchyOffset(0):] - } - - // get the roles for the organization - roles, err := store.ListRoles(ctx, db.ListRolesParams{OrganizationID: org.ID, Limit: MAX_ITEMS, Offset: 0}) - if err != nil { - return nil, nil, nil, err - } - - users, err := store.ListUsersByOrganization(ctx, - db.ListUsersByOrganizationParams{OrganizationID: org.ID, Limit: MAX_ITEMS, Offset: 0}) - if err != nil { - return nil, nil, nil, err - } - - // convert to right data type - var projectsPB []*pb.ProjectRecord - for _, project := range projects { - projectsPB = append(projectsPB, &pb.ProjectRecord{ - ProjectId: project.ID.String(), - OrganizationId: project.ParentID.UUID.String(), - Name: project.Name, - CreatedAt: timestamppb.New(project.CreatedAt), - UpdatedAt: timestamppb.New(project.UpdatedAt), - }) - } - - var rolesPB []*pb.RoleRecord - for idx := range roles { - role := &roles[idx] - pID := role.ProjectID.UUID.String() - rolesPB = append(rolesPB, &pb.RoleRecord{ - Id: role.ID, - OrganizationId: role.OrganizationID.String(), - ProjectId: &pID, - Name: role.Name, - IsAdmin: role.IsAdmin, - IsProtected: role.IsProtected, - CreatedAt: timestamppb.New(role.CreatedAt), - UpdatedAt: timestamppb.New(role.UpdatedAt), - }) - } - - var usersPB []*pb.UserRecord - for idx := range users { - user := &users[idx] - usersPB = append(usersPB, &pb.UserRecord{ - Id: user.ID, - OrganizationId: user.OrganizationID.String(), - Email: &user.Email.String, - FirstName: &user.FirstName.String, - LastName: &user.LastName.String, - CreatedAt: timestamppb.New(user.CreatedAt), - UpdatedAt: timestamppb.New(user.UpdatedAt), - }) - } - - return projectsPB, rolesPB, usersPB, nil -} - -// GetOrganization is a service for getting an organization -func (s *Server) GetOrganization(ctx context.Context, - in *pb.GetOrganizationRequest) (*pb.GetOrganizationResponse, error) { - orgID, err := uuid.Parse(in.OrganizationId) - if err != nil { - return nil, util.UserVisibleError(codes.InvalidArgument, "invalid organization ID") - } - - // check if user is authorized - if err := AuthorizedOnOrg(ctx, orgID); err != nil { - return nil, err - } - - org, err := s.store.GetOrganization(ctx, orgID) - if err != nil { - if errors.Is(err, sql.ErrNoRows) { - return nil, util.UserVisibleError(codes.NotFound, "organization not found") - } - return nil, status.Errorf(codes.Internal, "failed to get organization: %s", err) - } - - projects, roles, users, err := getOrganizationDependencies(ctx, s.store, org) - if err != nil { - return nil, status.Errorf(codes.Unknown, "failed to get organization dependencies: %s", err) - } - - var resp pb.GetOrganizationResponse - var orgmeta OrgMeta - err = json.Unmarshal(org.Metadata, &orgmeta) - if err != nil { - return nil, status.Errorf(codes.Internal, "failed to unmarshal metadata: %s", err) - } - - resp.Organization = &pb.OrganizationRecord{ - Id: org.ID.String(), - Name: org.Name, - Company: orgmeta.Company, - CreatedAt: timestamppb.New(org.CreatedAt), - UpdatedAt: timestamppb.New(org.UpdatedAt), - } - resp.Projects = projects - resp.Roles = roles - resp.Users = users - - return &resp, nil -} - -// GetOrganizationByName is a service for getting an organization -func (s *Server) GetOrganizationByName(ctx context.Context, - in *pb.GetOrganizationByNameRequest) (*pb.GetOrganizationByNameResponse, error) { - if in.GetName() == "" { - return nil, status.Error(codes.InvalidArgument, "organization name is required") - } - - org, err := s.store.GetOrganizationByName(ctx, in.Name) - if err != nil { - if errors.Is(err, sql.ErrNoRows) { - return nil, status.Error(codes.NotFound, "organization not found") - } - return nil, status.Errorf(codes.Internal, "failed to get organization: %s", err) - } - - // check if user is authorized - if err := AuthorizedOnOrg(ctx, org.ID); err != nil { - return nil, err - } - - projects, roles, users, err := getOrganizationDependencies(ctx, s.store, org) - if err != nil { - return nil, status.Errorf(codes.Unknown, "failed to get organization dependencies: %s", err) - } - - var resp pb.GetOrganizationByNameResponse - var orgmeta OrgMeta - err = json.Unmarshal(org.Metadata, &orgmeta) - if err != nil { - return nil, status.Errorf(codes.Internal, "failed to unmarshal metadata: %s", err) - } - - resp.Organization = &pb.OrganizationRecord{ - Id: org.ID.String(), - Name: org.Name, - Company: orgmeta.Company, - CreatedAt: timestamppb.New(org.CreatedAt), - UpdatedAt: timestamppb.New(org.UpdatedAt), - } - resp.Projects = projects - resp.Roles = roles - resp.Users = users - - return &resp, nil -} - -type deleteOrganizationValidation struct { - Id string `db:"id" validate:"required"` -} - -// DeleteOrganization is a handler that deletes a organization -func (s *Server) DeleteOrganization(ctx context.Context, - in *pb.DeleteOrganizationRequest) (*pb.DeleteOrganizationResponse, error) { - validator := validator.New() - err := validator.Struct(deleteOrganizationValidation{Id: in.Id}) - if err != nil { - return nil, status.Errorf(codes.InvalidArgument, "validation failed: %s", err) - } - - orgID, err := uuid.Parse(in.Id) - if err != nil { - return nil, util.UserVisibleError(codes.InvalidArgument, "invalid organization ID") - } - - _, err = s.store.GetOrganization(ctx, orgID) - if err != nil { - if errors.Is(err, sql.ErrNoRows) { - return nil, status.Error(codes.NotFound, "organization not found") - } - return nil, status.Errorf(codes.Internal, "failed to get organization: %s", err) - } - - if in.Force == nil { - isProtected := false - in.Force = &isProtected - } - - // if we do not force the deletion, we need to check if there are projects - if !*in.Force { - // list projects belonging to that organization - projects, err := s.store.GetChildrenProjects(ctx, orgID) - if err != nil { - return nil, status.Errorf(codes.Internal, "failed to list projects: %s", err) - } - - if len(projects) > db.CalculateProjectHierarchyOffset(0) { - return nil, status.Errorf(codes.InvalidArgument, "cannot delete the organization, there are projects associated with it") - } - } - - // otherwise we delete, and delete projects in cascade - err = s.store.DeleteOrganization(ctx, orgID) - if err != nil { - return nil, status.Errorf(codes.Internal, "failed to delete organization: %s", err) - } - - return &pb.DeleteOrganizationResponse{}, nil -} diff --git a/internal/controlplane/handlers_organization_test.go b/internal/controlplane/handlers_organization_test.go deleted file mode 100644 index eceab9d383..0000000000 --- a/internal/controlplane/handlers_organization_test.go +++ /dev/null @@ -1,935 +0,0 @@ -// Copyright 2023 Stacklok, Inc -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package controlplane - -import ( - "context" - "database/sql" - "encoding/json" - "errors" - "testing" - "time" - - "github.com/golang/mock/gomock" - "github.com/google/uuid" - "github.com/stretchr/testify/assert" - "google.golang.org/grpc/codes" - "google.golang.org/protobuf/types/known/timestamppb" - - mockdb "github.com/stacklok/mediator/database/mock" - "github.com/stacklok/mediator/internal/auth" - "github.com/stacklok/mediator/internal/db" - pb "github.com/stacklok/mediator/pkg/api/protobuf/go/mediator/v1" -) - -func TestCreateOrganizationDBMock(t *testing.T) { - t.Parallel() - - ctrl := gomock.NewController(t) - defer ctrl.Finish() - - mockStore := mockdb.NewMockStore(ctrl) - - request := &pb.CreateOrganizationRequest{ - Name: "TestOrg", - Company: "TestCompany", - } - - projID := uuid.New() - expectedOrg := db.Project{ - ID: uuid.New(), - Name: "TestOrg", - IsOrganization: true, - CreatedAt: time.Now(), - UpdatedAt: time.Now(), - } - - // Create a new context and set the claims value - ctx := auth.WithPermissionsContext(context.Background(), auth.UserPermissions{ - UserId: 1, - OrganizationId: expectedOrg.ID, - ProjectIds: []uuid.UUID{projID}, - Roles: []auth.RoleInfo{ - {RoleID: 1, IsAdmin: true, ProjectID: &projID, OrganizationID: expectedOrg.ID}}, - }) - - tx := sql.Tx{} - mockStore.EXPECT().BeginTransaction().Return(&tx, nil) - mockStore.EXPECT().GetQuerierWithTransaction(gomock.Any()).Return(mockStore) - mockStore.EXPECT(). - CreateOrganization(ctx, gomock.Any()).Return(expectedOrg, nil) - mockStore.EXPECT().Commit(gomock.Any()) - mockStore.EXPECT().Rollback(gomock.Any()) - - server := &Server{ - store: mockStore, - } - - response, err := server.CreateOrganization(ctx, request) - - assert.NoError(t, err) - assert.NotNil(t, response) - assert.Equal(t, expectedOrg.ID.String(), response.Id) - assert.Equal(t, expectedOrg.Name, response.Name) - // assert.Equal(t, expectedOrg.Company, response.Company) - expectedCreatedAt := expectedOrg.CreatedAt.In(time.UTC) - assert.Equal(t, expectedCreatedAt, response.CreatedAt.AsTime().In(time.UTC)) - expectedUpdatedAt := expectedOrg.UpdatedAt.In(time.UTC) - assert.Equal(t, expectedUpdatedAt, response.UpdatedAt.AsTime().In(time.UTC)) -} - -func TestCreateOrganization_gRPC(t *testing.T) { - t.Parallel() - - orgID := uuid.New() - projectID := uuid.New() - - testCases := []struct { - name string - req *pb.CreateOrganizationRequest - buildStubs func(store *mockdb.MockStore) - checkResponse func(t *testing.T, res *pb.CreateOrganizationResponse, err error) - expectedStatusCode codes.Code - }{ - { - name: "Success", - req: &pb.CreateOrganizationRequest{ - Name: "TestOrg", - Company: "TestCompany", - }, - buildStubs: func(store *mockdb.MockStore) { - store.EXPECT().BeginTransaction() - store.EXPECT().GetQuerierWithTransaction(gomock.Any()).Return(store) - meta, err := json.Marshal(&OrgMeta{ - Company: "TestCompany", - }) - assert.NoError(t, err, "unexpected error marshalling metadata") - store.EXPECT(). - CreateOrganization(gomock.Any(), gomock.Any()). - Return(db.Project{ - ID: orgID, - Name: "TestOrg", - Metadata: meta, - CreatedAt: time.Now(), - UpdatedAt: time.Now(), - }, nil). - Times(1) - store.EXPECT().Commit(gomock.Any()) - store.EXPECT().Rollback(gomock.Any()) - }, - checkResponse: func(t *testing.T, res *pb.CreateOrganizationResponse, err error) { - t.Helper() - - assert.NoError(t, err) - assert.NotNil(t, res) - assert.Equal(t, orgID.String(), res.Id) - assert.Equal(t, "TestOrg", res.Name) - assert.Equal(t, "TestCompany", res.Company) - assert.NotNil(t, res.CreatedAt) - assert.NotNil(t, res.UpdatedAt) - }, - expectedStatusCode: codes.OK, - }, - { - name: "EmptyRequest", - req: &pb.CreateOrganizationRequest{ - Name: "", - Company: "", - }, - buildStubs: func(store *mockdb.MockStore) { - // No expectations, as CreateOrganization should not be called - }, - checkResponse: func(t *testing.T, res *pb.CreateOrganizationResponse, err error) { - t.Helper() - - // Assert the expected behavior when the request is empty - assert.Error(t, err) - assert.Nil(t, res) - }, - expectedStatusCode: codes.InvalidArgument, - }, - { - name: "StoreError", - req: &pb.CreateOrganizationRequest{ - Name: "TestOrg", - Company: "TestCompany", - }, - buildStubs: func(store *mockdb.MockStore) { - store.EXPECT().BeginTransaction() - store.EXPECT().GetQuerierWithTransaction(gomock.Any()).Return(store) - - store.EXPECT(). - CreateOrganization(gomock.Any(), gomock.Any()). - Return(db.Project{}, errors.New("store error")). - Times(1) - store.EXPECT().Rollback(gomock.Any()) - }, - checkResponse: func(t *testing.T, res *pb.CreateOrganizationResponse, err error) { - t.Helper() - - // Assert the expected behavior when there's a store error - assert.Error(t, err) - assert.Nil(t, res) - }, - expectedStatusCode: codes.Internal, - }, - } - // Create a new context and set the claims value - ctx := auth.WithPermissionsContext(context.Background(), auth.UserPermissions{ - UserId: 1, - OrganizationId: orgID, - ProjectIds: []uuid.UUID{projectID}, - IsStaff: true, // TODO: remove this - Roles: []auth.RoleInfo{ - {RoleID: 1, IsAdmin: true, ProjectID: &projectID, OrganizationID: orgID}}, - }) - - for i := range testCases { - tc := testCases[i] - t.Run(tc.name, func(t *testing.T) { - t.Parallel() - - ctrl := gomock.NewController(t) - defer ctrl.Finish() - - mockStore := mockdb.NewMockStore(ctrl) - tc.buildStubs(mockStore) - - server := newDefaultServer(t, mockStore) - - resp, err := server.CreateOrganization(ctx, tc.req) - tc.checkResponse(t, resp, err) - }) - } -} - -func TestGetOrganizationsDBMock(t *testing.T) { - t.Parallel() - - ctrl := gomock.NewController(t) - defer ctrl.Finish() - - orgID := uuid.New() - projID := uuid.New() - - mockStore := mockdb.NewMockStore(ctrl) - // Create a new context and set the claims value - ctx := auth.WithPermissionsContext(context.Background(), auth.UserPermissions{ - UserId: 1, - OrganizationId: orgID, - ProjectIds: []uuid.UUID{projID}, - Roles: []auth.RoleInfo{ - {RoleID: 1, IsAdmin: true, ProjectID: &projID, OrganizationID: orgID}}, - }) - - request := &pb.GetOrganizationsRequest{} - - orgMeta1 := &OrgMeta{ - Company: "TestCompany", - } - - orgMeta2 := &OrgMeta{ - Company: "TestCompany1", - } - - marshalledMeta1, err := json.Marshal(orgMeta1) - assert.NoError(t, err, "unexpected error marshalling metadata") - - marshalledMeta2, err := json.Marshal(orgMeta2) - assert.NoError(t, err, "unexpected error marshalling metadata") - - expectedOrgs := []db.Project{ - { - ID: uuid.New(), - Name: "TestOrg", - Metadata: marshalledMeta1, - CreatedAt: time.Now(), - UpdatedAt: time.Now(), - }, - { - ID: uuid.New(), - Name: "TestOrg1", - Metadata: marshalledMeta2, - CreatedAt: time.Now(), - UpdatedAt: time.Now(), - }, - } - - mockStore.EXPECT().ListOrganizations(ctx, gomock.Any()). - Return(expectedOrgs, nil) - - server := &Server{ - store: mockStore, - } - - response, err := server.GetOrganizations(ctx, request) - - assert.NoError(t, err) - assert.NotNil(t, response) - assert.Equal(t, len(expectedOrgs), len(response.Organizations)) - assert.Equal(t, expectedOrgs[0].ID.String(), response.Organizations[0].Id) - assert.Equal(t, expectedOrgs[0].Name, response.Organizations[0].Name) - assert.Contains(t, string(expectedOrgs[0].Metadata), response.Organizations[0].Company) - expectedCreatedAt := expectedOrgs[0].CreatedAt.In(time.UTC) - assert.Equal(t, expectedCreatedAt, response.Organizations[0].CreatedAt.AsTime().In(time.UTC)) - expectedUpdatedAt := expectedOrgs[0].UpdatedAt.In(time.UTC) - assert.Equal(t, expectedUpdatedAt, response.Organizations[0].UpdatedAt.AsTime().In(time.UTC)) -} - -func TestGetOrganizations_gRPC(t *testing.T) { - t.Parallel() - - orgID1 := uuid.New() - orgID2 := uuid.New() - projID := uuid.New() - - orgmeta1 := &OrgMeta{ - Company: "TestCompany", - } - orgmeta2 := &OrgMeta{ - Company: "TestCompany1", - } - - marshalledMeta1, err := json.Marshal(orgmeta1) - assert.NoError(t, err, "unexpected error marshalling metadata") - marshalledMeta2, err := json.Marshal(orgmeta2) - assert.NoError(t, err, "unexpected error marshalling metadata") - - testCases := []struct { - name string - req *pb.GetOrganizationsRequest - buildStubs func(store *mockdb.MockStore) - checkResponse func(t *testing.T, res *pb.GetOrganizationsResponse, err error) - expectedStatusCode codes.Code - }{ - { - name: "Success", - req: &pb.GetOrganizationsRequest{}, - buildStubs: func(store *mockdb.MockStore) { - store.EXPECT().ListOrganizations(gomock.Any(), gomock.Any()). - Return([]db.Project{ - { - ID: orgID1, - Name: "TestOrg", - Metadata: marshalledMeta1, - CreatedAt: time.Now(), - UpdatedAt: time.Now(), - }, - { - ID: orgID2, - Name: "TestOrg1", - Metadata: marshalledMeta2, - CreatedAt: time.Now(), - UpdatedAt: time.Now(), - }, - }, nil). - Times(1) - }, - checkResponse: func(t *testing.T, res *pb.GetOrganizationsResponse, err error) { - t.Helper() - - expectedOrgs := []*pb.OrganizationRecord{ - { - Id: orgID1.String(), - Name: "TestOrg", - Company: "TestCompany", - CreatedAt: timestamppb.New(time.Now()), - UpdatedAt: timestamppb.New(time.Now()), - }, - { - Id: orgID2.String(), - Name: "TestOrg1", - Company: "TestCompany1", - CreatedAt: timestamppb.New(time.Now()), - UpdatedAt: timestamppb.New(time.Now()), - }, - } - - assert.NoError(t, err) - assert.NotNil(t, res) - assert.Equal(t, len(expectedOrgs), len(res.Organizations)) - assert.Equal(t, expectedOrgs[0].Id, res.Organizations[0].Id) - assert.Equal(t, expectedOrgs[0].Name, res.Organizations[0].Name) - assert.Equal(t, expectedOrgs[0].Company, res.Organizations[0].Company) - }, - expectedStatusCode: codes.OK, - }, - } - - // Create a new context and set the claims value - ctx := auth.WithPermissionsContext(context.Background(), auth.UserPermissions{ - UserId: 1, - OrganizationId: orgID1, - ProjectIds: []uuid.UUID{projID}, - Roles: []auth.RoleInfo{ - {RoleID: 1, IsAdmin: true, ProjectID: &projID, OrganizationID: orgID1}}, - }) - - for i := range testCases { - tc := testCases[i] - t.Run(tc.name, func(t *testing.T) { - t.Parallel() - - ctrl := gomock.NewController(t) - defer ctrl.Finish() - - mockStore := mockdb.NewMockStore(ctrl) - tc.buildStubs(mockStore) - - server := newDefaultServer(t, mockStore) - - resp, err := server.GetOrganizations(ctx, tc.req) - tc.checkResponse(t, resp, err) - }) - } -} - -func TestGetOrganizationDBMock(t *testing.T) { - t.Parallel() - - ctrl := gomock.NewController(t) - defer ctrl.Finish() - - mockStore := mockdb.NewMockStore(ctrl) - - orgID := uuid.New() - projID := uuid.New() - orgmeta := &OrgMeta{ - Company: "TestCompany", - } - - marshalledMeta, err := json.Marshal(orgmeta) - assert.NoError(t, err, "unexpected error marshalling metadata") - - request := &pb.GetOrganizationRequest{OrganizationId: orgID.String()} - - expectedOrg := db.Project{ - ID: orgID, - Name: "TestOrg", - Metadata: marshalledMeta, - CreatedAt: time.Now(), - UpdatedAt: time.Now(), - } - - // Create a new context and set the claims value - ctx := auth.WithPermissionsContext(context.Background(), auth.UserPermissions{ - UserId: 1, - OrganizationId: expectedOrg.ID, - ProjectIds: []uuid.UUID{projID}, - IsStaff: true, // TODO: remove this - Roles: []auth.RoleInfo{ - {RoleID: 1, IsAdmin: true, ProjectID: &projID, OrganizationID: expectedOrg.ID}}, - }) - mockStore.EXPECT().GetOrganization(ctx, gomock.Any()). - Return(expectedOrg, nil) - mockStore.EXPECT().GetChildrenProjects(ctx, gomock.Any()) - mockStore.EXPECT().ListRoles(ctx, gomock.Any()) - mockStore.EXPECT().ListUsersByOrganization(ctx, gomock.Any()) - - server := &Server{ - store: mockStore, - } - - response, err := server.GetOrganization(ctx, request) - - assert.NoError(t, err) - assert.NotNil(t, response) - assert.Equal(t, expectedOrg.ID.String(), response.Organization.Id) - assert.Equal(t, expectedOrg.Name, response.Organization.Name) - assert.Contains(t, string(expectedOrg.Metadata), response.Organization.Company) - expectedCreatedAt := expectedOrg.CreatedAt.In(time.UTC) - assert.Equal(t, expectedCreatedAt, response.Organization.CreatedAt.AsTime().In(time.UTC)) - expectedUpdatedAt := expectedOrg.UpdatedAt.In(time.UTC) - assert.Equal(t, expectedUpdatedAt, response.Organization.UpdatedAt.AsTime().In(time.UTC)) -} - -func TestGetNonExistingOrganizationDBMock(t *testing.T) { - t.Parallel() - - ctrl := gomock.NewController(t) - defer ctrl.Finish() - - orgID := uuid.New() - projectID := uuid.New() - - mockStore := mockdb.NewMockStore(ctrl) - // Create a new context and set the claims value - ctx := auth.WithPermissionsContext(context.Background(), auth.UserPermissions{ - UserId: 1, - OrganizationId: orgID, - ProjectIds: []uuid.UUID{projectID}, - IsStaff: true, // TODO: remove this - Roles: []auth.RoleInfo{ - {RoleID: 1, IsAdmin: true, ProjectID: &projectID, OrganizationID: orgID}}, - }) - - unexistentOrgID := uuid.New() - - request := &pb.GetOrganizationRequest{OrganizationId: unexistentOrgID.String()} - - mockStore.EXPECT().GetOrganization(ctx, gomock.Any()). - Return(db.Project{}, sql.ErrNoRows) - - server := &Server{ - store: mockStore, - } - - response, err := server.GetOrganization(ctx, request) - - assert.Error(t, err, "expected error when organization does not exist") - assert.Nil(t, response) -} - -func TestGetOrganization_gRPC(t *testing.T) { - t.Parallel() - - projectID := uuid.New() - orgID := uuid.New() - orgmeta := &OrgMeta{ - Company: "TestCompany", - } - - marshalledmeta, err := json.Marshal(orgmeta) - assert.NoError(t, err, "unexpected error marshalling metadata") - - testCases := []struct { - name string - req *pb.GetOrganizationRequest - buildStubs func(store *mockdb.MockStore) - checkResponse func(t *testing.T, res *pb.GetOrganizationResponse, err error) - expectedStatusCode codes.Code - }{ - { - name: "Success", - req: &pb.GetOrganizationRequest{OrganizationId: orgID.String()}, - buildStubs: func(store *mockdb.MockStore) { - store.EXPECT().GetOrganization(gomock.Any(), gomock.Any()). - Return(db.Project{ - ID: orgID, - Name: "TestOrg", - Metadata: marshalledmeta, - CreatedAt: time.Now(), - UpdatedAt: time.Now(), - }, nil). - Times(1) - store.EXPECT().ListRoles(gomock.Any(), gomock.Any()) - store.EXPECT().GetChildrenProjects(gomock.Any(), orgID) - store.EXPECT().ListUsersByOrganization(gomock.Any(), gomock.Any()) - - }, - checkResponse: func(t *testing.T, res *pb.GetOrganizationResponse, err error) { - t.Helper() - - expectedOrg := pb.OrganizationRecord{ - Id: orgID.String(), - Name: "TestOrg", - Company: "TestCompany", - CreatedAt: timestamppb.New(time.Now()), - UpdatedAt: timestamppb.New(time.Now()), - } - - assert.NoError(t, err) - assert.NotNil(t, res) - assert.Equal(t, expectedOrg.Id, res.Organization.Id) - assert.Equal(t, expectedOrg.Name, res.Organization.Name) - assert.Equal(t, expectedOrg.Company, res.Organization.Company) - }, - expectedStatusCode: codes.OK, - }, - { - name: "NonExisting", - req: &pb.GetOrganizationRequest{OrganizationId: uuid.NewString()}, - buildStubs: func(store *mockdb.MockStore) { - store.EXPECT().GetOrganization(gomock.Any(), gomock.Any()). - Return(db.Project{}, sql.ErrNoRows). - Times(1) - }, - checkResponse: func(t *testing.T, res *pb.GetOrganizationResponse, err error) { - t.Helper() - - assert.Error(t, err) - assert.Nil(t, res) - }, - expectedStatusCode: codes.OK, - }, - } - - // Create a new context and set the claims value - ctx := auth.WithPermissionsContext(context.Background(), auth.UserPermissions{ - UserId: 1, - OrganizationId: orgID, - ProjectIds: []uuid.UUID{projectID}, - IsStaff: true, // TODO: remove this - Roles: []auth.RoleInfo{ - {RoleID: 1, IsAdmin: true, ProjectID: &projectID, OrganizationID: orgID}}, - }) - - for i := range testCases { - tc := testCases[i] - t.Run(tc.name, func(t *testing.T) { - t.Parallel() - - ctrl := gomock.NewController(t) - defer ctrl.Finish() - - mockStore := mockdb.NewMockStore(ctrl) - tc.buildStubs(mockStore) - - server := newDefaultServer(t, mockStore) - - resp, err := server.GetOrganization(ctx, tc.req) - tc.checkResponse(t, resp, err) - }) - } -} - -func TestGetOrganizationByNameDBMock(t *testing.T) { - t.Parallel() - - ctrl := gomock.NewController(t) - defer ctrl.Finish() - - mockStore := mockdb.NewMockStore(ctrl) - - projectID := uuid.New() - orgID := uuid.New() - - orgmeta := &OrgMeta{ - Company: "TestCompany", - } - - marshalledMeta, err := json.Marshal(orgmeta) - assert.NoError(t, err, "unexpected error marshalling metadata") - - request := &pb.GetOrganizationByNameRequest{Name: "TestOrg"} - - expectedOrg := db.Project{ - ID: orgID, - Name: "TestOrg", - Metadata: marshalledMeta, - CreatedAt: time.Now(), - UpdatedAt: time.Now(), - } - // Create a new context and set the claims value - ctx := auth.WithPermissionsContext(context.Background(), auth.UserPermissions{ - UserId: 1, - OrganizationId: orgID, - ProjectIds: []uuid.UUID{projectID}, - IsStaff: true, // TODO: remove this - Roles: []auth.RoleInfo{ - {RoleID: 1, IsAdmin: true, ProjectID: &projectID, OrganizationID: orgID}}, - }) - - mockStore.EXPECT().GetOrganizationByName(ctx, gomock.Any()). - Return(expectedOrg, nil) - mockStore.EXPECT().GetChildrenProjects(ctx, gomock.Any()) - mockStore.EXPECT().ListRoles(ctx, gomock.Any()) - mockStore.EXPECT().ListUsersByOrganization(ctx, gomock.Any()) - - server := &Server{ - store: mockStore, - } - - response, err := server.GetOrganizationByName(ctx, request) - - assert.NoError(t, err) - assert.NotNil(t, response) - assert.Equal(t, expectedOrg.ID.String(), response.Organization.Id) - assert.Equal(t, expectedOrg.Name, response.Organization.Name) - assert.Contains(t, string(expectedOrg.Metadata), response.Organization.Company) - expectedCreatedAt := expectedOrg.CreatedAt.In(time.UTC) - assert.Equal(t, expectedCreatedAt, response.Organization.CreatedAt.AsTime().In(time.UTC)) - expectedUpdatedAt := expectedOrg.UpdatedAt.In(time.UTC) - assert.Equal(t, expectedUpdatedAt, response.Organization.UpdatedAt.AsTime().In(time.UTC)) -} - -func TestGetNonExistingOrganizationByNameDBMock(t *testing.T) { - t.Parallel() - - ctrl := gomock.NewController(t) - defer ctrl.Finish() - - mockStore := mockdb.NewMockStore(ctrl) - - orgID := uuid.New() - projID := uuid.New() - - request := &pb.GetOrganizationByNameRequest{Name: "Test"} - // Create a new context and set the claims value - ctx := auth.WithPermissionsContext(context.Background(), auth.UserPermissions{ - UserId: 1, - OrganizationId: orgID, - ProjectIds: []uuid.UUID{projID}, - Roles: []auth.RoleInfo{ - {RoleID: 1, IsAdmin: true, ProjectID: &projID, OrganizationID: orgID}}, - }) - - mockStore.EXPECT().GetOrganizationByName(ctx, gomock.Any()). - Return(db.Project{}, sql.ErrNoRows) - - server := &Server{ - store: mockStore, - } - - response, err := server.GetOrganizationByName(ctx, request) - - assert.Error(t, err) - assert.Nil(t, response) -} - -func TestGetOrganizationByName_gRPC(t *testing.T) { - t.Parallel() - - orgID := uuid.New() - projectID := uuid.New() - - orgmeta := &OrgMeta{ - Company: "TestCompany", - } - - marshalledMeta, err := json.Marshal(orgmeta) - assert.NoError(t, err, "unexpected error marshalling metadata") - - testCases := []struct { - name string - req *pb.GetOrganizationByNameRequest - buildStubs func(store *mockdb.MockStore) - checkResponse func(t *testing.T, res *pb.GetOrganizationByNameResponse, err error) - expectedStatusCode codes.Code - }{ - { - name: "Success", - req: &pb.GetOrganizationByNameRequest{Name: "TestOrg"}, - buildStubs: func(store *mockdb.MockStore) { - store.EXPECT().GetOrganizationByName(gomock.Any(), gomock.Any()). - Return(db.Project{ - ID: orgID, - Name: "TestOrg", - Metadata: marshalledMeta, - CreatedAt: time.Now(), - UpdatedAt: time.Now(), - }, nil). - Times(1) - store.EXPECT().GetChildrenProjects(gomock.Any(), gomock.Any()) - store.EXPECT().ListRoles(gomock.Any(), gomock.Any()) - store.EXPECT().ListUsersByOrganization(gomock.Any(), gomock.Any()) - - }, - checkResponse: func(t *testing.T, res *pb.GetOrganizationByNameResponse, err error) { - t.Helper() - - expectedOrg := pb.OrganizationRecord{ - Id: orgID.String(), - Name: "TestOrg", - Company: "TestCompany", - CreatedAt: timestamppb.New(time.Now()), - UpdatedAt: timestamppb.New(time.Now()), - } - - assert.NoError(t, err) - assert.NotNil(t, res) - assert.Equal(t, expectedOrg.Id, res.Organization.Id) - assert.Equal(t, expectedOrg.Name, res.Organization.Name) - assert.Equal(t, expectedOrg.Company, res.Organization.Company) - }, - expectedStatusCode: codes.OK, - }, - { - name: "NonExisting", - req: &pb.GetOrganizationByNameRequest{Name: "test"}, - buildStubs: func(store *mockdb.MockStore) { - store.EXPECT().GetOrganizationByName(gomock.Any(), gomock.Any()). - Return(db.Project{}, sql.ErrNoRows). - Times(1) - }, - checkResponse: func(t *testing.T, res *pb.GetOrganizationByNameResponse, err error) { - t.Helper() - - assert.Error(t, err) - assert.Nil(t, res) - }, - expectedStatusCode: codes.OK, - }, - } - // Create a new context and set the claims value - ctx := auth.WithPermissionsContext(context.Background(), auth.UserPermissions{ - UserId: 1, - OrganizationId: orgID, - ProjectIds: []uuid.UUID{projectID}, - IsStaff: true, - Roles: []auth.RoleInfo{ - {RoleID: 1, IsAdmin: true, ProjectID: &projectID, OrganizationID: orgID}}, - }) - - for i := range testCases { - tc := testCases[i] - t.Run(tc.name, func(t *testing.T) { - t.Parallel() - - ctrl := gomock.NewController(t) - defer ctrl.Finish() - - mockStore := mockdb.NewMockStore(ctrl) - tc.buildStubs(mockStore) - - server := newDefaultServer(t, mockStore) - - resp, err := server.GetOrganizationByName(ctx, tc.req) - tc.checkResponse(t, resp, err) - }) - } -} - -func TestDeleteOrganizationDBMock(t *testing.T) { - t.Parallel() - - ctrl := gomock.NewController(t) - defer ctrl.Finish() - - orgID := uuid.New() - projID := uuid.New() - - orgmeta := &OrgMeta{ - Company: "test", - } - - marshalledMeta, err := json.Marshal(orgmeta) - assert.NoError(t, err, "unexpected error marshalling metadata") - - mockStore := mockdb.NewMockStore(ctrl) - // Create a new context and set the claims value - ctx := auth.WithPermissionsContext(context.Background(), auth.UserPermissions{ - UserId: 1, - OrganizationId: orgID, - ProjectIds: []uuid.UUID{projID}, - Roles: []auth.RoleInfo{ - {RoleID: 1, IsAdmin: true, ProjectID: &projID, OrganizationID: orgID}}, - }) - - request := &pb.DeleteOrganizationRequest{Id: orgID.String()} - - expectedOrg := db.Project{ - ID: orgID, - Name: "test", - Metadata: marshalledMeta, - CreatedAt: time.Now(), - UpdatedAt: time.Now(), - } - - mockStore.EXPECT().GetOrganization(ctx, gomock.Any()). - Return(expectedOrg, nil) - mockStore.EXPECT(). - GetChildrenProjects(ctx, gomock.Any()). - Return([]db.GetChildrenProjectsRow{ - { - ID: orgID, - }, - }, nil) - mockStore.EXPECT(). - DeleteOrganization(ctx, gomock.Any()). - Return(nil) - - server := &Server{ - store: mockStore, - } - - response, err := server.DeleteOrganization(ctx, request) - - assert.NoError(t, err) - assert.NotNil(t, response) -} - -func TestDeleteOrganization_gRPC(t *testing.T) { - t.Parallel() - - force := true - - orgID := uuid.New() - projID := uuid.New() - - testCases := []struct { - name string - req *pb.DeleteOrganizationRequest - buildStubs func(store *mockdb.MockStore) - checkResponse func(t *testing.T, res *pb.DeleteOrganizationResponse, err error) - expectedStatusCode codes.Code - }{ - { - name: "Success", - req: &pb.DeleteOrganizationRequest{ - Id: orgID.String(), - Force: &force, - }, - buildStubs: func(store *mockdb.MockStore) { - store.EXPECT(). - GetOrganization(gomock.Any(), gomock.Any()).Return(db.Project{}, nil).Times(1) - store.EXPECT(). - DeleteOrganization(gomock.Any(), gomock.Any()).Return(nil). - Times(1) - }, - checkResponse: func(t *testing.T, res *pb.DeleteOrganizationResponse, err error) { - t.Helper() - - assert.NoError(t, err) - assert.NotNil(t, res) - assert.Equal(t, &pb.DeleteOrganizationResponse{}, res) - }, - expectedStatusCode: codes.OK, - }, - { - name: "EmptyRequest", - req: &pb.DeleteOrganizationRequest{ - Id: "", - }, - buildStubs: func(store *mockdb.MockStore) { - }, - checkResponse: func(t *testing.T, res *pb.DeleteOrganizationResponse, err error) { - t.Helper() - - // Assert the expected behavior when the request is empty - assert.Error(t, err) - assert.Nil(t, res) - }, - expectedStatusCode: codes.InvalidArgument, - }, - } - - // Create a new context and set the claims value - ctx := auth.WithPermissionsContext(context.Background(), auth.UserPermissions{ - UserId: 1, - OrganizationId: orgID, - ProjectIds: []uuid.UUID{projID}, - Roles: []auth.RoleInfo{ - {RoleID: 1, IsAdmin: true, ProjectID: &projID, OrganizationID: orgID}}, - }) - - for i := range testCases { - tc := testCases[i] - t.Run(tc.name, func(t *testing.T) { - t.Parallel() - - ctrl := gomock.NewController(t) - defer ctrl.Finish() - - mockStore := mockdb.NewMockStore(ctrl) - tc.buildStubs(mockStore) - - server := newDefaultServer(t, mockStore) - - resp, err := server.DeleteOrganization(ctx, tc.req) - tc.checkResponse(t, resp, err) - }) - } -} diff --git a/internal/controlplane/handlers_projects.go b/internal/controlplane/handlers_projects.go deleted file mode 100644 index 23ab9498fe..0000000000 --- a/internal/controlplane/handlers_projects.go +++ /dev/null @@ -1,334 +0,0 @@ -// Copyright 2023 Stacklok, Inc -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package controlplane - -import ( - "context" - "database/sql" - "encoding/json" - "errors" - - "github.com/go-playground/validator/v10" - "github.com/google/uuid" - "google.golang.org/grpc/codes" - "google.golang.org/grpc/status" - "google.golang.org/protobuf/types/known/timestamppb" - - "github.com/stacklok/mediator/internal/db" - "github.com/stacklok/mediator/internal/util" - pb "github.com/stacklok/mediator/pkg/api/protobuf/go/mediator/v1" -) - -// ProjectMeta is the metadata associated with a project -type ProjectMeta struct { - Description string `json:"description"` - IsProtected bool `json:"is_protected"` -} - -type createProjectValidation struct { - Name string `db:"name" validate:"required"` - OrganizationId string `db:"organization_id" validate:"required"` -} - -func getProjectDependencies(ctx context.Context, store db.Store, project db.Project) ([]*pb.RoleRecord, []*pb.UserRecord, error) { - const MAX_ITEMS = 999 - - // get all the roles associated with that project - roles, err := store.ListRolesByProjectID(ctx, db.ListRolesByProjectIDParams{ - ProjectID: uuid.NullUUID{UUID: project.ID, Valid: true}, - Limit: MAX_ITEMS, Offset: 0}) - if err != nil { - return nil, nil, err - } - - // get all the users associated with that projects - users, err := store.ListUsersByProject(ctx, db.ListUsersByProjectParams{ - ProjectID: project.ID, Limit: MAX_ITEMS, Offset: 0}) - if err != nil { - return nil, nil, err - } - - // convert to right data type - var rolesPB []*pb.RoleRecord - for idx := range roles { - role := &roles[idx] - pID := role.ProjectID.UUID.String() - rolesPB = append(rolesPB, &pb.RoleRecord{ - Id: role.ID, - OrganizationId: role.OrganizationID.String(), - ProjectId: &pID, - Name: role.Name, - IsAdmin: role.IsAdmin, - IsProtected: role.IsProtected, - CreatedAt: timestamppb.New(role.CreatedAt), - UpdatedAt: timestamppb.New(role.UpdatedAt), - }) - } - - var usersPB []*pb.UserRecord - for idx := range users { - user := &users[idx] - usersPB = append(usersPB, &pb.UserRecord{ - Id: user.ID, - OrganizationId: user.OrganizationID.String(), - Email: &user.Email.String, - FirstName: &user.FirstName.String, - LastName: &user.LastName.String, - IdentitySubject: user.IdentitySubject, - CreatedAt: timestamppb.New(user.CreatedAt), - UpdatedAt: timestamppb.New(user.UpdatedAt), - }) - } - - return rolesPB, usersPB, nil -} - -// CreateProject creates a project -func (s *Server) CreateProject(ctx context.Context, req *pb.CreateProjectRequest) (*pb.CreateProjectResponse, error) { - // validate that the org and name are not empty - validator := validator.New() - err := validator.Struct(createProjectValidation{OrganizationId: req.OrganizationId, Name: req.Name}) - if err != nil { - return nil, status.Errorf(codes.InvalidArgument, "invalid request: %s", err) - } - - if req.IsProtected == nil { - isProtected := false - req.IsProtected = &isProtected - } - - orgID, err := uuid.Parse(req.OrganizationId) - if err != nil { - return nil, util.UserVisibleError(codes.InvalidArgument, "invalid organization ID") - } - - // check if user is authorized - if err := AuthorizedOnOrg(ctx, orgID); err != nil { - return nil, err - } - - projmeta := &ProjectMeta{ - Description: req.Description, - IsProtected: *req.IsProtected, - } - - projMetaJSON, err := json.Marshal(projmeta) - if err != nil { - return nil, status.Errorf(codes.Internal, "failed to marshal project metadata: %s", err) - } - - prj, err := s.store.CreateProject(ctx, db.CreateProjectParams{ - ParentID: uuid.NullUUID{ - UUID: orgID, - Valid: true, - }, - Name: req.Name, - Metadata: projMetaJSON, - }) - - if err != nil { - return nil, status.Errorf(codes.Internal, "failed to create project: %s", err) - } - - resp := &pb.CreateProjectResponse{ - ProjectId: prj.ID.String(), - OrganizationId: prj.ParentID.UUID.String(), - Name: prj.Name, - Description: req.Description, - IsProtected: *req.IsProtected, - CreatedAt: timestamppb.New(prj.CreatedAt), - UpdatedAt: timestamppb.New(prj.UpdatedAt)} - - return resp, nil -} - -// GetProjectById returns a project by id -func (s *Server) GetProjectById(ctx context.Context, req *pb.GetProjectByIdRequest) (*pb.GetProjectByIdResponse, error) { - projID, err := uuid.Parse(req.ProjectId) - if err != nil { - return nil, util.UserVisibleError(codes.InvalidArgument, "malformed project ID") - } - - prj, err := s.store.GetProjectByID(ctx, projID) - if err != nil { - if errors.Is(err, sql.ErrNoRows) { - return nil, status.Error(codes.NotFound, "project not found") - } - return nil, status.Errorf(codes.Internal, "failed to get project by id: %s", err) - } - - // check if user is authorized - if err := AuthorizedOnOrg(ctx, prj.ParentID.UUID); err != nil { - return nil, err - } - - roles, users, err := getProjectDependencies(ctx, s.store, prj) - if err != nil { - return nil, status.Errorf(codes.Unknown, "failed to get project dependencies: %s", err) - } - - var resp pb.GetProjectByIdResponse - resp.Project = &pb.ProjectRecord{ - ProjectId: prj.ID.String(), - OrganizationId: prj.ParentID.UUID.String(), - Name: prj.Name, - CreatedAt: timestamppb.New(prj.CreatedAt), - UpdatedAt: timestamppb.New(prj.UpdatedAt), - } - resp.Roles = roles - resp.Users = users - - return &resp, nil -} - -// GetProjectByName returns a projects by name -func (s *Server) GetProjectByName(ctx context.Context, req *pb.GetProjectByNameRequest) (*pb.GetProjectByNameResponse, error) { - if req.Name == "" { - return nil, status.Errorf(codes.InvalidArgument, "project name cannot be empty") - } - - prj, err := s.store.GetProjectByName(ctx, req.Name) - if err != nil { - return nil, status.Errorf(codes.NotFound, "failed to get project by name: %s", err) - } - - // check if user is authorized - if err := AuthorizedOnOrg(ctx, prj.ParentID.UUID); err != nil { - return nil, err - } - - roles, users, err := getProjectDependencies(ctx, s.store, prj) - if err != nil { - return nil, status.Errorf(codes.Unknown, "failed to get organization dependencies: %s", err) - } - - var resp pb.GetProjectByNameResponse - resp.Project = &pb.ProjectRecord{ - ProjectId: prj.ID.String(), - OrganizationId: prj.ParentID.UUID.String(), - Name: prj.Name, - CreatedAt: timestamppb.New(prj.CreatedAt), - UpdatedAt: timestamppb.New(prj.UpdatedAt), - } - - resp.Roles = roles - resp.Users = users - - return &resp, nil - -} - -// GetProjects returns a list of projects -func (s *Server) GetProjects(ctx context.Context, req *pb.GetProjectsRequest) (*pb.GetProjectsResponse, error) { - // define default values for limit and offset - if req.Limit == -1 { - req.Limit = PaginationLimit - } - - orgID, err := uuid.Parse(req.OrganizationId) - if err != nil { - return nil, util.UserVisibleError(codes.InvalidArgument, "invalid organization ID") - } - - // check if user is authorized - if err := AuthorizedOnOrg(ctx, orgID); err != nil { - return nil, err - } - - prj, err := s.store.GetChildrenProjects(ctx, orgID) - if err != nil { - return nil, status.Errorf(codes.NotFound, "failed to get projects: %s", err) - } - - // NOTE(jaosorior): We need to do this because the database query returns - // the calling project as well. We need to remove it from the list. - prj = prj[db.CalculateProjectHierarchyOffset(0):] - - var resp pb.GetProjectsResponse - for _, project := range prj { - resp.Projects = append(resp.Projects, &pb.ProjectRecord{ - ProjectId: project.ID.String(), - OrganizationId: project.ParentID.UUID.String(), - Name: project.Name, - CreatedAt: timestamppb.New(project.CreatedAt), - UpdatedAt: timestamppb.New(project.UpdatedAt), - }) - } - - return &resp, nil -} - -type deleteProjectValidation struct { - Id string `db:"id" validate:"required"` -} - -// DeleteProject is a handler that deletes a project -func (s *Server) DeleteProject(ctx context.Context, - in *pb.DeleteProjectRequest) (*pb.DeleteProjectResponse, error) { - validator := validator.New() - err := validator.Struct(deleteProjectValidation{Id: in.Id}) - if err != nil { - return nil, status.Errorf(codes.InvalidArgument, "validation failed: %s", err) - } - - projID, err := uuid.Parse(in.Id) - if err != nil { - return nil, util.UserVisibleError(codes.InvalidArgument, "malformed project ID") - } - - // first check if the project exists and is not protected - project, err := s.store.GetProjectByID(ctx, projID) - if err != nil { - if errors.Is(err, sql.ErrNoRows) { - return nil, util.UserVisibleError(codes.NotFound, "project not found") - } - return nil, status.Errorf(codes.Internal, "failed to get project by id: %s", err) - } - - if in.Force == nil { - isProtected := false - in.Force = &isProtected - } - - // TODO FIX THIS - // if !*in.Force && projects.IsProtected { - // return nil, status.Errorf(codes.PermissionDenied, "cannot delete a protected projects") - // } - - // if we do not force the deletion, we need to check if there are roles - if !*in.Force { - // list roles belonging to that role - roles, err := s.store.ListRolesByProjectID(ctx, db.ListRolesByProjectIDParams{ - ProjectID: uuid.NullUUID{UUID: project.ID, Valid: true}}) - if err != nil { - return nil, status.Errorf(codes.Internal, "failed to list roles by projects id: %s", err) - } - - if len(roles) > 0 { - return nil, status.Errorf(codes.FailedPrecondition, "cannot delete the projects, there are roles associated with it") - } - } - - // check if user is authorized on the org - if err := AuthorizedOnOrg(ctx, project.ParentID.UUID); err != nil { - return nil, err - } - _, err = s.store.DeleteProject(ctx, projID) - if err != nil { - return nil, err - } - - return &pb.DeleteProjectResponse{}, nil -} diff --git a/internal/controlplane/handlers_projects_test.go b/internal/controlplane/handlers_projects_test.go deleted file mode 100644 index dcdad7ab40..0000000000 --- a/internal/controlplane/handlers_projects_test.go +++ /dev/null @@ -1,702 +0,0 @@ -// Copyright 2023 Stacklok, Inc -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package controlplane - -import ( - "context" - "database/sql" - "encoding/json" - "errors" - "testing" - "time" - - "github.com/golang/mock/gomock" - "github.com/google/uuid" - "github.com/stretchr/testify/assert" - "google.golang.org/grpc/codes" - "google.golang.org/protobuf/types/known/timestamppb" - - mockdb "github.com/stacklok/mediator/database/mock" - "github.com/stacklok/mediator/internal/auth" - "github.com/stacklok/mediator/internal/db" - pb "github.com/stacklok/mediator/pkg/api/protobuf/go/mediator/v1" -) - -func TestCreateProjectDBMock(t *testing.T) { - t.Parallel() - - ctrl := gomock.NewController(t) - defer ctrl.Finish() - - mockStore := mockdb.NewMockStore(ctrl) - - orgID := uuid.New() - projID := uuid.New() - - request := &pb.CreateProjectRequest{ - OrganizationId: orgID.String(), - Name: "TestProject", - Description: "TestDescription", - IsProtected: nil, - } - - expectedProject := db.Project{ - ID: projID, - ParentID: uuid.NullUUID{ - UUID: orgID, - Valid: true, - }, - Name: "TestProject", - } - - // Create a new context and set the claims value - ctx := auth.WithPermissionsContext(context.Background(), auth.UserPermissions{ - UserId: 1, - OrganizationId: orgID, - ProjectIds: []uuid.UUID{projID}, - IsStaff: true, // TODO: remove this - Roles: []auth.RoleInfo{ - {RoleID: 1, IsAdmin: true, ProjectID: &projID, OrganizationID: orgID}}, - }) - - mockStore.EXPECT(). - CreateProject(ctx, gomock.Any()). - Return(expectedProject, nil) - - server := &Server{ - store: mockStore, - } - - response, err := server.CreateProject(ctx, request) - - assert.NoError(t, err) - assert.NotNil(t, response) - assert.Equal(t, expectedProject.ID.String(), response.ProjectId) - assert.Equal(t, expectedProject.Name, response.Name) - assert.Equal(t, expectedProject.ParentID.UUID.String(), response.OrganizationId) -} - -func TestCreateProject_gRPC(t *testing.T) { - t.Parallel() - - orgID := uuid.New() - projID := uuid.New() - - projmeta := &ProjectMeta{ - Description: "TestDescription", - IsProtected: false, - } - - projMetaJSON, err := json.Marshal(projmeta) - assert.NoError(t, err, "failed to marshal project metadata") - - testCases := []struct { - name string - req *pb.CreateProjectRequest - buildStubs func(store *mockdb.MockStore) - checkResponse func(t *testing.T, res *pb.CreateProjectResponse, err error) - expectedStatusCode codes.Code - }{ - { - name: "Success", - req: &pb.CreateProjectRequest{ - OrganizationId: orgID.String(), - Name: "TestProject", - }, - buildStubs: func(store *mockdb.MockStore) { - store.EXPECT(). - CreateProject(gomock.Any(), gomock.Any()). - Return(db.Project{ - ID: projID, - ParentID: uuid.NullUUID{ - UUID: orgID, - Valid: true, - }, - Name: "TestProject", - Metadata: projMetaJSON, - CreatedAt: time.Now(), - UpdatedAt: time.Now(), - }, nil). - Times(1) - }, - checkResponse: func(t *testing.T, res *pb.CreateProjectResponse, err error) { - t.Helper() - - assert.NoError(t, err) - assert.NotNil(t, res) - assert.Equal(t, projID.String(), res.ProjectId) - assert.Equal(t, orgID.String(), res.OrganizationId) - assert.Equal(t, "TestProject", res.Name) - assert.Equal(t, false, res.IsProtected) - assert.NotNil(t, res.CreatedAt) - assert.NotNil(t, res.UpdatedAt) - }, - expectedStatusCode: codes.OK, - }, - { - name: "EmptyRequest", - req: &pb.CreateProjectRequest{ - Name: "", - }, - buildStubs: func(store *mockdb.MockStore) { - }, - checkResponse: func(t *testing.T, res *pb.CreateProjectResponse, err error) { - t.Helper() - - // Assert the expected behavior when the request is empty - assert.Error(t, err) - assert.Nil(t, res) - }, - expectedStatusCode: codes.InvalidArgument, - }, - { - name: "StoreError", - req: &pb.CreateProjectRequest{ - OrganizationId: orgID.String(), - Name: "TestProject", - }, - buildStubs: func(store *mockdb.MockStore) { - store.EXPECT(). - CreateProject(gomock.Any(), gomock.Any()). - Return(db.Project{}, errors.New("store error")). - Times(1) - }, - checkResponse: func(t *testing.T, res *pb.CreateProjectResponse, err error) { - t.Helper() - - // Assert the expected behavior when there's a store error - assert.Error(t, err) - assert.Nil(t, res) - }, - expectedStatusCode: codes.Internal, - }, - } - - // Create a new context and set the claims value - ctx := auth.WithPermissionsContext(context.Background(), auth.UserPermissions{ - UserId: 1, - OrganizationId: orgID, - ProjectIds: []uuid.UUID{projID}, - IsStaff: true, - Roles: []auth.RoleInfo{ - {RoleID: 1, IsAdmin: true, ProjectID: &projID, OrganizationID: orgID}}, - }) - - for i := range testCases { - tc := testCases[i] - t.Run(tc.name, func(t *testing.T) { - t.Parallel() - - ctrl := gomock.NewController(t) - defer ctrl.Finish() - - mockStore := mockdb.NewMockStore(ctrl) - tc.buildStubs(mockStore) - - server := newDefaultServer(t, mockStore) - - resp, err := server.CreateProject(ctx, tc.req) - tc.checkResponse(t, resp, err) - }) - } -} - -func TestDeleteProjectDBMock(t *testing.T) { - t.Parallel() - - ctrl := gomock.NewController(t) - defer ctrl.Finish() - - mockStore := mockdb.NewMockStore(ctrl) - - orgID := uuid.New() - projID := uuid.New() - - request := &pb.DeleteProjectRequest{Id: projID.String()} - - // Create a new context and set the claims value - ctx := auth.WithPermissionsContext(context.Background(), auth.UserPermissions{ - UserId: 1, - OrganizationId: orgID, - ProjectIds: []uuid.UUID{projID}, - IsStaff: true, // TODO: remove this - Roles: []auth.RoleInfo{ - {RoleID: 1, IsAdmin: true, ProjectID: &projID, OrganizationID: orgID}}, - }) - - mockStore.EXPECT(). - GetProjectByID(gomock.Any(), gomock.Any()) - mockStore.EXPECT(). - ListRolesByProjectID(ctx, gomock.Any()). - Return([]db.Role{}, nil) - mockStore.EXPECT(). - DeleteProject(ctx, gomock.Any()). - Return(nil, nil) - - server := &Server{ - store: mockStore, - } - - response, err := server.DeleteProject(ctx, request) - - assert.NoError(t, err) - assert.NotNil(t, response) -} - -func TestDeleteProject_gRPC(t *testing.T) { - t.Parallel() - - force := true - - orgID := uuid.New() - projID := uuid.New() - - testCases := []struct { - name string - req *pb.DeleteProjectRequest - buildStubs func(store *mockdb.MockStore) - checkResponse func(t *testing.T, res *pb.DeleteProjectResponse, err error) - expectedStatusCode codes.Code - }{ - { - name: "Success", - req: &pb.DeleteProjectRequest{ - Id: projID.String(), - Force: &force, - }, - buildStubs: func(store *mockdb.MockStore) { - store.EXPECT(). - GetProjectByID(gomock.Any(), gomock.Any()).Return(db.Project{}, nil) - store.EXPECT(). - DeleteProject(gomock.Any(), gomock.Any()).Return(nil, nil). - Times(1) - }, - checkResponse: func(t *testing.T, res *pb.DeleteProjectResponse, err error) { - t.Helper() - - assert.NoError(t, err) - assert.NotNil(t, res) - assert.Equal(t, &pb.DeleteProjectResponse{}, res) - }, - expectedStatusCode: codes.OK, - }, - { - name: "EmptyRequest", - req: &pb.DeleteProjectRequest{}, - buildStubs: func(store *mockdb.MockStore) { - }, - checkResponse: func(t *testing.T, res *pb.DeleteProjectResponse, err error) { - t.Helper() - - // Assert the expected behavior when the request is empty - assert.Error(t, err) - assert.Nil(t, res) - }, - expectedStatusCode: codes.InvalidArgument, - }, - } - - // Create a new context and set the claims value - ctx := auth.WithPermissionsContext(context.Background(), auth.UserPermissions{ - UserId: 1, - OrganizationId: orgID, - ProjectIds: []uuid.UUID{projID}, - IsStaff: true, // TODO: remove this - Roles: []auth.RoleInfo{ - {RoleID: 1, IsAdmin: true, ProjectID: &projID, OrganizationID: orgID}}, - }) - - for i := range testCases { - tc := testCases[i] - t.Run(tc.name, func(t *testing.T) { - t.Parallel() - - ctrl := gomock.NewController(t) - defer ctrl.Finish() - - mockStore := mockdb.NewMockStore(ctrl) - tc.buildStubs(mockStore) - - server := newDefaultServer(t, mockStore) - - resp, err := server.DeleteProject(ctx, tc.req) - tc.checkResponse(t, resp, err) - }) - } -} - -func TestGetProjectsDBMock(t *testing.T) { - t.Parallel() - - ctrl := gomock.NewController(t) - defer ctrl.Finish() - - mockStore := mockdb.NewMockStore(ctrl) - - orgID := uuid.New() - projID := uuid.New() - projID2 := uuid.New() - - // Create a new context and set the claims value - ctx := auth.WithPermissionsContext(context.Background(), auth.UserPermissions{ - UserId: 1, - OrganizationId: orgID, - ProjectIds: []uuid.UUID{projID}, - IsStaff: true, // TODO: remove this - Roles: []auth.RoleInfo{ - {RoleID: 1, IsAdmin: true, ProjectID: &projID, OrganizationID: orgID}}, - }) - - request := &pb.GetProjectsRequest{OrganizationId: orgID.String()} - - expectedProjects := []db.GetChildrenProjectsRow{ - { - ID: orgID, - Name: "org", - }, - { - ID: projID, - ParentID: uuid.NullUUID{ - UUID: orgID, - Valid: true, - }, - Name: "test", - Metadata: []byte(`{"is_protected": false}`), - CreatedAt: time.Now(), - UpdatedAt: time.Now(), - }, - { - ID: projID2, - ParentID: uuid.NullUUID{ - UUID: orgID, - Valid: true, - }, - Name: "test1", - Metadata: []byte(`{"is_protected": true}`), - CreatedAt: time.Now(), - UpdatedAt: time.Now(), - }, - } - - mockStore.EXPECT().GetChildrenProjects(ctx, gomock.Any()). - Return(expectedProjects, nil) - - server := &Server{ - store: mockStore, - } - - response, err := server.GetProjects(ctx, request) - - assert.NoError(t, err) - assert.NotNil(t, response) - assert.Equal(t, len(expectedProjects), db.CalculateProjectHierarchyOffset(len(response.Projects))) - assert.Equal(t, expectedProjects[1].ID.String(), response.Projects[0].ProjectId) - assert.Equal(t, expectedProjects[1].ParentID.UUID.String(), response.Projects[0].OrganizationId) - assert.Equal(t, expectedProjects[1].Name, response.Projects[0].Name) - - expectedCreatedAt := expectedProjects[1].CreatedAt.In(time.UTC) - assert.Equal(t, expectedCreatedAt, response.Projects[0].CreatedAt.AsTime().In(time.UTC)) - expectedUpdatedAt := expectedProjects[1].UpdatedAt.In(time.UTC) - assert.Equal(t, expectedUpdatedAt, response.Projects[0].UpdatedAt.AsTime().In(time.UTC)) -} - -func TestGetProjects_gRPC(t *testing.T) { - t.Parallel() - - orgID := uuid.New() - projID1 := uuid.New() - projID2 := uuid.New() - - testCases := []struct { - name string - req *pb.GetProjectsRequest - buildStubs func(store *mockdb.MockStore) - checkResponse func(t *testing.T, res *pb.GetProjectsResponse, err error) - expectedStatusCode codes.Code - }{ - { - name: "Success", - req: &pb.GetProjectsRequest{OrganizationId: orgID.String()}, - buildStubs: func(store *mockdb.MockStore) { - store.EXPECT().GetChildrenProjects(gomock.Any(), gomock.Any()). - Return([]db.GetChildrenProjectsRow{ - { - ID: orgID, - Name: "org", - }, - { - ID: projID1, - ParentID: uuid.NullUUID{ - UUID: orgID, - Valid: true, - }, - Name: "test", - CreatedAt: time.Now(), - UpdatedAt: time.Now(), - }, - { - ID: projID2, - ParentID: uuid.NullUUID{ - UUID: orgID, - Valid: true, - }, - Name: "test1", - CreatedAt: time.Now(), - UpdatedAt: time.Now(), - }, - }, nil). - Times(1) - }, - checkResponse: func(t *testing.T, res *pb.GetProjectsResponse, err error) { - t.Helper() - - expectedProjects := []*pb.ProjectRecord{ - { - ProjectId: projID1.String(), - OrganizationId: orgID.String(), - Name: "test", - CreatedAt: timestamppb.New(time.Now()), - UpdatedAt: timestamppb.New(time.Now()), - }, - { - ProjectId: projID2.String(), - OrganizationId: orgID.String(), - Name: "test1", - CreatedAt: timestamppb.New(time.Now()), - UpdatedAt: timestamppb.New(time.Now()), - }, - } - - assert.NoError(t, err) - assert.NotNil(t, res) - assert.Equal(t, len(expectedProjects), len(res.Projects)) - assert.Equal(t, expectedProjects[0].OrganizationId, res.Projects[0].OrganizationId) - assert.Equal(t, expectedProjects[0].ProjectId, res.Projects[0].ProjectId) - assert.Equal(t, expectedProjects[0].Name, res.Projects[0].Name) - }, - expectedStatusCode: codes.OK, - }, - } - - for i := range testCases { - tc := testCases[i] - t.Run(tc.name, func(t *testing.T) { - t.Parallel() - - // Create a new context and set the claims value - ctx := auth.WithPermissionsContext(context.Background(), auth.UserPermissions{ - UserId: 1, - OrganizationId: orgID, - ProjectIds: []uuid.UUID{projID1}, - IsStaff: true, // TODO: remove this - Roles: []auth.RoleInfo{ - {RoleID: 1, IsAdmin: true, ProjectID: &projID1, OrganizationID: orgID}}, - }) - - ctrl := gomock.NewController(t) - defer ctrl.Finish() - - mockStore := mockdb.NewMockStore(ctrl) - tc.buildStubs(mockStore) - - server := newDefaultServer(t, mockStore) - - resp, err := server.GetProjects(ctx, tc.req) - tc.checkResponse(t, resp, err) - }) - } -} - -func TestGetProjectDBMock(t *testing.T) { - t.Parallel() - - ctrl := gomock.NewController(t) - defer ctrl.Finish() - - mockStore := mockdb.NewMockStore(ctrl) - - orgID := uuid.New() - projID := uuid.New() - - request := &pb.GetProjectByIdRequest{ProjectId: projID.String()} - // Create a new context and set the claims value - ctx := auth.WithPermissionsContext(context.Background(), auth.UserPermissions{ - UserId: 1, - OrganizationId: orgID, - ProjectIds: []uuid.UUID{projID}, - IsStaff: true, // TODO: remove this - Roles: []auth.RoleInfo{ - {RoleID: 1, IsAdmin: true, ProjectID: &projID, OrganizationID: orgID}}, - }) - - expectedProject := db.Project{ - ID: projID, - ParentID: uuid.NullUUID{UUID: orgID, Valid: true}, - Name: "test", - CreatedAt: time.Now(), - UpdatedAt: time.Now(), - } - - mockStore.EXPECT().GetProjectByID(ctx, gomock.Any()). - Return(expectedProject, nil) - mockStore.EXPECT().ListRolesByProjectID(ctx, gomock.Any()) - mockStore.EXPECT().ListUsersByProject(ctx, gomock.Any()) - - server := &Server{ - store: mockStore, - } - - response, err := server.GetProjectById(ctx, request) - - assert.NoError(t, err) - assert.NotNil(t, response) - assert.Equal(t, expectedProject.ID.String(), response.Project.ProjectId) - assert.Equal(t, expectedProject.ParentID.UUID.String(), response.Project.OrganizationId) - assert.Equal(t, expectedProject.Name, response.Project.Name) - expectedCreatedAt := expectedProject.CreatedAt.In(time.UTC) - assert.Equal(t, expectedCreatedAt, response.Project.CreatedAt.AsTime().In(time.UTC)) - expectedUpdatedAt := expectedProject.UpdatedAt.In(time.UTC) - assert.Equal(t, expectedUpdatedAt, response.Project.UpdatedAt.AsTime().In(time.UTC)) -} - -func TestGetNonExistingProjectDBMock(t *testing.T) { - t.Parallel() - - ctrl := gomock.NewController(t) - defer ctrl.Finish() - - mockStore := mockdb.NewMockStore(ctrl) - - orgID := uuid.New() - projID := uuid.New() - - request := &pb.GetProjectByIdRequest{ProjectId: uuid.NewString()} - // Create a new context and set the claims value - ctx := auth.WithPermissionsContext(context.Background(), auth.UserPermissions{ - UserId: 1, - OrganizationId: orgID, - ProjectIds: []uuid.UUID{projID}, - Roles: []auth.RoleInfo{ - {RoleID: 1, IsAdmin: true, ProjectID: &projID, OrganizationID: orgID}}, - }) - - mockStore.EXPECT().GetProjectByID(ctx, gomock.Any()). - Return(db.Project{}, sql.ErrNoRows) - - server := &Server{ - store: mockStore, - } - - _, err := server.GetProjectById(ctx, request) - - assert.Error(t, err) -} - -func TestGetProject_gRPC(t *testing.T) { - t.Parallel() - - orgID := uuid.New() - projID := uuid.New() - - testCases := []struct { - name string - req *pb.GetProjectByIdRequest - buildStubs func(store *mockdb.MockStore) - checkResponse func(t *testing.T, res *pb.GetProjectByIdResponse, err error) - expectedStatusCode codes.Code - }{ - { - name: "Success", - req: &pb.GetProjectByIdRequest{ProjectId: projID.String()}, - buildStubs: func(store *mockdb.MockStore) { - store.EXPECT().ListRolesByProjectID(gomock.Any(), gomock.Any()) - store.EXPECT().ListUsersByProject(gomock.Any(), gomock.Any()) - - store.EXPECT().GetProjectByID(gomock.Any(), gomock.Any()). - Return(db.Project{ - ID: projID, - ParentID: uuid.NullUUID{UUID: orgID, Valid: true}, - Name: "test", - CreatedAt: time.Now(), - UpdatedAt: time.Now(), - }, nil). - Times(1) - }, - checkResponse: func(t *testing.T, res *pb.GetProjectByIdResponse, err error) { - t.Helper() - - expectedProject := pb.ProjectRecord{ - ProjectId: projID.String(), - OrganizationId: orgID.String(), - Name: "test", - CreatedAt: timestamppb.New(time.Now()), - UpdatedAt: timestamppb.New(time.Now()), - } - - assert.NoError(t, err) - assert.NotNil(t, res) - assert.Equal(t, expectedProject.OrganizationId, res.Project.OrganizationId) - assert.Equal(t, expectedProject.ProjectId, res.Project.ProjectId) - assert.Equal(t, expectedProject.Name, res.Project.Name) - }, - expectedStatusCode: codes.OK, - }, - { - name: "NonExisting", - req: &pb.GetProjectByIdRequest{ProjectId: uuid.NewString()}, - buildStubs: func(store *mockdb.MockStore) { - store.EXPECT().GetProjectByID(gomock.Any(), gomock.Any()). - Return(db.Project{}, sql.ErrNoRows). - Times(1) - - }, - checkResponse: func(t *testing.T, res *pb.GetProjectByIdResponse, err error) { - t.Helper() - - assert.Error(t, err) - assert.Nil(t, res) - }, - expectedStatusCode: codes.OK, - }, - } - - // Create a new context and set the claims value - ctx := auth.WithPermissionsContext(context.Background(), auth.UserPermissions{ - UserId: 1, - OrganizationId: orgID, - ProjectIds: []uuid.UUID{projID}, - IsStaff: true, // TODO: remove this - Roles: []auth.RoleInfo{ - {RoleID: 1, IsAdmin: true, ProjectID: &projID, OrganizationID: orgID}}, - }) - - for i := range testCases { - tc := testCases[i] - t.Run(tc.name, func(t *testing.T) { - t.Parallel() - - ctrl := gomock.NewController(t) - defer ctrl.Finish() - - mockStore := mockdb.NewMockStore(ctrl) - tc.buildStubs(mockStore) - - server := newDefaultServer(t, mockStore) - - resp, err := server.GetProjectById(ctx, tc.req) - tc.checkResponse(t, resp, err) - }) - } -} diff --git a/internal/controlplane/handlers_role.go b/internal/controlplane/handlers_role.go deleted file mode 100644 index 0d9a45515e..0000000000 --- a/internal/controlplane/handlers_role.go +++ /dev/null @@ -1,399 +0,0 @@ -// Copyright 2023 Stacklok, Inc -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package controlplane - -import ( - "context" - "database/sql" - "errors" - - "github.com/go-playground/validator/v10" - "github.com/google/uuid" - "google.golang.org/grpc/codes" - "google.golang.org/grpc/status" - "google.golang.org/protobuf/types/known/timestamppb" - - "github.com/stacklok/mediator/internal/db" - "github.com/stacklok/mediator/internal/util" - pb "github.com/stacklok/mediator/pkg/api/protobuf/go/mediator/v1" -) - -// CreateRoleValidation is a struct for validating the CreateRole request -type CreateRoleValidation struct { - Name string `db:"name" validate:"required"` -} - -// CreateRoleByOrganization is a service for creating a role for an organization -func (s *Server) CreateRoleByOrganization(ctx context.Context, - in *pb.CreateRoleByOrganizationRequest) (*pb.CreateRoleByOrganizationResponse, error) { - // validate that the company and name are not empty - validator := validator.New() - err := validator.Struct(CreateRoleValidation{Name: in.Name}) - if err != nil { - return nil, status.Errorf(codes.InvalidArgument, "invalid argument: %v", err) - } - - orgID, err := uuid.Parse(in.OrganizationId) - if err != nil { - return nil, util.UserVisibleError(codes.InvalidArgument, "invalid organization id") - } - - // check if user is authorized - if err := AuthorizedOnOrg(ctx, orgID); err != nil { - return nil, err - } - - // check that organization exists - _, err = s.store.GetOrganization(ctx, orgID) - if err != nil { - if errors.Is(err, sql.ErrNoRows) { - return nil, status.Error(codes.NotFound, "organization not found") - } - return nil, status.Errorf(codes.Internal, "failed to get organization") - } - - if in.IsAdmin == nil { - isAdmin := false - in.IsAdmin = &isAdmin - } - - if in.IsProtected == nil { - isProtected := false - in.IsProtected = &isProtected - } - - roleParams := db.CreateRoleParams{OrganizationID: orgID, - Name: in.Name, IsAdmin: *in.IsAdmin, IsProtected: *in.IsProtected} - - role, err := s.store.CreateRole(ctx, roleParams) - if err != nil { - return nil, status.Errorf(codes.Internal, "failed to create role: %v", err) - } - - return &pb.CreateRoleByOrganizationResponse{Id: role.ID, Name: role.Name, - IsAdmin: role.IsAdmin, IsProtected: role.IsProtected, - OrganizationId: role.OrganizationID.String(), - CreatedAt: timestamppb.New(role.CreatedAt), - UpdatedAt: timestamppb.New(role.UpdatedAt)}, nil -} - -// CreateRoleByProject is a service for creating a role for a project -func (s *Server) CreateRoleByProject(ctx context.Context, - in *pb.CreateRoleByProjectRequest) (*pb.CreateRoleByProjectResponse, error) { - // validate that the company and name are not empty - validator := validator.New() - err := validator.Struct(CreateRoleValidation{Name: in.Name}) - if err != nil { - return nil, status.Errorf(codes.InvalidArgument, "invalid argument: %v", err) - } - - projID, err := uuid.Parse(in.ProjectId) - if err != nil { - return nil, util.UserVisibleError(codes.InvalidArgument, "invalid project id") - } - - // check if user is authorized - if err := AuthorizedOnProject(ctx, projID); err != nil { - return nil, err - } - - orgID, err := uuid.Parse(in.OrganizationId) - if err != nil { - return nil, util.UserVisibleError(codes.InvalidArgument, "invalid organization id") - } - - // check that organization exists - _, err = s.store.GetOrganization(ctx, orgID) - if err != nil { - if errors.Is(err, sql.ErrNoRows) { - return nil, status.Error(codes.NotFound, "organization not found") - } - return nil, status.Errorf(codes.Internal, "failed to get organization") - } - - // check that project exists - _, err = s.store.GetProjectByID(ctx, projID) - if err != nil { - if errors.Is(err, sql.ErrNoRows) { - return nil, status.Error(codes.NotFound, "project not found") - } - return nil, status.Errorf(codes.Internal, "failed to get project by id: %s", err) - } - - if in.IsAdmin == nil { - isAdmin := false - in.IsAdmin = &isAdmin - } - - if in.IsProtected == nil { - isProtected := false - in.IsProtected = &isProtected - } - - roleParams := db.CreateRoleParams{OrganizationID: orgID, - Name: in.Name, IsAdmin: *in.IsAdmin, IsProtected: *in.IsProtected, - ProjectID: uuid.NullUUID{UUID: projID, Valid: true}} - - role, err := s.store.CreateRole(ctx, roleParams) - if err != nil { - return nil, status.Errorf(codes.Internal, "failed to create role: %v", err) - } - - return &pb.CreateRoleByProjectResponse{Id: role.ID, Name: role.Name, - IsAdmin: role.IsAdmin, IsProtected: role.IsProtected, - OrganizationId: role.OrganizationID.String(), - ProjectId: role.ProjectID.UUID.String(), - CreatedAt: timestamppb.New(role.CreatedAt), - UpdatedAt: timestamppb.New(role.UpdatedAt)}, nil -} - -type deleteRoleValidation struct { - Id int32 `db:"id" validate:"required"` -} - -// DeleteRole is a service for deleting a role -func (s *Server) DeleteRole(ctx context.Context, - in *pb.DeleteRoleRequest) (*pb.DeleteRoleResponse, error) { - validator := validator.New() - err := validator.Struct(deleteRoleValidation{Id: in.Id}) - if err != nil { - return nil, status.Errorf(codes.InvalidArgument, "invalid argument: %v", err) - } - - // first check if the role exists and is not protected - role, err := s.store.GetRoleByID(ctx, in.Id) - if err != nil { - if errors.Is(err, sql.ErrNoRows) { - return nil, status.Errorf(codes.NotFound, "role not found") - } - return nil, status.Errorf(codes.Internal, "failed to get role by id: %v", err) - } - - // check if user is authorized - if err := AuthorizedOnOrg(ctx, role.OrganizationID); err != nil { - return nil, err - } - - if in.Force == nil { - isProtected := false - in.Force = &isProtected - } - - if !*in.Force && role.IsProtected { - return nil, status.Errorf(codes.InvalidArgument, "cannot delete a protected role") - } - - // if we do not force the deletion, we need to check if there are users - if !*in.Force { - // list users associated with that role - users, err := s.store.ListUsersByRoleId(ctx, in.Id) - if err != nil { - return nil, status.Errorf(codes.Internal, "failed to list users by role id: %v", err) - } - - if len(users) > 0 { - return nil, status.Errorf(codes.InvalidArgument, "cannot delete the role, there are users associated with it") - } - } - - // otherwise we delete, and delete association in cascade - err = s.store.DeleteRole(ctx, in.Id) - if err != nil { - return nil, status.Errorf(codes.Internal, "failed to delete role: %v", err) - } - - return &pb.DeleteRoleResponse{}, nil -} - -// GetRoles is a service for getting roles -func (s *Server) GetRoles(ctx context.Context, - in *pb.GetRolesRequest) (*pb.GetRolesResponse, error) { - orgID, err := uuid.Parse(in.OrganizationId) - if err != nil { - return nil, util.UserVisibleError(codes.InvalidArgument, "invalid organization id") - } - - // check if user is authorized - if err := AuthorizedOnOrg(ctx, orgID); err != nil { - return nil, err - } - - // define default values for limit and offset - if in.Limit == nil || *in.Limit == -1 { - in.Limit = new(int32) - *in.Limit = PaginationLimit - } - if in.Offset == nil { - in.Offset = new(int32) - *in.Offset = 0 - } - - roles, err := s.store.ListRoles(ctx, db.ListRolesParams{ - OrganizationID: orgID, - Limit: *in.Limit, - Offset: *in.Offset, - }) - if err != nil { - return nil, status.Errorf(codes.Unknown, "failed to get roles: %s", err) - } - - var resp pb.GetRolesResponse - resp.Roles = make([]*pb.RoleRecord, 0, len(roles)) - for idx := range roles { - role := &roles[idx] - projID := role.ProjectID.UUID.String() - resp.Roles = append(resp.Roles, &pb.RoleRecord{ - Id: role.ID, - OrganizationId: role.OrganizationID.String(), - ProjectId: &projID, - Name: role.Name, - IsAdmin: role.IsAdmin, - IsProtected: role.IsProtected, - CreatedAt: timestamppb.New(role.CreatedAt), - UpdatedAt: timestamppb.New(role.UpdatedAt), - }) - } - - return &resp, nil -} - -// GetRolesByProject is a service for getting roles for a projects -func (s *Server) GetRolesByProject(ctx context.Context, - in *pb.GetRolesByProjectRequest) (*pb.GetRolesByProjectResponse, error) { - projID, err := uuid.Parse(in.ProjectId) - if err != nil { - return nil, util.UserVisibleError(codes.InvalidArgument, "invalid project id") - } - - // check if user is authorized - if err := AuthorizedOnProject(ctx, projID); err != nil { - return nil, err - } - - // define default values for limit and offset - if in.Limit == nil || *in.Limit == -1 { - in.Limit = new(int32) - *in.Limit = PaginationLimit - } - if in.Offset == nil { - in.Offset = new(int32) - *in.Offset = 0 - } - - roles, err := s.store.ListRolesByProjectID(ctx, db.ListRolesByProjectIDParams{ - ProjectID: uuid.NullUUID{UUID: projID, Valid: true}, - Limit: *in.Limit, - Offset: *in.Offset, - }) - if err != nil { - return nil, status.Errorf(codes.Internal, "failed to get roles by project id: %v", err) - } - - var resp pb.GetRolesByProjectResponse - resp.Roles = make([]*pb.RoleRecord, 0, len(roles)) - for idx := range roles { - role := &roles[idx] - pID := role.ProjectID.UUID.String() - resp.Roles = append(resp.Roles, &pb.RoleRecord{ - Id: role.ID, - OrganizationId: role.OrganizationID.String(), - ProjectId: &pID, - Name: role.Name, - IsAdmin: role.IsAdmin, - IsProtected: role.IsProtected, - CreatedAt: timestamppb.New(role.CreatedAt), - UpdatedAt: timestamppb.New(role.UpdatedAt), - }) - } - - return &resp, nil -} - -// GetRoleById is a service for getting a role by id -func (s *Server) GetRoleById(ctx context.Context, - in *pb.GetRoleByIdRequest) (*pb.GetRoleByIdResponse, error) { - if in.Id == 0 { - return nil, status.Error(codes.InvalidArgument, "role id is required") - } - - role, err := s.store.GetRoleByID(ctx, in.Id) - if err != nil { - if errors.Is(err, sql.ErrNoRows) { - return nil, status.Errorf(codes.NotFound, "role not found") - } - return nil, status.Errorf(codes.Internal, "failed to get role: %v", err) - } - - // check if user is authorized - if err := AuthorizedOnOrg(ctx, role.OrganizationID); err != nil { - return nil, err - } - - var resp pb.GetRoleByIdResponse - projID := role.ProjectID.UUID.String() - resp.Role = &pb.RoleRecord{ - Id: role.ID, - OrganizationId: role.OrganizationID.String(), - ProjectId: &projID, - Name: role.Name, - IsAdmin: role.IsAdmin, - IsProtected: role.IsProtected, - CreatedAt: timestamppb.New(role.CreatedAt), - UpdatedAt: timestamppb.New(role.UpdatedAt), - } - - return &resp, nil -} - -// GetRoleByName is a service for getting a role by name -func (s *Server) GetRoleByName(ctx context.Context, - in *pb.GetRoleByNameRequest) (*pb.GetRoleByNameResponse, error) { - orgID, err := uuid.Parse(in.OrganizationId) - if err != nil { - return nil, util.UserVisibleError(codes.InvalidArgument, "invalid organization id") - } - - // check if user is authorized - if err := AuthorizedOnOrg(ctx, orgID); err != nil { - return nil, err - } - - if in.Name == "" { - return nil, status.Errorf(codes.InvalidArgument, "role name is required") - } - - role, err := s.store.GetRoleByName(ctx, db.GetRoleByNameParams{OrganizationID: orgID, Name: in.Name}) - if err != nil { - if errors.Is(err, sql.ErrNoRows) { - return nil, status.Error(codes.NotFound, "role not found") - } - return nil, status.Errorf(codes.Internal, "failed to get role by name: %v", err) - } - - var resp pb.GetRoleByNameResponse - projID := role.ProjectID.UUID.String() - resp.Role = &pb.RoleRecord{ - Id: role.ID, - OrganizationId: role.OrganizationID.String(), - ProjectId: &projID, - Name: role.Name, - IsAdmin: role.IsAdmin, - IsProtected: role.IsProtected, - CreatedAt: timestamppb.New(role.CreatedAt), - UpdatedAt: timestamppb.New(role.UpdatedAt), - } - - return &resp, nil -} diff --git a/internal/controlplane/handlers_role_test.go b/internal/controlplane/handlers_role_test.go deleted file mode 100644 index 4b59e84041..0000000000 --- a/internal/controlplane/handlers_role_test.go +++ /dev/null @@ -1,684 +0,0 @@ -// Copyright 2023 Stacklok, Inc -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package controlplane - -import ( - "context" - "errors" - "testing" - "time" - - "github.com/golang/mock/gomock" - "github.com/google/uuid" - "github.com/stretchr/testify/assert" - "google.golang.org/grpc/codes" - "google.golang.org/protobuf/types/known/timestamppb" - - mockdb "github.com/stacklok/mediator/database/mock" - "github.com/stacklok/mediator/internal/auth" - "github.com/stacklok/mediator/internal/db" - pb "github.com/stacklok/mediator/pkg/api/protobuf/go/mediator/v1" -) - -func TestCreateRoleDBMock(t *testing.T) { - t.Parallel() - - ctrl := gomock.NewController(t) - defer ctrl.Finish() - - mockStore := mockdb.NewMockStore(ctrl) - - orgID := uuid.New() - projectID := uuid.New() - - request := &pb.CreateRoleByProjectRequest{ - OrganizationId: orgID.String(), - ProjectId: projectID.String(), - Name: "TestRole", - IsAdmin: nil, - IsProtected: nil, - } - - expectedRole := db.Role{ - ID: 1, - OrganizationID: orgID, - ProjectID: uuid.NullUUID{UUID: projectID, Valid: true}, - Name: "TestRole", - IsAdmin: false, - IsProtected: false, - CreatedAt: time.Now(), - UpdatedAt: time.Now(), - } - // Create a new context and set the claims value - ctx := auth.WithPermissionsContext(context.Background(), auth.UserPermissions{ - UserId: 1, - OrganizationId: orgID, - ProjectIds: []uuid.UUID{projectID}, - IsStaff: true, // TODO: remove this - Roles: []auth.RoleInfo{ - {RoleID: 1, IsAdmin: true, ProjectID: &projectID, OrganizationID: orgID}}, - }) - - mockStore.EXPECT().GetOrganization(ctx, gomock.Any()) - mockStore.EXPECT().GetProjectByID(ctx, gomock.Any()) - mockStore.EXPECT(). - CreateRole(ctx, gomock.Any()). - Return(expectedRole, nil) - - server := &Server{ - store: mockStore, - } - - response, err := server.CreateRoleByProject(ctx, request) - - assert.NoError(t, err) - assert.NotNil(t, response) - assert.Equal(t, expectedRole.ID, response.Id) - assert.Equal(t, expectedRole.Name, response.Name) - parsedProjectID, err := uuid.Parse(response.ProjectId) - assert.NoError(t, err, "failed to parse project id") - assert.Equal(t, expectedRole.ProjectID, uuid.NullUUID{UUID: parsedProjectID, Valid: true}) - assert.Equal(t, expectedRole.IsAdmin, response.IsAdmin) - assert.Equal(t, expectedRole.IsProtected, response.IsProtected) - expectedCreatedAt := expectedRole.CreatedAt.In(time.UTC) - assert.Equal(t, expectedCreatedAt, response.CreatedAt.AsTime().In(time.UTC)) - expectedUpdatedAt := expectedRole.UpdatedAt.In(time.UTC) - assert.Equal(t, expectedUpdatedAt, response.UpdatedAt.AsTime().In(time.UTC)) -} - -func TestCreateRole_gRPC(t *testing.T) { - t.Parallel() - - orgID := uuid.New() - projectID := uuid.New() - - testCases := []struct { - name string - req *pb.CreateRoleByProjectRequest - buildStubs func(store *mockdb.MockStore) - checkResponse func(t *testing.T, res *pb.CreateRoleByProjectResponse, err error) - expectedStatusCode codes.Code - }{ - { - name: "Success", - req: &pb.CreateRoleByProjectRequest{ - OrganizationId: orgID.String(), - ProjectId: projectID.String(), - Name: "TestRole", - }, - buildStubs: func(store *mockdb.MockStore) { - store.EXPECT().GetOrganization(gomock.Any(), gomock.Any()) - store.EXPECT().GetProjectByID(gomock.Any(), gomock.Any()) - store.EXPECT(). - CreateRole(gomock.Any(), gomock.Any()). - Return(db.Role{ - ID: 1, - OrganizationID: orgID, - Name: "TestRole", - IsAdmin: false, - IsProtected: false, - CreatedAt: time.Now(), - UpdatedAt: time.Now(), - }, nil). - Times(1) - }, - checkResponse: func(t *testing.T, res *pb.CreateRoleByProjectResponse, err error) { - t.Helper() - - assert.NoError(t, err) - assert.NotNil(t, res) - assert.Equal(t, int32(1), res.Id) - assert.Equal(t, "TestRole", res.Name) - assert.Equal(t, orgID.String(), res.OrganizationId) - assert.Equal(t, false, res.IsAdmin) - assert.Equal(t, false, res.IsProtected) - assert.NotNil(t, res.CreatedAt) - assert.NotNil(t, res.UpdatedAt) - }, - expectedStatusCode: codes.OK, - }, - { - name: "EmptyRequest", - req: &pb.CreateRoleByProjectRequest{ - Name: "", - }, - buildStubs: func(store *mockdb.MockStore) { - // No expectations, as CreateRole should not be called - }, - checkResponse: func(t *testing.T, res *pb.CreateRoleByProjectResponse, err error) { - t.Helper() - - // Assert the expected behavior when the request is empty - assert.Error(t, err) - assert.Nil(t, res) - }, - expectedStatusCode: codes.InvalidArgument, - }, - { - name: "StoreError", - req: &pb.CreateRoleByProjectRequest{ - OrganizationId: orgID.String(), - ProjectId: projectID.String(), - Name: "TestRole", - }, - buildStubs: func(store *mockdb.MockStore) { - store.EXPECT().GetOrganization(gomock.Any(), gomock.Any()) - store.EXPECT().GetProjectByID(gomock.Any(), gomock.Any()) - store.EXPECT(). - CreateRole(gomock.Any(), gomock.Any()). - Return(db.Role{}, errors.New("store error")). - Times(1) - }, - checkResponse: func(t *testing.T, res *pb.CreateRoleByProjectResponse, err error) { - t.Helper() - - // Assert the expected behavior when there's a store error - assert.Error(t, err) - assert.Nil(t, res) - }, - expectedStatusCode: codes.Internal, - }, - } - // Create a new context and set the claims value - ctx := auth.WithPermissionsContext(context.Background(), auth.UserPermissions{ - UserId: 1, - OrganizationId: orgID, - ProjectIds: []uuid.UUID{projectID}, - IsStaff: true, // TODO: remove this - Roles: []auth.RoleInfo{ - {RoleID: 1, IsAdmin: true, ProjectID: &projectID, OrganizationID: orgID}}, - }) - - for i := range testCases { - tc := testCases[i] - t.Run(tc.name, func(t *testing.T) { - t.Parallel() - - ctrl := gomock.NewController(t) - defer ctrl.Finish() - - mockStore := mockdb.NewMockStore(ctrl) - tc.buildStubs(mockStore) - - server := newDefaultServer(t, mockStore) - - resp, err := server.CreateRoleByProject(ctx, tc.req) - tc.checkResponse(t, resp, err) - }) - } -} - -func TestDeleteRoleDBMock(t *testing.T) { - t.Parallel() - - ctrl := gomock.NewController(t) - defer ctrl.Finish() - - mockStore := mockdb.NewMockStore(ctrl) - - orgID := uuid.New() - projectID := uuid.New() - - request := &pb.DeleteRoleRequest{Id: 1} - - // Create a new context and set the claims value - ctx := auth.WithPermissionsContext(context.Background(), auth.UserPermissions{ - UserId: 1, - OrganizationId: orgID, - ProjectIds: []uuid.UUID{projectID}, - IsStaff: true, // TODO: remove this - Roles: []auth.RoleInfo{ - {RoleID: 1, IsAdmin: true, ProjectID: &projectID, OrganizationID: orgID}}, - }) - - mockStore.EXPECT().GetRoleByID(ctx, gomock.Any()) - mockStore.EXPECT(). - ListUsersByRoleId(gomock.Any(), gomock.Any()) - mockStore.EXPECT(). - DeleteRole(ctx, gomock.Any()). - Return(nil) - - server := &Server{ - store: mockStore, - } - - response, err := server.DeleteRole(ctx, request) - - assert.NoError(t, err) - assert.NotNil(t, response) -} - -func TestDeleteRole_gRPC(t *testing.T) { - t.Parallel() - - force := true - - orgID := uuid.New() - projectID := uuid.New() - - testCases := []struct { - name string - req *pb.DeleteRoleRequest - buildStubs func(store *mockdb.MockStore) - checkResponse func(t *testing.T, res *pb.DeleteRoleResponse, err error) - expectedStatusCode codes.Code - }{ - { - name: "Success", - req: &pb.DeleteRoleRequest{ - Id: 1, - Force: &force, - }, - buildStubs: func(store *mockdb.MockStore) { - store.EXPECT(). - GetRoleByID(gomock.Any(), gomock.Any()).Return(db.Role{}, nil).Times(1) - store.EXPECT(). - DeleteRole(gomock.Any(), gomock.Any()).Return(nil). - Times(1) - }, - checkResponse: func(t *testing.T, res *pb.DeleteRoleResponse, err error) { - t.Helper() - - assert.NoError(t, err) - assert.NotNil(t, res) - assert.Equal(t, &pb.DeleteRoleResponse{}, res) - }, - expectedStatusCode: codes.OK, - }, - { - name: "EmptyRequest", - req: &pb.DeleteRoleRequest{ - Id: 0, - }, - buildStubs: func(store *mockdb.MockStore) { - // No expectations, as CreateRole should not be called - }, - checkResponse: func(t *testing.T, res *pb.DeleteRoleResponse, err error) { - t.Helper() - - // Assert the expected behavior when the request is empty - assert.Error(t, err) - assert.Nil(t, res) - }, - expectedStatusCode: codes.InvalidArgument, - }, - } - - // Create a new context and set the claims value - ctx := auth.WithPermissionsContext(context.Background(), auth.UserPermissions{ - UserId: 1, - OrganizationId: orgID, - ProjectIds: []uuid.UUID{projectID}, - IsStaff: true, // TODO: remove this - Roles: []auth.RoleInfo{ - {RoleID: 1, IsAdmin: true, ProjectID: &projectID, OrganizationID: orgID}}, - }) - - for i := range testCases { - tc := testCases[i] - t.Run(tc.name, func(t *testing.T) { - t.Parallel() - - ctrl := gomock.NewController(t) - defer ctrl.Finish() - - mockStore := mockdb.NewMockStore(ctrl) - tc.buildStubs(mockStore) - - server := newDefaultServer(t, mockStore) - - resp, err := server.DeleteRole(ctx, tc.req) - tc.checkResponse(t, resp, err) - }) - } -} - -func TestGetRolesDBMock(t *testing.T) { - t.Parallel() - - ctrl := gomock.NewController(t) - defer ctrl.Finish() - - mockStore := mockdb.NewMockStore(ctrl) - - // use root so we can do the operation - orgID := uuid.New() - projectID := uuid.New() - - request := &pb.GetRolesRequest{OrganizationId: orgID.String()} - - expectedRoles := []db.Role{ - { - ID: 1, - OrganizationID: orgID, - Name: "test", - CreatedAt: time.Now(), - UpdatedAt: time.Now(), - }, - { - ID: 2, - OrganizationID: orgID, - Name: "test1", - IsProtected: true, - CreatedAt: time.Now(), - UpdatedAt: time.Now(), - }, - } - // Create a new context and set the claims value - ctx := auth.WithPermissionsContext(context.Background(), auth.UserPermissions{ - UserId: 1, - OrganizationId: orgID, - ProjectIds: []uuid.UUID{projectID}, - IsStaff: true, // TODO: remove this - Roles: []auth.RoleInfo{ - {RoleID: 1, IsAdmin: true, ProjectID: &projectID, OrganizationID: orgID}}, - }) - - mockStore.EXPECT().ListRoles(ctx, gomock.Any()). - Return(expectedRoles, nil) - - server := &Server{ - store: mockStore, - } - - response, err := server.GetRoles(ctx, request) - - assert.NoError(t, err) - assert.NotNil(t, response) - assert.Equal(t, len(expectedRoles), len(response.Roles)) - assert.Equal(t, expectedRoles[0].ID, response.Roles[0].Id) - assert.Equal(t, expectedRoles[0].OrganizationID.String(), response.Roles[0].OrganizationId) - assert.Equal(t, expectedRoles[0].Name, response.Roles[0].Name) - - expectedCreatedAt := expectedRoles[0].CreatedAt.In(time.UTC) - assert.Equal(t, expectedCreatedAt, response.Roles[0].CreatedAt.AsTime().In(time.UTC)) - expectedUpdatedAt := expectedRoles[0].UpdatedAt.In(time.UTC) - assert.Equal(t, expectedUpdatedAt, response.Roles[0].UpdatedAt.AsTime().In(time.UTC)) -} - -func TestGetRoles_gRPC(t *testing.T) { - t.Parallel() - - orgID := uuid.New() - projectID := uuid.New() - - testCases := []struct { - name string - req *pb.GetRolesRequest - buildStubs func(store *mockdb.MockStore) - checkResponse func(t *testing.T, res *pb.GetRolesResponse, err error) - expectedStatusCode codes.Code - }{ - { - name: "Success", - req: &pb.GetRolesRequest{OrganizationId: orgID.String()}, - buildStubs: func(store *mockdb.MockStore) { - store.EXPECT().ListRoles(gomock.Any(), gomock.Any()). - Return([]db.Role{ - { - ID: 1, - OrganizationID: orgID, - Name: "test", - CreatedAt: time.Now(), - UpdatedAt: time.Now(), - }, - { - ID: 2, - OrganizationID: orgID, - Name: "test1", - IsProtected: true, - CreatedAt: time.Now(), - UpdatedAt: time.Now(), - }, - }, nil). - Times(1) - }, - checkResponse: func(t *testing.T, res *pb.GetRolesResponse, err error) { - t.Helper() - - expectedRoles := []*pb.RoleRecord{ - { - Id: 1, - OrganizationId: orgID.String(), - Name: "test", - CreatedAt: timestamppb.New(time.Now()), - UpdatedAt: timestamppb.New(time.Now()), - }, - { - Id: 2, - OrganizationId: orgID.String(), - Name: "test1", - IsProtected: true, - CreatedAt: timestamppb.New(time.Now()), - UpdatedAt: timestamppb.New(time.Now()), - }, - } - - assert.NoError(t, err) - assert.NotNil(t, res) - assert.Equal(t, len(expectedRoles), len(res.Roles)) - assert.Equal(t, expectedRoles[0].Id, res.Roles[0].Id) - assert.Equal(t, expectedRoles[0].OrganizationId, res.Roles[0].OrganizationId) - assert.Equal(t, expectedRoles[0].Name, res.Roles[0].Name) - }, - expectedStatusCode: codes.OK, - }, - } - - // Create a new context and set the claims value - ctx := auth.WithPermissionsContext(context.Background(), auth.UserPermissions{ - UserId: 1, - OrganizationId: orgID, - ProjectIds: []uuid.UUID{projectID}, - IsStaff: true, // TODO: remove this - Roles: []auth.RoleInfo{ - {RoleID: 1, IsAdmin: true, ProjectID: &projectID, OrganizationID: orgID}}, - }) - - for i := range testCases { - tc := testCases[i] - t.Run(tc.name, func(t *testing.T) { - t.Parallel() - - ctrl := gomock.NewController(t) - defer ctrl.Finish() - - mockStore := mockdb.NewMockStore(ctrl) - tc.buildStubs(mockStore) - - server := newDefaultServer(t, mockStore) - - resp, err := server.GetRoles(ctx, tc.req) - tc.checkResponse(t, resp, err) - }) - } -} - -func TestGetRoleDBMock(t *testing.T) { - t.Parallel() - - ctrl := gomock.NewController(t) - defer ctrl.Finish() - - mockStore := mockdb.NewMockStore(ctrl) - - request := &pb.GetRoleByIdRequest{Id: 1} - - orgID := uuid.New() - projectID := uuid.New() - - expectedRole := db.Role{ - ID: 1, - OrganizationID: orgID, - Name: "test", - CreatedAt: time.Now(), - UpdatedAt: time.Now(), - } - // Create a new context and set the claims value - ctx := auth.WithPermissionsContext(context.Background(), auth.UserPermissions{ - UserId: 1, - OrganizationId: orgID, - ProjectIds: []uuid.UUID{projectID}, - IsStaff: true, // TODO: remove this - Roles: []auth.RoleInfo{ - {RoleID: 1, IsAdmin: true, ProjectID: &projectID, OrganizationID: orgID}}, - }) - - mockStore.EXPECT().GetRoleByID(ctx, gomock.Any()). - Return(expectedRole, nil) - - server := &Server{ - store: mockStore, - } - - response, err := server.GetRoleById(ctx, request) - - assert.NoError(t, err) - assert.NotNil(t, response) - assert.Equal(t, expectedRole.ID, response.Role.Id) - assert.Equal(t, expectedRole.OrganizationID.String(), response.Role.OrganizationId) - assert.Equal(t, expectedRole.Name, response.Role.Name) - expectedCreatedAt := expectedRole.CreatedAt.In(time.UTC) - assert.Equal(t, expectedCreatedAt, response.Role.CreatedAt.AsTime().In(time.UTC)) - expectedUpdatedAt := expectedRole.UpdatedAt.In(time.UTC) - assert.Equal(t, expectedUpdatedAt, response.Role.UpdatedAt.AsTime().In(time.UTC)) -} - -func TestGetNonExistingRoleDBMock(t *testing.T) { - t.Parallel() - - ctrl := gomock.NewController(t) - defer ctrl.Finish() - - mockStore := mockdb.NewMockStore(ctrl) - - orgID := uuid.New() - projectID := uuid.New() - - request := &pb.GetRoleByIdRequest{Id: 5} - // Create a new context and set the claims value - ctx := auth.WithPermissionsContext(context.Background(), auth.UserPermissions{ - UserId: 1, - OrganizationId: orgID, - ProjectIds: []uuid.UUID{projectID}, - IsStaff: true, // TODO: remove this - Roles: []auth.RoleInfo{ - {RoleID: 1, IsAdmin: true, ProjectID: &projectID, OrganizationID: orgID}}, - }) - - mockStore.EXPECT().GetRoleByID(ctx, gomock.Any()). - Return(db.Role{}, nil) - - server := &Server{ - store: mockStore, - } - - response, err := server.GetRoleById(ctx, request) - - assert.NoError(t, err) - assert.Equal(t, int32(0), response.Role.Id) -} - -func TestGetRole_gRPC(t *testing.T) { - t.Parallel() - - orgID := uuid.New() - projectID := uuid.New() - - testCases := []struct { - name string - req *pb.GetRoleByIdRequest - buildStubs func(store *mockdb.MockStore) - checkResponse func(t *testing.T, res *pb.GetRoleByIdResponse, err error) - expectedStatusCode codes.Code - }{ - { - name: "Success", - req: &pb.GetRoleByIdRequest{Id: 1}, - buildStubs: func(store *mockdb.MockStore) { - store.EXPECT().GetRoleByID(gomock.Any(), gomock.Any()). - Return(db.Role{ - ID: 1, - OrganizationID: orgID, - Name: "test", - CreatedAt: time.Now(), - UpdatedAt: time.Now(), - }, nil). - Times(1) - }, - checkResponse: func(t *testing.T, res *pb.GetRoleByIdResponse, err error) { - t.Helper() - - expectedRole := pb.RoleRecord{ - Id: 1, - OrganizationId: orgID.String(), - Name: "test", - CreatedAt: timestamppb.New(time.Now()), - UpdatedAt: timestamppb.New(time.Now()), - } - - assert.NoError(t, err) - assert.NotNil(t, res) - assert.Equal(t, expectedRole.Id, res.Role.Id) - assert.Equal(t, expectedRole.OrganizationId, res.Role.OrganizationId) - assert.Equal(t, expectedRole.Name, res.Role.Name) - }, - expectedStatusCode: codes.OK, - }, - { - name: "NonExisting", - req: &pb.GetRoleByIdRequest{Id: 5}, - buildStubs: func(store *mockdb.MockStore) { - store.EXPECT().GetRoleByID(gomock.Any(), gomock.Any()). - Return(db.Role{}, nil). - Times(1) - }, - checkResponse: func(t *testing.T, res *pb.GetRoleByIdResponse, err error) { - t.Helper() - - assert.NoError(t, err) - assert.Equal(t, int32(0), res.Role.Id) - }, - expectedStatusCode: codes.OK, - }, - } - // Create a new context and set the claims value - ctx := auth.WithPermissionsContext(context.Background(), auth.UserPermissions{ - UserId: 1, - OrganizationId: orgID, - ProjectIds: []uuid.UUID{projectID}, - IsStaff: true, - Roles: []auth.RoleInfo{ - {RoleID: 1, IsAdmin: true, ProjectID: &projectID, OrganizationID: orgID}}, - }) - - for i := range testCases { - tc := testCases[i] - t.Run(tc.name, func(t *testing.T) { - t.Parallel() - - ctrl := gomock.NewController(t) - defer ctrl.Finish() - - mockStore := mockdb.NewMockStore(ctrl) - tc.buildStubs(mockStore) - - server := newDefaultServer(t, mockStore) - - resp, err := server.GetRoleById(ctx, tc.req) - tc.checkResponse(t, resp, err) - }) - } -} diff --git a/internal/controlplane/handlers_user.go b/internal/controlplane/handlers_user.go index 839595b664..406b40706c 100644 --- a/internal/controlplane/handlers_user.go +++ b/internal/controlplane/handlers_user.go @@ -28,7 +28,6 @@ import ( "google.golang.org/protobuf/types/known/timestamppb" "github.com/stacklok/mediator/internal/db" - "github.com/stacklok/mediator/internal/util" pb "github.com/stacklok/mediator/pkg/api/protobuf/go/mediator/v1" ) @@ -69,7 +68,6 @@ func (s *Server) CreateUser(ctx context.Context, var userOrg uuid.UUID var userProject uuid.UUID - var userRoles []int32 orgmeta := &OrgMeta{ Company: subject + " - Self enrolled", @@ -93,17 +91,13 @@ func (s *Server) CreateUser(ctx context.Context, if err != nil { return nil, status.Errorf(codes.Internal, "failed to create organization: %s", err) } - orgProject, orgRoles, err := CreateDefaultRecordsForOrg(ctx, qtx, organization, baseName) + orgProject, userRoles, err := CreateDefaultRecordsForOrg(ctx, qtx, organization, baseName) if err != nil { return nil, status.Errorf(codes.Internal, "failed to create default organization records: %s", err) } userOrg = organization.ID userProject = uuid.MustParse(orgProject.ProjectId) - for _, role := range orgRoles { - userRoles = append(userRoles, role.Id) - } - user, err := qtx.CreateUser(ctx, db.CreateUserParams{OrganizationID: userOrg, Email: *stringToNullString(token.Email()), FirstName: *stringToNullString(token.GivenName()), @@ -183,236 +177,24 @@ func (s *Server) DeleteUser(ctx context.Context, return &pb.DeleteUserResponse{}, nil } -// GetUsers is a service for getting a list of users -func (s *Server) GetUsers(ctx context.Context, - in *pb.GetUsersRequest) (*pb.GetUsersResponse, error) { - - // define default values for limit and offset - if in.Limit == nil || *in.Limit == -1 { - in.Limit = new(int32) - *in.Limit = PaginationLimit - } - if in.Offset == nil { - in.Offset = new(int32) - *in.Offset = 0 - } - - users, err := s.store.ListUsers(ctx, db.ListUsersParams{ - Limit: *in.Limit, - Offset: *in.Offset, - }) - if err != nil { - if errors.Is(err, sql.ErrNoRows) { - return nil, util.UserVisibleError(codes.NotFound, "user not found") - } - return nil, status.Errorf(codes.Internal, "failed to get users: %s", err) - } - - var resp pb.GetUsersResponse - resp.Users = make([]*pb.UserRecord, 0, len(users)) - for idx := range users { - user := &users[idx] - resp.Users = append(resp.Users, &pb.UserRecord{ - Id: user.ID, - OrganizationId: user.OrganizationID.String(), - Email: &user.Email.String, - IdentitySubject: user.IdentitySubject, - FirstName: &user.FirstName.String, - LastName: &user.LastName.String, - CreatedAt: timestamppb.New(user.CreatedAt), - UpdatedAt: timestamppb.New(user.UpdatedAt), - }) - } - - return &resp, nil -} - -// GetUsersByOrganization is a service for getting a list of users of an organization -func (s *Server) GetUsersByOrganization(ctx context.Context, - in *pb.GetUsersByOrganizationRequest) (*pb.GetUsersByOrganizationResponse, error) { - orgID, err := uuid.Parse(in.OrganizationId) - if err != nil { - return nil, util.UserVisibleError(codes.InvalidArgument, "invalid organization id") - } - - // check if user is authorized - if err := AuthorizedOnOrg(ctx, orgID); err != nil { - return nil, err - } - - // define default values for limit and offset - if in.Limit == nil || *in.Limit == -1 { - in.Limit = new(int32) - *in.Limit = PaginationLimit - } - if in.Offset == nil { - in.Offset = new(int32) - *in.Offset = 0 - } - - users, err := s.store.ListUsersByOrganization(ctx, db.ListUsersByOrganizationParams{ - OrganizationID: orgID, - Limit: *in.Limit, - Offset: *in.Offset, - }) - if err != nil { - return nil, status.Errorf(codes.Internal, "failed to get users: %s", err) - } - - var resp pb.GetUsersByOrganizationResponse - resp.Users = make([]*pb.UserRecord, 0, len(users)) - for idx := range users { - user := &users[idx] - resp.Users = append(resp.Users, &pb.UserRecord{ - Id: user.ID, - OrganizationId: user.OrganizationID.String(), - Email: &user.Email.String, - IdentitySubject: user.IdentitySubject, - FirstName: &user.FirstName.String, - LastName: &user.LastName.String, - CreatedAt: timestamppb.New(user.CreatedAt), - UpdatedAt: timestamppb.New(user.UpdatedAt), - }) - } - - return &resp, nil -} - -// GetUsersByProject is a service for getting a list of users of a project -func (s *Server) GetUsersByProject(ctx context.Context, - in *pb.GetUsersByProjectRequest) (*pb.GetUsersByProjectResponse, error) { - projID, err := uuid.Parse(in.ProjectId) - if err != nil { - return nil, util.UserVisibleError(codes.InvalidArgument, "invalid project id") - } - - // check if user is authorized - if err := AuthorizedOnProject(ctx, projID); err != nil { - return nil, err - } - - // define default values for limit and offset - if in.Limit == nil || *in.Limit == -1 { - in.Limit = new(int32) - *in.Limit = PaginationLimit - } - if in.Offset == nil { - in.Offset = new(int32) - *in.Offset = 0 - } - - users, err := s.store.ListUsersByProject(ctx, db.ListUsersByProjectParams{ - ProjectID: projID, - Limit: *in.Limit, - Offset: *in.Offset, - }) - if err != nil { - return nil, status.Errorf(codes.Internal, "failed to get users: %s", err) - } - - var resp pb.GetUsersByProjectResponse - resp.Users = make([]*pb.UserRecord, 0, len(users)) - for idx := range users { - user := &users[idx] - resp.Users = append(resp.Users, &pb.UserRecord{ - Id: user.ID, - OrganizationId: user.OrganizationID.String(), - Email: &user.Email.String, - IdentitySubject: user.IdentitySubject, - FirstName: &user.FirstName.String, - LastName: &user.LastName.String, - CreatedAt: timestamppb.New(user.CreatedAt), - UpdatedAt: timestamppb.New(user.UpdatedAt), - }) - } - - return &resp, nil -} - -func getUserDependencies(ctx context.Context, store db.Store, user db.User) ([]*pb.ProjectRecord, []*pb.RoleRecord, error) { - // get all the roles associated with that user - roles, err := store.GetUserRoles(ctx, user.ID) - if err != nil { - return nil, nil, err - } - +func getUserDependencies(ctx context.Context, store db.Store, user db.User) ([]*pb.Project, error) { // get all the projects associated with that user projects, err := store.GetUserProjects(ctx, user.ID) if err != nil { - return nil, nil, err - } - - // convert to right data type - var rolesPB []*pb.RoleRecord - for idx := range roles { - role := &roles[idx] - pid := role.ProjectID.UUID.String() - rolesPB = append(rolesPB, &pb.RoleRecord{ - Id: role.ID, - OrganizationId: role.OrganizationID.String(), - ProjectId: &pid, - Name: role.Name, - IsAdmin: role.IsAdmin, - IsProtected: role.IsProtected, - CreatedAt: timestamppb.New(role.CreatedAt), - UpdatedAt: timestamppb.New(role.UpdatedAt), - }) + return nil, err } - var projectsPB []*pb.ProjectRecord + var projectsPB []*pb.Project for _, proj := range projects { - projectsPB = append(projectsPB, &pb.ProjectRecord{ - ProjectId: proj.ID.String(), - OrganizationId: proj.ParentID.UUID.String(), - Name: proj.Name, - CreatedAt: timestamppb.New(proj.CreatedAt), - UpdatedAt: timestamppb.New(proj.UpdatedAt), + projectsPB = append(projectsPB, &pb.Project{ + ProjectId: proj.ID.String(), + Name: proj.Name, + CreatedAt: timestamppb.New(proj.CreatedAt), + UpdatedAt: timestamppb.New(proj.UpdatedAt), }) } - return projectsPB, rolesPB, nil -} - -// GetUserById is a service for getting a user by id -func (s *Server) GetUserById(ctx context.Context, - in *pb.GetUserByIdRequest) (*pb.GetUserByIdResponse, error) { - if in.UserId == 0 { - return nil, status.Error(codes.InvalidArgument, "user id is required") - } - - // check if user is authorized - if err := AuthorizedOnUser(ctx, in.UserId); err != nil { - return nil, err - } - - user, err := s.store.GetUserByID(ctx, in.UserId) - if err != nil { - if errors.Is(err, sql.ErrNoRows) { - return nil, status.Error(codes.NotFound, "user not found") - } - return nil, status.Errorf(codes.Internal, "failed to get user: %s", err) - } - - projects, roles, err := getUserDependencies(ctx, s.store, user) - if err != nil { - return nil, status.Errorf(codes.Unknown, "failed to get user dependencies: %s", err) - } - - var resp pb.GetUserByIdResponse - resp.User = &pb.UserRecord{ - Id: user.ID, - OrganizationId: user.OrganizationID.String(), - Email: &user.Email.String, - IdentitySubject: user.IdentitySubject, - FirstName: &user.FirstName.String, - LastName: &user.LastName.String, - CreatedAt: timestamppb.New(user.CreatedAt), - UpdatedAt: timestamppb.New(user.UpdatedAt), - } - - resp.Projects = projects - resp.Roles = roles - return &resp, nil + return projectsPB, nil } // GetUser is a service for getting personal user details @@ -449,12 +231,11 @@ func (s *Server) GetUser(ctx context.Context, _ *pb.GetUserRequest) (*pb.GetUser UpdatedAt: timestamppb.New(user.UpdatedAt), } - projects, roles, err := getUserDependencies(ctx, s.store, user) + projects, err := getUserDependencies(ctx, s.store, user) if err != nil { return nil, status.Errorf(codes.Unknown, "failed to get user dependencies: %s", err) } resp.Projects = projects - resp.Roles = roles return &resp, nil } diff --git a/internal/controlplane/handlers_user_test.go b/internal/controlplane/handlers_user_test.go index 4da1bf4ead..c6e856887b 100644 --- a/internal/controlplane/handlers_user_test.go +++ b/internal/controlplane/handlers_user_test.go @@ -27,7 +27,6 @@ import ( "github.com/stretchr/testify/require" "google.golang.org/grpc/codes" "google.golang.org/grpc/metadata" - "google.golang.org/protobuf/types/known/timestamppb" mockdb "github.com/stacklok/mediator/database/mock" "github.com/stacklok/mediator/internal/auth" @@ -422,375 +421,3 @@ func TestDeleteUser_gRPC(t *testing.T) { }) } } - -func TestGetUsersDBMock(t *testing.T) { - t.Parallel() - - ctrl := gomock.NewController(t) - defer ctrl.Finish() - - mockStore := mockdb.NewMockStore(ctrl) - - orgID := uuid.New() - projectID := uuid.New() - - request := &pb.GetUsersRequest{} - - expectedUsers := []db.User{ - { - ID: 1, - CreatedAt: time.Now(), - UpdatedAt: time.Now(), - }, - { - ID: 2, - FirstName: sql.NullString{String: "Foo", Valid: true}, - Email: sql.NullString{String: "test@stacklok.com", Valid: true}, - CreatedAt: time.Now(), - UpdatedAt: time.Now(), - }, - } - // Create a new context and set the claims value - ctx := auth.WithPermissionsContext(context.Background(), auth.UserPermissions{ - UserId: 1, - OrganizationId: orgID, - ProjectIds: []uuid.UUID{projectID}, - IsStaff: true, // TODO: remove this - Roles: []auth.RoleInfo{ - {RoleID: 1, IsAdmin: true, ProjectID: &projectID, OrganizationID: orgID}}, - }) - - mockStore.EXPECT().ListUsers(ctx, gomock.Any()). - Return(expectedUsers, nil) - - crypeng := crypto.NewEngine("test") - - server := &Server{ - store: mockStore, - cfg: &config.Config{ - Salt: config.DefaultConfigForTest().Salt, - }, - cryptoEngine: crypeng, - } - - response, err := server.GetUsers(ctx, request) - - assert.NoError(t, err) - assert.NotNil(t, response) - assert.Equal(t, len(expectedUsers), len(response.Users)) - assert.Equal(t, expectedUsers[0].ID, response.Users[0].Id) - assert.Equal(t, expectedUsers[0].OrganizationID.String(), response.Users[0].OrganizationId) - expectedCreatedAt := expectedUsers[0].CreatedAt.In(time.UTC) - assert.Equal(t, expectedCreatedAt, response.Users[0].CreatedAt.AsTime().In(time.UTC)) - expectedUpdatedAt := expectedUsers[0].UpdatedAt.In(time.UTC) - assert.Equal(t, expectedUpdatedAt, response.Users[0].UpdatedAt.AsTime().In(time.UTC)) -} - -func TestGetUsers_gRPC(t *testing.T) { - t.Parallel() - - orgID := uuid.New() - projectID := uuid.New() - - testCases := []struct { - name string - req *pb.GetUsersRequest - buildStubs func(store *mockdb.MockStore) - checkResponse func(t *testing.T, res *pb.GetUsersResponse, err error) - expectedStatusCode codes.Code - }{ - { - name: "Success", - req: &pb.GetUsersRequest{}, - buildStubs: func(store *mockdb.MockStore) { - store.EXPECT().ListUsers(gomock.Any(), gomock.Any()). - Return([]db.User{ - { - ID: 1, - IdentitySubject: "subject1", - OrganizationID: orgID, - CreatedAt: time.Now(), - UpdatedAt: time.Now(), - }, - { - ID: 2, - IdentitySubject: "subject2", - OrganizationID: orgID, - Email: sql.NullString{String: "test1@stacklok.com", Valid: true}, - FirstName: sql.NullString{String: "Foo", Valid: true}, - CreatedAt: time.Now(), - UpdatedAt: time.Now(), - }, - }, nil). - Times(1) - }, - checkResponse: func(t *testing.T, res *pb.GetUsersResponse, err error) { - t.Helper() - - firstNamePtr := "Foo" - emailPtr := "test1@stacklok.com" - expectedOrgs := []*pb.UserRecord{ - { - Id: 1, - IdentitySubject: "subject1", - OrganizationId: orgID.String(), - CreatedAt: timestamppb.New(time.Now()), - UpdatedAt: timestamppb.New(time.Now()), - }, - { - Id: 2, - IdentitySubject: "subject2", - OrganizationId: orgID.String(), - FirstName: &firstNamePtr, - Email: &emailPtr, - CreatedAt: timestamppb.New(time.Now()), - UpdatedAt: timestamppb.New(time.Now()), - }, - } - - assert.NoError(t, err) - assert.NotNil(t, res) - assert.Equal(t, len(expectedOrgs), len(res.Users)) - assert.Equal(t, expectedOrgs[1].Id, res.Users[1].Id) - assert.Equal(t, expectedOrgs[1].OrganizationId, res.Users[1].OrganizationId) - assert.Equal(t, expectedOrgs[1].FirstName, res.Users[1].FirstName) - assert.Equal(t, *expectedOrgs[1].Email, *res.Users[1].Email) - }, - expectedStatusCode: codes.OK, - }, - } - // Create a new context and set the claims value - ctx := auth.WithPermissionsContext(context.Background(), auth.UserPermissions{ - UserId: 1, - OrganizationId: orgID, - ProjectIds: []uuid.UUID{projectID}, - Roles: []auth.RoleInfo{ - {RoleID: 1, IsAdmin: true, ProjectID: &projectID, OrganizationID: orgID}}, - }) - - for i := range testCases { - tc := testCases[i] - t.Run(tc.name, func(t *testing.T) { - t.Parallel() - - ctrl := gomock.NewController(t) - defer ctrl.Finish() - - mockStore := mockdb.NewMockStore(ctrl) - tc.buildStubs(mockStore) - mockJwtValidator := mockjwt.NewMockJwtValidator(ctrl) - - evt, err := events.Setup() - require.NoError(t, err, "failed to setup eventer") - server, err := NewServer(mockStore, evt, &config.Config{ - Salt: config.DefaultConfigForTest().Salt, - Auth: config.AuthConfig{ - TokenKey: generateTokenKey(t), - }, - }, mockJwtValidator) - require.NoError(t, err, "failed to create test server") - - resp, err := server.GetUsers(ctx, tc.req) - tc.checkResponse(t, resp, err) - }) - } -} - -func TestGetUserDBMock(t *testing.T) { - t.Parallel() - - ctrl := gomock.NewController(t) - defer ctrl.Finish() - - mockStore := mockdb.NewMockStore(ctrl) - - request := &pb.GetUserByIdRequest{UserId: 1} - - orgID := uuid.New() - projectID := uuid.New() - - expectedUser := db.User{ - ID: 1, - OrganizationID: orgID, - CreatedAt: time.Now(), - UpdatedAt: time.Now(), - } - // Create a new context and set the claims value - ctx := auth.WithPermissionsContext(context.Background(), auth.UserPermissions{ - UserId: 1, - OrganizationId: orgID, - ProjectIds: []uuid.UUID{projectID}, - Roles: []auth.RoleInfo{ - {RoleID: 1, IsAdmin: true, ProjectID: &projectID, OrganizationID: orgID}}, - }) - - mockStore.EXPECT().GetUserByID(ctx, gomock.Any()). - Return(expectedUser, nil) - mockStore.EXPECT().GetUserRoles(ctx, gomock.Any()) - mockStore.EXPECT().GetUserProjects(ctx, gomock.Any()) - - crypeng := crypto.NewEngine("test") - - server := &Server{ - store: mockStore, - cfg: &config.Config{ - Salt: config.DefaultConfigForTest().Salt, - }, - cryptoEngine: crypeng, - } - - response, err := server.GetUserById(ctx, request) - - assert.NoError(t, err) - assert.NotNil(t, response) - assert.Equal(t, expectedUser.ID, response.User.Id) - assert.Equal(t, expectedUser.OrganizationID.String(), response.User.OrganizationId) - expectedCreatedAt := expectedUser.CreatedAt.In(time.UTC) - assert.Equal(t, expectedCreatedAt, response.User.CreatedAt.AsTime().In(time.UTC)) - expectedUpdatedAt := expectedUser.UpdatedAt.In(time.UTC) - assert.Equal(t, expectedUpdatedAt, response.User.UpdatedAt.AsTime().In(time.UTC)) -} - -func TestGetNonExistingUserDBMock(t *testing.T) { - t.Parallel() - - ctrl := gomock.NewController(t) - defer ctrl.Finish() - - orgID := uuid.New() - projectID := uuid.New() - - mockStore := mockdb.NewMockStore(ctrl) - - request := &pb.GetUserByIdRequest{UserId: 5} - // Create a new context and set the claims value - ctx := auth.WithPermissionsContext(context.Background(), auth.UserPermissions{ - UserId: 1, - OrganizationId: orgID, - ProjectIds: []uuid.UUID{projectID}, - IsStaff: true, // TODO: remove this - Roles: []auth.RoleInfo{ - {RoleID: 1, IsAdmin: true, ProjectID: &projectID, OrganizationID: orgID}}, - }) - - mockStore.EXPECT().GetUserByID(ctx, gomock.Any()). - Return(db.User{}, sql.ErrNoRows) - - crypeng := crypto.NewEngine("test") - - server := &Server{ - store: mockStore, - cfg: &config.Config{ - Salt: config.DefaultConfigForTest().Salt, - }, - cryptoEngine: crypeng, - } - - response, err := server.GetUserById(ctx, request) - - assert.Error(t, err) - assert.Nil(t, response) -} - -func TestGetUser_gRPC(t *testing.T) { - t.Parallel() - - orgID := uuid.New() - projectID := uuid.New() - - testCases := []struct { - name string - req *pb.GetUserByIdRequest - buildStubs func(store *mockdb.MockStore) - checkResponse func(t *testing.T, res *pb.GetUserByIdResponse, err error) - expectedStatusCode codes.Code - }{ - { - name: "Success", - req: &pb.GetUserByIdRequest{UserId: 1}, - buildStubs: func(store *mockdb.MockStore) { - store.EXPECT().GetUserByID(gomock.Any(), gomock.Any()). - Return(db.User{ - ID: 1, - OrganizationID: orgID, - CreatedAt: time.Now(), - UpdatedAt: time.Now(), - }, nil). - Times(1) - store.EXPECT().GetUserRoles(gomock.Any(), gomock.Any()) - store.EXPECT().GetUserProjects(gomock.Any(), gomock.Any()) - }, - checkResponse: func(t *testing.T, res *pb.GetUserByIdResponse, err error) { - t.Helper() - - expectedUser := pb.UserRecord{ - Id: 1, - OrganizationId: orgID.String(), - CreatedAt: timestamppb.New(time.Now()), - UpdatedAt: timestamppb.New(time.Now()), - } - - assert.NoError(t, err) - assert.NotNil(t, res) - assert.Equal(t, expectedUser.Id, res.User.Id) - assert.Equal(t, expectedUser.OrganizationId, res.User.OrganizationId) - }, - expectedStatusCode: codes.OK, - }, - { - name: "NonExisting", - req: &pb.GetUserByIdRequest{UserId: 5}, - buildStubs: func(store *mockdb.MockStore) { - store.EXPECT().GetUserByID(gomock.Any(), gomock.Any()). - Return(db.User{}, nil). - Times(1) - store.EXPECT().GetUserRoles(gomock.Any(), gomock.Any()) - store.EXPECT().GetUserProjects(gomock.Any(), gomock.Any()) - - }, - checkResponse: func(t *testing.T, res *pb.GetUserByIdResponse, err error) { - t.Helper() - - assert.NoError(t, err) - assert.Equal(t, int32(0), res.User.Id) - }, - expectedStatusCode: codes.OK, - }, - } - // Create a new context and set the claims value - ctx := auth.WithPermissionsContext(context.Background(), auth.UserPermissions{ - UserId: 1, - OrganizationId: orgID, - ProjectIds: []uuid.UUID{projectID}, - IsStaff: true, // TODO: remove this - Roles: []auth.RoleInfo{ - {RoleID: 1, IsAdmin: true, ProjectID: &projectID, OrganizationID: orgID}}, - }) - - for i := range testCases { - tc := testCases[i] - t.Run(tc.name, func(t *testing.T) { - t.Parallel() - - ctrl := gomock.NewController(t) - defer ctrl.Finish() - - mockStore := mockdb.NewMockStore(ctrl) - tc.buildStubs(mockStore) - mockJwtValidator := mockjwt.NewMockJwtValidator(ctrl) - - evt, err := events.Setup() - require.NoError(t, err, "failed to setup eventer") - server, err := NewServer(mockStore, evt, &config.Config{ - Salt: config.DefaultConfigForTest().Salt, - Auth: config.AuthConfig{ - TokenKey: generateTokenKey(t), - }, - }, mockJwtValidator) - require.NoError(t, err, "failed to create test server") - - resp, err := server.GetUserById(ctx, tc.req) - tc.checkResponse(t, resp, err) - }) - } -} diff --git a/internal/controlplane/register_handlers.go b/internal/controlplane/register_handlers.go index 1064c24bd9..50349f6c34 100644 --- a/internal/controlplane/register_handlers.go +++ b/internal/controlplane/register_handlers.go @@ -42,21 +42,6 @@ func RegisterGatewayHTTPHandlers(ctx context.Context, gwmux *runtime.ServeMux, g log.Fatalf("failed to register gateway: %v", err) } - // Register OrganizationService handler - if err := pb.RegisterOrganizationServiceHandlerFromEndpoint(ctx, gwmux, grpcAddress, opts); err != nil { - log.Fatalf("failed to register gateway: %v", err) - } - - // Register ProjectService handler - if err := pb.RegisterProjectServiceHandlerFromEndpoint(ctx, gwmux, grpcAddress, opts); err != nil { - log.Fatalf("failed to register gateway: %v", err) - } - - // Register RoleService handler - if err := pb.RegisterRoleServiceHandlerFromEndpoint(ctx, gwmux, grpcAddress, opts); err != nil { - log.Fatalf("failed to register gateway: %v", err) - } - // Register UserService handler if err := pb.RegisterUserServiceHandlerFromEndpoint(ctx, gwmux, grpcAddress, opts); err != nil { log.Fatalf("failed to register gateway: %v", err) @@ -94,14 +79,6 @@ func RegisterGRPCServices(s *Server) { // Register the Auth service pb.RegisterAuthServiceServer(s.grpcServer, s) - // Register the Organization service - pb.RegisterOrganizationServiceServer(s.grpcServer, s) - - // Register the Projects service - pb.RegisterProjectServiceServer(s.grpcServer, s) - // Register the Role service - pb.RegisterRoleServiceServer(s.grpcServer, s) - // Register the User service pb.RegisterUserServiceServer(s.grpcServer, s) diff --git a/internal/controlplane/server.go b/internal/controlplane/server.go index 49cf59eaa2..709c0853ca 100644 --- a/internal/controlplane/server.go +++ b/internal/controlplane/server.go @@ -66,9 +66,6 @@ type Server struct { pb.UnimplementedHealthServiceServer pb.UnimplementedOAuthServiceServer pb.UnimplementedAuthServiceServer - pb.UnimplementedOrganizationServiceServer - pb.UnimplementedProjectServiceServer - pb.UnimplementedRoleServiceServer pb.UnimplementedUserServiceServer pb.UnimplementedRepositoryServiceServer pb.UnimplementedProfileServiceServer diff --git a/pkg/api/openapi/mediator/v1/mediator.swagger.json b/pkg/api/openapi/mediator/v1/mediator.swagger.json index 8193dbc290..fd71e075d3 100644 --- a/pkg/api/openapi/mediator/v1/mediator.swagger.json +++ b/pkg/api/openapi/mediator/v1/mediator.swagger.json @@ -23,15 +23,6 @@ { "name": "BranchProtectionService" }, - { - "name": "OrganizationService" - }, - { - "name": "ProjectService" - }, - { - "name": "RoleService" - }, { "name": "UserService" }, @@ -724,172 +715,6 @@ ] } }, - "/api/v1/organization": { - "post": { - "operationId": "OrganizationService_CreateOrganization", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1CreateOrganizationResponse" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/rpcStatus" - } - } - }, - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1CreateOrganizationRequest" - } - } - ], - "tags": [ - "OrganizationService" - ] - } - }, - "/api/v1/organization/{id}": { - "delete": { - "operationId": "OrganizationService_DeleteOrganization", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1DeleteOrganizationResponse" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/rpcStatus" - } - } - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "force", - "in": "query", - "required": false, - "type": "boolean" - } - ], - "tags": [ - "OrganizationService" - ] - } - }, - "/api/v1/organizations": { - "get": { - "operationId": "OrganizationService_GetOrganizations", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1GetOrganizationsResponse" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/rpcStatus" - } - } - }, - "parameters": [ - { - "name": "limit", - "in": "query", - "required": false, - "type": "integer", - "format": "int32" - }, - { - "name": "offset", - "in": "query", - "required": false, - "type": "integer", - "format": "int32" - } - ], - "tags": [ - "OrganizationService" - ] - } - }, - "/api/v1/organizations/name/{name}": { - "get": { - "operationId": "OrganizationService_GetOrganizationByName", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1GetOrganizationByNameResponse" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/rpcStatus" - } - } - }, - "parameters": [ - { - "name": "name", - "in": "path", - "required": true, - "type": "string" - } - ], - "tags": [ - "OrganizationService" - ] - } - }, - "/api/v1/organizations/{organizationId}": { - "get": { - "operationId": "OrganizationService_GetOrganization", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1GetOrganizationResponse" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/rpcStatus" - } - } - }, - "parameters": [ - { - "name": "organizationId", - "in": "path", - "required": true, - "type": "string" - } - ], - "tags": [ - "OrganizationService" - ] - } - }, "/api/v1/profile": { "post": { "operationId": "ProfileService_CreateProfile", @@ -1185,14 +1010,14 @@ ] } }, - "/api/v1/project": { - "post": { - "operationId": "ProjectService_CreateProject", + "/api/v1/repositories/provider/{provider}": { + "get": { + "operationId": "RepositoryService_ListRepositories", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/v1CreateProjectResponse" + "$ref": "#/definitions/v1ListRepositoriesResponse" } }, "default": { @@ -1204,27 +1029,58 @@ }, "parameters": [ { - "name": "body", - "in": "body", + "name": "provider", + "in": "path", "required": true, - "schema": { - "$ref": "#/definitions/v1CreateProjectRequest" - } + "type": "string" + }, + { + "name": "projectId", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "offset", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "filter", + "in": "query", + "required": false, + "type": "string", + "enum": [ + "REPO_FILTER_SHOW_UNSPECIFIED", + "REPO_FILTER_SHOW_ALL", + "REPO_FILTER_SHOW_NOT_REGISTERED_ONLY", + "REPO_FILTER_SHOW_REGISTERED_ONLY" + ], + "default": "REPO_FILTER_SHOW_UNSPECIFIED" } ], "tags": [ - "ProjectService" + "RepositoryService" ] } }, - "/api/v1/project/id/{projectId}": { - "get": { - "operationId": "ProjectService_GetProjectById", + "/api/v1/repositories/provider/{provider}/sync": { + "post": { + "operationId": "RepositoryService_SyncRepositories", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/v1GetProjectByIdResponse" + "$ref": "#/definitions/v1SyncRepositoriesResponse" } }, "default": { @@ -1236,25 +1092,38 @@ }, "parameters": [ { - "name": "projectId", + "name": "provider", "in": "path", "required": true, "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "projectId": { + "type": "string" + } + } + } } ], "tags": [ - "ProjectService" + "RepositoryService" ] } }, - "/api/v1/project/name/{name}": { + "/api/v1/repository/id/{repositoryId}": { "get": { - "operationId": "ProjectService_GetProjectByName", + "operationId": "RepositoryService_GetRepositoryById", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/v1GetProjectByNameResponse" + "$ref": "#/definitions/v1GetRepositoryByIdResponse" } }, "default": { @@ -1266,25 +1135,25 @@ }, "parameters": [ { - "name": "name", + "name": "repositoryId", "in": "path", "required": true, "type": "string" } ], "tags": [ - "ProjectService" + "RepositoryService" ] } }, - "/api/v1/project/{id}": { - "delete": { - "operationId": "ProjectService_DeleteProject", + "/api/v1/repository/provider/{provider}/name/{name}": { + "get": { + "operationId": "RepositoryService_GetRepositoryByName", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/v1DeleteProjectResponse" + "$ref": "#/definitions/v1GetRepositoryByNameResponse" } }, "default": { @@ -1296,31 +1165,37 @@ }, "parameters": [ { - "name": "id", + "name": "provider", "in": "path", "required": true, "type": "string" }, { - "name": "force", + "name": "name", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "projectId", "in": "query", "required": false, - "type": "boolean" + "type": "string" } ], "tags": [ - "ProjectService" + "RepositoryService" ] } }, - "/api/v1/projects/{organizationId}": { - "get": { - "operationId": "ProjectService_GetProjects", + "/api/v1/repository/provider/{provider}/register": { + "post": { + "operationId": "RepositoryService_RegisterRepository", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/v1GetProjectsResponse" + "$ref": "#/definitions/v1RegisterRepositoryResponse" } }, "default": { @@ -1332,516 +1207,40 @@ }, "parameters": [ { - "name": "organizationId", + "name": "provider", "in": "path", "required": true, "type": "string" }, { - "name": "limit", - "in": "query", - "required": false, - "type": "integer", - "format": "int32" - }, - { - "name": "offset", - "in": "query", - "required": false, - "type": "integer", - "format": "int32" - } - ], - "tags": [ - "ProjectService" - ] - } - }, - "/api/v1/repositories/provider/{provider}": { - "get": { - "operationId": "RepositoryService_ListRepositories", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1ListRepositoriesResponse" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/rpcStatus" - } - } - }, - "parameters": [ - { - "name": "provider", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "projectId", - "in": "query", - "required": false, - "type": "string" - }, - { - "name": "limit", - "in": "query", - "required": false, - "type": "integer", - "format": "int32" - }, - { - "name": "offset", - "in": "query", - "required": false, - "type": "integer", - "format": "int32" - }, - { - "name": "filter", - "in": "query", - "required": false, - "type": "string", - "enum": [ - "REPO_FILTER_SHOW_UNSPECIFIED", - "REPO_FILTER_SHOW_ALL", - "REPO_FILTER_SHOW_NOT_REGISTERED_ONLY", - "REPO_FILTER_SHOW_REGISTERED_ONLY" - ], - "default": "REPO_FILTER_SHOW_UNSPECIFIED" - } - ], - "tags": [ - "RepositoryService" - ] - } - }, - "/api/v1/repositories/provider/{provider}/sync": { - "post": { - "operationId": "RepositoryService_SyncRepositories", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1SyncRepositoriesResponse" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/rpcStatus" - } - } - }, - "parameters": [ - { - "name": "provider", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "projectId": { - "type": "string" - } - } - } - } - ], - "tags": [ - "RepositoryService" - ] - } - }, - "/api/v1/repository/id/{repositoryId}": { - "get": { - "operationId": "RepositoryService_GetRepositoryById", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1GetRepositoryByIdResponse" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/rpcStatus" - } - } - }, - "parameters": [ - { - "name": "repositoryId", - "in": "path", - "required": true, - "type": "string" - } - ], - "tags": [ - "RepositoryService" - ] - } - }, - "/api/v1/repository/provider/{provider}/name/{name}": { - "get": { - "operationId": "RepositoryService_GetRepositoryByName", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1GetRepositoryByNameResponse" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/rpcStatus" - } - } - }, - "parameters": [ - { - "name": "provider", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "name", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "projectId", - "in": "query", - "required": false, - "type": "string" - } - ], - "tags": [ - "RepositoryService" - ] - } - }, - "/api/v1/repository/provider/{provider}/register": { - "post": { - "operationId": "RepositoryService_RegisterRepository", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1RegisterRepositoryResponse" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/rpcStatus" - } - } - }, - "parameters": [ - { - "name": "provider", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "projectId": { - "type": "string" - }, - "repositories": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/v1Repositories" - } - }, - "events": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - ], - "tags": [ - "RepositoryService" - ] - } - }, - "/api/v1/role/name/{name}": { - "get": { - "operationId": "RoleService_GetRoleByName", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1GetRoleByNameResponse" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/rpcStatus" - } - } - }, - "parameters": [ - { - "name": "name", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "organizationId", - "in": "query", - "required": false, - "type": "string" - } - ], - "tags": [ - "RoleService" - ] - } - }, - "/api/v1/role/organization": { - "post": { - "operationId": "RoleService_CreateRoleByOrganization", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1CreateRoleByOrganizationResponse" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/rpcStatus" - } - } - }, - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1CreateRoleByOrganizationRequest" - } - } - ], - "tags": [ - "RoleService" - ] - } - }, - "/api/v1/role/project": { - "post": { - "operationId": "RoleService_CreateRoleByProject", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1CreateRoleByProjectResponse" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/rpcStatus" - } - } - }, - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1CreateRoleByProjectRequest" - } - } - ], - "tags": [ - "RoleService" - ] - } - }, - "/api/v1/role/{id}": { - "get": { - "operationId": "RoleService_GetRoleById", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1GetRoleByIdResponse" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/rpcStatus" - } - } - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "type": "integer", - "format": "int32" - } - ], - "tags": [ - "RoleService" - ] - }, - "delete": { - "operationId": "RoleService_DeleteRole", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1DeleteRoleResponse" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/rpcStatus" - } - } - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "type": "integer", - "format": "int32" - }, - { - "name": "force", - "in": "query", - "required": false, - "type": "boolean" - } - ], - "tags": [ - "RoleService" - ] - } - }, - "/api/v1/roles/project/{projectId}": { - "get": { - "operationId": "RoleService_GetRolesByProject", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1GetRolesByProjectResponse" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/rpcStatus" - } - } - }, - "parameters": [ - { - "name": "projectId", - "in": "path", + "name": "body", + "in": "body", "required": true, - "type": "string" - }, - { - "name": "limit", - "in": "query", - "required": false, - "type": "integer", - "format": "int32" - }, - { - "name": "offset", - "in": "query", - "required": false, - "type": "integer", - "format": "int32" - } - ], - "tags": [ - "RoleService" - ] - } - }, - "/api/v1/roles/{organizationId}": { - "get": { - "operationId": "RoleService_GetRoles", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1GetRolesResponse" - } - }, - "default": { - "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/rpcStatus" + "type": "object", + "properties": { + "projectId": { + "type": "string" + }, + "repositories": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/v1Repositories" + } + }, + "events": { + "type": "array", + "items": { + "type": "string" + } + } + } } } - }, - "parameters": [ - { - "name": "organizationId", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "limit", - "in": "query", - "required": false, - "type": "integer", - "format": "int32" - }, - { - "name": "offset", - "in": "query", - "required": false, - "type": "integer", - "format": "int32" - } ], "tags": [ - "RoleService" + "RepositoryService" ] } }, @@ -2082,178 +1481,28 @@ "name": "context.organization", "in": "query", "required": false, - "type": "string" - }, - { - "name": "context.project", - "in": "query", - "required": false, - "type": "string" - } - ], - "tags": [ - "ProfileService" - ] - } - }, - "/api/v1/user": { - "get": { - "operationId": "UserService_GetUser", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1GetUserResponse" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/rpcStatus" - } - } - }, - "tags": [ - "UserService" - ] - }, - "post": { - "operationId": "UserService_CreateUser", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1CreateUserResponse" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/rpcStatus" - } - } - }, - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1CreateUserRequest" - } - } - ], - "tags": [ - "UserService" - ] - } - }, - "/api/v1/user/subject/{subject}": { - "get": { - "operationId": "UserService_GetUserBySubject", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1GetUserBySubjectResponse" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/rpcStatus" - } - } - }, - "parameters": [ - { - "name": "subject", - "in": "path", - "required": true, - "type": "string" - } - ], - "tags": [ - "UserService" - ] - } - }, - "/api/v1/user/{id}": { - "delete": { - "operationId": "UserService_DeleteUser", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1DeleteUserResponse" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/rpcStatus" - } - } - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "type": "integer", - "format": "int32" - }, - { - "name": "force", - "in": "query", - "required": false, - "type": "boolean" - } - ], - "tags": [ - "UserService" - ] - } - }, - "/api/v1/user/{userId}": { - "get": { - "operationId": "UserService_GetUserById", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1GetUserByIdResponse" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/rpcStatus" - } - } - }, - "parameters": [ + "type": "string" + }, { - "name": "userId", - "in": "path", - "required": true, - "type": "integer", - "format": "int32" + "name": "context.project", + "in": "query", + "required": false, + "type": "string" } ], "tags": [ - "UserService" + "ProfileService" ] } }, - "/api/v1/users": { + "/api/v1/user": { "get": { - "operationId": "UserService_GetUsers", + "operationId": "UserService_GetUser", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/v1GetUsersResponse" + "$ref": "#/definitions/v1GetUserResponse" } }, "default": { @@ -2263,35 +1512,17 @@ } } }, - "parameters": [ - { - "name": "limit", - "in": "query", - "required": false, - "type": "integer", - "format": "int32" - }, - { - "name": "offset", - "in": "query", - "required": false, - "type": "integer", - "format": "int32" - } - ], "tags": [ "UserService" ] - } - }, - "/api/v1/users/{organizationId}": { - "get": { - "operationId": "UserService_GetUsersByOrganization", + }, + "post": { + "operationId": "UserService_CreateUser", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/v1GetUsersByOrganizationResponse" + "$ref": "#/definitions/v1CreateUserResponse" } }, "default": { @@ -2303,24 +1534,12 @@ }, "parameters": [ { - "name": "organizationId", - "in": "path", + "name": "body", + "in": "body", "required": true, - "type": "string" - }, - { - "name": "limit", - "in": "query", - "required": false, - "type": "integer", - "format": "int32" - }, - { - "name": "offset", - "in": "query", - "required": false, - "type": "integer", - "format": "int32" + "schema": { + "$ref": "#/definitions/v1CreateUserRequest" + } } ], "tags": [ @@ -2328,14 +1547,14 @@ ] } }, - "/api/v1/users/{projectId}": { - "get": { - "operationId": "UserService_GetUsersByProject", + "/api/v1/user/{id}": { + "delete": { + "operationId": "UserService_DeleteUser", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/v1GetUsersByProjectResponse" + "$ref": "#/definitions/v1DeleteUserResponse" } }, "default": { @@ -2347,24 +1566,17 @@ }, "parameters": [ { - "name": "projectId", + "name": "id", "in": "path", "required": true, - "type": "string" - }, - { - "name": "limit", - "in": "query", - "required": false, "type": "integer", "format": "int32" }, { - "name": "offset", + "name": "force", "in": "query", "required": false, - "type": "integer", - "format": "int32" + "type": "boolean" } ], "tags": [ @@ -2726,56 +1938,6 @@ } } }, - "v1CreateOrganizationRequest": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "company": { - "type": "string" - }, - "createDefaultRecords": { - "type": "boolean" - } - }, - "title": "Organization service" - }, - "v1CreateOrganizationResponse": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "company": { - "type": "string" - }, - "createdAt": { - "type": "string", - "format": "date-time" - }, - "updatedAt": { - "type": "string", - "format": "date-time" - }, - "defaultProject": { - "$ref": "#/definitions/v1ProjectRecord" - }, - "defaultRoles": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/v1RoleRecord" - } - }, - "defaultUser": { - "$ref": "#/definitions/v1UserRecord" - } - } - }, "v1CreateProfileRequest": { "type": "object", "properties": { @@ -2784,157 +1946,12 @@ } }, "title": "Profile service" - }, - "v1CreateProfileResponse": { - "type": "object", - "properties": { - "profile": { - "$ref": "#/definitions/v1Profile" - } - } - }, - "v1CreateProjectRequest": { - "type": "object", - "properties": { - "organizationId": { - "type": "string" - }, - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "isProtected": { - "type": "boolean" - } - }, - "title": "The CreateProjectRequest message represents a request to create a project" - }, - "v1CreateProjectResponse": { - "type": "object", - "properties": { - "projectId": { - "type": "string" - }, - "organizationId": { - "type": "string" - }, - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "isProtected": { - "type": "boolean" - }, - "createdAt": { - "type": "string", - "format": "date-time" - }, - "updatedAt": { - "type": "string", - "format": "date-time" - } - } - }, - "v1CreateRoleByOrganizationRequest": { - "type": "object", - "properties": { - "organizationId": { - "type": "string" - }, - "name": { - "type": "string" - }, - "isAdmin": { - "type": "boolean" - }, - "isProtected": { - "type": "boolean" - } - }, - "title": "Role service" - }, - "v1CreateRoleByOrganizationResponse": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32" - }, - "organizationId": { - "type": "string" - }, - "name": { - "type": "string" - }, - "isAdmin": { - "type": "boolean" - }, - "isProtected": { - "type": "boolean" - }, - "createdAt": { - "type": "string", - "format": "date-time" - }, - "updatedAt": { - "type": "string", - "format": "date-time" - } - } - }, - "v1CreateRoleByProjectRequest": { - "type": "object", - "properties": { - "organizationId": { - "type": "string" - }, - "projectId": { - "type": "string" - }, - "name": { - "type": "string" - }, - "isAdmin": { - "type": "boolean" - }, - "isProtected": { - "type": "boolean" - } - } - }, - "v1CreateRoleByProjectResponse": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32" - }, - "organizationId": { - "type": "string" - }, - "projectId": { - "type": "string" - }, - "name": { - "type": "string" - }, - "isAdmin": { - "type": "boolean" - }, - "isProtected": { - "type": "boolean" - }, - "createdAt": { - "type": "string", - "format": "date-time" - }, - "updatedAt": { - "type": "string", - "format": "date-time" + }, + "v1CreateProfileResponse": { + "type": "object", + "properties": { + "profile": { + "$ref": "#/definitions/v1Profile" } } }, @@ -2999,20 +2016,9 @@ } } }, - "v1DeleteOrganizationResponse": { - "type": "object", - "title": "DeleteOrganizationResponse represents a response to a delete organization request" - }, "v1DeleteProfileResponse": { "type": "object" }, - "v1DeleteProjectResponse": { - "type": "object", - "title": "DeleteProjectResponse represents a response to a delete project request" - }, - "v1DeleteRoleResponse": { - "type": "object" - }, "v1DeleteRuleTypeResponse": { "type": "object", "description": "DeleteRuleTypeResponse is the response to delete a rule type." @@ -3098,76 +2104,6 @@ } } }, - "v1GetOrganizationByNameResponse": { - "type": "object", - "properties": { - "organization": { - "$ref": "#/definitions/v1OrganizationRecord" - }, - "projects": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/v1ProjectRecord" - } - }, - "roles": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/v1RoleRecord" - } - }, - "users": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/v1UserRecord" - } - } - } - }, - "v1GetOrganizationResponse": { - "type": "object", - "properties": { - "organization": { - "$ref": "#/definitions/v1OrganizationRecord" - }, - "projects": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/v1ProjectRecord" - } - }, - "roles": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/v1RoleRecord" - } - }, - "users": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/v1UserRecord" - } - } - } - }, - "v1GetOrganizationsResponse": { - "type": "object", - "properties": { - "organizations": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/v1OrganizationRecord" - } - } - } - }, "v1GetProfileByIdResponse": { "type": "object", "properties": { @@ -3206,63 +2142,6 @@ } } }, - "v1GetProjectByIdResponse": { - "type": "object", - "properties": { - "project": { - "$ref": "#/definitions/v1ProjectRecord" - }, - "roles": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/v1RoleRecord" - } - }, - "users": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/v1UserRecord" - } - } - } - }, - "v1GetProjectByNameResponse": { - "type": "object", - "properties": { - "project": { - "$ref": "#/definitions/v1ProjectRecord" - }, - "roles": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/v1RoleRecord" - } - }, - "users": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/v1UserRecord" - } - } - } - }, - "v1GetProjectsResponse": { - "type": "object", - "properties": { - "projects": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/v1ProjectRecord" - } - } - }, - "title": "The GetProjectsResponse message represents a response with an array of projects" - }, "v1GetPublicKeyResponse": { "type": "object", "properties": { @@ -3287,46 +2166,6 @@ } } }, - "v1GetRoleByIdResponse": { - "type": "object", - "properties": { - "role": { - "$ref": "#/definitions/v1RoleRecord" - } - } - }, - "v1GetRoleByNameResponse": { - "type": "object", - "properties": { - "role": { - "$ref": "#/definitions/v1RoleRecord" - } - } - }, - "v1GetRolesByProjectResponse": { - "type": "object", - "properties": { - "roles": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/v1RoleRecord" - } - } - } - }, - "v1GetRolesResponse": { - "type": "object", - "properties": { - "roles": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/v1RoleRecord" - } - } - } - }, "v1GetRuleTypeByIdResponse": { "type": "object", "properties": { @@ -3347,50 +2186,6 @@ }, "description": "GetRuleTypeByNameResponse is the response to get a rule type by name." }, - "v1GetUserByIdResponse": { - "type": "object", - "properties": { - "user": { - "$ref": "#/definitions/v1UserRecord" - }, - "projects": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/v1ProjectRecord" - } - }, - "roles": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/v1RoleRecord" - } - } - } - }, - "v1GetUserBySubjectResponse": { - "type": "object", - "properties": { - "user": { - "$ref": "#/definitions/v1UserRecord" - }, - "projects": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/v1ProjectRecord" - } - }, - "roles": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/v1RoleRecord" - } - } - } - }, "v1GetUserResponse": { "type": "object", "properties": { @@ -3401,50 +2196,7 @@ "type": "array", "items": { "type": "object", - "$ref": "#/definitions/v1ProjectRecord" - } - }, - "roles": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/v1RoleRecord" - } - } - } - }, - "v1GetUsersByOrganizationResponse": { - "type": "object", - "properties": { - "users": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/v1UserRecord" - } - } - } - }, - "v1GetUsersByProjectResponse": { - "type": "object", - "properties": { - "users": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/v1UserRecord" - } - } - } - }, - "v1GetUsersResponse": { - "type": "object", - "properties": { - "users": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/v1UserRecord" + "$ref": "#/definitions/v1Project" } } } @@ -3536,28 +2288,6 @@ "v1LogOutResponse": { "type": "object" }, - "v1OrganizationRecord": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "company": { - "type": "string" - }, - "createdAt": { - "type": "string", - "format": "date-time" - }, - "updatedAt": { - "type": "string", - "format": "date-time" - } - } - }, "v1Profile": { "type": "object", "properties": { @@ -3632,15 +2362,12 @@ }, "title": "get the overall profile status" }, - "v1ProjectRecord": { + "v1Project": { "type": "object", "properties": { "projectId": { "type": "string" }, - "organizationId": { - "type": "string" - }, "name": { "type": "string" }, @@ -3659,7 +2386,7 @@ "format": "date-time" } }, - "title": "BUF does not allow grouping (which is a shame)" + "title": "Project API Objects" }, "v1RefreshTokenRequest": { "type": "object" @@ -3869,38 +2596,6 @@ "v1RevokeUserTokenResponse": { "type": "object" }, - "v1RoleRecord": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32" - }, - "organizationId": { - "type": "string" - }, - "projectId": { - "type": "string" - }, - "name": { - "type": "string" - }, - "isAdmin": { - "type": "boolean" - }, - "isProtected": { - "type": "boolean" - }, - "createdAt": { - "type": "string", - "format": "date-time" - }, - "updatedAt": { - "type": "string", - "format": "date-time" - } - } - }, "v1RuleEvaluationStatus": { "type": "object", "properties": { diff --git a/pkg/api/protobuf/go/mediator/v1/mediator.pb.go b/pkg/api/protobuf/go/mediator/v1/mediator.pb.go index f69f466e2f..47a324f592 100644 --- a/pkg/api/protobuf/go/mediator/v1/mediator.pb.go +++ b/pkg/api/protobuf/go/mediator/v1/mediator.pb.go @@ -2168,6 +2168,94 @@ func (x *RefreshTokenResponse) GetAccessTokenExpiresIn() int64 { return 0 } +// Project API Objects +type Project 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,3,opt,name=name,proto3" json:"name,omitempty"` + Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"` + IsProtected bool `protobuf:"varint,5,opt,name=is_protected,json=isProtected,proto3" json:"is_protected,omitempty"` + CreatedAt *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` +} + +func (x *Project) Reset() { + *x = Project{} + if protoimpl.UnsafeEnabled { + mi := &file_mediator_v1_mediator_proto_msgTypes[33] + 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_mediator_v1_mediator_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 Project.ProtoReflect.Descriptor instead. +func (*Project) Descriptor() ([]byte, []int) { + return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{33} +} + +func (x *Project) GetProjectId() string { + if x != nil { + return x.ProjectId + } + return "" +} + +func (x *Project) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Project) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *Project) GetIsProtected() bool { + if x != nil { + return x.IsProtected + } + return false +} + +func (x *Project) GetCreatedAt() *timestamppb.Timestamp { + if x != nil { + return x.CreatedAt + } + return nil +} + +func (x *Project) GetUpdatedAt() *timestamppb.Timestamp { + if x != nil { + return x.UpdatedAt + } + return nil +} + type SyncRepositoriesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2180,7 +2268,7 @@ type SyncRepositoriesRequest struct { func (x *SyncRepositoriesRequest) Reset() { *x = SyncRepositoriesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[33] + mi := &file_mediator_v1_mediator_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2193,7 +2281,7 @@ func (x *SyncRepositoriesRequest) String() string { func (*SyncRepositoriesRequest) ProtoMessage() {} func (x *SyncRepositoriesRequest) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_proto_msgTypes[33] + mi := &file_mediator_v1_mediator_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2206,7 +2294,7 @@ func (x *SyncRepositoriesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SyncRepositoriesRequest.ProtoReflect.Descriptor instead. func (*SyncRepositoriesRequest) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{33} + return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{34} } func (x *SyncRepositoriesRequest) GetProvider() string { @@ -2232,7 +2320,7 @@ type SyncRepositoriesResponse struct { func (x *SyncRepositoriesResponse) Reset() { *x = SyncRepositoriesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[34] + mi := &file_mediator_v1_mediator_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2245,7 +2333,7 @@ func (x *SyncRepositoriesResponse) String() string { func (*SyncRepositoriesResponse) ProtoMessage() {} func (x *SyncRepositoriesResponse) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_proto_msgTypes[34] + mi := &file_mediator_v1_mediator_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2258,7 +2346,7 @@ func (x *SyncRepositoriesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SyncRepositoriesResponse.ProtoReflect.Descriptor instead. func (*SyncRepositoriesResponse) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{34} + return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{35} } type RegisterRepositoryRequest struct { @@ -2275,7 +2363,7 @@ type RegisterRepositoryRequest struct { func (x *RegisterRepositoryRequest) Reset() { *x = RegisterRepositoryRequest{} if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[35] + mi := &file_mediator_v1_mediator_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2288,7 +2376,7 @@ func (x *RegisterRepositoryRequest) String() string { func (*RegisterRepositoryRequest) ProtoMessage() {} func (x *RegisterRepositoryRequest) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_proto_msgTypes[35] + mi := &file_mediator_v1_mediator_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2301,7 +2389,7 @@ func (x *RegisterRepositoryRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RegisterRepositoryRequest.ProtoReflect.Descriptor instead. func (*RegisterRepositoryRequest) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{35} + return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{36} } func (x *RegisterRepositoryRequest) GetProvider() string { @@ -2345,7 +2433,7 @@ type Repositories struct { func (x *Repositories) Reset() { *x = Repositories{} if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[36] + mi := &file_mediator_v1_mediator_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2358,7 +2446,7 @@ func (x *Repositories) String() string { func (*Repositories) ProtoMessage() {} func (x *Repositories) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_proto_msgTypes[36] + mi := &file_mediator_v1_mediator_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2371,7 +2459,7 @@ func (x *Repositories) ProtoReflect() protoreflect.Message { // Deprecated: Use Repositories.ProtoReflect.Descriptor instead. func (*Repositories) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{36} + return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{37} } func (x *Repositories) GetOwner() string { @@ -2420,7 +2508,7 @@ type RepositoryResult struct { func (x *RepositoryResult) Reset() { *x = RepositoryResult{} if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[37] + mi := &file_mediator_v1_mediator_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2433,7 +2521,7 @@ func (x *RepositoryResult) String() string { func (*RepositoryResult) ProtoMessage() {} func (x *RepositoryResult) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_proto_msgTypes[37] + mi := &file_mediator_v1_mediator_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2446,7 +2534,7 @@ func (x *RepositoryResult) ProtoReflect() protoreflect.Message { // Deprecated: Use RepositoryResult.ProtoReflect.Descriptor instead. func (*RepositoryResult) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{37} + return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{38} } func (x *RepositoryResult) GetOwner() string { @@ -2565,7 +2653,7 @@ type RegisterRepositoryResponse struct { func (x *RegisterRepositoryResponse) Reset() { *x = RegisterRepositoryResponse{} if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[38] + mi := &file_mediator_v1_mediator_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2578,7 +2666,7 @@ func (x *RegisterRepositoryResponse) String() string { func (*RegisterRepositoryResponse) ProtoMessage() {} func (x *RegisterRepositoryResponse) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_proto_msgTypes[38] + mi := &file_mediator_v1_mediator_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2591,7 +2679,7 @@ func (x *RegisterRepositoryResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use RegisterRepositoryResponse.ProtoReflect.Descriptor instead. func (*RegisterRepositoryResponse) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{38} + return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{39} } func (x *RegisterRepositoryResponse) GetResults() []*RepositoryResult { @@ -2625,7 +2713,7 @@ type RepositoryRecord struct { func (x *RepositoryRecord) Reset() { *x = RepositoryRecord{} if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[39] + mi := &file_mediator_v1_mediator_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2638,7 +2726,7 @@ func (x *RepositoryRecord) String() string { func (*RepositoryRecord) ProtoMessage() {} func (x *RepositoryRecord) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_proto_msgTypes[39] + mi := &file_mediator_v1_mediator_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2651,7 +2739,7 @@ func (x *RepositoryRecord) ProtoReflect() protoreflect.Message { // Deprecated: Use RepositoryRecord.ProtoReflect.Descriptor instead. func (*RepositoryRecord) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{39} + return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{40} } func (x *RepositoryRecord) GetId() string { @@ -2756,7 +2844,7 @@ type GetRepositoryByIdRequest struct { func (x *GetRepositoryByIdRequest) Reset() { *x = GetRepositoryByIdRequest{} if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[40] + mi := &file_mediator_v1_mediator_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2769,7 +2857,7 @@ func (x *GetRepositoryByIdRequest) String() string { func (*GetRepositoryByIdRequest) ProtoMessage() {} func (x *GetRepositoryByIdRequest) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_proto_msgTypes[40] + mi := &file_mediator_v1_mediator_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2782,7 +2870,7 @@ func (x *GetRepositoryByIdRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetRepositoryByIdRequest.ProtoReflect.Descriptor instead. func (*GetRepositoryByIdRequest) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{40} + return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{41} } func (x *GetRepositoryByIdRequest) GetRepositoryId() string { @@ -2803,7 +2891,7 @@ type GetRepositoryByIdResponse struct { func (x *GetRepositoryByIdResponse) Reset() { *x = GetRepositoryByIdResponse{} if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[41] + mi := &file_mediator_v1_mediator_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2816,7 +2904,7 @@ func (x *GetRepositoryByIdResponse) String() string { func (*GetRepositoryByIdResponse) ProtoMessage() {} func (x *GetRepositoryByIdResponse) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_proto_msgTypes[41] + mi := &file_mediator_v1_mediator_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2829,7 +2917,7 @@ func (x *GetRepositoryByIdResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetRepositoryByIdResponse.ProtoReflect.Descriptor instead. func (*GetRepositoryByIdResponse) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{41} + return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{42} } func (x *GetRepositoryByIdResponse) GetRepository() *RepositoryRecord { @@ -2852,7 +2940,7 @@ type GetRepositoryByNameRequest struct { func (x *GetRepositoryByNameRequest) Reset() { *x = GetRepositoryByNameRequest{} if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[42] + mi := &file_mediator_v1_mediator_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2865,7 +2953,7 @@ func (x *GetRepositoryByNameRequest) String() string { func (*GetRepositoryByNameRequest) ProtoMessage() {} func (x *GetRepositoryByNameRequest) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_proto_msgTypes[42] + mi := &file_mediator_v1_mediator_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2878,7 +2966,7 @@ func (x *GetRepositoryByNameRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetRepositoryByNameRequest.ProtoReflect.Descriptor instead. func (*GetRepositoryByNameRequest) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{42} + return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{43} } func (x *GetRepositoryByNameRequest) GetProvider() string { @@ -2913,7 +3001,7 @@ type GetRepositoryByNameResponse struct { func (x *GetRepositoryByNameResponse) Reset() { *x = GetRepositoryByNameResponse{} if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[43] + mi := &file_mediator_v1_mediator_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2926,7 +3014,7 @@ func (x *GetRepositoryByNameResponse) String() string { func (*GetRepositoryByNameResponse) ProtoMessage() {} func (x *GetRepositoryByNameResponse) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_proto_msgTypes[43] + mi := &file_mediator_v1_mediator_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2939,7 +3027,7 @@ func (x *GetRepositoryByNameResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetRepositoryByNameResponse.ProtoReflect.Descriptor instead. func (*GetRepositoryByNameResponse) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{43} + return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{44} } func (x *GetRepositoryByNameResponse) GetRepository() *RepositoryRecord { @@ -2964,7 +3052,7 @@ type ListRepositoriesRequest struct { func (x *ListRepositoriesRequest) Reset() { *x = ListRepositoriesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[44] + mi := &file_mediator_v1_mediator_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2977,7 +3065,7 @@ func (x *ListRepositoriesRequest) String() string { func (*ListRepositoriesRequest) ProtoMessage() {} func (x *ListRepositoriesRequest) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_proto_msgTypes[44] + mi := &file_mediator_v1_mediator_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2990,7 +3078,7 @@ func (x *ListRepositoriesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListRepositoriesRequest.ProtoReflect.Descriptor instead. func (*ListRepositoriesRequest) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{44} + return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{45} } func (x *ListRepositoriesRequest) GetProvider() string { @@ -3039,7 +3127,7 @@ type ListRepositoriesResponse struct { func (x *ListRepositoriesResponse) Reset() { *x = ListRepositoriesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[45] + mi := &file_mediator_v1_mediator_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3052,7 +3140,7 @@ func (x *ListRepositoriesResponse) String() string { func (*ListRepositoriesResponse) ProtoMessage() {} func (x *ListRepositoriesResponse) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_proto_msgTypes[45] + mi := &file_mediator_v1_mediator_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3065,7 +3153,7 @@ func (x *ListRepositoriesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListRepositoriesResponse.ProtoReflect.Descriptor instead. func (*ListRepositoriesResponse) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{45} + return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{46} } func (x *ListRepositoriesResponse) GetResults() []*RepositoryRecord { @@ -3084,7 +3172,7 @@ type VerifyRequest struct { func (x *VerifyRequest) Reset() { *x = VerifyRequest{} if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[46] + mi := &file_mediator_v1_mediator_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3097,7 +3185,7 @@ func (x *VerifyRequest) String() string { func (*VerifyRequest) ProtoMessage() {} func (x *VerifyRequest) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_proto_msgTypes[46] + mi := &file_mediator_v1_mediator_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3110,7 +3198,7 @@ func (x *VerifyRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use VerifyRequest.ProtoReflect.Descriptor instead. func (*VerifyRequest) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{46} + return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{47} } type VerifyResponse struct { @@ -3124,7 +3212,7 @@ type VerifyResponse struct { func (x *VerifyResponse) Reset() { *x = VerifyResponse{} if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[47] + mi := &file_mediator_v1_mediator_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3137,7 +3225,7 @@ func (x *VerifyResponse) String() string { func (*VerifyResponse) ProtoMessage() {} func (x *VerifyResponse) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_proto_msgTypes[47] + mi := &file_mediator_v1_mediator_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3150,7 +3238,7 @@ func (x *VerifyResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use VerifyResponse.ProtoReflect.Descriptor instead. func (*VerifyResponse) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{47} + return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{48} } func (x *VerifyResponse) GetStatus() string { @@ -3173,7 +3261,7 @@ type VerifyProviderTokenFromRequest struct { func (x *VerifyProviderTokenFromRequest) Reset() { *x = VerifyProviderTokenFromRequest{} if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[48] + mi := &file_mediator_v1_mediator_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3186,7 +3274,7 @@ func (x *VerifyProviderTokenFromRequest) String() string { func (*VerifyProviderTokenFromRequest) ProtoMessage() {} func (x *VerifyProviderTokenFromRequest) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_proto_msgTypes[48] + mi := &file_mediator_v1_mediator_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3199,7 +3287,7 @@ func (x *VerifyProviderTokenFromRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use VerifyProviderTokenFromRequest.ProtoReflect.Descriptor instead. func (*VerifyProviderTokenFromRequest) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{48} + return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{49} } func (x *VerifyProviderTokenFromRequest) GetProvider() string { @@ -3234,7 +3322,7 @@ type VerifyProviderTokenFromResponse struct { func (x *VerifyProviderTokenFromResponse) Reset() { *x = VerifyProviderTokenFromResponse{} if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[49] + mi := &file_mediator_v1_mediator_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3247,7 +3335,7 @@ func (x *VerifyProviderTokenFromResponse) String() string { func (*VerifyProviderTokenFromResponse) ProtoMessage() {} func (x *VerifyProviderTokenFromResponse) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_proto_msgTypes[49] + mi := &file_mediator_v1_mediator_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3260,7 +3348,7 @@ func (x *VerifyProviderTokenFromResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use VerifyProviderTokenFromResponse.ProtoReflect.Descriptor instead. func (*VerifyProviderTokenFromResponse) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{49} + return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{50} } func (x *VerifyProviderTokenFromResponse) GetStatus() string { @@ -3279,7 +3367,7 @@ type GetVulnerabilitiesRequest struct { func (x *GetVulnerabilitiesRequest) Reset() { *x = GetVulnerabilitiesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[50] + mi := &file_mediator_v1_mediator_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3292,7 +3380,7 @@ func (x *GetVulnerabilitiesRequest) String() string { func (*GetVulnerabilitiesRequest) ProtoMessage() {} func (x *GetVulnerabilitiesRequest) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_proto_msgTypes[50] + mi := &file_mediator_v1_mediator_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3305,7 +3393,7 @@ func (x *GetVulnerabilitiesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetVulnerabilitiesRequest.ProtoReflect.Descriptor instead. func (*GetVulnerabilitiesRequest) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{50} + return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{51} } type GetVulnerabilityByIdRequest struct { @@ -3319,7 +3407,7 @@ type GetVulnerabilityByIdRequest struct { func (x *GetVulnerabilityByIdRequest) Reset() { *x = GetVulnerabilityByIdRequest{} if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[51] + mi := &file_mediator_v1_mediator_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3332,7 +3420,7 @@ func (x *GetVulnerabilityByIdRequest) String() string { func (*GetVulnerabilityByIdRequest) ProtoMessage() {} func (x *GetVulnerabilityByIdRequest) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_proto_msgTypes[51] + mi := &file_mediator_v1_mediator_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3345,7 +3433,7 @@ func (x *GetVulnerabilityByIdRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetVulnerabilityByIdRequest.ProtoReflect.Descriptor instead. func (*GetVulnerabilityByIdRequest) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{51} + return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{52} } func (x *GetVulnerabilityByIdRequest) GetId() string { @@ -3378,7 +3466,7 @@ type GetVulnerabilityByIdResponse struct { func (x *GetVulnerabilityByIdResponse) Reset() { *x = GetVulnerabilityByIdResponse{} if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[52] + mi := &file_mediator_v1_mediator_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3391,7 +3479,7 @@ func (x *GetVulnerabilityByIdResponse) String() string { func (*GetVulnerabilityByIdResponse) ProtoMessage() {} func (x *GetVulnerabilityByIdResponse) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_proto_msgTypes[52] + mi := &file_mediator_v1_mediator_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3404,7 +3492,7 @@ func (x *GetVulnerabilityByIdResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetVulnerabilityByIdResponse.ProtoReflect.Descriptor instead. func (*GetVulnerabilityByIdResponse) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{52} + return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{53} } func (x *GetVulnerabilityByIdResponse) GetId() string { @@ -3502,7 +3590,7 @@ type GetVulnerabilitiesResponse struct { func (x *GetVulnerabilitiesResponse) Reset() { *x = GetVulnerabilitiesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[53] + mi := &file_mediator_v1_mediator_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3515,7 +3603,7 @@ func (x *GetVulnerabilitiesResponse) String() string { func (*GetVulnerabilitiesResponse) ProtoMessage() {} func (x *GetVulnerabilitiesResponse) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_proto_msgTypes[53] + mi := &file_mediator_v1_mediator_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3528,7 +3616,7 @@ func (x *GetVulnerabilitiesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetVulnerabilitiesResponse.ProtoReflect.Descriptor instead. func (*GetVulnerabilitiesResponse) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{53} + return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{54} } func (x *GetVulnerabilitiesResponse) GetVulns() []*GetVulnerabilityByIdResponse { @@ -3547,7 +3635,7 @@ type GetSecretsRequest struct { func (x *GetSecretsRequest) Reset() { *x = GetSecretsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[54] + mi := &file_mediator_v1_mediator_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3560,7 +3648,7 @@ func (x *GetSecretsRequest) String() string { func (*GetSecretsRequest) ProtoMessage() {} func (x *GetSecretsRequest) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_proto_msgTypes[54] + mi := &file_mediator_v1_mediator_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3573,7 +3661,7 @@ func (x *GetSecretsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetSecretsRequest.ProtoReflect.Descriptor instead. func (*GetSecretsRequest) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{54} + return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{55} } type GetSecretsResponse struct { @@ -3587,7 +3675,7 @@ type GetSecretsResponse struct { func (x *GetSecretsResponse) Reset() { *x = GetSecretsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[55] + mi := &file_mediator_v1_mediator_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3600,7 +3688,7 @@ func (x *GetSecretsResponse) String() string { func (*GetSecretsResponse) ProtoMessage() {} func (x *GetSecretsResponse) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_proto_msgTypes[55] + mi := &file_mediator_v1_mediator_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3613,7 +3701,7 @@ func (x *GetSecretsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetSecretsResponse.ProtoReflect.Descriptor instead. func (*GetSecretsResponse) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{55} + return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{56} } func (x *GetSecretsResponse) GetSecrets() []*GetSecretByIdResponse { @@ -3634,7 +3722,7 @@ type GetSecretByIdRequest struct { func (x *GetSecretByIdRequest) Reset() { *x = GetSecretByIdRequest{} if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[56] + mi := &file_mediator_v1_mediator_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3647,7 +3735,7 @@ func (x *GetSecretByIdRequest) String() string { func (*GetSecretByIdRequest) ProtoMessage() {} func (x *GetSecretByIdRequest) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_proto_msgTypes[56] + mi := &file_mediator_v1_mediator_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3660,7 +3748,7 @@ func (x *GetSecretByIdRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetSecretByIdRequest.ProtoReflect.Descriptor instead. func (*GetSecretByIdRequest) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{56} + return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{57} } func (x *GetSecretByIdRequest) GetId() string { @@ -3683,7 +3771,7 @@ type GetSecretByIdResponse struct { func (x *GetSecretByIdResponse) Reset() { *x = GetSecretByIdResponse{} if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[57] + mi := &file_mediator_v1_mediator_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3696,7 +3784,7 @@ func (x *GetSecretByIdResponse) String() string { func (*GetSecretByIdResponse) ProtoMessage() {} func (x *GetSecretByIdResponse) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_proto_msgTypes[57] + mi := &file_mediator_v1_mediator_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3709,7 +3797,7 @@ func (x *GetSecretByIdResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetSecretByIdResponse.ProtoReflect.Descriptor instead. func (*GetSecretByIdResponse) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{57} + return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{58} } func (x *GetSecretByIdResponse) GetId() string { @@ -3742,7 +3830,7 @@ type GetBranchProtectionRequest struct { func (x *GetBranchProtectionRequest) Reset() { *x = GetBranchProtectionRequest{} if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[58] + mi := &file_mediator_v1_mediator_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3755,7 +3843,7 @@ func (x *GetBranchProtectionRequest) String() string { func (*GetBranchProtectionRequest) ProtoMessage() {} func (x *GetBranchProtectionRequest) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_proto_msgTypes[58] + mi := &file_mediator_v1_mediator_proto_msgTypes[59] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3768,7 +3856,7 @@ func (x *GetBranchProtectionRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetBranchProtectionRequest.ProtoReflect.Descriptor instead. func (*GetBranchProtectionRequest) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{58} + return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{59} } type BranchProtection struct { @@ -3783,7 +3871,7 @@ type BranchProtection struct { func (x *BranchProtection) Reset() { *x = BranchProtection{} if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[59] + mi := &file_mediator_v1_mediator_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3796,7 +3884,7 @@ func (x *BranchProtection) String() string { func (*BranchProtection) ProtoMessage() {} func (x *BranchProtection) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_proto_msgTypes[59] + mi := &file_mediator_v1_mediator_proto_msgTypes[60] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3809,7 +3897,7 @@ func (x *BranchProtection) ProtoReflect() protoreflect.Message { // Deprecated: Use BranchProtection.ProtoReflect.Descriptor instead. func (*BranchProtection) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{59} + return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{60} } func (x *BranchProtection) GetBranch() string { @@ -3837,7 +3925,7 @@ type GetBranchProtectionResponse struct { func (x *GetBranchProtectionResponse) Reset() { *x = GetBranchProtectionResponse{} if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[60] + mi := &file_mediator_v1_mediator_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3850,7 +3938,7 @@ func (x *GetBranchProtectionResponse) String() string { func (*GetBranchProtectionResponse) ProtoMessage() {} func (x *GetBranchProtectionResponse) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_proto_msgTypes[60] + mi := &file_mediator_v1_mediator_proto_msgTypes[61] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3863,7 +3951,7 @@ func (x *GetBranchProtectionResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetBranchProtectionResponse.ProtoReflect.Descriptor instead. func (*GetBranchProtectionResponse) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{60} + return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{61} } func (x *GetBranchProtectionResponse) GetBranchProtections() []*BranchProtection { @@ -3873,34 +3961,30 @@ func (x *GetBranchProtectionResponse) GetBranchProtections() []*BranchProtection return nil } -// Organization service -type CreateOrganizationRequest struct { +// User service +type CreateUserRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Company string `protobuf:"bytes,2,opt,name=company,proto3" json:"company,omitempty"` - CreateDefaultRecords bool `protobuf:"varint,3,opt,name=create_default_records,json=createDefaultRecords,proto3" json:"create_default_records,omitempty"` } -func (x *CreateOrganizationRequest) Reset() { - *x = CreateOrganizationRequest{} +func (x *CreateUserRequest) Reset() { + *x = CreateUserRequest{} if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[61] + mi := &file_mediator_v1_mediator_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *CreateOrganizationRequest) String() string { +func (x *CreateUserRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CreateOrganizationRequest) ProtoMessage() {} +func (*CreateUserRequest) ProtoMessage() {} -func (x *CreateOrganizationRequest) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_proto_msgTypes[61] +func (x *CreateUserRequest) ProtoReflect() protoreflect.Message { + mi := &file_mediator_v1_mediator_proto_msgTypes[62] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3911,64 +3995,45 @@ func (x *CreateOrganizationRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CreateOrganizationRequest.ProtoReflect.Descriptor instead. -func (*CreateOrganizationRequest) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{61} +// Deprecated: Use CreateUserRequest.ProtoReflect.Descriptor instead. +func (*CreateUserRequest) Descriptor() ([]byte, []int) { + return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{62} } -func (x *CreateOrganizationRequest) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -func (x *CreateOrganizationRequest) GetCompany() string { - if x != nil { - return x.Company - } - return "" -} - -func (x *CreateOrganizationRequest) GetCreateDefaultRecords() bool { - if x != nil { - return x.CreateDefaultRecords - } - return false -} - -type CreateOrganizationResponse struct { +type CreateUserResponse 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"` - Company string `protobuf:"bytes,3,opt,name=company,proto3" json:"company,omitempty"` - CreatedAt *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` - UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` - DefaultProject *ProjectRecord `protobuf:"bytes,7,opt,name=default_project,json=defaultProject,proto3,oneof" json:"default_project,omitempty"` - DefaultRoles []*RoleRecord `protobuf:"bytes,8,rep,name=default_roles,json=defaultRoles,proto3" json:"default_roles,omitempty"` - DefaultUser *UserRecord `protobuf:"bytes,9,opt,name=default_user,json=defaultUser,proto3,oneof" json:"default_user,omitempty"` + Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + OrganizationId string `protobuf:"bytes,2,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"` + OrganizatioName string `protobuf:"bytes,3,opt,name=organizatio_name,json=organizatioName,proto3" json:"organizatio_name,omitempty"` + ProjectId string `protobuf:"bytes,4,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` + ProjectName string `protobuf:"bytes,5,opt,name=project_name,json=projectName,proto3" json:"project_name,omitempty"` + Email *string `protobuf:"bytes,6,opt,name=email,proto3,oneof" json:"email,omitempty"` + IdentitySubject string `protobuf:"bytes,7,opt,name=identity_subject,json=identitySubject,proto3" json:"identity_subject,omitempty"` + FirstName *string `protobuf:"bytes,8,opt,name=first_name,json=firstName,proto3,oneof" json:"first_name,omitempty"` + LastName *string `protobuf:"bytes,9,opt,name=last_name,json=lastName,proto3,oneof" json:"last_name,omitempty"` + CreatedAt *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` } -func (x *CreateOrganizationResponse) Reset() { - *x = CreateOrganizationResponse{} +func (x *CreateUserResponse) Reset() { + *x = CreateUserResponse{} if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[62] + mi := &file_mediator_v1_mediator_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *CreateOrganizationResponse) String() string { +func (x *CreateUserResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CreateOrganizationResponse) ProtoMessage() {} +func (*CreateUserResponse) ProtoMessage() {} -func (x *CreateOrganizationResponse) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_proto_msgTypes[62] +func (x *CreateUserResponse) ProtoReflect() protoreflect.Message { + mi := &file_mediator_v1_mediator_proto_msgTypes[63] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3979,158 +4044,92 @@ func (x *CreateOrganizationResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CreateOrganizationResponse.ProtoReflect.Descriptor instead. -func (*CreateOrganizationResponse) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{62} +// Deprecated: Use CreateUserResponse.ProtoReflect.Descriptor instead. +func (*CreateUserResponse) Descriptor() ([]byte, []int) { + return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{63} } -func (x *CreateOrganizationResponse) GetId() string { +func (x *CreateUserResponse) GetId() int32 { if x != nil { return x.Id } - return "" + return 0 } -func (x *CreateOrganizationResponse) GetName() string { +func (x *CreateUserResponse) GetOrganizationId() string { if x != nil { - return x.Name + return x.OrganizationId } return "" } -func (x *CreateOrganizationResponse) GetCompany() string { +func (x *CreateUserResponse) GetOrganizatioName() string { if x != nil { - return x.Company + return x.OrganizatioName } return "" } -func (x *CreateOrganizationResponse) GetCreatedAt() *timestamppb.Timestamp { - if x != nil { - return x.CreatedAt - } - return nil -} - -func (x *CreateOrganizationResponse) GetUpdatedAt() *timestamppb.Timestamp { - if x != nil { - return x.UpdatedAt - } - return nil -} - -func (x *CreateOrganizationResponse) GetDefaultProject() *ProjectRecord { - if x != nil { - return x.DefaultProject - } - return nil -} - -func (x *CreateOrganizationResponse) GetDefaultRoles() []*RoleRecord { +func (x *CreateUserResponse) GetProjectId() string { if x != nil { - return x.DefaultRoles + return x.ProjectId } - return nil + return "" } -func (x *CreateOrganizationResponse) GetDefaultUser() *UserRecord { +func (x *CreateUserResponse) GetProjectName() string { if x != nil { - return x.DefaultUser - } - return nil -} - -type OrganizationRecord 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"` - Company string `protobuf:"bytes,3,opt,name=company,proto3" json:"company,omitempty"` - CreatedAt *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` - UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` -} - -func (x *OrganizationRecord) Reset() { - *x = OrganizationRecord{} - if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[63] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + return x.ProjectName } + return "" } -func (x *OrganizationRecord) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*OrganizationRecord) ProtoMessage() {} - -func (x *OrganizationRecord) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_proto_msgTypes[63] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *CreateUserResponse) GetEmail() string { + if x != nil && x.Email != nil { + return *x.Email } - return mi.MessageOf(x) -} - -// Deprecated: Use OrganizationRecord.ProtoReflect.Descriptor instead. -func (*OrganizationRecord) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{63} + return "" } -func (x *OrganizationRecord) GetId() string { +func (x *CreateUserResponse) GetIdentitySubject() string { if x != nil { - return x.Id + return x.IdentitySubject } return "" } -func (x *OrganizationRecord) GetName() string { - if x != nil { - return x.Name +func (x *CreateUserResponse) GetFirstName() string { + if x != nil && x.FirstName != nil { + return *x.FirstName } return "" } -func (x *OrganizationRecord) GetCompany() string { - if x != nil { - return x.Company +func (x *CreateUserResponse) GetLastName() string { + if x != nil && x.LastName != nil { + return *x.LastName } return "" } -func (x *OrganizationRecord) GetCreatedAt() *timestamppb.Timestamp { +func (x *CreateUserResponse) GetCreatedAt() *timestamppb.Timestamp { if x != nil { return x.CreatedAt } return nil } -func (x *OrganizationRecord) GetUpdatedAt() *timestamppb.Timestamp { - if x != nil { - return x.UpdatedAt - } - return nil -} - -// DeleteOrganizationRequest represents a request to delete a organization -type DeleteOrganizationRequest struct { +type DeleteUserRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Force *bool `protobuf:"varint,2,opt,name=force,proto3,oneof" json:"force,omitempty"` + Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Force *bool `protobuf:"varint,2,opt,name=force,proto3,oneof" json:"force,omitempty"` } -func (x *DeleteOrganizationRequest) Reset() { - *x = DeleteOrganizationRequest{} +func (x *DeleteUserRequest) Reset() { + *x = DeleteUserRequest{} if protoimpl.UnsafeEnabled { mi := &file_mediator_v1_mediator_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -4138,13 +4137,13 @@ func (x *DeleteOrganizationRequest) Reset() { } } -func (x *DeleteOrganizationRequest) String() string { +func (x *DeleteUserRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DeleteOrganizationRequest) ProtoMessage() {} +func (*DeleteUserRequest) ProtoMessage() {} -func (x *DeleteOrganizationRequest) ProtoReflect() protoreflect.Message { +func (x *DeleteUserRequest) ProtoReflect() protoreflect.Message { mi := &file_mediator_v1_mediator_proto_msgTypes[64] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -4156,34 +4155,33 @@ func (x *DeleteOrganizationRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DeleteOrganizationRequest.ProtoReflect.Descriptor instead. -func (*DeleteOrganizationRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use DeleteUserRequest.ProtoReflect.Descriptor instead. +func (*DeleteUserRequest) Descriptor() ([]byte, []int) { return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{64} } -func (x *DeleteOrganizationRequest) GetId() string { +func (x *DeleteUserRequest) GetId() int32 { if x != nil { return x.Id } - return "" + return 0 } -func (x *DeleteOrganizationRequest) GetForce() bool { +func (x *DeleteUserRequest) GetForce() bool { if x != nil && x.Force != nil { return *x.Force } return false } -// DeleteOrganizationResponse represents a response to a delete organization request -type DeleteOrganizationResponse struct { +type DeleteUserResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *DeleteOrganizationResponse) Reset() { - *x = DeleteOrganizationResponse{} +func (x *DeleteUserResponse) Reset() { + *x = DeleteUserResponse{} if protoimpl.UnsafeEnabled { mi := &file_mediator_v1_mediator_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -4191,13 +4189,13 @@ func (x *DeleteOrganizationResponse) Reset() { } } -func (x *DeleteOrganizationResponse) String() string { +func (x *DeleteUserResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DeleteOrganizationResponse) ProtoMessage() {} +func (*DeleteUserResponse) ProtoMessage() {} -func (x *DeleteOrganizationResponse) ProtoReflect() protoreflect.Message { +func (x *DeleteUserResponse) ProtoReflect() protoreflect.Message { mi := &file_mediator_v1_mediator_proto_msgTypes[65] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -4209,23 +4207,29 @@ func (x *DeleteOrganizationResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DeleteOrganizationResponse.ProtoReflect.Descriptor instead. -func (*DeleteOrganizationResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use DeleteUserResponse.ProtoReflect.Descriptor instead. +func (*DeleteUserResponse) Descriptor() ([]byte, []int) { return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{65} } -// list organizations -type GetOrganizationsRequest struct { +// user record to be returned +type UserRecord struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Limit *int32 `protobuf:"varint,1,opt,name=limit,proto3,oneof" json:"limit,omitempty"` - Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` + Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + OrganizationId string `protobuf:"bytes,2,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"` + Email *string `protobuf:"bytes,3,opt,name=email,proto3,oneof" json:"email,omitempty"` + IdentitySubject string `protobuf:"bytes,4,opt,name=identity_subject,json=identitySubject,proto3" json:"identity_subject,omitempty"` + FirstName *string `protobuf:"bytes,5,opt,name=first_name,json=firstName,proto3,oneof" json:"first_name,omitempty"` + LastName *string `protobuf:"bytes,6,opt,name=last_name,json=lastName,proto3,oneof" json:"last_name,omitempty"` + CreatedAt *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` } -func (x *GetOrganizationsRequest) Reset() { - *x = GetOrganizationsRequest{} +func (x *UserRecord) Reset() { + *x = UserRecord{} if protoimpl.UnsafeEnabled { mi := &file_mediator_v1_mediator_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -4233,13 +4237,13 @@ func (x *GetOrganizationsRequest) Reset() { } } -func (x *GetOrganizationsRequest) String() string { +func (x *UserRecord) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetOrganizationsRequest) ProtoMessage() {} +func (*UserRecord) ProtoMessage() {} -func (x *GetOrganizationsRequest) ProtoReflect() protoreflect.Message { +func (x *UserRecord) ProtoReflect() protoreflect.Message { mi := &file_mediator_v1_mediator_proto_msgTypes[66] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -4251,35 +4255,77 @@ func (x *GetOrganizationsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetOrganizationsRequest.ProtoReflect.Descriptor instead. -func (*GetOrganizationsRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use UserRecord.ProtoReflect.Descriptor instead. +func (*UserRecord) Descriptor() ([]byte, []int) { return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{66} } -func (x *GetOrganizationsRequest) GetLimit() int32 { - if x != nil && x.Limit != nil { - return *x.Limit +func (x *UserRecord) GetId() int32 { + if x != nil { + return x.Id } return 0 } -func (x *GetOrganizationsRequest) GetOffset() int32 { - if x != nil && x.Offset != nil { - return *x.Offset +func (x *UserRecord) GetOrganizationId() string { + if x != nil { + return x.OrganizationId } - return 0 + return "" +} + +func (x *UserRecord) GetEmail() string { + if x != nil && x.Email != nil { + return *x.Email + } + return "" +} + +func (x *UserRecord) GetIdentitySubject() string { + if x != nil { + return x.IdentitySubject + } + return "" +} + +func (x *UserRecord) GetFirstName() string { + if x != nil && x.FirstName != nil { + return *x.FirstName + } + return "" +} + +func (x *UserRecord) GetLastName() string { + if x != nil && x.LastName != nil { + return *x.LastName + } + return "" +} + +func (x *UserRecord) GetCreatedAt() *timestamppb.Timestamp { + if x != nil { + return x.CreatedAt + } + return nil +} + +func (x *UserRecord) GetUpdatedAt() *timestamppb.Timestamp { + if x != nil { + return x.UpdatedAt + } + return nil } -type GetOrganizationsResponse struct { +// list users +// get user +type GetUserRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - - Organizations []*OrganizationRecord `protobuf:"bytes,1,rep,name=organizations,proto3" json:"organizations,omitempty"` } -func (x *GetOrganizationsResponse) Reset() { - *x = GetOrganizationsResponse{} +func (x *GetUserRequest) Reset() { + *x = GetUserRequest{} if protoimpl.UnsafeEnabled { mi := &file_mediator_v1_mediator_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -4287,13 +4333,13 @@ func (x *GetOrganizationsResponse) Reset() { } } -func (x *GetOrganizationsResponse) String() string { +func (x *GetUserRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetOrganizationsResponse) ProtoMessage() {} +func (*GetUserRequest) ProtoMessage() {} -func (x *GetOrganizationsResponse) ProtoReflect() protoreflect.Message { +func (x *GetUserRequest) ProtoReflect() protoreflect.Message { mi := &file_mediator_v1_mediator_proto_msgTypes[67] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -4305,29 +4351,22 @@ func (x *GetOrganizationsResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetOrganizationsResponse.ProtoReflect.Descriptor instead. -func (*GetOrganizationsResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use GetUserRequest.ProtoReflect.Descriptor instead. +func (*GetUserRequest) Descriptor() ([]byte, []int) { return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{67} } -func (x *GetOrganizationsResponse) GetOrganizations() []*OrganizationRecord { - if x != nil { - return x.Organizations - } - return nil -} - -// get organization by id -type GetOrganizationRequest struct { +type GetUserResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - OrganizationId string `protobuf:"bytes,1,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"` + User *UserRecord `protobuf:"bytes,1,opt,name=user,proto3,oneof" json:"user,omitempty"` + Projects []*Project `protobuf:"bytes,2,rep,name=projects,proto3" json:"projects,omitempty"` } -func (x *GetOrganizationRequest) Reset() { - *x = GetOrganizationRequest{} +func (x *GetUserResponse) Reset() { + *x = GetUserResponse{} if protoimpl.UnsafeEnabled { mi := &file_mediator_v1_mediator_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -4335,13 +4374,13 @@ func (x *GetOrganizationRequest) Reset() { } } -func (x *GetOrganizationRequest) String() string { +func (x *GetUserResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetOrganizationRequest) ProtoMessage() {} +func (*GetUserResponse) ProtoMessage() {} -func (x *GetOrganizationRequest) ProtoReflect() protoreflect.Message { +func (x *GetUserResponse) ProtoReflect() protoreflect.Message { mi := &file_mediator_v1_mediator_proto_msgTypes[68] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -4353,31 +4392,36 @@ func (x *GetOrganizationRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetOrganizationRequest.ProtoReflect.Descriptor instead. -func (*GetOrganizationRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use GetUserResponse.ProtoReflect.Descriptor instead. +func (*GetUserResponse) Descriptor() ([]byte, []int) { return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{68} } -func (x *GetOrganizationRequest) GetOrganizationId() string { +func (x *GetUserResponse) GetUser() *UserRecord { if x != nil { - return x.OrganizationId + return x.User } - return "" + return nil +} + +func (x *GetUserResponse) GetProjects() []*Project { + if x != nil { + return x.Projects + } + return nil } -type GetOrganizationResponse struct { +// Profile service +type CreateProfileRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Organization *OrganizationRecord `protobuf:"bytes,1,opt,name=organization,proto3,oneof" json:"organization,omitempty"` - Projects []*ProjectRecord `protobuf:"bytes,2,rep,name=projects,proto3" json:"projects,omitempty"` - Roles []*RoleRecord `protobuf:"bytes,3,rep,name=roles,proto3" json:"roles,omitempty"` - Users []*UserRecord `protobuf:"bytes,4,rep,name=users,proto3" json:"users,omitempty"` + Profile *Profile `protobuf:"bytes,1,opt,name=profile,proto3" json:"profile,omitempty"` } -func (x *GetOrganizationResponse) Reset() { - *x = GetOrganizationResponse{} +func (x *CreateProfileRequest) Reset() { + *x = CreateProfileRequest{} if protoimpl.UnsafeEnabled { mi := &file_mediator_v1_mediator_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -4385,13 +4429,13 @@ func (x *GetOrganizationResponse) Reset() { } } -func (x *GetOrganizationResponse) String() string { +func (x *CreateProfileRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetOrganizationResponse) ProtoMessage() {} +func (*CreateProfileRequest) ProtoMessage() {} -func (x *GetOrganizationResponse) ProtoReflect() protoreflect.Message { +func (x *CreateProfileRequest) ProtoReflect() protoreflect.Message { mi := &file_mediator_v1_mediator_proto_msgTypes[69] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -4403,50 +4447,28 @@ func (x *GetOrganizationResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetOrganizationResponse.ProtoReflect.Descriptor instead. -func (*GetOrganizationResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use CreateProfileRequest.ProtoReflect.Descriptor instead. +func (*CreateProfileRequest) Descriptor() ([]byte, []int) { return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{69} } -func (x *GetOrganizationResponse) GetOrganization() *OrganizationRecord { +func (x *CreateProfileRequest) GetProfile() *Profile { if x != nil { - return x.Organization - } - return nil -} - -func (x *GetOrganizationResponse) GetProjects() []*ProjectRecord { - if x != nil { - return x.Projects - } - return nil -} - -func (x *GetOrganizationResponse) GetRoles() []*RoleRecord { - if x != nil { - return x.Roles - } - return nil -} - -func (x *GetOrganizationResponse) GetUsers() []*UserRecord { - if x != nil { - return x.Users + return x.Profile } return nil } -// get organization by name -type GetOrganizationByNameRequest struct { +type CreateProfileResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Profile *Profile `protobuf:"bytes,1,opt,name=profile,proto3" json:"profile,omitempty"` } -func (x *GetOrganizationByNameRequest) Reset() { - *x = GetOrganizationByNameRequest{} +func (x *CreateProfileResponse) Reset() { + *x = CreateProfileResponse{} if protoimpl.UnsafeEnabled { mi := &file_mediator_v1_mediator_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -4454,13 +4476,13 @@ func (x *GetOrganizationByNameRequest) Reset() { } } -func (x *GetOrganizationByNameRequest) String() string { +func (x *CreateProfileResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetOrganizationByNameRequest) ProtoMessage() {} +func (*CreateProfileResponse) ProtoMessage() {} -func (x *GetOrganizationByNameRequest) ProtoReflect() protoreflect.Message { +func (x *CreateProfileResponse) ProtoReflect() protoreflect.Message { mi := &file_mediator_v1_mediator_proto_msgTypes[70] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -4472,31 +4494,31 @@ func (x *GetOrganizationByNameRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetOrganizationByNameRequest.ProtoReflect.Descriptor instead. -func (*GetOrganizationByNameRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use CreateProfileResponse.ProtoReflect.Descriptor instead. +func (*CreateProfileResponse) Descriptor() ([]byte, []int) { return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{70} } -func (x *GetOrganizationByNameRequest) GetName() string { +func (x *CreateProfileResponse) GetProfile() *Profile { if x != nil { - return x.Name + return x.Profile } - return "" + return nil } -type GetOrganizationByNameResponse struct { +type DeleteProfileRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Organization *OrganizationRecord `protobuf:"bytes,1,opt,name=organization,proto3,oneof" json:"organization,omitempty"` - Projects []*ProjectRecord `protobuf:"bytes,2,rep,name=projects,proto3" json:"projects,omitempty"` - Roles []*RoleRecord `protobuf:"bytes,3,rep,name=roles,proto3" json:"roles,omitempty"` - Users []*UserRecord `protobuf:"bytes,4,rep,name=users,proto3" json:"users,omitempty"` + // context is the context in which the rule type is evaluated. + Context *Context `protobuf:"bytes,1,opt,name=context,proto3" json:"context,omitempty"` + // id is the id of the profile to delete + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` } -func (x *GetOrganizationByNameResponse) Reset() { - *x = GetOrganizationByNameResponse{} +func (x *DeleteProfileRequest) Reset() { + *x = DeleteProfileRequest{} if protoimpl.UnsafeEnabled { mi := &file_mediator_v1_mediator_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -4504,13 +4526,13 @@ func (x *GetOrganizationByNameResponse) Reset() { } } -func (x *GetOrganizationByNameResponse) String() string { +func (x *DeleteProfileRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetOrganizationByNameResponse) ProtoMessage() {} +func (*DeleteProfileRequest) ProtoMessage() {} -func (x *GetOrganizationByNameResponse) ProtoReflect() protoreflect.Message { +func (x *DeleteProfileRequest) ProtoReflect() protoreflect.Message { mi := &file_mediator_v1_mediator_proto_msgTypes[71] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -4522,53 +4544,33 @@ func (x *GetOrganizationByNameResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetOrganizationByNameResponse.ProtoReflect.Descriptor instead. -func (*GetOrganizationByNameResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use DeleteProfileRequest.ProtoReflect.Descriptor instead. +func (*DeleteProfileRequest) Descriptor() ([]byte, []int) { return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{71} } -func (x *GetOrganizationByNameResponse) GetOrganization() *OrganizationRecord { - if x != nil { - return x.Organization - } - return nil -} - -func (x *GetOrganizationByNameResponse) GetProjects() []*ProjectRecord { - if x != nil { - return x.Projects - } - return nil -} - -func (x *GetOrganizationByNameResponse) GetRoles() []*RoleRecord { +func (x *DeleteProfileRequest) GetContext() *Context { if x != nil { - return x.Roles + return x.Context } return nil } -func (x *GetOrganizationByNameResponse) GetUsers() []*UserRecord { +func (x *DeleteProfileRequest) GetId() string { if x != nil { - return x.Users + return x.Id } - return nil + return "" } -// The CreateProjectRequest message represents a request to create a project -type CreateProjectRequest struct { +type DeleteProfileResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - - OrganizationId string `protobuf:"bytes,1,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` - IsProtected *bool `protobuf:"varint,4,opt,name=is_protected,json=isProtected,proto3,oneof" json:"is_protected,omitempty"` } -func (x *CreateProjectRequest) Reset() { - *x = CreateProjectRequest{} +func (x *DeleteProfileResponse) Reset() { + *x = DeleteProfileResponse{} if protoimpl.UnsafeEnabled { mi := &file_mediator_v1_mediator_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -4576,13 +4578,13 @@ func (x *CreateProjectRequest) Reset() { } } -func (x *CreateProjectRequest) String() string { +func (x *DeleteProfileResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CreateProjectRequest) ProtoMessage() {} +func (*DeleteProfileResponse) ProtoMessage() {} -func (x *CreateProjectRequest) ProtoReflect() protoreflect.Message { +func (x *DeleteProfileResponse) ProtoReflect() protoreflect.Message { mi := &file_mediator_v1_mediator_proto_msgTypes[72] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -4594,50 +4596,23 @@ func (x *CreateProjectRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CreateProjectRequest.ProtoReflect.Descriptor instead. -func (*CreateProjectRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use DeleteProfileResponse.ProtoReflect.Descriptor instead. +func (*DeleteProfileResponse) Descriptor() ([]byte, []int) { return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{72} } -func (x *CreateProjectRequest) GetOrganizationId() string { - if x != nil { - return x.OrganizationId - } - return "" -} - -func (x *CreateProjectRequest) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -func (x *CreateProjectRequest) GetDescription() string { - if x != nil { - return x.Description - } - return "" -} - -func (x *CreateProjectRequest) GetIsProtected() bool { - if x != nil && x.IsProtected != nil { - return *x.IsProtected - } - return false -} - -// The GetProjectByNameRequest message represents a request to get a project by name -type GetProjectByNameRequest struct { +// list profiles +type ListProfilesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // context is the context which contains the profiles + Context *Context `protobuf:"bytes,1,opt,name=context,proto3" json:"context,omitempty"` } -func (x *GetProjectByNameRequest) Reset() { - *x = GetProjectByNameRequest{} +func (x *ListProfilesRequest) Reset() { + *x = ListProfilesRequest{} if protoimpl.UnsafeEnabled { mi := &file_mediator_v1_mediator_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -4645,13 +4620,13 @@ func (x *GetProjectByNameRequest) Reset() { } } -func (x *GetProjectByNameRequest) String() string { +func (x *ListProfilesRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetProjectByNameRequest) ProtoMessage() {} +func (*ListProfilesRequest) ProtoMessage() {} -func (x *GetProjectByNameRequest) ProtoReflect() protoreflect.Message { +func (x *ListProfilesRequest) ProtoReflect() protoreflect.Message { mi := &file_mediator_v1_mediator_proto_msgTypes[73] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -4663,29 +4638,28 @@ func (x *GetProjectByNameRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetProjectByNameRequest.ProtoReflect.Descriptor instead. -func (*GetProjectByNameRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use ListProfilesRequest.ProtoReflect.Descriptor instead. +func (*ListProfilesRequest) Descriptor() ([]byte, []int) { return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{73} } -func (x *GetProjectByNameRequest) GetName() string { +func (x *ListProfilesRequest) GetContext() *Context { if x != nil { - return x.Name + return x.Context } - return "" + return nil } -// The GetProjectByIdRequest message represents a request to get a project by ID -type GetProjectByIdRequest struct { +type ListProfilesResponse 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"` + Profiles []*Profile `protobuf:"bytes,1,rep,name=profiles,proto3" json:"profiles,omitempty"` } -func (x *GetProjectByIdRequest) Reset() { - *x = GetProjectByIdRequest{} +func (x *ListProfilesResponse) Reset() { + *x = ListProfilesResponse{} if protoimpl.UnsafeEnabled { mi := &file_mediator_v1_mediator_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -4693,13 +4667,13 @@ func (x *GetProjectByIdRequest) Reset() { } } -func (x *GetProjectByIdRequest) String() string { +func (x *ListProfilesResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetProjectByIdRequest) ProtoMessage() {} +func (*ListProfilesResponse) ProtoMessage() {} -func (x *GetProjectByIdRequest) ProtoReflect() protoreflect.Message { +func (x *ListProfilesResponse) ProtoReflect() protoreflect.Message { mi := &file_mediator_v1_mediator_proto_msgTypes[74] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -4711,31 +4685,32 @@ func (x *GetProjectByIdRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetProjectByIdRequest.ProtoReflect.Descriptor instead. -func (*GetProjectByIdRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use ListProfilesResponse.ProtoReflect.Descriptor instead. +func (*ListProfilesResponse) Descriptor() ([]byte, []int) { return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{74} } -func (x *GetProjectByIdRequest) GetProjectId() string { +func (x *ListProfilesResponse) GetProfiles() []*Profile { if x != nil { - return x.ProjectId + return x.Profiles } - return "" + return nil } -// The GetProjectsRequest message represents a request to get an array of projects -type GetProjectsRequest struct { +// get profile by id +type GetProfileByIdRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - OrganizationId string `protobuf:"bytes,1,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"` - Limit int32 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` - Offset int32 `protobuf:"varint,3,opt,name=offset,proto3" json:"offset,omitempty"` + // context is the context which contains the profiles + Context *Context `protobuf:"bytes,1,opt,name=context,proto3" json:"context,omitempty"` + // id is the id of the profile to get + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` } -func (x *GetProjectsRequest) Reset() { - *x = GetProjectsRequest{} +func (x *GetProfileByIdRequest) Reset() { + *x = GetProfileByIdRequest{} if protoimpl.UnsafeEnabled { mi := &file_mediator_v1_mediator_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -4743,13 +4718,13 @@ func (x *GetProjectsRequest) Reset() { } } -func (x *GetProjectsRequest) String() string { +func (x *GetProfileByIdRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetProjectsRequest) ProtoMessage() {} +func (*GetProfileByIdRequest) ProtoMessage() {} -func (x *GetProjectsRequest) ProtoReflect() protoreflect.Message { +func (x *GetProfileByIdRequest) ProtoReflect() protoreflect.Message { mi := &file_mediator_v1_mediator_proto_msgTypes[75] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -4761,49 +4736,35 @@ func (x *GetProjectsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetProjectsRequest.ProtoReflect.Descriptor instead. -func (*GetProjectsRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use GetProfileByIdRequest.ProtoReflect.Descriptor instead. +func (*GetProfileByIdRequest) Descriptor() ([]byte, []int) { return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{75} } -func (x *GetProjectsRequest) GetOrganizationId() string { - if x != nil { - return x.OrganizationId - } - return "" -} - -func (x *GetProjectsRequest) GetLimit() int32 { +func (x *GetProfileByIdRequest) GetContext() *Context { if x != nil { - return x.Limit + return x.Context } - return 0 + return nil } -func (x *GetProjectsRequest) GetOffset() int32 { +func (x *GetProfileByIdRequest) GetId() string { if x != nil { - return x.Offset + return x.Id } - return 0 + return "" } -// BUF does not allow grouping (which is a shame) -type ProjectRecord struct { +type GetProfileByIdResponse 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"` - OrganizationId string `protobuf:"bytes,2,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"` - Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` - Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"` - IsProtected bool `protobuf:"varint,5,opt,name=is_protected,json=isProtected,proto3" json:"is_protected,omitempty"` - CreatedAt *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` - UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` + Profile *Profile `protobuf:"bytes,1,opt,name=profile,proto3" json:"profile,omitempty"` } -func (x *ProjectRecord) Reset() { - *x = ProjectRecord{} +func (x *GetProfileByIdResponse) Reset() { + *x = GetProfileByIdResponse{} if protoimpl.UnsafeEnabled { mi := &file_mediator_v1_mediator_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -4811,13 +4772,13 @@ func (x *ProjectRecord) Reset() { } } -func (x *ProjectRecord) String() string { +func (x *GetProfileByIdResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ProjectRecord) ProtoMessage() {} +func (*GetProfileByIdResponse) ProtoMessage() {} -func (x *ProjectRecord) ProtoReflect() protoreflect.Message { +func (x *GetProfileByIdResponse) ProtoReflect() protoreflect.Message { mi := &file_mediator_v1_mediator_proto_msgTypes[76] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -4829,76 +4790,36 @@ func (x *ProjectRecord) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ProjectRecord.ProtoReflect.Descriptor instead. -func (*ProjectRecord) Descriptor() ([]byte, []int) { +// Deprecated: Use GetProfileByIdResponse.ProtoReflect.Descriptor instead. +func (*GetProfileByIdResponse) Descriptor() ([]byte, []int) { return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{76} } -func (x *ProjectRecord) GetProjectId() string { - if x != nil { - return x.ProjectId - } - return "" -} - -func (x *ProjectRecord) GetOrganizationId() string { - if x != nil { - return x.OrganizationId - } - return "" -} - -func (x *ProjectRecord) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -func (x *ProjectRecord) GetDescription() string { - if x != nil { - return x.Description - } - return "" -} - -func (x *ProjectRecord) GetIsProtected() bool { - if x != nil { - return x.IsProtected - } - return false -} - -func (x *ProjectRecord) GetCreatedAt() *timestamppb.Timestamp { - if x != nil { - return x.CreatedAt - } - return nil -} - -func (x *ProjectRecord) GetUpdatedAt() *timestamppb.Timestamp { +func (x *GetProfileByIdResponse) GetProfile() *Profile { if x != nil { - return x.UpdatedAt + return x.Profile } return nil } -type CreateProjectResponse struct { +// get the overall profile status +type ProfileStatus 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"` - OrganizationId string `protobuf:"bytes,2,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"` - Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` - Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"` - IsProtected bool `protobuf:"varint,5,opt,name=is_protected,json=isProtected,proto3" json:"is_protected,omitempty"` - CreatedAt *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` - UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` + // profile_id is the id of the profile + ProfileId string `protobuf:"bytes,1,opt,name=profile_id,json=profileId,proto3" json:"profile_id,omitempty"` + // profile_name is the name of the profile + ProfileName string `protobuf:"bytes,2,opt,name=profile_name,json=profileName,proto3" json:"profile_name,omitempty"` + // profile_status is the status of the profile + ProfileStatus string `protobuf:"bytes,3,opt,name=profile_status,json=profileStatus,proto3" json:"profile_status,omitempty"` + // last_updated is the last time the profile was updated + LastUpdated *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=last_updated,json=lastUpdated,proto3" json:"last_updated,omitempty"` } -func (x *CreateProjectResponse) Reset() { - *x = CreateProjectResponse{} +func (x *ProfileStatus) Reset() { + *x = ProfileStatus{} if protoimpl.UnsafeEnabled { mi := &file_mediator_v1_mediator_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -4906,13 +4827,13 @@ func (x *CreateProjectResponse) Reset() { } } -func (x *CreateProjectResponse) String() string { +func (x *ProfileStatus) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CreateProjectResponse) ProtoMessage() {} +func (*ProfileStatus) ProtoMessage() {} -func (x *CreateProjectResponse) ProtoReflect() protoreflect.Message { +func (x *ProfileStatus) ProtoReflect() protoreflect.Message { mi := &file_mediator_v1_mediator_proto_msgTypes[77] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -4924,86 +4845,87 @@ func (x *CreateProjectResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CreateProjectResponse.ProtoReflect.Descriptor instead. -func (*CreateProjectResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use ProfileStatus.ProtoReflect.Descriptor instead. +func (*ProfileStatus) Descriptor() ([]byte, []int) { return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{77} } -func (x *CreateProjectResponse) GetProjectId() string { - if x != nil { - return x.ProjectId - } - return "" -} - -func (x *CreateProjectResponse) GetOrganizationId() string { +func (x *ProfileStatus) GetProfileId() string { if x != nil { - return x.OrganizationId + return x.ProfileId } return "" } -func (x *CreateProjectResponse) GetName() string { +func (x *ProfileStatus) GetProfileName() string { if x != nil { - return x.Name + return x.ProfileName } return "" } -func (x *CreateProjectResponse) GetDescription() string { +func (x *ProfileStatus) GetProfileStatus() string { if x != nil { - return x.Description + return x.ProfileStatus } return "" } -func (x *CreateProjectResponse) GetIsProtected() bool { - if x != nil { - return x.IsProtected - } - return false -} - -func (x *CreateProjectResponse) GetCreatedAt() *timestamppb.Timestamp { - if x != nil { - return x.CreatedAt - } - return nil -} - -func (x *CreateProjectResponse) GetUpdatedAt() *timestamppb.Timestamp { +func (x *ProfileStatus) GetLastUpdated() *timestamppb.Timestamp { if x != nil { - return x.UpdatedAt + return x.LastUpdated } return nil } -type GetProjectByNameResponse struct { +// get the status of the rules for a given profile +type RuleEvaluationStatus struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Project *ProjectRecord `protobuf:"bytes,1,opt,name=project,proto3,oneof" json:"project,omitempty"` - Roles []*RoleRecord `protobuf:"bytes,2,rep,name=roles,proto3" json:"roles,omitempty"` - Users []*UserRecord `protobuf:"bytes,3,rep,name=users,proto3" json:"users,omitempty"` -} - -func (x *GetProjectByNameResponse) Reset() { - *x = GetProjectByNameResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[78] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + // profile_id is the id of the profile + ProfileId string `protobuf:"bytes,1,opt,name=profile_id,json=profileId,proto3" json:"profile_id,omitempty"` + // rule_id is the id of the rule + RuleId string `protobuf:"bytes,2,opt,name=rule_id,json=ruleId,proto3" json:"rule_id,omitempty"` + // rule_name is the name of the rule + RuleName string `protobuf:"bytes,3,opt,name=rule_name,json=ruleName,proto3" json:"rule_name,omitempty"` + // entity is the entity that was evaluated + Entity string `protobuf:"bytes,4,opt,name=entity,proto3" json:"entity,omitempty"` + // status is the status of the evaluation + Status string `protobuf:"bytes,5,opt,name=status,proto3" json:"status,omitempty"` + // last_updated is the last time the profile was updated + LastUpdated *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=last_updated,json=lastUpdated,proto3" json:"last_updated,omitempty"` + // entity_info is the information about the entity + EntityInfo map[string]string `protobuf:"bytes,7,rep,name=entity_info,json=entityInfo,proto3" json:"entity_info,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // details is the description of the evaluation if any + Details string `protobuf:"bytes,8,opt,name=details,proto3" json:"details,omitempty"` + // guidance is the guidance for the evaluation if any + Guidance string `protobuf:"bytes,9,opt,name=guidance,proto3" json:"guidance,omitempty"` + // remediation_status is the status of the remediation + RemediationStatus string `protobuf:"bytes,10,opt,name=remediation_status,json=remediationStatus,proto3" json:"remediation_status,omitempty"` + // remediation_last_updated is the last time the remediation was performed or attempted + RemediationLastUpdated *timestamppb.Timestamp `protobuf:"bytes,11,opt,name=remediation_last_updated,json=remediationLastUpdated,proto3,oneof" json:"remediation_last_updated,omitempty"` + // remediation_details is the description of the remediation attempt if any + RemediationDetails string `protobuf:"bytes,12,opt,name=remediation_details,json=remediationDetails,proto3" json:"remediation_details,omitempty"` +} + +func (x *RuleEvaluationStatus) Reset() { + *x = RuleEvaluationStatus{} + if protoimpl.UnsafeEnabled { + mi := &file_mediator_v1_mediator_proto_msgTypes[78] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } } -func (x *GetProjectByNameResponse) String() string { +func (x *RuleEvaluationStatus) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetProjectByNameResponse) ProtoMessage() {} +func (*RuleEvaluationStatus) ProtoMessage() {} -func (x *GetProjectByNameResponse) ProtoReflect() protoreflect.Message { +func (x *RuleEvaluationStatus) ProtoReflect() protoreflect.Message { mi := &file_mediator_v1_mediator_proto_msgTypes[78] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -5015,44 +4937,111 @@ func (x *GetProjectByNameResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetProjectByNameResponse.ProtoReflect.Descriptor instead. -func (*GetProjectByNameResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use RuleEvaluationStatus.ProtoReflect.Descriptor instead. +func (*RuleEvaluationStatus) Descriptor() ([]byte, []int) { return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{78} } -func (x *GetProjectByNameResponse) GetProject() *ProjectRecord { +func (x *RuleEvaluationStatus) GetProfileId() string { if x != nil { - return x.Project + return x.ProfileId + } + return "" +} + +func (x *RuleEvaluationStatus) GetRuleId() string { + if x != nil { + return x.RuleId + } + return "" +} + +func (x *RuleEvaluationStatus) GetRuleName() string { + if x != nil { + return x.RuleName + } + return "" +} + +func (x *RuleEvaluationStatus) GetEntity() string { + if x != nil { + return x.Entity + } + return "" +} + +func (x *RuleEvaluationStatus) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *RuleEvaluationStatus) GetLastUpdated() *timestamppb.Timestamp { + if x != nil { + return x.LastUpdated } return nil } -func (x *GetProjectByNameResponse) GetRoles() []*RoleRecord { +func (x *RuleEvaluationStatus) GetEntityInfo() map[string]string { if x != nil { - return x.Roles + return x.EntityInfo } return nil } -func (x *GetProjectByNameResponse) GetUsers() []*UserRecord { +func (x *RuleEvaluationStatus) GetDetails() string { + if x != nil { + return x.Details + } + return "" +} + +func (x *RuleEvaluationStatus) GetGuidance() string { + if x != nil { + return x.Guidance + } + return "" +} + +func (x *RuleEvaluationStatus) GetRemediationStatus() string { + if x != nil { + return x.RemediationStatus + } + return "" +} + +func (x *RuleEvaluationStatus) GetRemediationLastUpdated() *timestamppb.Timestamp { if x != nil { - return x.Users + return x.RemediationLastUpdated } return nil } -type GetProjectByIdResponse struct { +func (x *RuleEvaluationStatus) GetRemediationDetails() string { + if x != nil { + return x.RemediationDetails + } + return "" +} + +type GetProfileStatusByNameRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Project *ProjectRecord `protobuf:"bytes,1,opt,name=project,proto3,oneof" json:"project,omitempty"` - Roles []*RoleRecord `protobuf:"bytes,2,rep,name=roles,proto3" json:"roles,omitempty"` - Users []*UserRecord `protobuf:"bytes,3,rep,name=users,proto3" json:"users,omitempty"` + // context is the context in which the rule type is evaluated. + Context *Context `protobuf:"bytes,1,opt,name=context,proto3" json:"context,omitempty"` + // name is the name of the profile to get + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Entity *GetProfileStatusByNameRequest_EntityTypedId `protobuf:"bytes,3,opt,name=entity,proto3" json:"entity,omitempty"` + All bool `protobuf:"varint,4,opt,name=all,proto3" json:"all,omitempty"` + Rule string `protobuf:"bytes,5,opt,name=rule,proto3" json:"rule,omitempty"` } -func (x *GetProjectByIdResponse) Reset() { - *x = GetProjectByIdResponse{} +func (x *GetProfileStatusByNameRequest) Reset() { + *x = GetProfileStatusByNameRequest{} if protoimpl.UnsafeEnabled { mi := &file_mediator_v1_mediator_proto_msgTypes[79] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -5060,13 +5049,13 @@ func (x *GetProjectByIdResponse) Reset() { } } -func (x *GetProjectByIdResponse) String() string { +func (x *GetProfileStatusByNameRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetProjectByIdResponse) ProtoMessage() {} +func (*GetProfileStatusByNameRequest) ProtoMessage() {} -func (x *GetProjectByIdResponse) ProtoReflect() protoreflect.Message { +func (x *GetProfileStatusByNameRequest) ProtoReflect() protoreflect.Message { mi := &file_mediator_v1_mediator_proto_msgTypes[79] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -5078,43 +5067,59 @@ func (x *GetProjectByIdResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetProjectByIdResponse.ProtoReflect.Descriptor instead. -func (*GetProjectByIdResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use GetProfileStatusByNameRequest.ProtoReflect.Descriptor instead. +func (*GetProfileStatusByNameRequest) Descriptor() ([]byte, []int) { return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{79} } -func (x *GetProjectByIdResponse) GetProject() *ProjectRecord { +func (x *GetProfileStatusByNameRequest) GetContext() *Context { if x != nil { - return x.Project + return x.Context } return nil } -func (x *GetProjectByIdResponse) GetRoles() []*RoleRecord { +func (x *GetProfileStatusByNameRequest) GetName() string { if x != nil { - return x.Roles + return x.Name } - return nil + return "" } -func (x *GetProjectByIdResponse) GetUsers() []*UserRecord { +func (x *GetProfileStatusByNameRequest) GetEntity() *GetProfileStatusByNameRequest_EntityTypedId { if x != nil { - return x.Users + return x.Entity } return nil } -// The GetProjectsResponse message represents a response with an array of projects -type GetProjectsResponse struct { +func (x *GetProfileStatusByNameRequest) GetAll() bool { + if x != nil { + return x.All + } + return false +} + +func (x *GetProfileStatusByNameRequest) GetRule() string { + if x != nil { + return x.Rule + } + return "" +} + +type GetProfileStatusByNameResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Projects []*ProjectRecord `protobuf:"bytes,1,rep,name=projects,proto3" json:"projects,omitempty"` + // profile_status is the status of the profile + ProfileStatus *ProfileStatus `protobuf:"bytes,1,opt,name=profile_status,json=profileStatus,proto3" json:"profile_status,omitempty"` + // rule_evaluation_status is the status of the rules + RuleEvaluationStatus []*RuleEvaluationStatus `protobuf:"bytes,2,rep,name=rule_evaluation_status,json=ruleEvaluationStatus,proto3" json:"rule_evaluation_status,omitempty"` } -func (x *GetProjectsResponse) Reset() { - *x = GetProjectsResponse{} +func (x *GetProfileStatusByNameResponse) Reset() { + *x = GetProfileStatusByNameResponse{} if protoimpl.UnsafeEnabled { mi := &file_mediator_v1_mediator_proto_msgTypes[80] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -5122,13 +5127,13 @@ func (x *GetProjectsResponse) Reset() { } } -func (x *GetProjectsResponse) String() string { +func (x *GetProfileStatusByNameResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetProjectsResponse) ProtoMessage() {} +func (*GetProfileStatusByNameResponse) ProtoMessage() {} -func (x *GetProjectsResponse) ProtoReflect() protoreflect.Message { +func (x *GetProfileStatusByNameResponse) ProtoReflect() protoreflect.Message { mi := &file_mediator_v1_mediator_proto_msgTypes[80] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -5140,30 +5145,36 @@ func (x *GetProjectsResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetProjectsResponse.ProtoReflect.Descriptor instead. -func (*GetProjectsResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use GetProfileStatusByNameResponse.ProtoReflect.Descriptor instead. +func (*GetProfileStatusByNameResponse) Descriptor() ([]byte, []int) { return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{80} } -func (x *GetProjectsResponse) GetProjects() []*ProjectRecord { +func (x *GetProfileStatusByNameResponse) GetProfileStatus() *ProfileStatus { if x != nil { - return x.Projects + return x.ProfileStatus } return nil } -// DeleteProjectRequest represents a request to delete a project -type DeleteProjectRequest struct { +func (x *GetProfileStatusByNameResponse) GetRuleEvaluationStatus() []*RuleEvaluationStatus { + if x != nil { + return x.RuleEvaluationStatus + } + return nil +} + +type GetProfileStatusByProjectRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Force *bool `protobuf:"varint,2,opt,name=force,proto3,oneof" json:"force,omitempty"` + // context is the context in which the rule type is evaluated. + Context *Context `protobuf:"bytes,1,opt,name=context,proto3" json:"context,omitempty"` } -func (x *DeleteProjectRequest) Reset() { - *x = DeleteProjectRequest{} +func (x *GetProfileStatusByProjectRequest) Reset() { + *x = GetProfileStatusByProjectRequest{} if protoimpl.UnsafeEnabled { mi := &file_mediator_v1_mediator_proto_msgTypes[81] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -5171,13 +5182,13 @@ func (x *DeleteProjectRequest) Reset() { } } -func (x *DeleteProjectRequest) String() string { +func (x *GetProfileStatusByProjectRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DeleteProjectRequest) ProtoMessage() {} +func (*GetProfileStatusByProjectRequest) ProtoMessage() {} -func (x *DeleteProjectRequest) ProtoReflect() protoreflect.Message { +func (x *GetProfileStatusByProjectRequest) ProtoReflect() protoreflect.Message { mi := &file_mediator_v1_mediator_proto_msgTypes[81] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -5189,34 +5200,29 @@ func (x *DeleteProjectRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DeleteProjectRequest.ProtoReflect.Descriptor instead. -func (*DeleteProjectRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use GetProfileStatusByProjectRequest.ProtoReflect.Descriptor instead. +func (*GetProfileStatusByProjectRequest) Descriptor() ([]byte, []int) { return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{81} } -func (x *DeleteProjectRequest) GetId() string { +func (x *GetProfileStatusByProjectRequest) GetContext() *Context { if x != nil { - return x.Id - } - return "" -} - -func (x *DeleteProjectRequest) GetForce() bool { - if x != nil && x.Force != nil { - return *x.Force + return x.Context } - return false + return nil } -// DeleteProjectResponse represents a response to a delete project request -type DeleteProjectResponse struct { +type GetProfileStatusByProjectResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // profile_status is the status of the profile + ProfileStatus []*ProfileStatus `protobuf:"bytes,1,rep,name=profile_status,json=profileStatus,proto3" json:"profile_status,omitempty"` } -func (x *DeleteProjectResponse) Reset() { - *x = DeleteProjectResponse{} +func (x *GetProfileStatusByProjectResponse) Reset() { + *x = GetProfileStatusByProjectResponse{} if protoimpl.UnsafeEnabled { mi := &file_mediator_v1_mediator_proto_msgTypes[82] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -5224,13 +5230,13 @@ func (x *DeleteProjectResponse) Reset() { } } -func (x *DeleteProjectResponse) String() string { +func (x *GetProfileStatusByProjectResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DeleteProjectResponse) ProtoMessage() {} +func (*GetProfileStatusByProjectResponse) ProtoMessage() {} -func (x *DeleteProjectResponse) ProtoReflect() protoreflect.Message { +func (x *GetProfileStatusByProjectResponse) ProtoReflect() protoreflect.Message { mi := &file_mediator_v1_mediator_proto_msgTypes[82] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -5242,25 +5248,28 @@ func (x *DeleteProjectResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DeleteProjectResponse.ProtoReflect.Descriptor instead. -func (*DeleteProjectResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use GetProfileStatusByProjectResponse.ProtoReflect.Descriptor instead. +func (*GetProfileStatusByProjectResponse) Descriptor() ([]byte, []int) { return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{82} } -// Role service -type CreateRoleByOrganizationRequest struct { +func (x *GetProfileStatusByProjectResponse) GetProfileStatus() []*ProfileStatus { + if x != nil { + return x.ProfileStatus + } + return nil +} + +type GetPublicKeyRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - OrganizationId string `protobuf:"bytes,1,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"` - Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` - IsAdmin *bool `protobuf:"varint,4,opt,name=is_admin,json=isAdmin,proto3,oneof" json:"is_admin,omitempty"` - IsProtected *bool `protobuf:"varint,5,opt,name=is_protected,json=isProtected,proto3,oneof" json:"is_protected,omitempty"` + KeyIdentifier string `protobuf:"bytes,1,opt,name=key_identifier,json=keyIdentifier,proto3" json:"key_identifier,omitempty"` } -func (x *CreateRoleByOrganizationRequest) Reset() { - *x = CreateRoleByOrganizationRequest{} +func (x *GetPublicKeyRequest) Reset() { + *x = GetPublicKeyRequest{} if protoimpl.UnsafeEnabled { mi := &file_mediator_v1_mediator_proto_msgTypes[83] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -5268,13 +5277,13 @@ func (x *CreateRoleByOrganizationRequest) Reset() { } } -func (x *CreateRoleByOrganizationRequest) String() string { +func (x *GetPublicKeyRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CreateRoleByOrganizationRequest) ProtoMessage() {} +func (*GetPublicKeyRequest) ProtoMessage() {} -func (x *CreateRoleByOrganizationRequest) ProtoReflect() protoreflect.Message { +func (x *GetPublicKeyRequest) ProtoReflect() protoreflect.Message { mi := &file_mediator_v1_mediator_proto_msgTypes[83] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -5286,55 +5295,28 @@ func (x *CreateRoleByOrganizationRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CreateRoleByOrganizationRequest.ProtoReflect.Descriptor instead. -func (*CreateRoleByOrganizationRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use GetPublicKeyRequest.ProtoReflect.Descriptor instead. +func (*GetPublicKeyRequest) Descriptor() ([]byte, []int) { return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{83} } -func (x *CreateRoleByOrganizationRequest) GetOrganizationId() string { - if x != nil { - return x.OrganizationId - } - return "" -} - -func (x *CreateRoleByOrganizationRequest) GetName() string { +func (x *GetPublicKeyRequest) GetKeyIdentifier() string { if x != nil { - return x.Name + return x.KeyIdentifier } return "" } -func (x *CreateRoleByOrganizationRequest) GetIsAdmin() bool { - if x != nil && x.IsAdmin != nil { - return *x.IsAdmin - } - return false -} - -func (x *CreateRoleByOrganizationRequest) GetIsProtected() bool { - if x != nil && x.IsProtected != nil { - return *x.IsProtected - } - return false -} - -type CreateRoleByOrganizationResponse struct { +type GetPublicKeyResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` - OrganizationId string `protobuf:"bytes,2,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"` - Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` - IsAdmin bool `protobuf:"varint,5,opt,name=is_admin,json=isAdmin,proto3" json:"is_admin,omitempty"` - IsProtected bool `protobuf:"varint,6,opt,name=is_protected,json=isProtected,proto3" json:"is_protected,omitempty"` - CreatedAt *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` - UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` + PublicKey string `protobuf:"bytes,1,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"` } -func (x *CreateRoleByOrganizationResponse) Reset() { - *x = CreateRoleByOrganizationResponse{} +func (x *GetPublicKeyResponse) Reset() { + *x = GetPublicKeyResponse{} if protoimpl.UnsafeEnabled { mi := &file_mediator_v1_mediator_proto_msgTypes[84] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -5342,13 +5324,13 @@ func (x *CreateRoleByOrganizationResponse) Reset() { } } -func (x *CreateRoleByOrganizationResponse) String() string { +func (x *GetPublicKeyResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CreateRoleByOrganizationResponse) ProtoMessage() {} +func (*GetPublicKeyResponse) ProtoMessage() {} -func (x *CreateRoleByOrganizationResponse) ProtoReflect() protoreflect.Message { +func (x *GetPublicKeyResponse) ProtoReflect() protoreflect.Message { mi := &file_mediator_v1_mediator_proto_msgTypes[84] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -5360,74 +5342,29 @@ func (x *CreateRoleByOrganizationResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CreateRoleByOrganizationResponse.ProtoReflect.Descriptor instead. -func (*CreateRoleByOrganizationResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use GetPublicKeyResponse.ProtoReflect.Descriptor instead. +func (*GetPublicKeyResponse) Descriptor() ([]byte, []int) { return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{84} } -func (x *CreateRoleByOrganizationResponse) GetId() int32 { - if x != nil { - return x.Id - } - return 0 -} - -func (x *CreateRoleByOrganizationResponse) GetOrganizationId() string { - if x != nil { - return x.OrganizationId - } - return "" -} - -func (x *CreateRoleByOrganizationResponse) GetName() string { +func (x *GetPublicKeyResponse) GetPublicKey() string { if x != nil { - return x.Name + return x.PublicKey } return "" } -func (x *CreateRoleByOrganizationResponse) GetIsAdmin() bool { - if x != nil { - return x.IsAdmin - } - return false -} - -func (x *CreateRoleByOrganizationResponse) GetIsProtected() bool { - if x != nil { - return x.IsProtected - } - return false -} - -func (x *CreateRoleByOrganizationResponse) GetCreatedAt() *timestamppb.Timestamp { - if x != nil { - return x.CreatedAt - } - return nil -} - -func (x *CreateRoleByOrganizationResponse) GetUpdatedAt() *timestamppb.Timestamp { - if x != nil { - return x.UpdatedAt - } - return nil -} - -type CreateRoleByProjectRequest struct { +type CreateKeyPairRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - OrganizationId string `protobuf:"bytes,1,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"` - ProjectId string `protobuf:"bytes,2,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` - IsAdmin *bool `protobuf:"varint,4,opt,name=is_admin,json=isAdmin,proto3,oneof" json:"is_admin,omitempty"` - IsProtected *bool `protobuf:"varint,5,opt,name=is_protected,json=isProtected,proto3,oneof" json:"is_protected,omitempty"` + Passphrase string `protobuf:"bytes,1,opt,name=passphrase,proto3" json:"passphrase,omitempty"` + ProjectId string `protobuf:"bytes,2,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` } -func (x *CreateRoleByProjectRequest) Reset() { - *x = CreateRoleByProjectRequest{} +func (x *CreateKeyPairRequest) Reset() { + *x = CreateKeyPairRequest{} if protoimpl.UnsafeEnabled { mi := &file_mediator_v1_mediator_proto_msgTypes[85] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -5435,13 +5372,13 @@ func (x *CreateRoleByProjectRequest) Reset() { } } -func (x *CreateRoleByProjectRequest) String() string { +func (x *CreateKeyPairRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CreateRoleByProjectRequest) ProtoMessage() {} +func (*CreateKeyPairRequest) ProtoMessage() {} -func (x *CreateRoleByProjectRequest) ProtoReflect() protoreflect.Message { +func (x *CreateKeyPairRequest) ProtoReflect() protoreflect.Message { mi := &file_mediator_v1_mediator_proto_msgTypes[85] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -5453,63 +5390,36 @@ func (x *CreateRoleByProjectRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CreateRoleByProjectRequest.ProtoReflect.Descriptor instead. -func (*CreateRoleByProjectRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use CreateKeyPairRequest.ProtoReflect.Descriptor instead. +func (*CreateKeyPairRequest) Descriptor() ([]byte, []int) { return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{85} } -func (x *CreateRoleByProjectRequest) GetOrganizationId() string { +func (x *CreateKeyPairRequest) GetPassphrase() string { if x != nil { - return x.OrganizationId + return x.Passphrase } return "" } -func (x *CreateRoleByProjectRequest) GetProjectId() string { +func (x *CreateKeyPairRequest) GetProjectId() string { if x != nil { return x.ProjectId } return "" } -func (x *CreateRoleByProjectRequest) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -func (x *CreateRoleByProjectRequest) GetIsAdmin() bool { - if x != nil && x.IsAdmin != nil { - return *x.IsAdmin - } - return false -} - -func (x *CreateRoleByProjectRequest) GetIsProtected() bool { - if x != nil && x.IsProtected != nil { - return *x.IsProtected - } - return false -} - -type CreateRoleByProjectResponse struct { +type CreateKeyPairResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` - OrganizationId string `protobuf:"bytes,2,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"` - ProjectId string `protobuf:"bytes,3,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` - IsAdmin bool `protobuf:"varint,5,opt,name=is_admin,json=isAdmin,proto3" json:"is_admin,omitempty"` - IsProtected bool `protobuf:"varint,6,opt,name=is_protected,json=isProtected,proto3" json:"is_protected,omitempty"` - CreatedAt *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` - UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` + KeyIdentifier string `protobuf:"bytes,1,opt,name=key_identifier,json=keyIdentifier,proto3" json:"key_identifier,omitempty"` + PublicKey string `protobuf:"bytes,2,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"` } -func (x *CreateRoleByProjectResponse) Reset() { - *x = CreateRoleByProjectResponse{} +func (x *CreateKeyPairResponse) Reset() { + *x = CreateKeyPairResponse{} if protoimpl.UnsafeEnabled { mi := &file_mediator_v1_mediator_proto_msgTypes[86] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -5517,13 +5427,13 @@ func (x *CreateRoleByProjectResponse) Reset() { } } -func (x *CreateRoleByProjectResponse) String() string { +func (x *CreateKeyPairResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CreateRoleByProjectResponse) ProtoMessage() {} +func (*CreateKeyPairResponse) ProtoMessage() {} -func (x *CreateRoleByProjectResponse) ProtoReflect() protoreflect.Message { +func (x *CreateKeyPairResponse) ProtoReflect() protoreflect.Message { mi := &file_mediator_v1_mediator_proto_msgTypes[86] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -5535,79 +5445,37 @@ func (x *CreateRoleByProjectResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CreateRoleByProjectResponse.ProtoReflect.Descriptor instead. -func (*CreateRoleByProjectResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use CreateKeyPairResponse.ProtoReflect.Descriptor instead. +func (*CreateKeyPairResponse) Descriptor() ([]byte, []int) { return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{86} } -func (x *CreateRoleByProjectResponse) GetId() int32 { - if x != nil { - return x.Id - } - return 0 -} - -func (x *CreateRoleByProjectResponse) GetOrganizationId() string { - if x != nil { - return x.OrganizationId - } - return "" -} - -func (x *CreateRoleByProjectResponse) GetProjectId() string { +func (x *CreateKeyPairResponse) GetKeyIdentifier() string { if x != nil { - return x.ProjectId + return x.KeyIdentifier } return "" } -func (x *CreateRoleByProjectResponse) GetName() string { +func (x *CreateKeyPairResponse) GetPublicKey() string { if x != nil { - return x.Name + return x.PublicKey } return "" } -func (x *CreateRoleByProjectResponse) GetIsAdmin() bool { - if x != nil { - return x.IsAdmin - } - return false -} - -func (x *CreateRoleByProjectResponse) GetIsProtected() bool { - if x != nil { - return x.IsProtected - } - return false -} - -func (x *CreateRoleByProjectResponse) GetCreatedAt() *timestamppb.Timestamp { - if x != nil { - return x.CreatedAt - } - return nil -} - -func (x *CreateRoleByProjectResponse) GetUpdatedAt() *timestamppb.Timestamp { - if x != nil { - return x.UpdatedAt - } - return nil -} - -// delete role -type DeleteRoleRequest struct { +// RESTProviderConfig contains the configuration for the REST provider. +type RESTProviderConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` - Force *bool `protobuf:"varint,2,opt,name=force,proto3,oneof" json:"force,omitempty"` + // base_url is the base URL for the REST provider. + BaseUrl string `protobuf:"bytes,1,opt,name=base_url,json=baseUrl,proto3" json:"base_url,omitempty"` } -func (x *DeleteRoleRequest) Reset() { - *x = DeleteRoleRequest{} +func (x *RESTProviderConfig) Reset() { + *x = RESTProviderConfig{} if protoimpl.UnsafeEnabled { mi := &file_mediator_v1_mediator_proto_msgTypes[87] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -5615,13 +5483,13 @@ func (x *DeleteRoleRequest) Reset() { } } -func (x *DeleteRoleRequest) String() string { +func (x *RESTProviderConfig) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DeleteRoleRequest) ProtoMessage() {} +func (*RESTProviderConfig) ProtoMessage() {} -func (x *DeleteRoleRequest) ProtoReflect() protoreflect.Message { +func (x *RESTProviderConfig) ProtoReflect() protoreflect.Message { mi := &file_mediator_v1_mediator_proto_msgTypes[87] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -5633,33 +5501,36 @@ func (x *DeleteRoleRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DeleteRoleRequest.ProtoReflect.Descriptor instead. -func (*DeleteRoleRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use RESTProviderConfig.ProtoReflect.Descriptor instead. +func (*RESTProviderConfig) Descriptor() ([]byte, []int) { return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{87} } -func (x *DeleteRoleRequest) GetId() int32 { +func (x *RESTProviderConfig) GetBaseUrl() string { if x != nil { - return x.Id - } - return 0 -} - -func (x *DeleteRoleRequest) GetForce() bool { - if x != nil && x.Force != nil { - return *x.Force + return x.BaseUrl } - return false + return "" } -type DeleteRoleResponse struct { +// GitHubProviderConfig contains the configuration for the GitHub client +// +// Endpoint: is the GitHub API endpoint +// +// If using the public GitHub API, Endpoint can be left blank +// disable revive linting for this struct as there is nothing wrong with the +// naming convention +type GitHubProviderConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Endpoint is the GitHub API endpoint. If using the public GitHub API, Endpoint can be left blank. + Endpoint string `protobuf:"bytes,1,opt,name=endpoint,proto3" json:"endpoint,omitempty"` } -func (x *DeleteRoleResponse) Reset() { - *x = DeleteRoleResponse{} +func (x *GitHubProviderConfig) Reset() { + *x = GitHubProviderConfig{} if protoimpl.UnsafeEnabled { mi := &file_mediator_v1_mediator_proto_msgTypes[88] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -5667,13 +5538,13 @@ func (x *DeleteRoleResponse) Reset() { } } -func (x *DeleteRoleResponse) String() string { +func (x *GitHubProviderConfig) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DeleteRoleResponse) ProtoMessage() {} +func (*GitHubProviderConfig) ProtoMessage() {} -func (x *DeleteRoleResponse) ProtoReflect() protoreflect.Message { +func (x *GitHubProviderConfig) ProtoReflect() protoreflect.Message { mi := &file_mediator_v1_mediator_proto_msgTypes[88] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -5685,28 +5556,44 @@ func (x *DeleteRoleResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DeleteRoleResponse.ProtoReflect.Descriptor instead. -func (*DeleteRoleResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use GitHubProviderConfig.ProtoReflect.Descriptor instead. +func (*GitHubProviderConfig) Descriptor() ([]byte, []int) { return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{88} } -type RoleRecord struct { +func (x *GitHubProviderConfig) GetEndpoint() string { + if x != nil { + return x.Endpoint + } + return "" +} + +// Provider defines a provider that is used to connect to a certain service. +// This is used to define the context in which a rule is evaluated and serves +// as a data ingestion point. They are top level entities and are scoped to +// an organization. +type Provider struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` - OrganizationId string `protobuf:"bytes,2,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"` - ProjectId *string `protobuf:"bytes,3,opt,name=project_id,json=projectId,proto3,oneof" json:"project_id,omitempty"` - Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` - IsAdmin bool `protobuf:"varint,5,opt,name=is_admin,json=isAdmin,proto3" json:"is_admin,omitempty"` - IsProtected bool `protobuf:"varint,6,opt,name=is_protected,json=isProtected,proto3" json:"is_protected,omitempty"` - CreatedAt *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` - UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Context *Provider_Context `protobuf:"bytes,2,opt,name=context,proto3" json:"context,omitempty"` + // Version defines the version of the provider. Currently only v1 is supported. + Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"` + // Implements defines the provider types that this provider implements. + // This is used to determine the interface to use to interact with the provider. + // This is a required field and must be set. + // currently, the following interfaces are supported: + // - rest + // - github + // - git + Implements []string `protobuf:"bytes,4,rep,name=implements,proto3" json:"implements,omitempty"` + Def *Provider_Definition `protobuf:"bytes,5,opt,name=def,proto3" json:"def,omitempty"` } -func (x *RoleRecord) Reset() { - *x = RoleRecord{} +func (x *Provider) Reset() { + *x = Provider{} if protoimpl.UnsafeEnabled { mi := &file_mediator_v1_mediator_proto_msgTypes[89] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -5714,13 +5601,13 @@ func (x *RoleRecord) Reset() { } } -func (x *RoleRecord) String() string { +func (x *Provider) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RoleRecord) ProtoMessage() {} +func (*Provider) ProtoMessage() {} -func (x *RoleRecord) ProtoReflect() protoreflect.Message { +func (x *Provider) ProtoReflect() protoreflect.Message { mi := &file_mediator_v1_mediator_proto_msgTypes[89] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -5732,80 +5619,60 @@ func (x *RoleRecord) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RoleRecord.ProtoReflect.Descriptor instead. -func (*RoleRecord) Descriptor() ([]byte, []int) { +// Deprecated: Use Provider.ProtoReflect.Descriptor instead. +func (*Provider) Descriptor() ([]byte, []int) { return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{89} } -func (x *RoleRecord) GetId() int32 { - if x != nil { - return x.Id - } - return 0 -} - -func (x *RoleRecord) GetOrganizationId() string { - if x != nil { - return x.OrganizationId - } - return "" -} - -func (x *RoleRecord) GetProjectId() string { - if x != nil && x.ProjectId != nil { - return *x.ProjectId - } - return "" -} - -func (x *RoleRecord) GetName() string { +func (x *Provider) GetName() string { if x != nil { return x.Name } return "" } -func (x *RoleRecord) GetIsAdmin() bool { +func (x *Provider) GetContext() *Provider_Context { if x != nil { - return x.IsAdmin + return x.Context } - return false + return nil } -func (x *RoleRecord) GetIsProtected() bool { +func (x *Provider) GetVersion() string { if x != nil { - return x.IsProtected + return x.Version } - return false + return "" } -func (x *RoleRecord) GetCreatedAt() *timestamppb.Timestamp { +func (x *Provider) GetImplements() []string { if x != nil { - return x.CreatedAt + return x.Implements } return nil } -func (x *RoleRecord) GetUpdatedAt() *timestamppb.Timestamp { +func (x *Provider) GetDef() *Provider_Definition { if x != nil { - return x.UpdatedAt + return x.Def } return nil } -// list roles -type GetRolesRequest struct { +// Context defines the context in which a rule is evaluated. +// this normally refers to a combination of the provider, organization and project. +type Context struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - OrganizationId string `protobuf:"bytes,1,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"` - Limit *int32 `protobuf:"varint,2,opt,name=limit,proto3,oneof" json:"limit,omitempty"` - Offset *int32 `protobuf:"varint,3,opt,name=offset,proto3,oneof" json:"offset,omitempty"` + Provider string `protobuf:"bytes,1,opt,name=provider,proto3" json:"provider,omitempty"` + Organization *string `protobuf:"bytes,2,opt,name=organization,proto3,oneof" json:"organization,omitempty"` + Project *string `protobuf:"bytes,3,opt,name=project,proto3,oneof" json:"project,omitempty"` } -func (x *GetRolesRequest) Reset() { - *x = GetRolesRequest{} +func (x *Context) Reset() { + *x = Context{} if protoimpl.UnsafeEnabled { mi := &file_mediator_v1_mediator_proto_msgTypes[90] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -5813,13 +5680,13 @@ func (x *GetRolesRequest) Reset() { } } -func (x *GetRolesRequest) String() string { +func (x *Context) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetRolesRequest) ProtoMessage() {} +func (*Context) ProtoMessage() {} -func (x *GetRolesRequest) ProtoReflect() protoreflect.Message { +func (x *Context) ProtoReflect() protoreflect.Message { mi := &file_mediator_v1_mediator_proto_msgTypes[90] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -5831,42 +5698,44 @@ func (x *GetRolesRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetRolesRequest.ProtoReflect.Descriptor instead. -func (*GetRolesRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use Context.ProtoReflect.Descriptor instead. +func (*Context) Descriptor() ([]byte, []int) { return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{90} } -func (x *GetRolesRequest) GetOrganizationId() string { +func (x *Context) GetProvider() string { if x != nil { - return x.OrganizationId + return x.Provider } return "" } -func (x *GetRolesRequest) GetLimit() int32 { - if x != nil && x.Limit != nil { - return *x.Limit +func (x *Context) GetOrganization() string { + if x != nil && x.Organization != nil { + return *x.Organization } - return 0 + return "" } -func (x *GetRolesRequest) GetOffset() int32 { - if x != nil && x.Offset != nil { - return *x.Offset +func (x *Context) GetProject() string { + if x != nil && x.Project != nil { + return *x.Project } - return 0 + return "" } -type GetRolesResponse struct { +// ListRuleTypesRequest is the request to list rule types. +type ListRuleTypesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Roles []*RoleRecord `protobuf:"bytes,1,rep,name=roles,proto3" json:"roles,omitempty"` + // context is the context in which the rule types are evaluated. + Context *Context `protobuf:"bytes,1,opt,name=context,proto3" json:"context,omitempty"` } -func (x *GetRolesResponse) Reset() { - *x = GetRolesResponse{} +func (x *ListRuleTypesRequest) Reset() { + *x = ListRuleTypesRequest{} if protoimpl.UnsafeEnabled { mi := &file_mediator_v1_mediator_proto_msgTypes[91] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -5874,13 +5743,13 @@ func (x *GetRolesResponse) Reset() { } } -func (x *GetRolesResponse) String() string { +func (x *ListRuleTypesRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetRolesResponse) ProtoMessage() {} +func (*ListRuleTypesRequest) ProtoMessage() {} -func (x *GetRolesResponse) ProtoReflect() protoreflect.Message { +func (x *ListRuleTypesRequest) ProtoReflect() protoreflect.Message { mi := &file_mediator_v1_mediator_proto_msgTypes[91] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -5892,30 +5761,30 @@ func (x *GetRolesResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetRolesResponse.ProtoReflect.Descriptor instead. -func (*GetRolesResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use ListRuleTypesRequest.ProtoReflect.Descriptor instead. +func (*ListRuleTypesRequest) Descriptor() ([]byte, []int) { return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{91} } -func (x *GetRolesResponse) GetRoles() []*RoleRecord { +func (x *ListRuleTypesRequest) GetContext() *Context { if x != nil { - return x.Roles + return x.Context } return nil } -type GetRolesByProjectRequest struct { +// ListRuleTypesResponse is the response to list rule types. +type ListRuleTypesResponse 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"` - Limit *int32 `protobuf:"varint,2,opt,name=limit,proto3,oneof" json:"limit,omitempty"` - Offset *int32 `protobuf:"varint,3,opt,name=offset,proto3,oneof" json:"offset,omitempty"` + // rule_types is the list of rule types. + RuleTypes []*RuleType `protobuf:"bytes,1,rep,name=rule_types,json=ruleTypes,proto3" json:"rule_types,omitempty"` } -func (x *GetRolesByProjectRequest) Reset() { - *x = GetRolesByProjectRequest{} +func (x *ListRuleTypesResponse) Reset() { + *x = ListRuleTypesResponse{} if protoimpl.UnsafeEnabled { mi := &file_mediator_v1_mediator_proto_msgTypes[92] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -5923,13 +5792,13 @@ func (x *GetRolesByProjectRequest) Reset() { } } -func (x *GetRolesByProjectRequest) String() string { +func (x *ListRuleTypesResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetRolesByProjectRequest) ProtoMessage() {} +func (*ListRuleTypesResponse) ProtoMessage() {} -func (x *GetRolesByProjectRequest) ProtoReflect() protoreflect.Message { +func (x *ListRuleTypesResponse) ProtoReflect() protoreflect.Message { mi := &file_mediator_v1_mediator_proto_msgTypes[92] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -5941,42 +5810,32 @@ func (x *GetRolesByProjectRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetRolesByProjectRequest.ProtoReflect.Descriptor instead. -func (*GetRolesByProjectRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use ListRuleTypesResponse.ProtoReflect.Descriptor instead. +func (*ListRuleTypesResponse) Descriptor() ([]byte, []int) { return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{92} } -func (x *GetRolesByProjectRequest) GetProjectId() string { +func (x *ListRuleTypesResponse) GetRuleTypes() []*RuleType { if x != nil { - return x.ProjectId - } - return "" -} - -func (x *GetRolesByProjectRequest) GetLimit() int32 { - if x != nil && x.Limit != nil { - return *x.Limit - } - return 0 -} - -func (x *GetRolesByProjectRequest) GetOffset() int32 { - if x != nil && x.Offset != nil { - return *x.Offset + return x.RuleTypes } - return 0 + return nil } -type GetRolesByProjectResponse struct { +// GetRuleTypeByNameRequest is the request to get a rule type by name. +type GetRuleTypeByNameRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Roles []*RoleRecord `protobuf:"bytes,1,rep,name=roles,proto3" json:"roles,omitempty"` + // context is the context in which the rule type is evaluated. + Context *Context `protobuf:"bytes,1,opt,name=context,proto3" json:"context,omitempty"` + // name is the name of the rule type. + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` } -func (x *GetRolesByProjectResponse) Reset() { - *x = GetRolesByProjectResponse{} +func (x *GetRuleTypeByNameRequest) Reset() { + *x = GetRuleTypeByNameRequest{} if protoimpl.UnsafeEnabled { mi := &file_mediator_v1_mediator_proto_msgTypes[93] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -5984,13 +5843,13 @@ func (x *GetRolesByProjectResponse) Reset() { } } -func (x *GetRolesByProjectResponse) String() string { +func (x *GetRuleTypeByNameRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetRolesByProjectResponse) ProtoMessage() {} +func (*GetRuleTypeByNameRequest) ProtoMessage() {} -func (x *GetRolesByProjectResponse) ProtoReflect() protoreflect.Message { +func (x *GetRuleTypeByNameRequest) ProtoReflect() protoreflect.Message { mi := &file_mediator_v1_mediator_proto_msgTypes[93] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -6002,29 +5861,37 @@ func (x *GetRolesByProjectResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetRolesByProjectResponse.ProtoReflect.Descriptor instead. -func (*GetRolesByProjectResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use GetRuleTypeByNameRequest.ProtoReflect.Descriptor instead. +func (*GetRuleTypeByNameRequest) Descriptor() ([]byte, []int) { return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{93} } -func (x *GetRolesByProjectResponse) GetRoles() []*RoleRecord { +func (x *GetRuleTypeByNameRequest) GetContext() *Context { if x != nil { - return x.Roles + return x.Context } return nil } -// get role by id -type GetRoleByIdRequest struct { +func (x *GetRuleTypeByNameRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// GetRuleTypeByNameResponse is the response to get a rule type by name. +type GetRuleTypeByNameResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + // rule_type is the rule type. + RuleType *RuleType `protobuf:"bytes,1,opt,name=rule_type,json=ruleType,proto3" json:"rule_type,omitempty"` } -func (x *GetRoleByIdRequest) Reset() { - *x = GetRoleByIdRequest{} +func (x *GetRuleTypeByNameResponse) Reset() { + *x = GetRuleTypeByNameResponse{} if protoimpl.UnsafeEnabled { mi := &file_mediator_v1_mediator_proto_msgTypes[94] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -6032,13 +5899,13 @@ func (x *GetRoleByIdRequest) Reset() { } } -func (x *GetRoleByIdRequest) String() string { +func (x *GetRuleTypeByNameResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetRoleByIdRequest) ProtoMessage() {} +func (*GetRuleTypeByNameResponse) ProtoMessage() {} -func (x *GetRoleByIdRequest) ProtoReflect() protoreflect.Message { +func (x *GetRuleTypeByNameResponse) ProtoReflect() protoreflect.Message { mi := &file_mediator_v1_mediator_proto_msgTypes[94] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -6050,28 +5917,32 @@ func (x *GetRoleByIdRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetRoleByIdRequest.ProtoReflect.Descriptor instead. -func (*GetRoleByIdRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use GetRuleTypeByNameResponse.ProtoReflect.Descriptor instead. +func (*GetRuleTypeByNameResponse) Descriptor() ([]byte, []int) { return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{94} } -func (x *GetRoleByIdRequest) GetId() int32 { +func (x *GetRuleTypeByNameResponse) GetRuleType() *RuleType { if x != nil { - return x.Id + return x.RuleType } - return 0 + return nil } -type GetRoleByIdResponse struct { +// GetRuleTypeByIdRequest is the request to get a rule type by id. +type GetRuleTypeByIdRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Role *RoleRecord `protobuf:"bytes,1,opt,name=role,proto3,oneof" json:"role,omitempty"` + // context is the context in which the rule type is evaluated. + Context *Context `protobuf:"bytes,1,opt,name=context,proto3" json:"context,omitempty"` + // id is the id of the rule type. + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` } -func (x *GetRoleByIdResponse) Reset() { - *x = GetRoleByIdResponse{} +func (x *GetRuleTypeByIdRequest) Reset() { + *x = GetRuleTypeByIdRequest{} if protoimpl.UnsafeEnabled { mi := &file_mediator_v1_mediator_proto_msgTypes[95] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -6079,13 +5950,13 @@ func (x *GetRoleByIdResponse) Reset() { } } -func (x *GetRoleByIdResponse) String() string { +func (x *GetRuleTypeByIdRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetRoleByIdResponse) ProtoMessage() {} +func (*GetRuleTypeByIdRequest) ProtoMessage() {} -func (x *GetRoleByIdResponse) ProtoReflect() protoreflect.Message { +func (x *GetRuleTypeByIdRequest) ProtoReflect() protoreflect.Message { mi := &file_mediator_v1_mediator_proto_msgTypes[95] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -6097,30 +5968,37 @@ func (x *GetRoleByIdResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetRoleByIdResponse.ProtoReflect.Descriptor instead. -func (*GetRoleByIdResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use GetRuleTypeByIdRequest.ProtoReflect.Descriptor instead. +func (*GetRuleTypeByIdRequest) Descriptor() ([]byte, []int) { return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{95} } -func (x *GetRoleByIdResponse) GetRole() *RoleRecord { +func (x *GetRuleTypeByIdRequest) GetContext() *Context { if x != nil { - return x.Role + return x.Context } return nil } -// get role by project and name -type GetRoleByNameRequest struct { +func (x *GetRuleTypeByIdRequest) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +// GetRuleTypeByIdResponse is the response to get a rule type by id. +type GetRuleTypeByIdResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - OrganizationId string `protobuf:"bytes,1,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + // rule_type is the rule type. + RuleType *RuleType `protobuf:"bytes,1,opt,name=rule_type,json=ruleType,proto3" json:"rule_type,omitempty"` } -func (x *GetRoleByNameRequest) Reset() { - *x = GetRoleByNameRequest{} +func (x *GetRuleTypeByIdResponse) Reset() { + *x = GetRuleTypeByIdResponse{} if protoimpl.UnsafeEnabled { mi := &file_mediator_v1_mediator_proto_msgTypes[96] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -6128,13 +6006,13 @@ func (x *GetRoleByNameRequest) Reset() { } } -func (x *GetRoleByNameRequest) String() string { +func (x *GetRuleTypeByIdResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetRoleByNameRequest) ProtoMessage() {} +func (*GetRuleTypeByIdResponse) ProtoMessage() {} -func (x *GetRoleByNameRequest) ProtoReflect() protoreflect.Message { +func (x *GetRuleTypeByIdResponse) ProtoReflect() protoreflect.Message { mi := &file_mediator_v1_mediator_proto_msgTypes[96] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -6146,35 +6024,30 @@ func (x *GetRoleByNameRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetRoleByNameRequest.ProtoReflect.Descriptor instead. -func (*GetRoleByNameRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use GetRuleTypeByIdResponse.ProtoReflect.Descriptor instead. +func (*GetRuleTypeByIdResponse) Descriptor() ([]byte, []int) { return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{96} } -func (x *GetRoleByNameRequest) GetOrganizationId() string { - if x != nil { - return x.OrganizationId - } - return "" -} - -func (x *GetRoleByNameRequest) GetName() string { +func (x *GetRuleTypeByIdResponse) GetRuleType() *RuleType { if x != nil { - return x.Name + return x.RuleType } - return "" + return nil } -type GetRoleByNameResponse struct { +// CreateRuleTypeRequest is the request to create a rule type. +type CreateRuleTypeRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Role *RoleRecord `protobuf:"bytes,1,opt,name=role,proto3,oneof" json:"role,omitempty"` + // rule_type is the rule type to be created. + RuleType *RuleType `protobuf:"bytes,1,opt,name=rule_type,json=ruleType,proto3" json:"rule_type,omitempty"` } -func (x *GetRoleByNameResponse) Reset() { - *x = GetRoleByNameResponse{} +func (x *CreateRuleTypeRequest) Reset() { + *x = CreateRuleTypeRequest{} if protoimpl.UnsafeEnabled { mi := &file_mediator_v1_mediator_proto_msgTypes[97] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -6182,13 +6055,13 @@ func (x *GetRoleByNameResponse) Reset() { } } -func (x *GetRoleByNameResponse) String() string { +func (x *CreateRuleTypeRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetRoleByNameResponse) ProtoMessage() {} +func (*CreateRuleTypeRequest) ProtoMessage() {} -func (x *GetRoleByNameResponse) ProtoReflect() protoreflect.Message { +func (x *CreateRuleTypeRequest) ProtoReflect() protoreflect.Message { mi := &file_mediator_v1_mediator_proto_msgTypes[97] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -6200,27 +6073,30 @@ func (x *GetRoleByNameResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetRoleByNameResponse.ProtoReflect.Descriptor instead. -func (*GetRoleByNameResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use CreateRuleTypeRequest.ProtoReflect.Descriptor instead. +func (*CreateRuleTypeRequest) Descriptor() ([]byte, []int) { return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{97} } -func (x *GetRoleByNameResponse) GetRole() *RoleRecord { +func (x *CreateRuleTypeRequest) GetRuleType() *RuleType { if x != nil { - return x.Role + return x.RuleType } return nil } -// User service -type CreateUserRequest struct { +// CreateRuleTypeResponse is the response to create a rule type. +type CreateRuleTypeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // rule_type is the rule type that was created. + RuleType *RuleType `protobuf:"bytes,1,opt,name=rule_type,json=ruleType,proto3" json:"rule_type,omitempty"` } -func (x *CreateUserRequest) Reset() { - *x = CreateUserRequest{} +func (x *CreateRuleTypeResponse) Reset() { + *x = CreateRuleTypeResponse{} if protoimpl.UnsafeEnabled { mi := &file_mediator_v1_mediator_proto_msgTypes[98] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -6228,13 +6104,13 @@ func (x *CreateUserRequest) Reset() { } } -func (x *CreateUserRequest) String() string { +func (x *CreateRuleTypeResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CreateUserRequest) ProtoMessage() {} +func (*CreateRuleTypeResponse) ProtoMessage() {} -func (x *CreateUserRequest) ProtoReflect() protoreflect.Message { +func (x *CreateRuleTypeResponse) ProtoReflect() protoreflect.Message { mi := &file_mediator_v1_mediator_proto_msgTypes[98] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -6246,30 +6122,30 @@ func (x *CreateUserRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CreateUserRequest.ProtoReflect.Descriptor instead. -func (*CreateUserRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use CreateRuleTypeResponse.ProtoReflect.Descriptor instead. +func (*CreateRuleTypeResponse) Descriptor() ([]byte, []int) { return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{98} } -type CreateUserResponse struct { +func (x *CreateRuleTypeResponse) GetRuleType() *RuleType { + if x != nil { + return x.RuleType + } + return nil +} + +// UpdateRuleTypeRequest is the request to update a rule type. +type UpdateRuleTypeRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` - OrganizationId string `protobuf:"bytes,2,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"` - OrganizatioName string `protobuf:"bytes,3,opt,name=organizatio_name,json=organizatioName,proto3" json:"organizatio_name,omitempty"` - ProjectId string `protobuf:"bytes,4,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - ProjectName string `protobuf:"bytes,5,opt,name=project_name,json=projectName,proto3" json:"project_name,omitempty"` - Email *string `protobuf:"bytes,6,opt,name=email,proto3,oneof" json:"email,omitempty"` - IdentitySubject string `protobuf:"bytes,7,opt,name=identity_subject,json=identitySubject,proto3" json:"identity_subject,omitempty"` - FirstName *string `protobuf:"bytes,8,opt,name=first_name,json=firstName,proto3,oneof" json:"first_name,omitempty"` - LastName *string `protobuf:"bytes,9,opt,name=last_name,json=lastName,proto3,oneof" json:"last_name,omitempty"` - CreatedAt *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + // rule_type is the rule type to be updated. + RuleType *RuleType `protobuf:"bytes,2,opt,name=rule_type,json=ruleType,proto3" json:"rule_type,omitempty"` } -func (x *CreateUserResponse) Reset() { - *x = CreateUserResponse{} +func (x *UpdateRuleTypeRequest) Reset() { + *x = UpdateRuleTypeRequest{} if protoimpl.UnsafeEnabled { mi := &file_mediator_v1_mediator_proto_msgTypes[99] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -6277,13 +6153,13 @@ func (x *CreateUserResponse) Reset() { } } -func (x *CreateUserResponse) String() string { +func (x *UpdateRuleTypeRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CreateUserResponse) ProtoMessage() {} +func (*UpdateRuleTypeRequest) ProtoMessage() {} -func (x *CreateUserResponse) ProtoReflect() protoreflect.Message { +func (x *UpdateRuleTypeRequest) ProtoReflect() protoreflect.Message { mi := &file_mediator_v1_mediator_proto_msgTypes[99] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -6295,92 +6171,30 @@ func (x *CreateUserResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CreateUserResponse.ProtoReflect.Descriptor instead. -func (*CreateUserResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use UpdateRuleTypeRequest.ProtoReflect.Descriptor instead. +func (*UpdateRuleTypeRequest) Descriptor() ([]byte, []int) { return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{99} } -func (x *CreateUserResponse) GetId() int32 { - if x != nil { - return x.Id - } - return 0 -} - -func (x *CreateUserResponse) GetOrganizationId() string { - if x != nil { - return x.OrganizationId - } - return "" -} - -func (x *CreateUserResponse) GetOrganizatioName() string { - if x != nil { - return x.OrganizatioName - } - return "" -} - -func (x *CreateUserResponse) GetProjectId() string { - if x != nil { - return x.ProjectId - } - return "" -} - -func (x *CreateUserResponse) GetProjectName() string { - if x != nil { - return x.ProjectName - } - return "" -} - -func (x *CreateUserResponse) GetEmail() string { - if x != nil && x.Email != nil { - return *x.Email - } - return "" -} - -func (x *CreateUserResponse) GetIdentitySubject() string { - if x != nil { - return x.IdentitySubject - } - return "" -} - -func (x *CreateUserResponse) GetFirstName() string { - if x != nil && x.FirstName != nil { - return *x.FirstName - } - return "" -} - -func (x *CreateUserResponse) GetLastName() string { - if x != nil && x.LastName != nil { - return *x.LastName - } - return "" -} - -func (x *CreateUserResponse) GetCreatedAt() *timestamppb.Timestamp { +func (x *UpdateRuleTypeRequest) GetRuleType() *RuleType { if x != nil { - return x.CreatedAt + return x.RuleType } return nil } -type DeleteUserRequest struct { +// UpdateRuleTypeResponse is the response to update a rule type. +type UpdateRuleTypeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` - Force *bool `protobuf:"varint,2,opt,name=force,proto3,oneof" json:"force,omitempty"` + // rule_type is the rule type that was updated. + RuleType *RuleType `protobuf:"bytes,1,opt,name=rule_type,json=ruleType,proto3" json:"rule_type,omitempty"` } -func (x *DeleteUserRequest) Reset() { - *x = DeleteUserRequest{} +func (x *UpdateRuleTypeResponse) Reset() { + *x = UpdateRuleTypeResponse{} if protoimpl.UnsafeEnabled { mi := &file_mediator_v1_mediator_proto_msgTypes[100] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -6388,13 +6202,13 @@ func (x *DeleteUserRequest) Reset() { } } -func (x *DeleteUserRequest) String() string { +func (x *UpdateRuleTypeResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DeleteUserRequest) ProtoMessage() {} +func (*UpdateRuleTypeResponse) ProtoMessage() {} -func (x *DeleteUserRequest) ProtoReflect() protoreflect.Message { +func (x *UpdateRuleTypeResponse) ProtoReflect() protoreflect.Message { mi := &file_mediator_v1_mediator_proto_msgTypes[100] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -6406,33 +6220,32 @@ func (x *DeleteUserRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DeleteUserRequest.ProtoReflect.Descriptor instead. -func (*DeleteUserRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use UpdateRuleTypeResponse.ProtoReflect.Descriptor instead. +func (*UpdateRuleTypeResponse) Descriptor() ([]byte, []int) { return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{100} } -func (x *DeleteUserRequest) GetId() int32 { +func (x *UpdateRuleTypeResponse) GetRuleType() *RuleType { if x != nil { - return x.Id - } - return 0 -} - -func (x *DeleteUserRequest) GetForce() bool { - if x != nil && x.Force != nil { - return *x.Force + return x.RuleType } - return false + return nil } -type DeleteUserResponse struct { +// DeleteRuleTypeRequest is the request to delete a rule type. +type DeleteRuleTypeRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // context is the context in which the rule type is evaluated. + Context *Context `protobuf:"bytes,1,opt,name=context,proto3" json:"context,omitempty"` + // id is the id of the rule type to be deleted. + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` } -func (x *DeleteUserResponse) Reset() { - *x = DeleteUserResponse{} +func (x *DeleteRuleTypeRequest) Reset() { + *x = DeleteRuleTypeRequest{} if protoimpl.UnsafeEnabled { mi := &file_mediator_v1_mediator_proto_msgTypes[101] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -6440,13 +6253,13 @@ func (x *DeleteUserResponse) Reset() { } } -func (x *DeleteUserResponse) String() string { +func (x *DeleteRuleTypeRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DeleteUserResponse) ProtoMessage() {} +func (*DeleteRuleTypeRequest) ProtoMessage() {} -func (x *DeleteUserResponse) ProtoReflect() protoreflect.Message { +func (x *DeleteRuleTypeRequest) ProtoReflect() protoreflect.Message { mi := &file_mediator_v1_mediator_proto_msgTypes[101] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -6458,29 +6271,34 @@ func (x *DeleteUserResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DeleteUserResponse.ProtoReflect.Descriptor instead. -func (*DeleteUserResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use DeleteRuleTypeRequest.ProtoReflect.Descriptor instead. +func (*DeleteRuleTypeRequest) Descriptor() ([]byte, []int) { return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{101} } -// user record to be returned -type UserRecord struct { +func (x *DeleteRuleTypeRequest) GetContext() *Context { + if x != nil { + return x.Context + } + return nil +} + +func (x *DeleteRuleTypeRequest) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +// DeleteRuleTypeResponse is the response to delete a rule type. +type DeleteRuleTypeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` - OrganizationId string `protobuf:"bytes,2,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"` - Email *string `protobuf:"bytes,3,opt,name=email,proto3,oneof" json:"email,omitempty"` - IdentitySubject string `protobuf:"bytes,4,opt,name=identity_subject,json=identitySubject,proto3" json:"identity_subject,omitempty"` - FirstName *string `protobuf:"bytes,5,opt,name=first_name,json=firstName,proto3,oneof" json:"first_name,omitempty"` - LastName *string `protobuf:"bytes,6,opt,name=last_name,json=lastName,proto3,oneof" json:"last_name,omitempty"` - CreatedAt *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` - UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` } -func (x *UserRecord) Reset() { - *x = UserRecord{} +func (x *DeleteRuleTypeResponse) Reset() { + *x = DeleteRuleTypeResponse{} if protoimpl.UnsafeEnabled { mi := &file_mediator_v1_mediator_proto_msgTypes[102] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -6488,13 +6306,13 @@ func (x *UserRecord) Reset() { } } -func (x *UserRecord) String() string { +func (x *DeleteRuleTypeResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*UserRecord) ProtoMessage() {} +func (*DeleteRuleTypeResponse) ProtoMessage() {} -func (x *UserRecord) ProtoReflect() protoreflect.Message { +func (x *DeleteRuleTypeResponse) ProtoReflect() protoreflect.Message { mi := &file_mediator_v1_mediator_proto_msgTypes[102] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -6506,79 +6324,36 @@ func (x *UserRecord) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use UserRecord.ProtoReflect.Descriptor instead. -func (*UserRecord) Descriptor() ([]byte, []int) { +// Deprecated: Use DeleteRuleTypeResponse.ProtoReflect.Descriptor instead. +func (*DeleteRuleTypeResponse) Descriptor() ([]byte, []int) { return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{102} } -func (x *UserRecord) GetId() int32 { - if x != nil { - return x.Id - } - return 0 -} - -func (x *UserRecord) GetOrganizationId() string { - if x != nil { - return x.OrganizationId - } - return "" -} - -func (x *UserRecord) GetEmail() string { - if x != nil && x.Email != nil { - return *x.Email - } - return "" -} - -func (x *UserRecord) GetIdentitySubject() string { - if x != nil { - return x.IdentitySubject - } - return "" -} - -func (x *UserRecord) GetFirstName() string { - if x != nil && x.FirstName != nil { - return *x.FirstName - } - return "" -} - -func (x *UserRecord) GetLastName() string { - if x != nil && x.LastName != nil { - return *x.LastName - } - return "" -} - -func (x *UserRecord) GetCreatedAt() *timestamppb.Timestamp { - if x != nil { - return x.CreatedAt - } - return nil -} - -func (x *UserRecord) GetUpdatedAt() *timestamppb.Timestamp { - if x != nil { - return x.UpdatedAt - } - return nil -} - -// list users -type GetUsersRequest struct { +// RestType defines the rest data evaluation. +// This is used to fetch data from a REST endpoint. +type RestType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Limit *int32 `protobuf:"varint,3,opt,name=limit,proto3,oneof" json:"limit,omitempty"` - Offset *int32 `protobuf:"varint,4,opt,name=offset,proto3,oneof" json:"offset,omitempty"` + // endpoint is the endpoint to fetch data from. + // This can be a URL or the path on the API.bool + // This is a required field and must be set. + // This is also evaluated via a template which allows + // us dynamically fill in the values. + Endpoint string `protobuf:"bytes,1,opt,name=endpoint,proto3" json:"endpoint,omitempty"` + // method is the method to use to fetch data. + Method string `protobuf:"bytes,2,opt,name=method,proto3" json:"method,omitempty"` + // headers are the headers to be sent to the endpoint. + Headers []string `protobuf:"bytes,3,rep,name=headers,proto3" json:"headers,omitempty"` + // body is the body to be sent to the endpoint. + Body *string `protobuf:"bytes,4,opt,name=body,proto3,oneof" json:"body,omitempty"` + // parse is the parsing mechanism to be used to parse the data. + Parse string `protobuf:"bytes,5,opt,name=parse,proto3" json:"parse,omitempty"` } -func (x *GetUsersRequest) Reset() { - *x = GetUsersRequest{} +func (x *RestType) Reset() { + *x = RestType{} if protoimpl.UnsafeEnabled { mi := &file_mediator_v1_mediator_proto_msgTypes[103] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -6586,13 +6361,13 @@ func (x *GetUsersRequest) Reset() { } } -func (x *GetUsersRequest) String() string { +func (x *RestType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetUsersRequest) ProtoMessage() {} +func (*RestType) ProtoMessage() {} -func (x *GetUsersRequest) ProtoReflect() protoreflect.Message { +func (x *RestType) ProtoReflect() protoreflect.Message { mi := &file_mediator_v1_mediator_proto_msgTypes[103] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -6604,35 +6379,57 @@ func (x *GetUsersRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetUsersRequest.ProtoReflect.Descriptor instead. -func (*GetUsersRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use RestType.ProtoReflect.Descriptor instead. +func (*RestType) Descriptor() ([]byte, []int) { return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{103} } -func (x *GetUsersRequest) GetLimit() int32 { - if x != nil && x.Limit != nil { - return *x.Limit +func (x *RestType) GetEndpoint() string { + if x != nil { + return x.Endpoint } - return 0 + return "" } -func (x *GetUsersRequest) GetOffset() int32 { - if x != nil && x.Offset != nil { - return *x.Offset +func (x *RestType) GetMethod() string { + if x != nil { + return x.Method } - return 0 + return "" +} + +func (x *RestType) GetHeaders() []string { + if x != nil { + return x.Headers + } + return nil +} + +func (x *RestType) GetBody() string { + if x != nil && x.Body != nil { + return *x.Body + } + return "" +} + +func (x *RestType) GetParse() string { + if x != nil { + return x.Parse + } + return "" } -type GetUsersResponse struct { +// BuiltinType defines the builtin data evaluation. +type BuiltinType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Users []*UserRecord `protobuf:"bytes,1,rep,name=users,proto3" json:"users,omitempty"` + Method string `protobuf:"bytes,1,opt,name=method,proto3" json:"method,omitempty"` } -func (x *GetUsersResponse) Reset() { - *x = GetUsersResponse{} +func (x *BuiltinType) Reset() { + *x = BuiltinType{} if protoimpl.UnsafeEnabled { mi := &file_mediator_v1_mediator_proto_msgTypes[104] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -6640,13 +6437,13 @@ func (x *GetUsersResponse) Reset() { } } -func (x *GetUsersResponse) String() string { +func (x *BuiltinType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetUsersResponse) ProtoMessage() {} +func (*BuiltinType) ProtoMessage() {} -func (x *GetUsersResponse) ProtoReflect() protoreflect.Message { +func (x *BuiltinType) ProtoReflect() protoreflect.Message { mi := &file_mediator_v1_mediator_proto_msgTypes[104] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -6658,30 +6455,27 @@ func (x *GetUsersResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetUsersResponse.ProtoReflect.Descriptor instead. -func (*GetUsersResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use BuiltinType.ProtoReflect.Descriptor instead. +func (*BuiltinType) Descriptor() ([]byte, []int) { return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{104} } -func (x *GetUsersResponse) GetUsers() []*UserRecord { +func (x *BuiltinType) GetMethod() string { if x != nil { - return x.Users + return x.Method } - return nil + return "" } -type GetUsersByOrganizationRequest struct { +// ArtifactType defines the artifact data evaluation. +type ArtifactType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - - OrganizationId string `protobuf:"bytes,1,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"` - Limit *int32 `protobuf:"varint,2,opt,name=limit,proto3,oneof" json:"limit,omitempty"` - Offset *int32 `protobuf:"varint,3,opt,name=offset,proto3,oneof" json:"offset,omitempty"` } -func (x *GetUsersByOrganizationRequest) Reset() { - *x = GetUsersByOrganizationRequest{} +func (x *ArtifactType) Reset() { + *x = ArtifactType{} if protoimpl.UnsafeEnabled { mi := &file_mediator_v1_mediator_proto_msgTypes[105] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -6689,13 +6483,13 @@ func (x *GetUsersByOrganizationRequest) Reset() { } } -func (x *GetUsersByOrganizationRequest) String() string { +func (x *ArtifactType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetUsersByOrganizationRequest) ProtoMessage() {} +func (*ArtifactType) ProtoMessage() {} -func (x *GetUsersByOrganizationRequest) ProtoReflect() protoreflect.Message { +func (x *ArtifactType) ProtoReflect() protoreflect.Message { mi := &file_mediator_v1_mediator_proto_msgTypes[105] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -6707,42 +6501,25 @@ func (x *GetUsersByOrganizationRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetUsersByOrganizationRequest.ProtoReflect.Descriptor instead. -func (*GetUsersByOrganizationRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use ArtifactType.ProtoReflect.Descriptor instead. +func (*ArtifactType) Descriptor() ([]byte, []int) { return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{105} } -func (x *GetUsersByOrganizationRequest) GetOrganizationId() string { - if x != nil { - return x.OrganizationId - } - return "" -} - -func (x *GetUsersByOrganizationRequest) GetLimit() int32 { - if x != nil && x.Limit != nil { - return *x.Limit - } - return 0 -} - -func (x *GetUsersByOrganizationRequest) GetOffset() int32 { - if x != nil && x.Offset != nil { - return *x.Offset - } - return 0 -} - -type GetUsersByOrganizationResponse struct { +// GitType defines the git data ingester. +type GitType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Users []*UserRecord `protobuf:"bytes,1,rep,name=users,proto3" json:"users,omitempty"` + // clone_url is the url of the git repository. + CloneUrl string `protobuf:"bytes,1,opt,name=clone_url,json=cloneUrl,proto3" json:"clone_url,omitempty"` + // branch is the branch of the git repository. + Branch string `protobuf:"bytes,2,opt,name=branch,proto3" json:"branch,omitempty"` } -func (x *GetUsersByOrganizationResponse) Reset() { - *x = GetUsersByOrganizationResponse{} +func (x *GitType) Reset() { + *x = GitType{} if protoimpl.UnsafeEnabled { mi := &file_mediator_v1_mediator_proto_msgTypes[106] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -6750,13 +6527,13 @@ func (x *GetUsersByOrganizationResponse) Reset() { } } -func (x *GetUsersByOrganizationResponse) String() string { +func (x *GitType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetUsersByOrganizationResponse) ProtoMessage() {} +func (*GitType) ProtoMessage() {} -func (x *GetUsersByOrganizationResponse) ProtoReflect() protoreflect.Message { +func (x *GitType) ProtoReflect() protoreflect.Message { mi := &file_mediator_v1_mediator_proto_msgTypes[106] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -6768,30 +6545,36 @@ func (x *GetUsersByOrganizationResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetUsersByOrganizationResponse.ProtoReflect.Descriptor instead. -func (*GetUsersByOrganizationResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use GitType.ProtoReflect.Descriptor instead. +func (*GitType) Descriptor() ([]byte, []int) { return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{106} } -func (x *GetUsersByOrganizationResponse) GetUsers() []*UserRecord { +func (x *GitType) GetCloneUrl() string { + if x != nil { + return x.CloneUrl + } + return "" +} + +func (x *GitType) GetBranch() string { if x != nil { - return x.Users + return x.Branch } - return nil + return "" } -type GetUsersByProjectRequest struct { +// DiffType defines the diff data ingester. +type DiffType 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"` - Limit *int32 `protobuf:"varint,2,opt,name=limit,proto3,oneof" json:"limit,omitempty"` - Offset *int32 `protobuf:"varint,3,opt,name=offset,proto3,oneof" json:"offset,omitempty"` + Ecosystems []*DiffType_Ecosystem `protobuf:"bytes,1,rep,name=ecosystems,proto3" json:"ecosystems,omitempty"` } -func (x *GetUsersByProjectRequest) Reset() { - *x = GetUsersByProjectRequest{} +func (x *DiffType) Reset() { + *x = DiffType{} if protoimpl.UnsafeEnabled { mi := &file_mediator_v1_mediator_proto_msgTypes[107] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -6799,13 +6582,13 @@ func (x *GetUsersByProjectRequest) Reset() { } } -func (x *GetUsersByProjectRequest) String() string { +func (x *DiffType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetUsersByProjectRequest) ProtoMessage() {} +func (*DiffType) ProtoMessage() {} -func (x *GetUsersByProjectRequest) ProtoReflect() protoreflect.Message { +func (x *DiffType) ProtoReflect() protoreflect.Message { mi := &file_mediator_v1_mediator_proto_msgTypes[107] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -6817,42 +6600,42 @@ func (x *GetUsersByProjectRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetUsersByProjectRequest.ProtoReflect.Descriptor instead. -func (*GetUsersByProjectRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use DiffType.ProtoReflect.Descriptor instead. +func (*DiffType) Descriptor() ([]byte, []int) { return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{107} } -func (x *GetUsersByProjectRequest) GetProjectId() string { +func (x *DiffType) GetEcosystems() []*DiffType_Ecosystem { if x != nil { - return x.ProjectId - } - return "" -} - -func (x *GetUsersByProjectRequest) GetLimit() int32 { - if x != nil && x.Limit != nil { - return *x.Limit - } - return 0 -} - -func (x *GetUsersByProjectRequest) GetOffset() int32 { - if x != nil && x.Offset != nil { - return *x.Offset + return x.Ecosystems } - return 0 + return nil } -type GetUsersByProjectResponse struct { +// RuleType defines rules that may or may not be user defined. +// The version is assumed from the folder's version. +type RuleType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Users []*UserRecord `protobuf:"bytes,1,rep,name=users,proto3" json:"users,omitempty"` + // id is the id of the rule type. + // This is mostly optional and is set by the server. + Id *string `protobuf:"bytes,1,opt,name=id,proto3,oneof" json:"id,omitempty"` + // name is the name of the rule type. + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + // context is the context in which the rule is evaluated. + Context *Context `protobuf:"bytes,3,opt,name=context,proto3" json:"context,omitempty"` + // def is the definition of the rule type. + Def *RuleType_Definition `protobuf:"bytes,4,opt,name=def,proto3" json:"def,omitempty"` + // description is the description of the rule type. + Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"` + // guidance are instructions we give the user in case a rule fails. + Guidance string `protobuf:"bytes,6,opt,name=guidance,proto3" json:"guidance,omitempty"` } -func (x *GetUsersByProjectResponse) Reset() { - *x = GetUsersByProjectResponse{} +func (x *RuleType) Reset() { + *x = RuleType{} if protoimpl.UnsafeEnabled { mi := &file_mediator_v1_mediator_proto_msgTypes[108] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -6860,13 +6643,13 @@ func (x *GetUsersByProjectResponse) Reset() { } } -func (x *GetUsersByProjectResponse) String() string { +func (x *RuleType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetUsersByProjectResponse) ProtoMessage() {} +func (*RuleType) ProtoMessage() {} -func (x *GetUsersByProjectResponse) ProtoReflect() protoreflect.Message { +func (x *RuleType) ProtoReflect() protoreflect.Message { mi := &file_mediator_v1_mediator_proto_msgTypes[108] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -6878,29 +6661,78 @@ func (x *GetUsersByProjectResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetUsersByProjectResponse.ProtoReflect.Descriptor instead. -func (*GetUsersByProjectResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use RuleType.ProtoReflect.Descriptor instead. +func (*RuleType) Descriptor() ([]byte, []int) { return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{108} } -func (x *GetUsersByProjectResponse) GetUsers() []*UserRecord { +func (x *RuleType) GetId() string { + if x != nil && x.Id != nil { + return *x.Id + } + return "" +} + +func (x *RuleType) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *RuleType) GetContext() *Context { + if x != nil { + return x.Context + } + return nil +} + +func (x *RuleType) GetDef() *RuleType_Definition { if x != nil { - return x.Users + return x.Def } return nil } -// get user by id -type GetUserByIdRequest struct { +func (x *RuleType) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *RuleType) GetGuidance() string { + if x != nil { + return x.Guidance + } + return "" +} + +// Profile defines a profile that is user defined. +type Profile struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - UserId int32 `protobuf:"varint,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + // context is the context in which the profile is evaluated. + Context *Context `protobuf:"bytes,1,opt,name=context,proto3" json:"context,omitempty"` + // id is the id of the profile. + // This is optional and is set by the system. + Id *string `protobuf:"bytes,2,opt,name=id,proto3,oneof" json:"id,omitempty"` + // name is the name of the profile instance. + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + // These are the entities that one could set in the profile. + Repository []*Profile_Rule `protobuf:"bytes,4,rep,name=repository,proto3" json:"repository,omitempty"` + BuildEnvironment []*Profile_Rule `protobuf:"bytes,5,rep,name=build_environment,json=buildEnvironment,proto3" json:"build_environment,omitempty"` + Artifact []*Profile_Rule `protobuf:"bytes,6,rep,name=artifact,proto3" json:"artifact,omitempty"` + PullRequest []*Profile_Rule `protobuf:"bytes,7,rep,name=pull_request,json=pullRequest,proto3" json:"pull_request,omitempty"` + // whether and how to remediate (on,off,dry_run) + // this is optional as the default is set by the system + Remediate *string `protobuf:"bytes,8,opt,name=remediate,proto3,oneof" json:"remediate,omitempty"` } -func (x *GetUserByIdRequest) Reset() { - *x = GetUserByIdRequest{} +func (x *Profile) Reset() { + *x = Profile{} if protoimpl.UnsafeEnabled { mi := &file_mediator_v1_mediator_proto_msgTypes[109] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -6908,13 +6740,13 @@ func (x *GetUserByIdRequest) Reset() { } } -func (x *GetUserByIdRequest) String() string { +func (x *Profile) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetUserByIdRequest) ProtoMessage() {} +func (*Profile) ProtoMessage() {} -func (x *GetUserByIdRequest) ProtoReflect() protoreflect.Message { +func (x *Profile) ProtoReflect() protoreflect.Message { mi := &file_mediator_v1_mediator_proto_msgTypes[109] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -6926,30 +6758,78 @@ func (x *GetUserByIdRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetUserByIdRequest.ProtoReflect.Descriptor instead. -func (*GetUserByIdRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use Profile.ProtoReflect.Descriptor instead. +func (*Profile) Descriptor() ([]byte, []int) { return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{109} } -func (x *GetUserByIdRequest) GetUserId() int32 { +func (x *Profile) GetContext() *Context { if x != nil { - return x.UserId + return x.Context } - return 0 + return nil +} + +func (x *Profile) GetId() string { + if x != nil && x.Id != nil { + return *x.Id + } + return "" +} + +func (x *Profile) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Profile) GetRepository() []*Profile_Rule { + if x != nil { + return x.Repository + } + return nil +} + +func (x *Profile) GetBuildEnvironment() []*Profile_Rule { + if x != nil { + return x.BuildEnvironment + } + return nil +} + +func (x *Profile) GetArtifact() []*Profile_Rule { + if x != nil { + return x.Artifact + } + return nil +} + +func (x *Profile) GetPullRequest() []*Profile_Rule { + if x != nil { + return x.PullRequest + } + return nil +} + +func (x *Profile) GetRemediate() string { + if x != nil && x.Remediate != nil { + return *x.Remediate + } + return "" } -type GetUserByIdResponse struct { +type PrDependencies_ContextualDependency struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - User *UserRecord `protobuf:"bytes,1,opt,name=user,proto3,oneof" json:"user,omitempty"` - Projects []*ProjectRecord `protobuf:"bytes,2,rep,name=projects,proto3" json:"projects,omitempty"` - Roles []*RoleRecord `protobuf:"bytes,3,rep,name=roles,proto3" json:"roles,omitempty"` + Dep *Dependency `protobuf:"bytes,1,opt,name=dep,proto3" json:"dep,omitempty"` + File *PrDependencies_ContextualDependency_FilePatch `protobuf:"bytes,2,opt,name=file,proto3" json:"file,omitempty"` } -func (x *GetUserByIdResponse) Reset() { - *x = GetUserByIdResponse{} +func (x *PrDependencies_ContextualDependency) Reset() { + *x = PrDependencies_ContextualDependency{} if protoimpl.UnsafeEnabled { mi := &file_mediator_v1_mediator_proto_msgTypes[110] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -6957,13 +6837,13 @@ func (x *GetUserByIdResponse) Reset() { } } -func (x *GetUserByIdResponse) String() string { +func (x *PrDependencies_ContextualDependency) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetUserByIdResponse) ProtoMessage() {} +func (*PrDependencies_ContextualDependency) ProtoMessage() {} -func (x *GetUserByIdResponse) ProtoReflect() protoreflect.Message { +func (x *PrDependencies_ContextualDependency) ProtoReflect() protoreflect.Message { mi := &file_mediator_v1_mediator_proto_msgTypes[110] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -6975,43 +6855,36 @@ func (x *GetUserByIdResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetUserByIdResponse.ProtoReflect.Descriptor instead. -func (*GetUserByIdResponse) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{110} -} - -func (x *GetUserByIdResponse) GetUser() *UserRecord { - if x != nil { - return x.User - } - return nil +// Deprecated: Use PrDependencies_ContextualDependency.ProtoReflect.Descriptor instead. +func (*PrDependencies_ContextualDependency) Descriptor() ([]byte, []int) { + return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{11, 0} } -func (x *GetUserByIdResponse) GetProjects() []*ProjectRecord { +func (x *PrDependencies_ContextualDependency) GetDep() *Dependency { if x != nil { - return x.Projects + return x.Dep } return nil } -func (x *GetUserByIdResponse) GetRoles() []*RoleRecord { +func (x *PrDependencies_ContextualDependency) GetFile() *PrDependencies_ContextualDependency_FilePatch { if x != nil { - return x.Roles + return x.File } return nil } -// get user by subject -type GetUserBySubjectRequest struct { +type PrDependencies_ContextualDependency_FilePatch struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Subject string `protobuf:"bytes,1,opt,name=subject,proto3" json:"subject,omitempty"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // file changed, e.g. package-lock.json + PatchUrl string `protobuf:"bytes,2,opt,name=patch_url,json=patchUrl,proto3" json:"patch_url,omitempty"` // points to the the raw patchfile } -func (x *GetUserBySubjectRequest) Reset() { - *x = GetUserBySubjectRequest{} +func (x *PrDependencies_ContextualDependency_FilePatch) Reset() { + *x = PrDependencies_ContextualDependency_FilePatch{} if protoimpl.UnsafeEnabled { mi := &file_mediator_v1_mediator_proto_msgTypes[111] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -7019,13 +6892,13 @@ func (x *GetUserBySubjectRequest) Reset() { } } -func (x *GetUserBySubjectRequest) String() string { +func (x *PrDependencies_ContextualDependency_FilePatch) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetUserBySubjectRequest) ProtoMessage() {} +func (*PrDependencies_ContextualDependency_FilePatch) ProtoMessage() {} -func (x *GetUserBySubjectRequest) ProtoReflect() protoreflect.Message { +func (x *PrDependencies_ContextualDependency_FilePatch) ProtoReflect() protoreflect.Message { mi := &file_mediator_v1_mediator_proto_msgTypes[111] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -7037,45 +6910,56 @@ func (x *GetUserBySubjectRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetUserBySubjectRequest.ProtoReflect.Descriptor instead. -func (*GetUserBySubjectRequest) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{111} +// Deprecated: Use PrDependencies_ContextualDependency_FilePatch.ProtoReflect.Descriptor instead. +func (*PrDependencies_ContextualDependency_FilePatch) Descriptor() ([]byte, []int) { + return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{11, 0, 0} +} + +func (x *PrDependencies_ContextualDependency_FilePatch) GetName() string { + if x != nil { + return x.Name + } + return "" } -func (x *GetUserBySubjectRequest) GetSubject() string { +func (x *PrDependencies_ContextualDependency_FilePatch) GetPatchUrl() string { if x != nil { - return x.Subject + return x.PatchUrl } return "" } -type GetUserBySubjectResponse struct { +// EntiryTypeId is a message that carries an ID together with a type to uniquely identify an entity +// such as (repo, 1), (artifact, 2), ... +// if the struct is reused in other messages, it should be moved to a top-level definition +type GetProfileStatusByNameRequest_EntityTypedId struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - User *UserRecord `protobuf:"bytes,1,opt,name=user,proto3,oneof" json:"user,omitempty"` - Projects []*ProjectRecord `protobuf:"bytes,2,rep,name=projects,proto3" json:"projects,omitempty"` - Roles []*RoleRecord `protobuf:"bytes,3,rep,name=roles,proto3" json:"roles,omitempty"` + // entity is the entity to get status for. Incompatible with `all` + Type Entity `protobuf:"varint,1,opt,name=type,proto3,enum=mediator.v1.Entity" json:"type,omitempty"` + // id is the ID of the entity to get status for. Incompatible with `all` + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` } -func (x *GetUserBySubjectResponse) Reset() { - *x = GetUserBySubjectResponse{} +func (x *GetProfileStatusByNameRequest_EntityTypedId) Reset() { + *x = GetProfileStatusByNameRequest_EntityTypedId{} if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[112] + mi := &file_mediator_v1_mediator_proto_msgTypes[113] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetUserBySubjectResponse) String() string { +func (x *GetProfileStatusByNameRequest_EntityTypedId) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetUserBySubjectResponse) ProtoMessage() {} +func (*GetProfileStatusByNameRequest_EntityTypedId) ProtoMessage() {} -func (x *GetUserBySubjectResponse) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_proto_msgTypes[112] +func (x *GetProfileStatusByNameRequest_EntityTypedId) ProtoReflect() protoreflect.Message { + mi := &file_mediator_v1_mediator_proto_msgTypes[113] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7086,56 +6970,54 @@ func (x *GetUserBySubjectResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetUserBySubjectResponse.ProtoReflect.Descriptor instead. -func (*GetUserBySubjectResponse) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{112} -} - -func (x *GetUserBySubjectResponse) GetUser() *UserRecord { - if x != nil { - return x.User - } - return nil +// Deprecated: Use GetProfileStatusByNameRequest_EntityTypedId.ProtoReflect.Descriptor instead. +func (*GetProfileStatusByNameRequest_EntityTypedId) Descriptor() ([]byte, []int) { + return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{79, 0} } -func (x *GetUserBySubjectResponse) GetProjects() []*ProjectRecord { +func (x *GetProfileStatusByNameRequest_EntityTypedId) GetType() Entity { if x != nil { - return x.Projects + return x.Type } - return nil + return Entity_ENTITY_UNSPECIFIED } -func (x *GetUserBySubjectResponse) GetRoles() []*RoleRecord { +func (x *GetProfileStatusByNameRequest_EntityTypedId) GetId() string { if x != nil { - return x.Roles + return x.Id } - return nil + return "" } -// get user -type GetUserRequest struct { +// Context defines the context in which a provider is evaluated. +// Given thta a provider is a top level entity, it may only be scoped to +// an organization. +type Provider_Context struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + Organization string `protobuf:"bytes,1,opt,name=organization,proto3" json:"organization,omitempty"` + Project string `protobuf:"bytes,2,opt,name=project,proto3" json:"project,omitempty"` } -func (x *GetUserRequest) Reset() { - *x = GetUserRequest{} +func (x *Provider_Context) Reset() { + *x = Provider_Context{} if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[113] + mi := &file_mediator_v1_mediator_proto_msgTypes[114] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetUserRequest) String() string { +func (x *Provider_Context) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetUserRequest) ProtoMessage() {} +func (*Provider_Context) ProtoMessage() {} -func (x *GetUserRequest) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_proto_msgTypes[113] +func (x *Provider_Context) ProtoReflect() protoreflect.Message { + mi := &file_mediator_v1_mediator_proto_msgTypes[114] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7146,85 +7028,40 @@ func (x *GetUserRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetUserRequest.ProtoReflect.Descriptor instead. -func (*GetUserRequest) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{113} +// Deprecated: Use Provider_Context.ProtoReflect.Descriptor instead. +func (*Provider_Context) Descriptor() ([]byte, []int) { + return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{89, 0} } -type GetUserResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - User *UserRecord `protobuf:"bytes,1,opt,name=user,proto3,oneof" json:"user,omitempty"` - Projects []*ProjectRecord `protobuf:"bytes,2,rep,name=projects,proto3" json:"projects,omitempty"` - Roles []*RoleRecord `protobuf:"bytes,3,rep,name=roles,proto3" json:"roles,omitempty"` -} - -func (x *GetUserResponse) Reset() { - *x = GetUserResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[114] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetUserResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetUserResponse) ProtoMessage() {} - -func (x *GetUserResponse) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_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 GetUserResponse.ProtoReflect.Descriptor instead. -func (*GetUserResponse) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{114} -} - -func (x *GetUserResponse) GetUser() *UserRecord { - if x != nil { - return x.User - } - return nil -} - -func (x *GetUserResponse) GetProjects() []*ProjectRecord { +func (x *Provider_Context) GetOrganization() string { if x != nil { - return x.Projects + return x.Organization } - return nil + return "" } -func (x *GetUserResponse) GetRoles() []*RoleRecord { +func (x *Provider_Context) GetProject() string { if x != nil { - return x.Roles + return x.Project } - return nil + return "" } -// Profile service -type CreateProfileRequest struct { +// Definition defines the definition of the provider. +// This is used to define the connection to the provider. +type Provider_Definition struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Profile *Profile `protobuf:"bytes,1,opt,name=profile,proto3" json:"profile,omitempty"` + // rest is the REST provider configuration. + Rest *RESTProviderConfig `protobuf:"bytes,1,opt,name=rest,proto3,oneof" json:"rest,omitempty"` + // github is the GitHub provider configuration. + Github *GitHubProviderConfig `protobuf:"bytes,2,opt,name=github,proto3,oneof" json:"github,omitempty"` } -func (x *CreateProfileRequest) Reset() { - *x = CreateProfileRequest{} +func (x *Provider_Definition) Reset() { + *x = Provider_Definition{} if protoimpl.UnsafeEnabled { mi := &file_mediator_v1_mediator_proto_msgTypes[115] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -7232,13 +7069,13 @@ func (x *CreateProfileRequest) Reset() { } } -func (x *CreateProfileRequest) String() string { +func (x *Provider_Definition) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CreateProfileRequest) ProtoMessage() {} +func (*Provider_Definition) ProtoMessage() {} -func (x *CreateProfileRequest) ProtoReflect() protoreflect.Message { +func (x *Provider_Definition) ProtoReflect() protoreflect.Message { mi := &file_mediator_v1_mediator_proto_msgTypes[115] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -7250,28 +7087,38 @@ func (x *CreateProfileRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CreateProfileRequest.ProtoReflect.Descriptor instead. -func (*CreateProfileRequest) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{115} +// Deprecated: Use Provider_Definition.ProtoReflect.Descriptor instead. +func (*Provider_Definition) Descriptor() ([]byte, []int) { + return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{89, 1} } -func (x *CreateProfileRequest) GetProfile() *Profile { +func (x *Provider_Definition) GetRest() *RESTProviderConfig { if x != nil { - return x.Profile + return x.Rest } return nil } -type CreateProfileResponse struct { +func (x *Provider_Definition) GetGithub() *GitHubProviderConfig { + if x != nil { + return x.Github + } + return nil +} + +type DiffType_Ecosystem struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Profile *Profile `protobuf:"bytes,1,opt,name=profile,proto3" json:"profile,omitempty"` + // name is the name of the ecosystem. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // depfile is the file that contains the dependencies for this ecosystem + Depfile string `protobuf:"bytes,2,opt,name=depfile,proto3" json:"depfile,omitempty"` } -func (x *CreateProfileResponse) Reset() { - *x = CreateProfileResponse{} +func (x *DiffType_Ecosystem) Reset() { + *x = DiffType_Ecosystem{} if protoimpl.UnsafeEnabled { mi := &file_mediator_v1_mediator_proto_msgTypes[116] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -7279,13 +7126,13 @@ func (x *CreateProfileResponse) Reset() { } } -func (x *CreateProfileResponse) String() string { +func (x *DiffType_Ecosystem) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CreateProfileResponse) ProtoMessage() {} +func (*DiffType_Ecosystem) ProtoMessage() {} -func (x *CreateProfileResponse) ProtoReflect() protoreflect.Message { +func (x *DiffType_Ecosystem) ProtoReflect() protoreflect.Message { mi := &file_mediator_v1_mediator_proto_msgTypes[116] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -7297,31 +7144,46 @@ func (x *CreateProfileResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CreateProfileResponse.ProtoReflect.Descriptor instead. -func (*CreateProfileResponse) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{116} +// Deprecated: Use DiffType_Ecosystem.ProtoReflect.Descriptor instead. +func (*DiffType_Ecosystem) Descriptor() ([]byte, []int) { + return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{107, 0} } -func (x *CreateProfileResponse) GetProfile() *Profile { +func (x *DiffType_Ecosystem) GetName() string { if x != nil { - return x.Profile + return x.Name } - return nil + return "" } -type DeleteProfileRequest struct { +func (x *DiffType_Ecosystem) GetDepfile() string { + if x != nil { + return x.Depfile + } + return "" +} + +// Definition defines the rule type. It encompases the schema and the data evaluation. +type RuleType_Definition struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // context is the context in which the rule type is evaluated. - Context *Context `protobuf:"bytes,1,opt,name=context,proto3" json:"context,omitempty"` - // id is the id of the profile to delete - Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` + // in_entity is the entity in which the rule is evaluated. + // This can be repository, build_environment or artifact. + InEntity string `protobuf:"bytes,1,opt,name=in_entity,json=inEntity,proto3" json:"in_entity,omitempty"` + // rule_schema is the schema of the rule. This is expressed in JSON Schema. + RuleSchema *structpb.Struct `protobuf:"bytes,2,opt,name=rule_schema,json=ruleSchema,proto3" json:"rule_schema,omitempty"` + // param_schema is the schema of the parameters that are passed to the rule. + // This is expressed in JSON Schema. + ParamSchema *structpb.Struct `protobuf:"bytes,3,opt,name=param_schema,json=paramSchema,proto3,oneof" json:"param_schema,omitempty"` + Ingest *RuleType_Definition_Ingest `protobuf:"bytes,4,opt,name=ingest,proto3" json:"ingest,omitempty"` + Eval *RuleType_Definition_Eval `protobuf:"bytes,5,opt,name=eval,proto3" json:"eval,omitempty"` + Remediate *RuleType_Definition_Remediate `protobuf:"bytes,6,opt,name=remediate,proto3" json:"remediate,omitempty"` } -func (x *DeleteProfileRequest) Reset() { - *x = DeleteProfileRequest{} +func (x *RuleType_Definition) Reset() { + *x = RuleType_Definition{} if protoimpl.UnsafeEnabled { mi := &file_mediator_v1_mediator_proto_msgTypes[117] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -7329,13 +7191,13 @@ func (x *DeleteProfileRequest) Reset() { } } -func (x *DeleteProfileRequest) String() string { +func (x *RuleType_Definition) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DeleteProfileRequest) ProtoMessage() {} +func (*RuleType_Definition) ProtoMessage() {} -func (x *DeleteProfileRequest) ProtoReflect() protoreflect.Message { +func (x *RuleType_Definition) ProtoReflect() protoreflect.Message { mi := &file_mediator_v1_mediator_proto_msgTypes[117] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -7347,90 +7209,92 @@ func (x *DeleteProfileRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DeleteProfileRequest.ProtoReflect.Descriptor instead. -func (*DeleteProfileRequest) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{117} +// Deprecated: Use RuleType_Definition.ProtoReflect.Descriptor instead. +func (*RuleType_Definition) Descriptor() ([]byte, []int) { + return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{108, 0} } -func (x *DeleteProfileRequest) GetContext() *Context { +func (x *RuleType_Definition) GetInEntity() string { if x != nil { - return x.Context + return x.InEntity } - return nil + return "" } -func (x *DeleteProfileRequest) GetId() string { +func (x *RuleType_Definition) GetRuleSchema() *structpb.Struct { if x != nil { - return x.Id + return x.RuleSchema } - return "" -} - -type DeleteProfileResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields + return nil } -func (x *DeleteProfileResponse) Reset() { - *x = DeleteProfileResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[118] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *RuleType_Definition) GetParamSchema() *structpb.Struct { + if x != nil { + return x.ParamSchema } + return nil } -func (x *DeleteProfileResponse) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *RuleType_Definition) GetIngest() *RuleType_Definition_Ingest { + if x != nil { + return x.Ingest + } + return nil } -func (*DeleteProfileResponse) ProtoMessage() {} - -func (x *DeleteProfileResponse) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_proto_msgTypes[118] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *RuleType_Definition) GetEval() *RuleType_Definition_Eval { + if x != nil { + return x.Eval } - return mi.MessageOf(x) + return nil } -// Deprecated: Use DeleteProfileResponse.ProtoReflect.Descriptor instead. -func (*DeleteProfileResponse) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{118} +func (x *RuleType_Definition) GetRemediate() *RuleType_Definition_Remediate { + if x != nil { + return x.Remediate + } + return nil } -// list profiles -type ListProfilesRequest struct { +// Ingest defines how the data is ingested. +type RuleType_Definition_Ingest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // context is the context which contains the profiles - Context *Context `protobuf:"bytes,1,opt,name=context,proto3" json:"context,omitempty"` + // type is the type of the data ingestion. + // we currently support rest, artifact and builtin. + Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` + // rest is the rest data ingestion. + // this is only used if the type is rest. + Rest *RestType `protobuf:"bytes,3,opt,name=rest,proto3,oneof" json:"rest,omitempty"` + // builtin is the builtin data ingestion. + Builtin *BuiltinType `protobuf:"bytes,4,opt,name=builtin,proto3,oneof" json:"builtin,omitempty"` + // artifact is the artifact data ingestion. + Artifact *ArtifactType `protobuf:"bytes,5,opt,name=artifact,proto3,oneof" json:"artifact,omitempty"` + // git is the git data ingestion. + Git *GitType `protobuf:"bytes,6,opt,name=git,proto3,oneof" json:"git,omitempty"` + // diff is the diff data ingestion. + Diff *DiffType `protobuf:"bytes,7,opt,name=diff,proto3,oneof" json:"diff,omitempty"` } -func (x *ListProfilesRequest) Reset() { - *x = ListProfilesRequest{} +func (x *RuleType_Definition_Ingest) Reset() { + *x = RuleType_Definition_Ingest{} if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[119] + mi := &file_mediator_v1_mediator_proto_msgTypes[118] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ListProfilesRequest) String() string { +func (x *RuleType_Definition_Ingest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ListProfilesRequest) ProtoMessage() {} +func (*RuleType_Definition_Ingest) ProtoMessage() {} -func (x *ListProfilesRequest) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_proto_msgTypes[119] +func (x *RuleType_Definition_Ingest) ProtoReflect() protoreflect.Message { + mi := &file_mediator_v1_mediator_proto_msgTypes[118] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7441,43 +7305,91 @@ func (x *ListProfilesRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ListProfilesRequest.ProtoReflect.Descriptor instead. -func (*ListProfilesRequest) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{119} +// Deprecated: Use RuleType_Definition_Ingest.ProtoReflect.Descriptor instead. +func (*RuleType_Definition_Ingest) Descriptor() ([]byte, []int) { + return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{108, 0, 0} } -func (x *ListProfilesRequest) GetContext() *Context { +func (x *RuleType_Definition_Ingest) GetType() string { if x != nil { - return x.Context + return x.Type } - return nil + return "" } -type ListProfilesResponse struct { +func (x *RuleType_Definition_Ingest) GetRest() *RestType { + if x != nil { + return x.Rest + } + return nil +} + +func (x *RuleType_Definition_Ingest) GetBuiltin() *BuiltinType { + if x != nil { + return x.Builtin + } + return nil +} + +func (x *RuleType_Definition_Ingest) GetArtifact() *ArtifactType { + if x != nil { + return x.Artifact + } + return nil +} + +func (x *RuleType_Definition_Ingest) GetGit() *GitType { + if x != nil { + return x.Git + } + return nil +} + +func (x *RuleType_Definition_Ingest) GetDiff() *DiffType { + if x != nil { + return x.Diff + } + return nil +} + +// Eval defines the data evaluation definition. +// This pertains to the way we traverse data from the upstream +// endpoint and how we compare it to the rule. +type RuleType_Definition_Eval struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Profiles []*Profile `protobuf:"bytes,1,rep,name=profiles,proto3" json:"profiles,omitempty"` + // type is the type of the data evaluation. + // Right now only `jq` is supported as a driver + Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` + // jq is only used if the `jq` type is selected. + // It defines the comparisons that are made between + // the ingested data and the profile rule. + Jq []*RuleType_Definition_Eval_JQComparison `protobuf:"bytes,2,rep,name=jq,proto3" json:"jq,omitempty"` + // rego is only used if the `rego` type is selected. + Rego *RuleType_Definition_Eval_Rego `protobuf:"bytes,3,opt,name=rego,proto3,oneof" json:"rego,omitempty"` + // vulncheck is only used if the `vulncheck` type is selected. + Vulncheck *RuleType_Definition_Eval_Vulncheck `protobuf:"bytes,4,opt,name=vulncheck,proto3,oneof" json:"vulncheck,omitempty"` } -func (x *ListProfilesResponse) Reset() { - *x = ListProfilesResponse{} +func (x *RuleType_Definition_Eval) Reset() { + *x = RuleType_Definition_Eval{} if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[120] + mi := &file_mediator_v1_mediator_proto_msgTypes[119] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ListProfilesResponse) String() string { +func (x *RuleType_Definition_Eval) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ListProfilesResponse) ProtoMessage() {} +func (*RuleType_Definition_Eval) ProtoMessage() {} -func (x *ListProfilesResponse) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_proto_msgTypes[120] +func (x *RuleType_Definition_Eval) ProtoReflect() protoreflect.Message { + mi := &file_mediator_v1_mediator_proto_msgTypes[119] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7488,47 +7400,65 @@ func (x *ListProfilesResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ListProfilesResponse.ProtoReflect.Descriptor instead. -func (*ListProfilesResponse) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{120} +// Deprecated: Use RuleType_Definition_Eval.ProtoReflect.Descriptor instead. +func (*RuleType_Definition_Eval) Descriptor() ([]byte, []int) { + return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{108, 0, 1} } -func (x *ListProfilesResponse) GetProfiles() []*Profile { +func (x *RuleType_Definition_Eval) GetType() string { if x != nil { - return x.Profiles + return x.Type + } + return "" +} + +func (x *RuleType_Definition_Eval) GetJq() []*RuleType_Definition_Eval_JQComparison { + if x != nil { + return x.Jq } return nil } -// get profile by id -type GetProfileByIdRequest struct { +func (x *RuleType_Definition_Eval) GetRego() *RuleType_Definition_Eval_Rego { + if x != nil { + return x.Rego + } + return nil +} + +func (x *RuleType_Definition_Eval) GetVulncheck() *RuleType_Definition_Eval_Vulncheck { + if x != nil { + return x.Vulncheck + } + return nil +} + +type RuleType_Definition_Remediate struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // context is the context which contains the profiles - Context *Context `protobuf:"bytes,1,opt,name=context,proto3" json:"context,omitempty"` - // id is the id of the profile to get - Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` + Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` + Rest *RestType `protobuf:"bytes,2,opt,name=rest,proto3,oneof" json:"rest,omitempty"` } -func (x *GetProfileByIdRequest) Reset() { - *x = GetProfileByIdRequest{} +func (x *RuleType_Definition_Remediate) Reset() { + *x = RuleType_Definition_Remediate{} if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[121] + mi := &file_mediator_v1_mediator_proto_msgTypes[120] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetProfileByIdRequest) String() string { +func (x *RuleType_Definition_Remediate) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetProfileByIdRequest) ProtoMessage() {} +func (*RuleType_Definition_Remediate) ProtoMessage() {} -func (x *GetProfileByIdRequest) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_proto_msgTypes[121] +func (x *RuleType_Definition_Remediate) ProtoReflect() protoreflect.Message { + mi := &file_mediator_v1_mediator_proto_msgTypes[120] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7539,50 +7469,53 @@ func (x *GetProfileByIdRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetProfileByIdRequest.ProtoReflect.Descriptor instead. -func (*GetProfileByIdRequest) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{121} +// Deprecated: Use RuleType_Definition_Remediate.ProtoReflect.Descriptor instead. +func (*RuleType_Definition_Remediate) Descriptor() ([]byte, []int) { + return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{108, 0, 2} } -func (x *GetProfileByIdRequest) GetContext() *Context { +func (x *RuleType_Definition_Remediate) GetType() string { if x != nil { - return x.Context + return x.Type } - return nil + return "" } -func (x *GetProfileByIdRequest) GetId() string { +func (x *RuleType_Definition_Remediate) GetRest() *RestType { if x != nil { - return x.Id + return x.Rest } - return "" + return nil } -type GetProfileByIdResponse struct { +type RuleType_Definition_Eval_JQComparison struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Profile *Profile `protobuf:"bytes,1,opt,name=profile,proto3" json:"profile,omitempty"` + // Ingested points to the data retrieved in the `ingest` section + Ingested *RuleType_Definition_Eval_JQComparison_Operator `protobuf:"bytes,1,opt,name=ingested,proto3" json:"ingested,omitempty"` + // Profile points to the profile itself. + Profile *RuleType_Definition_Eval_JQComparison_Operator `protobuf:"bytes,2,opt,name=profile,proto3" json:"profile,omitempty"` } -func (x *GetProfileByIdResponse) Reset() { - *x = GetProfileByIdResponse{} +func (x *RuleType_Definition_Eval_JQComparison) Reset() { + *x = RuleType_Definition_Eval_JQComparison{} if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[122] + mi := &file_mediator_v1_mediator_proto_msgTypes[121] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetProfileByIdResponse) String() string { +func (x *RuleType_Definition_Eval_JQComparison) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetProfileByIdResponse) ProtoMessage() {} +func (*RuleType_Definition_Eval_JQComparison) ProtoMessage() {} -func (x *GetProfileByIdResponse) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_proto_msgTypes[122] +func (x *RuleType_Definition_Eval_JQComparison) ProtoReflect() protoreflect.Message { + mi := &file_mediator_v1_mediator_proto_msgTypes[121] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7593,51 +7526,62 @@ func (x *GetProfileByIdResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetProfileByIdResponse.ProtoReflect.Descriptor instead. -func (*GetProfileByIdResponse) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{122} +// Deprecated: Use RuleType_Definition_Eval_JQComparison.ProtoReflect.Descriptor instead. +func (*RuleType_Definition_Eval_JQComparison) Descriptor() ([]byte, []int) { + return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{108, 0, 1, 0} } -func (x *GetProfileByIdResponse) GetProfile() *Profile { +func (x *RuleType_Definition_Eval_JQComparison) GetIngested() *RuleType_Definition_Eval_JQComparison_Operator { + if x != nil { + return x.Ingested + } + return nil +} + +func (x *RuleType_Definition_Eval_JQComparison) GetProfile() *RuleType_Definition_Eval_JQComparison_Operator { if x != nil { return x.Profile } return nil } -// get the overall profile status -type ProfileStatus struct { +type RuleType_Definition_Eval_Rego struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // profile_id is the id of the profile - ProfileId string `protobuf:"bytes,1,opt,name=profile_id,json=profileId,proto3" json:"profile_id,omitempty"` - // profile_name is the name of the profile - ProfileName string `protobuf:"bytes,2,opt,name=profile_name,json=profileName,proto3" json:"profile_name,omitempty"` - // profile_status is the status of the profile - ProfileStatus string `protobuf:"bytes,3,opt,name=profile_status,json=profileStatus,proto3" json:"profile_status,omitempty"` - // last_updated is the last time the profile was updated - LastUpdated *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=last_updated,json=lastUpdated,proto3" json:"last_updated,omitempty"` + // type is the type of evaluation engine to use + // for rego. We currently have two modes of operation: + // - deny-by-default: this is the default mode of operation + // where we deny access by default and allow access only + // if the profile explicitly allows it. It expects the + // profile to set an `allow` variable to true or false. + // - constraints: this is the mode of operation where we + // allow access by default and deny access only if a + // violation is found. It expects the profile to set a + // `violations` variable with a "msg" field. + Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` + // def is the definition of the rego profile. + Def string `protobuf:"bytes,2,opt,name=def,proto3" json:"def,omitempty"` } -func (x *ProfileStatus) Reset() { - *x = ProfileStatus{} +func (x *RuleType_Definition_Eval_Rego) Reset() { + *x = RuleType_Definition_Eval_Rego{} if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[123] + mi := &file_mediator_v1_mediator_proto_msgTypes[122] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ProfileStatus) String() string { +func (x *RuleType_Definition_Eval_Rego) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ProfileStatus) ProtoMessage() {} +func (*RuleType_Definition_Eval_Rego) ProtoMessage() {} -func (x *ProfileStatus) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_proto_msgTypes[123] +func (x *RuleType_Definition_Eval_Rego) ProtoReflect() protoreflect.Message { + mi := &file_mediator_v1_mediator_proto_msgTypes[122] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7648,88 +7592,53 @@ func (x *ProfileStatus) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ProfileStatus.ProtoReflect.Descriptor instead. -func (*ProfileStatus) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{123} +// Deprecated: Use RuleType_Definition_Eval_Rego.ProtoReflect.Descriptor instead. +func (*RuleType_Definition_Eval_Rego) Descriptor() ([]byte, []int) { + return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{108, 0, 1, 1} } -func (x *ProfileStatus) GetProfileId() string { +func (x *RuleType_Definition_Eval_Rego) GetType() string { if x != nil { - return x.ProfileId + return x.Type } return "" } -func (x *ProfileStatus) GetProfileName() string { +func (x *RuleType_Definition_Eval_Rego) GetDef() string { if x != nil { - return x.ProfileName + return x.Def } return "" } -func (x *ProfileStatus) GetProfileStatus() string { - if x != nil { - return x.ProfileStatus - } - return "" +type RuleType_Definition_Eval_Vulncheck struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // db is the database to use for the vulncheck, e.g. OSV + Db string `protobuf:"bytes,1,opt,name=db,proto3" json:"db,omitempty"` + // e.g. https://api.osv.dev/v1/query + Endpoint string `protobuf:"bytes,2,opt,name=endpoint,proto3" json:"endpoint,omitempty"` } -func (x *ProfileStatus) GetLastUpdated() *timestamppb.Timestamp { - if x != nil { - return x.LastUpdated +func (x *RuleType_Definition_Eval_Vulncheck) Reset() { + *x = RuleType_Definition_Eval_Vulncheck{} + if protoimpl.UnsafeEnabled { + mi := &file_mediator_v1_mediator_proto_msgTypes[123] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -// get the status of the rules for a given profile -type RuleEvaluationStatus struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *RuleType_Definition_Eval_Vulncheck) String() string { + return protoimpl.X.MessageStringOf(x) +} - // profile_id is the id of the profile - ProfileId string `protobuf:"bytes,1,opt,name=profile_id,json=profileId,proto3" json:"profile_id,omitempty"` - // rule_id is the id of the rule - RuleId string `protobuf:"bytes,2,opt,name=rule_id,json=ruleId,proto3" json:"rule_id,omitempty"` - // rule_name is the name of the rule - RuleName string `protobuf:"bytes,3,opt,name=rule_name,json=ruleName,proto3" json:"rule_name,omitempty"` - // entity is the entity that was evaluated - Entity string `protobuf:"bytes,4,opt,name=entity,proto3" json:"entity,omitempty"` - // status is the status of the evaluation - Status string `protobuf:"bytes,5,opt,name=status,proto3" json:"status,omitempty"` - // last_updated is the last time the profile was updated - LastUpdated *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=last_updated,json=lastUpdated,proto3" json:"last_updated,omitempty"` - // entity_info is the information about the entity - EntityInfo map[string]string `protobuf:"bytes,7,rep,name=entity_info,json=entityInfo,proto3" json:"entity_info,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - // details is the description of the evaluation if any - Details string `protobuf:"bytes,8,opt,name=details,proto3" json:"details,omitempty"` - // guidance is the guidance for the evaluation if any - Guidance string `protobuf:"bytes,9,opt,name=guidance,proto3" json:"guidance,omitempty"` - // remediation_status is the status of the remediation - RemediationStatus string `protobuf:"bytes,10,opt,name=remediation_status,json=remediationStatus,proto3" json:"remediation_status,omitempty"` - // remediation_last_updated is the last time the remediation was performed or attempted - RemediationLastUpdated *timestamppb.Timestamp `protobuf:"bytes,11,opt,name=remediation_last_updated,json=remediationLastUpdated,proto3,oneof" json:"remediation_last_updated,omitempty"` - // remediation_details is the description of the remediation attempt if any - RemediationDetails string `protobuf:"bytes,12,opt,name=remediation_details,json=remediationDetails,proto3" json:"remediation_details,omitempty"` -} - -func (x *RuleEvaluationStatus) Reset() { - *x = RuleEvaluationStatus{} - if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[124] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *RuleEvaluationStatus) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RuleEvaluationStatus) ProtoMessage() {} +func (*RuleType_Definition_Eval_Vulncheck) ProtoMessage() {} -func (x *RuleEvaluationStatus) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_proto_msgTypes[124] +func (x *RuleType_Definition_Eval_Vulncheck) ProtoReflect() protoreflect.Message { + mi := &file_mediator_v1_mediator_proto_msgTypes[123] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7740,126 +7649,50 @@ func (x *RuleEvaluationStatus) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RuleEvaluationStatus.ProtoReflect.Descriptor instead. -func (*RuleEvaluationStatus) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{124} -} - -func (x *RuleEvaluationStatus) GetProfileId() string { - if x != nil { - return x.ProfileId - } - return "" -} - -func (x *RuleEvaluationStatus) GetRuleId() string { - if x != nil { - return x.RuleId - } - return "" -} - -func (x *RuleEvaluationStatus) GetRuleName() string { - if x != nil { - return x.RuleName - } - return "" -} - -func (x *RuleEvaluationStatus) GetEntity() string { - if x != nil { - return x.Entity - } - return "" -} - -func (x *RuleEvaluationStatus) GetStatus() string { - if x != nil { - return x.Status - } - return "" -} - -func (x *RuleEvaluationStatus) GetLastUpdated() *timestamppb.Timestamp { - if x != nil { - return x.LastUpdated - } - return nil -} - -func (x *RuleEvaluationStatus) GetEntityInfo() map[string]string { - if x != nil { - return x.EntityInfo - } - return nil -} - -func (x *RuleEvaluationStatus) GetDetails() string { - if x != nil { - return x.Details - } - return "" -} - -func (x *RuleEvaluationStatus) GetGuidance() string { - if x != nil { - return x.Guidance - } - return "" +// Deprecated: Use RuleType_Definition_Eval_Vulncheck.ProtoReflect.Descriptor instead. +func (*RuleType_Definition_Eval_Vulncheck) Descriptor() ([]byte, []int) { + return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{108, 0, 1, 2} } -func (x *RuleEvaluationStatus) GetRemediationStatus() string { +func (x *RuleType_Definition_Eval_Vulncheck) GetDb() string { if x != nil { - return x.RemediationStatus + return x.Db } return "" } -func (x *RuleEvaluationStatus) GetRemediationLastUpdated() *timestamppb.Timestamp { - if x != nil { - return x.RemediationLastUpdated - } - return nil -} - -func (x *RuleEvaluationStatus) GetRemediationDetails() string { +func (x *RuleType_Definition_Eval_Vulncheck) GetEndpoint() string { if x != nil { - return x.RemediationDetails + return x.Endpoint } return "" } -type GetProfileStatusByNameRequest struct { +type RuleType_Definition_Eval_JQComparison_Operator struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // context is the context in which the rule type is evaluated. - Context *Context `protobuf:"bytes,1,opt,name=context,proto3" json:"context,omitempty"` - // name is the name of the profile to get - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - Entity *GetProfileStatusByNameRequest_EntityTypedId `protobuf:"bytes,3,opt,name=entity,proto3" json:"entity,omitempty"` - All bool `protobuf:"varint,4,opt,name=all,proto3" json:"all,omitempty"` - Rule string `protobuf:"bytes,5,opt,name=rule,proto3" json:"rule,omitempty"` + Def string `protobuf:"bytes,1,opt,name=def,proto3" json:"def,omitempty"` } -func (x *GetProfileStatusByNameRequest) Reset() { - *x = GetProfileStatusByNameRequest{} +func (x *RuleType_Definition_Eval_JQComparison_Operator) Reset() { + *x = RuleType_Definition_Eval_JQComparison_Operator{} if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[125] + mi := &file_mediator_v1_mediator_proto_msgTypes[124] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetProfileStatusByNameRequest) String() string { +func (x *RuleType_Definition_Eval_JQComparison_Operator) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetProfileStatusByNameRequest) ProtoMessage() {} +func (*RuleType_Definition_Eval_JQComparison_Operator) ProtoMessage() {} -func (x *GetProfileStatusByNameRequest) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_proto_msgTypes[125] +func (x *RuleType_Definition_Eval_JQComparison_Operator) ProtoReflect() protoreflect.Message { + mi := &file_mediator_v1_mediator_proto_msgTypes[124] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7870,74 +7703,51 @@ func (x *GetProfileStatusByNameRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetProfileStatusByNameRequest.ProtoReflect.Descriptor instead. -func (*GetProfileStatusByNameRequest) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{125} -} - -func (x *GetProfileStatusByNameRequest) GetContext() *Context { - if x != nil { - return x.Context - } - return nil -} - -func (x *GetProfileStatusByNameRequest) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -func (x *GetProfileStatusByNameRequest) GetEntity() *GetProfileStatusByNameRequest_EntityTypedId { - if x != nil { - return x.Entity - } - return nil -} - -func (x *GetProfileStatusByNameRequest) GetAll() bool { - if x != nil { - return x.All - } - return false +// Deprecated: Use RuleType_Definition_Eval_JQComparison_Operator.ProtoReflect.Descriptor instead. +func (*RuleType_Definition_Eval_JQComparison_Operator) Descriptor() ([]byte, []int) { + return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{108, 0, 1, 0, 0} } -func (x *GetProfileStatusByNameRequest) GetRule() string { +func (x *RuleType_Definition_Eval_JQComparison_Operator) GetDef() string { if x != nil { - return x.Rule + return x.Def } return "" } -type GetProfileStatusByNameResponse struct { +// Rule defines the individual call of a certain rule type. +type Profile_Rule struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // profile_status is the status of the profile - ProfileStatus *ProfileStatus `protobuf:"bytes,1,opt,name=profile_status,json=profileStatus,proto3" json:"profile_status,omitempty"` - // rule_evaluation_status is the status of the rules - RuleEvaluationStatus []*RuleEvaluationStatus `protobuf:"bytes,2,rep,name=rule_evaluation_status,json=ruleEvaluationStatus,proto3" json:"rule_evaluation_status,omitempty"` + // type is the type of the rule to be instantiated. + Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` + // params are the parameters that are passed to the rule. + // This is optional and depends on the rule type. + Params *structpb.Struct `protobuf:"bytes,2,opt,name=params,proto3" json:"params,omitempty"` + // def is the definition of the rule. + // This depends on the rule type. + Def *structpb.Struct `protobuf:"bytes,3,opt,name=def,proto3" json:"def,omitempty"` } -func (x *GetProfileStatusByNameResponse) Reset() { - *x = GetProfileStatusByNameResponse{} +func (x *Profile_Rule) Reset() { + *x = Profile_Rule{} if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[126] + mi := &file_mediator_v1_mediator_proto_msgTypes[125] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetProfileStatusByNameResponse) String() string { +func (x *Profile_Rule) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetProfileStatusByNameResponse) ProtoMessage() {} +func (*Profile_Rule) ProtoMessage() {} -func (x *GetProfileStatusByNameResponse) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_proto_msgTypes[126] +func (x *Profile_Rule) ProtoReflect() protoreflect.Message { + mi := &file_mediator_v1_mediator_proto_msgTypes[125] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7948,5625 +7758,1733 @@ func (x *GetProfileStatusByNameResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetProfileStatusByNameResponse.ProtoReflect.Descriptor instead. -func (*GetProfileStatusByNameResponse) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{126} +// Deprecated: Use Profile_Rule.ProtoReflect.Descriptor instead. +func (*Profile_Rule) Descriptor() ([]byte, []int) { + return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{109, 0} } -func (x *GetProfileStatusByNameResponse) GetProfileStatus() *ProfileStatus { +func (x *Profile_Rule) GetType() string { if x != nil { - return x.ProfileStatus + return x.Type } - return nil + return "" } -func (x *GetProfileStatusByNameResponse) GetRuleEvaluationStatus() []*RuleEvaluationStatus { +func (x *Profile_Rule) GetParams() *structpb.Struct { if x != nil { - return x.RuleEvaluationStatus + return x.Params } return nil } -type GetProfileStatusByProjectRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // context is the context in which the rule type is evaluated. - Context *Context `protobuf:"bytes,1,opt,name=context,proto3" json:"context,omitempty"` -} - -func (x *GetProfileStatusByProjectRequest) Reset() { - *x = GetProfileStatusByProjectRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[127] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *Profile_Rule) GetDef() *structpb.Struct { + if x != nil { + return x.Def } + return nil } -func (x *GetProfileStatusByProjectRequest) String() string { - return protoimpl.X.MessageStringOf(x) +var file_mediator_v1_mediator_proto_extTypes = []protoimpl.ExtensionInfo{ + { + ExtendedType: (*descriptorpb.MethodOptions)(nil), + ExtensionType: (*RpcOptions)(nil), + Field: 51077, + Name: "mediator.v1.rpc_options", + Tag: "bytes,51077,opt,name=rpc_options", + Filename: "mediator/v1/mediator.proto", + }, } -func (*GetProfileStatusByProjectRequest) ProtoMessage() {} - -func (x *GetProfileStatusByProjectRequest) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_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 GetProfileStatusByProjectRequest.ProtoReflect.Descriptor instead. -func (*GetProfileStatusByProjectRequest) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{127} -} - -func (x *GetProfileStatusByProjectRequest) GetContext() *Context { - if x != nil { - return x.Context - } - return nil -} - -type GetProfileStatusByProjectResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // profile_status is the status of the profile - ProfileStatus []*ProfileStatus `protobuf:"bytes,1,rep,name=profile_status,json=profileStatus,proto3" json:"profile_status,omitempty"` -} - -func (x *GetProfileStatusByProjectResponse) Reset() { - *x = GetProfileStatusByProjectResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[128] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetProfileStatusByProjectResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetProfileStatusByProjectResponse) ProtoMessage() {} - -func (x *GetProfileStatusByProjectResponse) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_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 GetProfileStatusByProjectResponse.ProtoReflect.Descriptor instead. -func (*GetProfileStatusByProjectResponse) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{128} -} - -func (x *GetProfileStatusByProjectResponse) GetProfileStatus() []*ProfileStatus { - if x != nil { - return x.ProfileStatus - } - return nil -} - -type GetPublicKeyRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - KeyIdentifier string `protobuf:"bytes,1,opt,name=key_identifier,json=keyIdentifier,proto3" json:"key_identifier,omitempty"` -} - -func (x *GetPublicKeyRequest) Reset() { - *x = GetPublicKeyRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[129] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetPublicKeyRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetPublicKeyRequest) ProtoMessage() {} - -func (x *GetPublicKeyRequest) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_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 GetPublicKeyRequest.ProtoReflect.Descriptor instead. -func (*GetPublicKeyRequest) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{129} -} - -func (x *GetPublicKeyRequest) GetKeyIdentifier() string { - if x != nil { - return x.KeyIdentifier - } - return "" -} - -type GetPublicKeyResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - PublicKey string `protobuf:"bytes,1,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"` -} - -func (x *GetPublicKeyResponse) Reset() { - *x = GetPublicKeyResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[130] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetPublicKeyResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetPublicKeyResponse) ProtoMessage() {} - -func (x *GetPublicKeyResponse) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_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 GetPublicKeyResponse.ProtoReflect.Descriptor instead. -func (*GetPublicKeyResponse) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{130} -} - -func (x *GetPublicKeyResponse) GetPublicKey() string { - if x != nil { - return x.PublicKey - } - return "" -} - -type CreateKeyPairRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Passphrase string `protobuf:"bytes,1,opt,name=passphrase,proto3" json:"passphrase,omitempty"` - ProjectId string `protobuf:"bytes,2,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` -} - -func (x *CreateKeyPairRequest) Reset() { - *x = CreateKeyPairRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[131] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CreateKeyPairRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CreateKeyPairRequest) ProtoMessage() {} - -func (x *CreateKeyPairRequest) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_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 CreateKeyPairRequest.ProtoReflect.Descriptor instead. -func (*CreateKeyPairRequest) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{131} -} - -func (x *CreateKeyPairRequest) GetPassphrase() string { - if x != nil { - return x.Passphrase - } - return "" -} - -func (x *CreateKeyPairRequest) GetProjectId() string { - if x != nil { - return x.ProjectId - } - return "" -} - -type CreateKeyPairResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - KeyIdentifier string `protobuf:"bytes,1,opt,name=key_identifier,json=keyIdentifier,proto3" json:"key_identifier,omitempty"` - PublicKey string `protobuf:"bytes,2,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"` -} - -func (x *CreateKeyPairResponse) Reset() { - *x = CreateKeyPairResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[132] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CreateKeyPairResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CreateKeyPairResponse) ProtoMessage() {} - -func (x *CreateKeyPairResponse) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_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 CreateKeyPairResponse.ProtoReflect.Descriptor instead. -func (*CreateKeyPairResponse) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{132} -} +// Extension fields to descriptorpb.MethodOptions. +var ( + // optional mediator.v1.RpcOptions rpc_options = 51077; + E_RpcOptions = &file_mediator_v1_mediator_proto_extTypes[0] +) -func (x *CreateKeyPairResponse) GetKeyIdentifier() string { - if x != nil { - return x.KeyIdentifier - } - return "" -} +var File_mediator_v1_mediator_proto protoreflect.FileDescriptor -func (x *CreateKeyPairResponse) GetPublicKey() string { - if x != nil { - return x.PublicKey - } - return "" -} - -// RESTProviderConfig contains the configuration for the REST provider. -type RESTProviderConfig struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // base_url is the base URL for the REST provider. - BaseUrl string `protobuf:"bytes,1,opt,name=base_url,json=baseUrl,proto3" json:"base_url,omitempty"` -} - -func (x *RESTProviderConfig) Reset() { - *x = RESTProviderConfig{} - if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[133] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *RESTProviderConfig) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RESTProviderConfig) ProtoMessage() {} - -func (x *RESTProviderConfig) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_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 RESTProviderConfig.ProtoReflect.Descriptor instead. -func (*RESTProviderConfig) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{133} -} - -func (x *RESTProviderConfig) GetBaseUrl() string { - if x != nil { - return x.BaseUrl - } - return "" -} - -// GitHubProviderConfig contains the configuration for the GitHub client -// -// Endpoint: is the GitHub API endpoint -// -// If using the public GitHub API, Endpoint can be left blank -// disable revive linting for this struct as there is nothing wrong with the -// naming convention -type GitHubProviderConfig struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Endpoint is the GitHub API endpoint. If using the public GitHub API, Endpoint can be left blank. - Endpoint string `protobuf:"bytes,1,opt,name=endpoint,proto3" json:"endpoint,omitempty"` -} - -func (x *GitHubProviderConfig) Reset() { - *x = GitHubProviderConfig{} - if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[134] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GitHubProviderConfig) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GitHubProviderConfig) ProtoMessage() {} - -func (x *GitHubProviderConfig) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_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 GitHubProviderConfig.ProtoReflect.Descriptor instead. -func (*GitHubProviderConfig) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{134} -} - -func (x *GitHubProviderConfig) GetEndpoint() string { - if x != nil { - return x.Endpoint - } - return "" -} - -// Provider defines a provider that is used to connect to a certain service. -// This is used to define the context in which a rule is evaluated and serves -// as a data ingestion point. They are top level entities and are scoped to -// an organization. -type Provider struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Context *Provider_Context `protobuf:"bytes,2,opt,name=context,proto3" json:"context,omitempty"` - // Version defines the version of the provider. Currently only v1 is supported. - Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"` - // Implements defines the provider types that this provider implements. - // This is used to determine the interface to use to interact with the provider. - // This is a required field and must be set. - // currently, the following interfaces are supported: - // - rest - // - github - // - git - Implements []string `protobuf:"bytes,4,rep,name=implements,proto3" json:"implements,omitempty"` - Def *Provider_Definition `protobuf:"bytes,5,opt,name=def,proto3" json:"def,omitempty"` -} - -func (x *Provider) Reset() { - *x = Provider{} - if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[135] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Provider) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Provider) ProtoMessage() {} - -func (x *Provider) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_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 Provider.ProtoReflect.Descriptor instead. -func (*Provider) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{135} -} - -func (x *Provider) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -func (x *Provider) GetContext() *Provider_Context { - if x != nil { - return x.Context - } - return nil -} - -func (x *Provider) GetVersion() string { - if x != nil { - return x.Version - } - return "" -} - -func (x *Provider) GetImplements() []string { - if x != nil { - return x.Implements - } - return nil -} - -func (x *Provider) GetDef() *Provider_Definition { - if x != nil { - return x.Def - } - return nil -} - -// Context defines the context in which a rule is evaluated. -// this normally refers to a combination of the provider, organization and project. -type Context struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Provider string `protobuf:"bytes,1,opt,name=provider,proto3" json:"provider,omitempty"` - Organization *string `protobuf:"bytes,2,opt,name=organization,proto3,oneof" json:"organization,omitempty"` - Project *string `protobuf:"bytes,3,opt,name=project,proto3,oneof" json:"project,omitempty"` -} - -func (x *Context) Reset() { - *x = Context{} - if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[136] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Context) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Context) ProtoMessage() {} - -func (x *Context) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_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 Context.ProtoReflect.Descriptor instead. -func (*Context) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{136} -} - -func (x *Context) GetProvider() string { - if x != nil { - return x.Provider - } - return "" -} - -func (x *Context) GetOrganization() string { - if x != nil && x.Organization != nil { - return *x.Organization - } - return "" -} - -func (x *Context) GetProject() string { - if x != nil && x.Project != nil { - return *x.Project - } - return "" -} - -// ListRuleTypesRequest is the request to list rule types. -type ListRuleTypesRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // context is the context in which the rule types are evaluated. - Context *Context `protobuf:"bytes,1,opt,name=context,proto3" json:"context,omitempty"` -} - -func (x *ListRuleTypesRequest) Reset() { - *x = ListRuleTypesRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[137] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ListRuleTypesRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ListRuleTypesRequest) ProtoMessage() {} - -func (x *ListRuleTypesRequest) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_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 ListRuleTypesRequest.ProtoReflect.Descriptor instead. -func (*ListRuleTypesRequest) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{137} -} - -func (x *ListRuleTypesRequest) GetContext() *Context { - if x != nil { - return x.Context - } - return nil -} - -// ListRuleTypesResponse is the response to list rule types. -type ListRuleTypesResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // rule_types is the list of rule types. - RuleTypes []*RuleType `protobuf:"bytes,1,rep,name=rule_types,json=ruleTypes,proto3" json:"rule_types,omitempty"` -} - -func (x *ListRuleTypesResponse) Reset() { - *x = ListRuleTypesResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[138] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ListRuleTypesResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ListRuleTypesResponse) ProtoMessage() {} - -func (x *ListRuleTypesResponse) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_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 ListRuleTypesResponse.ProtoReflect.Descriptor instead. -func (*ListRuleTypesResponse) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{138} -} - -func (x *ListRuleTypesResponse) GetRuleTypes() []*RuleType { - if x != nil { - return x.RuleTypes - } - return nil -} - -// GetRuleTypeByNameRequest is the request to get a rule type by name. -type GetRuleTypeByNameRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // context is the context in which the rule type is evaluated. - Context *Context `protobuf:"bytes,1,opt,name=context,proto3" json:"context,omitempty"` - // name is the name of the rule type. - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` -} - -func (x *GetRuleTypeByNameRequest) Reset() { - *x = GetRuleTypeByNameRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[139] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetRuleTypeByNameRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetRuleTypeByNameRequest) ProtoMessage() {} - -func (x *GetRuleTypeByNameRequest) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_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 GetRuleTypeByNameRequest.ProtoReflect.Descriptor instead. -func (*GetRuleTypeByNameRequest) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{139} -} - -func (x *GetRuleTypeByNameRequest) GetContext() *Context { - if x != nil { - return x.Context - } - return nil -} - -func (x *GetRuleTypeByNameRequest) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -// GetRuleTypeByNameResponse is the response to get a rule type by name. -type GetRuleTypeByNameResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // rule_type is the rule type. - RuleType *RuleType `protobuf:"bytes,1,opt,name=rule_type,json=ruleType,proto3" json:"rule_type,omitempty"` -} - -func (x *GetRuleTypeByNameResponse) Reset() { - *x = GetRuleTypeByNameResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[140] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetRuleTypeByNameResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetRuleTypeByNameResponse) ProtoMessage() {} - -func (x *GetRuleTypeByNameResponse) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_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 GetRuleTypeByNameResponse.ProtoReflect.Descriptor instead. -func (*GetRuleTypeByNameResponse) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{140} -} - -func (x *GetRuleTypeByNameResponse) GetRuleType() *RuleType { - if x != nil { - return x.RuleType - } - return nil -} - -// GetRuleTypeByIdRequest is the request to get a rule type by id. -type GetRuleTypeByIdRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // context is the context in which the rule type is evaluated. - Context *Context `protobuf:"bytes,1,opt,name=context,proto3" json:"context,omitempty"` - // id is the id of the rule type. - Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` -} - -func (x *GetRuleTypeByIdRequest) Reset() { - *x = GetRuleTypeByIdRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[141] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetRuleTypeByIdRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetRuleTypeByIdRequest) ProtoMessage() {} - -func (x *GetRuleTypeByIdRequest) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_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 GetRuleTypeByIdRequest.ProtoReflect.Descriptor instead. -func (*GetRuleTypeByIdRequest) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{141} -} - -func (x *GetRuleTypeByIdRequest) GetContext() *Context { - if x != nil { - return x.Context - } - return nil -} - -func (x *GetRuleTypeByIdRequest) GetId() string { - if x != nil { - return x.Id - } - return "" -} - -// GetRuleTypeByIdResponse is the response to get a rule type by id. -type GetRuleTypeByIdResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // rule_type is the rule type. - RuleType *RuleType `protobuf:"bytes,1,opt,name=rule_type,json=ruleType,proto3" json:"rule_type,omitempty"` -} - -func (x *GetRuleTypeByIdResponse) Reset() { - *x = GetRuleTypeByIdResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[142] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetRuleTypeByIdResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetRuleTypeByIdResponse) ProtoMessage() {} - -func (x *GetRuleTypeByIdResponse) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_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 GetRuleTypeByIdResponse.ProtoReflect.Descriptor instead. -func (*GetRuleTypeByIdResponse) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{142} -} - -func (x *GetRuleTypeByIdResponse) GetRuleType() *RuleType { - if x != nil { - return x.RuleType - } - return nil -} - -// CreateRuleTypeRequest is the request to create a rule type. -type CreateRuleTypeRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // rule_type is the rule type to be created. - RuleType *RuleType `protobuf:"bytes,1,opt,name=rule_type,json=ruleType,proto3" json:"rule_type,omitempty"` -} - -func (x *CreateRuleTypeRequest) Reset() { - *x = CreateRuleTypeRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[143] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CreateRuleTypeRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CreateRuleTypeRequest) ProtoMessage() {} - -func (x *CreateRuleTypeRequest) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_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 CreateRuleTypeRequest.ProtoReflect.Descriptor instead. -func (*CreateRuleTypeRequest) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{143} -} - -func (x *CreateRuleTypeRequest) GetRuleType() *RuleType { - if x != nil { - return x.RuleType - } - return nil -} - -// CreateRuleTypeResponse is the response to create a rule type. -type CreateRuleTypeResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // rule_type is the rule type that was created. - RuleType *RuleType `protobuf:"bytes,1,opt,name=rule_type,json=ruleType,proto3" json:"rule_type,omitempty"` -} - -func (x *CreateRuleTypeResponse) Reset() { - *x = CreateRuleTypeResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[144] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CreateRuleTypeResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CreateRuleTypeResponse) ProtoMessage() {} - -func (x *CreateRuleTypeResponse) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_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 CreateRuleTypeResponse.ProtoReflect.Descriptor instead. -func (*CreateRuleTypeResponse) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{144} -} - -func (x *CreateRuleTypeResponse) GetRuleType() *RuleType { - if x != nil { - return x.RuleType - } - return nil -} - -// UpdateRuleTypeRequest is the request to update a rule type. -type UpdateRuleTypeRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // rule_type is the rule type to be updated. - RuleType *RuleType `protobuf:"bytes,2,opt,name=rule_type,json=ruleType,proto3" json:"rule_type,omitempty"` -} - -func (x *UpdateRuleTypeRequest) Reset() { - *x = UpdateRuleTypeRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[145] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *UpdateRuleTypeRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UpdateRuleTypeRequest) ProtoMessage() {} - -func (x *UpdateRuleTypeRequest) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_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 UpdateRuleTypeRequest.ProtoReflect.Descriptor instead. -func (*UpdateRuleTypeRequest) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{145} -} - -func (x *UpdateRuleTypeRequest) GetRuleType() *RuleType { - if x != nil { - return x.RuleType - } - return nil -} - -// UpdateRuleTypeResponse is the response to update a rule type. -type UpdateRuleTypeResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // rule_type is the rule type that was updated. - RuleType *RuleType `protobuf:"bytes,1,opt,name=rule_type,json=ruleType,proto3" json:"rule_type,omitempty"` -} - -func (x *UpdateRuleTypeResponse) Reset() { - *x = UpdateRuleTypeResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[146] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *UpdateRuleTypeResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UpdateRuleTypeResponse) ProtoMessage() {} - -func (x *UpdateRuleTypeResponse) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_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 UpdateRuleTypeResponse.ProtoReflect.Descriptor instead. -func (*UpdateRuleTypeResponse) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{146} -} - -func (x *UpdateRuleTypeResponse) GetRuleType() *RuleType { - if x != nil { - return x.RuleType - } - return nil -} - -// DeleteRuleTypeRequest is the request to delete a rule type. -type DeleteRuleTypeRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // context is the context in which the rule type is evaluated. - Context *Context `protobuf:"bytes,1,opt,name=context,proto3" json:"context,omitempty"` - // id is the id of the rule type to be deleted. - Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` -} - -func (x *DeleteRuleTypeRequest) Reset() { - *x = DeleteRuleTypeRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[147] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DeleteRuleTypeRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DeleteRuleTypeRequest) ProtoMessage() {} - -func (x *DeleteRuleTypeRequest) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_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 DeleteRuleTypeRequest.ProtoReflect.Descriptor instead. -func (*DeleteRuleTypeRequest) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{147} -} - -func (x *DeleteRuleTypeRequest) GetContext() *Context { - if x != nil { - return x.Context - } - return nil -} - -func (x *DeleteRuleTypeRequest) GetId() string { - if x != nil { - return x.Id - } - return "" -} - -// DeleteRuleTypeResponse is the response to delete a rule type. -type DeleteRuleTypeResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *DeleteRuleTypeResponse) Reset() { - *x = DeleteRuleTypeResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[148] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DeleteRuleTypeResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DeleteRuleTypeResponse) ProtoMessage() {} - -func (x *DeleteRuleTypeResponse) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_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 DeleteRuleTypeResponse.ProtoReflect.Descriptor instead. -func (*DeleteRuleTypeResponse) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{148} -} - -// RestType defines the rest data evaluation. -// This is used to fetch data from a REST endpoint. -type RestType struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // endpoint is the endpoint to fetch data from. - // This can be a URL or the path on the API.bool - // This is a required field and must be set. - // This is also evaluated via a template which allows - // us dynamically fill in the values. - Endpoint string `protobuf:"bytes,1,opt,name=endpoint,proto3" json:"endpoint,omitempty"` - // method is the method to use to fetch data. - Method string `protobuf:"bytes,2,opt,name=method,proto3" json:"method,omitempty"` - // headers are the headers to be sent to the endpoint. - Headers []string `protobuf:"bytes,3,rep,name=headers,proto3" json:"headers,omitempty"` - // body is the body to be sent to the endpoint. - Body *string `protobuf:"bytes,4,opt,name=body,proto3,oneof" json:"body,omitempty"` - // parse is the parsing mechanism to be used to parse the data. - Parse string `protobuf:"bytes,5,opt,name=parse,proto3" json:"parse,omitempty"` -} - -func (x *RestType) Reset() { - *x = RestType{} - if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[149] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *RestType) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RestType) ProtoMessage() {} - -func (x *RestType) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_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 RestType.ProtoReflect.Descriptor instead. -func (*RestType) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{149} -} - -func (x *RestType) GetEndpoint() string { - if x != nil { - return x.Endpoint - } - return "" -} - -func (x *RestType) GetMethod() string { - if x != nil { - return x.Method - } - return "" -} - -func (x *RestType) GetHeaders() []string { - if x != nil { - return x.Headers - } - return nil -} - -func (x *RestType) GetBody() string { - if x != nil && x.Body != nil { - return *x.Body - } - return "" -} - -func (x *RestType) GetParse() string { - if x != nil { - return x.Parse - } - return "" -} - -// BuiltinType defines the builtin data evaluation. -type BuiltinType struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Method string `protobuf:"bytes,1,opt,name=method,proto3" json:"method,omitempty"` -} - -func (x *BuiltinType) Reset() { - *x = BuiltinType{} - if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[150] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *BuiltinType) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*BuiltinType) ProtoMessage() {} - -func (x *BuiltinType) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_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 BuiltinType.ProtoReflect.Descriptor instead. -func (*BuiltinType) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{150} -} - -func (x *BuiltinType) GetMethod() string { - if x != nil { - return x.Method - } - return "" -} - -// ArtifactType defines the artifact data evaluation. -type ArtifactType struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *ArtifactType) Reset() { - *x = ArtifactType{} - if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[151] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ArtifactType) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ArtifactType) ProtoMessage() {} - -func (x *ArtifactType) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_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 ArtifactType.ProtoReflect.Descriptor instead. -func (*ArtifactType) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{151} -} - -// GitType defines the git data ingester. -type GitType struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // clone_url is the url of the git repository. - CloneUrl string `protobuf:"bytes,1,opt,name=clone_url,json=cloneUrl,proto3" json:"clone_url,omitempty"` - // branch is the branch of the git repository. - Branch string `protobuf:"bytes,2,opt,name=branch,proto3" json:"branch,omitempty"` -} - -func (x *GitType) Reset() { - *x = GitType{} - if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[152] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GitType) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GitType) ProtoMessage() {} - -func (x *GitType) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_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 GitType.ProtoReflect.Descriptor instead. -func (*GitType) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{152} -} - -func (x *GitType) GetCloneUrl() string { - if x != nil { - return x.CloneUrl - } - return "" -} - -func (x *GitType) GetBranch() string { - if x != nil { - return x.Branch - } - return "" -} - -// DiffType defines the diff data ingester. -type DiffType struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Ecosystems []*DiffType_Ecosystem `protobuf:"bytes,1,rep,name=ecosystems,proto3" json:"ecosystems,omitempty"` -} - -func (x *DiffType) Reset() { - *x = DiffType{} - if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[153] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DiffType) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DiffType) ProtoMessage() {} - -func (x *DiffType) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_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 DiffType.ProtoReflect.Descriptor instead. -func (*DiffType) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{153} -} - -func (x *DiffType) GetEcosystems() []*DiffType_Ecosystem { - if x != nil { - return x.Ecosystems - } - return nil -} - -// RuleType defines rules that may or may not be user defined. -// The version is assumed from the folder's version. -type RuleType struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // id is the id of the rule type. - // This is mostly optional and is set by the server. - Id *string `protobuf:"bytes,1,opt,name=id,proto3,oneof" json:"id,omitempty"` - // name is the name of the rule type. - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - // context is the context in which the rule is evaluated. - Context *Context `protobuf:"bytes,3,opt,name=context,proto3" json:"context,omitempty"` - // def is the definition of the rule type. - Def *RuleType_Definition `protobuf:"bytes,4,opt,name=def,proto3" json:"def,omitempty"` - // description is the description of the rule type. - Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"` - // guidance are instructions we give the user in case a rule fails. - Guidance string `protobuf:"bytes,6,opt,name=guidance,proto3" json:"guidance,omitempty"` -} - -func (x *RuleType) Reset() { - *x = RuleType{} - if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[154] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *RuleType) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RuleType) ProtoMessage() {} - -func (x *RuleType) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_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 RuleType.ProtoReflect.Descriptor instead. -func (*RuleType) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{154} -} - -func (x *RuleType) GetId() string { - if x != nil && x.Id != nil { - return *x.Id - } - return "" -} - -func (x *RuleType) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -func (x *RuleType) GetContext() *Context { - if x != nil { - return x.Context - } - return nil -} - -func (x *RuleType) GetDef() *RuleType_Definition { - if x != nil { - return x.Def - } - return nil -} - -func (x *RuleType) GetDescription() string { - if x != nil { - return x.Description - } - return "" -} - -func (x *RuleType) GetGuidance() string { - if x != nil { - return x.Guidance - } - return "" -} - -// Profile defines a profile that is user defined. -type Profile struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // context is the context in which the profile is evaluated. - Context *Context `protobuf:"bytes,1,opt,name=context,proto3" json:"context,omitempty"` - // id is the id of the profile. - // This is optional and is set by the system. - Id *string `protobuf:"bytes,2,opt,name=id,proto3,oneof" json:"id,omitempty"` - // name is the name of the profile instance. - Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` - // These are the entities that one could set in the profile. - Repository []*Profile_Rule `protobuf:"bytes,4,rep,name=repository,proto3" json:"repository,omitempty"` - BuildEnvironment []*Profile_Rule `protobuf:"bytes,5,rep,name=build_environment,json=buildEnvironment,proto3" json:"build_environment,omitempty"` - Artifact []*Profile_Rule `protobuf:"bytes,6,rep,name=artifact,proto3" json:"artifact,omitempty"` - PullRequest []*Profile_Rule `protobuf:"bytes,7,rep,name=pull_request,json=pullRequest,proto3" json:"pull_request,omitempty"` - // whether and how to remediate (on,off,dry_run) - // this is optional as the default is set by the system - Remediate *string `protobuf:"bytes,8,opt,name=remediate,proto3,oneof" json:"remediate,omitempty"` -} - -func (x *Profile) Reset() { - *x = Profile{} - if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[155] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Profile) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Profile) ProtoMessage() {} - -func (x *Profile) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_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 Profile.ProtoReflect.Descriptor instead. -func (*Profile) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{155} -} - -func (x *Profile) GetContext() *Context { - if x != nil { - return x.Context - } - return nil -} - -func (x *Profile) GetId() string { - if x != nil && x.Id != nil { - return *x.Id - } - return "" -} - -func (x *Profile) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -func (x *Profile) GetRepository() []*Profile_Rule { - if x != nil { - return x.Repository - } - return nil -} - -func (x *Profile) GetBuildEnvironment() []*Profile_Rule { - if x != nil { - return x.BuildEnvironment - } - return nil -} - -func (x *Profile) GetArtifact() []*Profile_Rule { - if x != nil { - return x.Artifact - } - return nil -} - -func (x *Profile) GetPullRequest() []*Profile_Rule { - if x != nil { - return x.PullRequest - } - return nil -} - -func (x *Profile) GetRemediate() string { - if x != nil && x.Remediate != nil { - return *x.Remediate - } - return "" -} - -type PrDependencies_ContextualDependency struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Dep *Dependency `protobuf:"bytes,1,opt,name=dep,proto3" json:"dep,omitempty"` - File *PrDependencies_ContextualDependency_FilePatch `protobuf:"bytes,2,opt,name=file,proto3" json:"file,omitempty"` -} - -func (x *PrDependencies_ContextualDependency) Reset() { - *x = PrDependencies_ContextualDependency{} - if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[156] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PrDependencies_ContextualDependency) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PrDependencies_ContextualDependency) ProtoMessage() {} - -func (x *PrDependencies_ContextualDependency) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_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 PrDependencies_ContextualDependency.ProtoReflect.Descriptor instead. -func (*PrDependencies_ContextualDependency) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{11, 0} -} - -func (x *PrDependencies_ContextualDependency) GetDep() *Dependency { - if x != nil { - return x.Dep - } - return nil -} - -func (x *PrDependencies_ContextualDependency) GetFile() *PrDependencies_ContextualDependency_FilePatch { - if x != nil { - return x.File - } - return nil -} - -type PrDependencies_ContextualDependency_FilePatch struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // file changed, e.g. package-lock.json - PatchUrl string `protobuf:"bytes,2,opt,name=patch_url,json=patchUrl,proto3" json:"patch_url,omitempty"` // points to the the raw patchfile -} - -func (x *PrDependencies_ContextualDependency_FilePatch) Reset() { - *x = PrDependencies_ContextualDependency_FilePatch{} - if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[157] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PrDependencies_ContextualDependency_FilePatch) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PrDependencies_ContextualDependency_FilePatch) ProtoMessage() {} - -func (x *PrDependencies_ContextualDependency_FilePatch) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_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 PrDependencies_ContextualDependency_FilePatch.ProtoReflect.Descriptor instead. -func (*PrDependencies_ContextualDependency_FilePatch) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{11, 0, 0} -} - -func (x *PrDependencies_ContextualDependency_FilePatch) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -func (x *PrDependencies_ContextualDependency_FilePatch) GetPatchUrl() string { - if x != nil { - return x.PatchUrl - } - return "" -} - -// EntiryTypeId is a message that carries an ID together with a type to uniquely identify an entity -// such as (repo, 1), (artifact, 2), ... -// if the struct is reused in other messages, it should be moved to a top-level definition -type GetProfileStatusByNameRequest_EntityTypedId struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // entity is the entity to get status for. Incompatible with `all` - Type Entity `protobuf:"varint,1,opt,name=type,proto3,enum=mediator.v1.Entity" json:"type,omitempty"` - // id is the ID of the entity to get status for. Incompatible with `all` - Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` -} - -func (x *GetProfileStatusByNameRequest_EntityTypedId) Reset() { - *x = GetProfileStatusByNameRequest_EntityTypedId{} - if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[159] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetProfileStatusByNameRequest_EntityTypedId) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetProfileStatusByNameRequest_EntityTypedId) ProtoMessage() {} - -func (x *GetProfileStatusByNameRequest_EntityTypedId) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_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 GetProfileStatusByNameRequest_EntityTypedId.ProtoReflect.Descriptor instead. -func (*GetProfileStatusByNameRequest_EntityTypedId) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{125, 0} -} - -func (x *GetProfileStatusByNameRequest_EntityTypedId) GetType() Entity { - if x != nil { - return x.Type - } - return Entity_ENTITY_UNSPECIFIED -} - -func (x *GetProfileStatusByNameRequest_EntityTypedId) GetId() string { - if x != nil { - return x.Id - } - return "" -} - -// Context defines the context in which a provider is evaluated. -// Given thta a provider is a top level entity, it may only be scoped to -// an organization. -type Provider_Context struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Organization string `protobuf:"bytes,1,opt,name=organization,proto3" json:"organization,omitempty"` - Project string `protobuf:"bytes,2,opt,name=project,proto3" json:"project,omitempty"` -} - -func (x *Provider_Context) Reset() { - *x = Provider_Context{} - if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[160] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Provider_Context) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Provider_Context) ProtoMessage() {} - -func (x *Provider_Context) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_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 Provider_Context.ProtoReflect.Descriptor instead. -func (*Provider_Context) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{135, 0} -} - -func (x *Provider_Context) GetOrganization() string { - if x != nil { - return x.Organization - } - return "" -} - -func (x *Provider_Context) GetProject() string { - if x != nil { - return x.Project - } - return "" -} - -// Definition defines the definition of the provider. -// This is used to define the connection to the provider. -type Provider_Definition struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // rest is the REST provider configuration. - Rest *RESTProviderConfig `protobuf:"bytes,1,opt,name=rest,proto3,oneof" json:"rest,omitempty"` - // github is the GitHub provider configuration. - Github *GitHubProviderConfig `protobuf:"bytes,2,opt,name=github,proto3,oneof" json:"github,omitempty"` -} - -func (x *Provider_Definition) Reset() { - *x = Provider_Definition{} - if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[161] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Provider_Definition) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Provider_Definition) ProtoMessage() {} - -func (x *Provider_Definition) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_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 Provider_Definition.ProtoReflect.Descriptor instead. -func (*Provider_Definition) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{135, 1} -} - -func (x *Provider_Definition) GetRest() *RESTProviderConfig { - if x != nil { - return x.Rest - } - return nil -} - -func (x *Provider_Definition) GetGithub() *GitHubProviderConfig { - if x != nil { - return x.Github - } - return nil -} - -type DiffType_Ecosystem struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // name is the name of the ecosystem. - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // depfile is the file that contains the dependencies for this ecosystem - Depfile string `protobuf:"bytes,2,opt,name=depfile,proto3" json:"depfile,omitempty"` -} - -func (x *DiffType_Ecosystem) Reset() { - *x = DiffType_Ecosystem{} - if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[162] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DiffType_Ecosystem) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DiffType_Ecosystem) ProtoMessage() {} - -func (x *DiffType_Ecosystem) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_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 DiffType_Ecosystem.ProtoReflect.Descriptor instead. -func (*DiffType_Ecosystem) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{153, 0} -} - -func (x *DiffType_Ecosystem) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -func (x *DiffType_Ecosystem) GetDepfile() string { - if x != nil { - return x.Depfile - } - return "" -} - -// Definition defines the rule type. It encompases the schema and the data evaluation. -type RuleType_Definition struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // in_entity is the entity in which the rule is evaluated. - // This can be repository, build_environment or artifact. - InEntity string `protobuf:"bytes,1,opt,name=in_entity,json=inEntity,proto3" json:"in_entity,omitempty"` - // rule_schema is the schema of the rule. This is expressed in JSON Schema. - RuleSchema *structpb.Struct `protobuf:"bytes,2,opt,name=rule_schema,json=ruleSchema,proto3" json:"rule_schema,omitempty"` - // param_schema is the schema of the parameters that are passed to the rule. - // This is expressed in JSON Schema. - ParamSchema *structpb.Struct `protobuf:"bytes,3,opt,name=param_schema,json=paramSchema,proto3,oneof" json:"param_schema,omitempty"` - Ingest *RuleType_Definition_Ingest `protobuf:"bytes,4,opt,name=ingest,proto3" json:"ingest,omitempty"` - Eval *RuleType_Definition_Eval `protobuf:"bytes,5,opt,name=eval,proto3" json:"eval,omitempty"` - Remediate *RuleType_Definition_Remediate `protobuf:"bytes,6,opt,name=remediate,proto3" json:"remediate,omitempty"` -} - -func (x *RuleType_Definition) Reset() { - *x = RuleType_Definition{} - if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[163] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *RuleType_Definition) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RuleType_Definition) ProtoMessage() {} - -func (x *RuleType_Definition) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_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 RuleType_Definition.ProtoReflect.Descriptor instead. -func (*RuleType_Definition) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{154, 0} -} - -func (x *RuleType_Definition) GetInEntity() string { - if x != nil { - return x.InEntity - } - return "" -} - -func (x *RuleType_Definition) GetRuleSchema() *structpb.Struct { - if x != nil { - return x.RuleSchema - } - return nil -} - -func (x *RuleType_Definition) GetParamSchema() *structpb.Struct { - if x != nil { - return x.ParamSchema - } - return nil -} - -func (x *RuleType_Definition) GetIngest() *RuleType_Definition_Ingest { - if x != nil { - return x.Ingest - } - return nil -} - -func (x *RuleType_Definition) GetEval() *RuleType_Definition_Eval { - if x != nil { - return x.Eval - } - return nil -} - -func (x *RuleType_Definition) GetRemediate() *RuleType_Definition_Remediate { - if x != nil { - return x.Remediate - } - return nil -} - -// Ingest defines how the data is ingested. -type RuleType_Definition_Ingest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // type is the type of the data ingestion. - // we currently support rest, artifact and builtin. - Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` - // rest is the rest data ingestion. - // this is only used if the type is rest. - Rest *RestType `protobuf:"bytes,3,opt,name=rest,proto3,oneof" json:"rest,omitempty"` - // builtin is the builtin data ingestion. - Builtin *BuiltinType `protobuf:"bytes,4,opt,name=builtin,proto3,oneof" json:"builtin,omitempty"` - // artifact is the artifact data ingestion. - Artifact *ArtifactType `protobuf:"bytes,5,opt,name=artifact,proto3,oneof" json:"artifact,omitempty"` - // git is the git data ingestion. - Git *GitType `protobuf:"bytes,6,opt,name=git,proto3,oneof" json:"git,omitempty"` - // diff is the diff data ingestion. - Diff *DiffType `protobuf:"bytes,7,opt,name=diff,proto3,oneof" json:"diff,omitempty"` -} - -func (x *RuleType_Definition_Ingest) Reset() { - *x = RuleType_Definition_Ingest{} - if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[164] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *RuleType_Definition_Ingest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RuleType_Definition_Ingest) ProtoMessage() {} - -func (x *RuleType_Definition_Ingest) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_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 RuleType_Definition_Ingest.ProtoReflect.Descriptor instead. -func (*RuleType_Definition_Ingest) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{154, 0, 0} -} - -func (x *RuleType_Definition_Ingest) GetType() string { - if x != nil { - return x.Type - } - return "" -} - -func (x *RuleType_Definition_Ingest) GetRest() *RestType { - if x != nil { - return x.Rest - } - return nil -} - -func (x *RuleType_Definition_Ingest) GetBuiltin() *BuiltinType { - if x != nil { - return x.Builtin - } - return nil -} - -func (x *RuleType_Definition_Ingest) GetArtifact() *ArtifactType { - if x != nil { - return x.Artifact - } - return nil -} - -func (x *RuleType_Definition_Ingest) GetGit() *GitType { - if x != nil { - return x.Git - } - return nil -} - -func (x *RuleType_Definition_Ingest) GetDiff() *DiffType { - if x != nil { - return x.Diff - } - return nil -} - -// Eval defines the data evaluation definition. -// This pertains to the way we traverse data from the upstream -// endpoint and how we compare it to the rule. -type RuleType_Definition_Eval struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // type is the type of the data evaluation. - // Right now only `jq` is supported as a driver - Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` - // jq is only used if the `jq` type is selected. - // It defines the comparisons that are made between - // the ingested data and the profile rule. - Jq []*RuleType_Definition_Eval_JQComparison `protobuf:"bytes,2,rep,name=jq,proto3" json:"jq,omitempty"` - // rego is only used if the `rego` type is selected. - Rego *RuleType_Definition_Eval_Rego `protobuf:"bytes,3,opt,name=rego,proto3,oneof" json:"rego,omitempty"` - // vulncheck is only used if the `vulncheck` type is selected. - Vulncheck *RuleType_Definition_Eval_Vulncheck `protobuf:"bytes,4,opt,name=vulncheck,proto3,oneof" json:"vulncheck,omitempty"` -} - -func (x *RuleType_Definition_Eval) Reset() { - *x = RuleType_Definition_Eval{} - if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[165] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *RuleType_Definition_Eval) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RuleType_Definition_Eval) ProtoMessage() {} - -func (x *RuleType_Definition_Eval) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_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 RuleType_Definition_Eval.ProtoReflect.Descriptor instead. -func (*RuleType_Definition_Eval) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{154, 0, 1} -} - -func (x *RuleType_Definition_Eval) GetType() string { - if x != nil { - return x.Type - } - return "" -} - -func (x *RuleType_Definition_Eval) GetJq() []*RuleType_Definition_Eval_JQComparison { - if x != nil { - return x.Jq - } - return nil -} - -func (x *RuleType_Definition_Eval) GetRego() *RuleType_Definition_Eval_Rego { - if x != nil { - return x.Rego - } - return nil -} - -func (x *RuleType_Definition_Eval) GetVulncheck() *RuleType_Definition_Eval_Vulncheck { - if x != nil { - return x.Vulncheck - } - return nil -} - -type RuleType_Definition_Remediate struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` - Rest *RestType `protobuf:"bytes,2,opt,name=rest,proto3,oneof" json:"rest,omitempty"` -} - -func (x *RuleType_Definition_Remediate) Reset() { - *x = RuleType_Definition_Remediate{} - if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[166] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *RuleType_Definition_Remediate) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RuleType_Definition_Remediate) ProtoMessage() {} - -func (x *RuleType_Definition_Remediate) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_proto_msgTypes[166] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use RuleType_Definition_Remediate.ProtoReflect.Descriptor instead. -func (*RuleType_Definition_Remediate) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{154, 0, 2} -} - -func (x *RuleType_Definition_Remediate) GetType() string { - if x != nil { - return x.Type - } - return "" -} - -func (x *RuleType_Definition_Remediate) GetRest() *RestType { - if x != nil { - return x.Rest - } - return nil -} - -type RuleType_Definition_Eval_JQComparison struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Ingested points to the data retrieved in the `ingest` section - Ingested *RuleType_Definition_Eval_JQComparison_Operator `protobuf:"bytes,1,opt,name=ingested,proto3" json:"ingested,omitempty"` - // Profile points to the profile itself. - Profile *RuleType_Definition_Eval_JQComparison_Operator `protobuf:"bytes,2,opt,name=profile,proto3" json:"profile,omitempty"` -} - -func (x *RuleType_Definition_Eval_JQComparison) Reset() { - *x = RuleType_Definition_Eval_JQComparison{} - if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[167] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *RuleType_Definition_Eval_JQComparison) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RuleType_Definition_Eval_JQComparison) ProtoMessage() {} - -func (x *RuleType_Definition_Eval_JQComparison) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_proto_msgTypes[167] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use RuleType_Definition_Eval_JQComparison.ProtoReflect.Descriptor instead. -func (*RuleType_Definition_Eval_JQComparison) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{154, 0, 1, 0} -} - -func (x *RuleType_Definition_Eval_JQComparison) GetIngested() *RuleType_Definition_Eval_JQComparison_Operator { - if x != nil { - return x.Ingested - } - return nil -} - -func (x *RuleType_Definition_Eval_JQComparison) GetProfile() *RuleType_Definition_Eval_JQComparison_Operator { - if x != nil { - return x.Profile - } - return nil -} - -type RuleType_Definition_Eval_Rego struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // type is the type of evaluation engine to use - // for rego. We currently have two modes of operation: - // - deny-by-default: this is the default mode of operation - // where we deny access by default and allow access only - // if the profile explicitly allows it. It expects the - // profile to set an `allow` variable to true or false. - // - constraints: this is the mode of operation where we - // allow access by default and deny access only if a - // violation is found. It expects the profile to set a - // `violations` variable with a "msg" field. - Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` - // def is the definition of the rego profile. - Def string `protobuf:"bytes,2,opt,name=def,proto3" json:"def,omitempty"` -} - -func (x *RuleType_Definition_Eval_Rego) Reset() { - *x = RuleType_Definition_Eval_Rego{} - if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[168] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *RuleType_Definition_Eval_Rego) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RuleType_Definition_Eval_Rego) ProtoMessage() {} - -func (x *RuleType_Definition_Eval_Rego) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_proto_msgTypes[168] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use RuleType_Definition_Eval_Rego.ProtoReflect.Descriptor instead. -func (*RuleType_Definition_Eval_Rego) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{154, 0, 1, 1} -} - -func (x *RuleType_Definition_Eval_Rego) GetType() string { - if x != nil { - return x.Type - } - return "" -} - -func (x *RuleType_Definition_Eval_Rego) GetDef() string { - if x != nil { - return x.Def - } - return "" -} - -type RuleType_Definition_Eval_Vulncheck struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // db is the database to use for the vulncheck, e.g. OSV - Db string `protobuf:"bytes,1,opt,name=db,proto3" json:"db,omitempty"` - // e.g. https://api.osv.dev/v1/query - Endpoint string `protobuf:"bytes,2,opt,name=endpoint,proto3" json:"endpoint,omitempty"` -} - -func (x *RuleType_Definition_Eval_Vulncheck) Reset() { - *x = RuleType_Definition_Eval_Vulncheck{} - if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[169] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *RuleType_Definition_Eval_Vulncheck) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RuleType_Definition_Eval_Vulncheck) ProtoMessage() {} - -func (x *RuleType_Definition_Eval_Vulncheck) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_proto_msgTypes[169] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use RuleType_Definition_Eval_Vulncheck.ProtoReflect.Descriptor instead. -func (*RuleType_Definition_Eval_Vulncheck) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{154, 0, 1, 2} -} - -func (x *RuleType_Definition_Eval_Vulncheck) GetDb() string { - if x != nil { - return x.Db - } - return "" -} - -func (x *RuleType_Definition_Eval_Vulncheck) GetEndpoint() string { - if x != nil { - return x.Endpoint - } - return "" -} - -type RuleType_Definition_Eval_JQComparison_Operator struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Def string `protobuf:"bytes,1,opt,name=def,proto3" json:"def,omitempty"` -} - -func (x *RuleType_Definition_Eval_JQComparison_Operator) Reset() { - *x = RuleType_Definition_Eval_JQComparison_Operator{} - if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[170] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *RuleType_Definition_Eval_JQComparison_Operator) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RuleType_Definition_Eval_JQComparison_Operator) ProtoMessage() {} - -func (x *RuleType_Definition_Eval_JQComparison_Operator) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_proto_msgTypes[170] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use RuleType_Definition_Eval_JQComparison_Operator.ProtoReflect.Descriptor instead. -func (*RuleType_Definition_Eval_JQComparison_Operator) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{154, 0, 1, 0, 0} -} - -func (x *RuleType_Definition_Eval_JQComparison_Operator) GetDef() string { - if x != nil { - return x.Def - } - return "" -} - -// Rule defines the individual call of a certain rule type. -type Profile_Rule struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // type is the type of the rule to be instantiated. - Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` - // params are the parameters that are passed to the rule. - // This is optional and depends on the rule type. - Params *structpb.Struct `protobuf:"bytes,2,opt,name=params,proto3" json:"params,omitempty"` - // def is the definition of the rule. - // This depends on the rule type. - Def *structpb.Struct `protobuf:"bytes,3,opt,name=def,proto3" json:"def,omitempty"` -} - -func (x *Profile_Rule) Reset() { - *x = Profile_Rule{} - if protoimpl.UnsafeEnabled { - mi := &file_mediator_v1_mediator_proto_msgTypes[171] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Profile_Rule) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Profile_Rule) ProtoMessage() {} - -func (x *Profile_Rule) ProtoReflect() protoreflect.Message { - mi := &file_mediator_v1_mediator_proto_msgTypes[171] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use Profile_Rule.ProtoReflect.Descriptor instead. -func (*Profile_Rule) Descriptor() ([]byte, []int) { - return file_mediator_v1_mediator_proto_rawDescGZIP(), []int{155, 0} -} - -func (x *Profile_Rule) GetType() string { - if x != nil { - return x.Type - } - return "" -} - -func (x *Profile_Rule) GetParams() *structpb.Struct { - if x != nil { - return x.Params - } - return nil -} - -func (x *Profile_Rule) GetDef() *structpb.Struct { - if x != nil { - return x.Def - } - return nil -} - -var file_mediator_v1_mediator_proto_extTypes = []protoimpl.ExtensionInfo{ - { - ExtendedType: (*descriptorpb.MethodOptions)(nil), - ExtensionType: (*RpcOptions)(nil), - Field: 51077, - Name: "mediator.v1.rpc_options", - Tag: "bytes,51077,opt,name=rpc_options", - Filename: "mediator/v1/mediator.proto", - }, -} - -// Extension fields to descriptorpb.MethodOptions. -var ( - // optional mediator.v1.RpcOptions rpc_options = 51077; - E_RpcOptions = &file_mediator_v1_mediator_proto_extTypes[0] -) - -var File_mediator_v1_mediator_proto protoreflect.FileDescriptor - -var file_mediator_v1_mediator_proto_rawDesc = []byte{ - 0x0a, 0x1a, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, - 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0b, 0x6d, 0x65, - 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 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, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x6f, 0x72, 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, 0x1e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, - 0x70, 0x65, 0x72, 0x73, 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, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x68, 0x74, 0x74, 0x70, 0x62, 0x6f, 0x64, 0x79, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x22, 0xc1, 0x01, 0x0a, 0x0a, 0x52, 0x70, 0x63, 0x4f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x6f, 0x75, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x6f, 0x75, 0x73, - 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x5f, 0x6c, 0x6f, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x05, 0x6e, 0x6f, 0x4c, 0x6f, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x77, 0x6e, 0x65, 0x72, - 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6f, 0x77, 0x6e, - 0x65, 0x72, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x26, 0x0a, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0d, 0x72, 0x6f, 0x6f, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x37, - 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, - 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x09, 0x61, 0x75, - 0x74, 0x68, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x22, 0x51, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x41, - 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 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, 0x48, 0x0a, 0x15, 0x4c, 0x69, - 0x73, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, - 0x76, 0x31, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x52, 0x07, 0x72, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x73, 0x22, 0x9e, 0x02, 0x0a, 0x08, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, - 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x70, 0x6b, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, - 0x50, 0x6b, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x12, 0x1e, 0x0a, 0x0a, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, - 0x12, 0x38, 0x0a, 0x08, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, - 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x52, 0x08, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x7d, 0x0a, 0x0e, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x57, - 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, - 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x63, - 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x73, 0x68, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x68, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x72, - 0x69, 0x67, 0x67, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x69, - 0x67, 0x67, 0x65, 0x72, 0x22, 0xc9, 0x03, 0x0a, 0x15, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, - 0x72, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, - 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x08, 0x69, 0x73, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x69, - 0x73, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0a, 0x69, 0x73, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x2c, 0x0a, 0x12, - 0x69, 0x73, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x73, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x0d, 0x63, 0x65, - 0x72, 0x74, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x0c, 0x63, 0x65, 0x72, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, - 0x79, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x63, 0x65, 0x72, 0x74, 0x5f, 0x69, 0x73, 0x73, - 0x75, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0a, 0x63, 0x65, 0x72, - 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x72, 0x65, - 0x6b, 0x6f, 0x72, 0x5f, 0x6c, 0x6f, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x02, 0x52, 0x0a, 0x72, 0x65, 0x6b, 0x6f, 0x72, 0x4c, 0x6f, 0x67, 0x49, 0x64, 0x88, 0x01, - 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x72, 0x65, 0x6b, 0x6f, 0x72, 0x5f, 0x6c, 0x6f, 0x67, 0x5f, 0x69, - 0x6e, 0x64, 0x65, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x48, 0x03, 0x52, 0x0d, 0x72, 0x65, - 0x6b, 0x6f, 0x72, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x88, 0x01, 0x01, 0x12, 0x46, - 0x0a, 0x0e, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x74, 0x69, 0x6d, 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, 0x48, 0x04, 0x52, 0x0d, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x54, - 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x5f, - 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x63, 0x65, 0x72, - 0x74, 0x5f, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x72, 0x65, 0x6b, - 0x6f, 0x72, 0x5f, 0x6c, 0x6f, 0x67, 0x5f, 0x69, 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x72, 0x65, - 0x6b, 0x6f, 0x72, 0x5f, 0x6c, 0x6f, 0x67, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x11, 0x0a, - 0x0f, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x22, 0xcb, 0x02, 0x0a, 0x0f, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x68, 0x61, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x68, 0x61, 0x12, 0x59, 0x0a, 0x16, 0x73, 0x69, 0x67, - 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, 0x65, 0x64, 0x69, - 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, - 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x15, 0x73, - 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x49, 0x0a, 0x0f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x5f, 0x77, - 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, - 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x48, 0x00, 0x52, 0x0e, 0x67, 0x69, - 0x74, 0x68, 0x75, 0x62, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x88, 0x01, 0x01, 0x12, - 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 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, - 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x67, - 0x69, 0x74, 0x68, 0x75, 0x62, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x22, 0x63, - 0x0a, 0x16, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x42, 0x79, 0x49, - 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, 0x27, 0x0a, 0x0f, 0x6c, 0x61, 0x74, 0x65, - 0x73, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0e, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x74, 0x61, 0x67, 0x22, 0x86, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, - 0x61, 0x63, 0x74, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x31, 0x0a, 0x08, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x15, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, - 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x52, 0x08, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, - 0x63, 0x74, 0x12, 0x38, 0x0a, 0x08, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, - 0x76, 0x31, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x52, 0x08, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xaf, 0x01, 0x0a, - 0x0b, 0x50, 0x75, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, - 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x1d, - 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x73, 0x68, 0x61, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x68, 0x61, 0x12, 0x16, 0x0a, - 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x6f, 0x77, - 0x6e, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x70, 0x6f, 0x4f, - 0x77, 0x6e, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x49, 0x64, 0x22, 0x73, - 0x0a, 0x0a, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x37, 0x0a, 0x09, - 0x65, 0x63, 0x6f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x19, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, - 0x70, 0x45, 0x63, 0x6f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x09, 0x65, 0x63, 0x6f, 0x73, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x22, 0xd2, 0x02, 0x0a, 0x0e, 0x50, 0x72, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, - 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x02, 0x70, 0x72, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, - 0x2e, 0x50, 0x75, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x02, 0x70, 0x72, - 0x12, 0x44, 0x0a, 0x04, 0x64, 0x65, 0x70, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, - 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x44, - 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x78, 0x74, 0x75, 0x61, 0x6c, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, - 0x52, 0x04, 0x64, 0x65, 0x70, 0x73, 0x1a, 0xcf, 0x01, 0x0a, 0x14, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x78, 0x74, 0x75, 0x61, 0x6c, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x12, - 0x29, 0x0a, 0x03, 0x64, 0x65, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, - 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x65, 0x6e, - 0x64, 0x65, 0x6e, 0x63, 0x79, 0x52, 0x03, 0x64, 0x65, 0x70, 0x12, 0x4e, 0x0a, 0x04, 0x66, 0x69, - 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, - 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, - 0x6e, 0x63, 0x69, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x75, 0x61, 0x6c, - 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x50, - 0x61, 0x74, 0x63, 0x68, 0x52, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x3c, 0x0a, 0x09, 0x46, 0x69, - 0x6c, 0x65, 0x50, 0x61, 0x74, 0x63, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x70, - 0x61, 0x74, 0x63, 0x68, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x70, 0x61, 0x74, 0x63, 0x68, 0x55, 0x72, 0x6c, 0x22, 0x14, 0x0a, 0x12, 0x43, 0x68, 0x65, 0x63, - 0x6b, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x2d, - 0x0a, 0x13, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xa2, 0x01, - 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x55, 0x52, 0x4c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 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, 0x10, 0x0a, 0x03, 0x63, 0x6c, 0x69, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x63, 0x6c, 0x69, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, - 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x19, 0x0a, - 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, - 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6f, 0x77, 0x6e, - 0x65, 0x72, 0x22, 0x2f, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x52, 0x4c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x75, 0x72, 0x6c, 0x22, 0xa8, 0x01, 0x0a, 0x1e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x43, 0x6f, 0x64, 0x65, 0x46, 0x6f, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x43, 0x4c, 0x49, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x72, 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, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, - 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x55, 0x72, 0x69, 0x22, 0x9e, - 0x01, 0x0a, 0x19, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 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, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x73, - 0x73, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x19, 0x0a, 0x05, 0x6f, 0x77, - 0x6e, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x6f, 0x77, 0x6e, - 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x22, - 0x1c, 0x0a, 0x1a, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x92, 0x01, - 0x0a, 0x1e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x46, 0x6f, - 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x57, 0x45, 0x42, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 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, 0x12, 0x0a, 0x04, 0x63, - 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, - 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x75, 0x72, 0x69, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x55, - 0x72, 0x69, 0x22, 0x9a, 0x01, 0x0a, 0x1f, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, - 0x6f, 0x64, 0x65, 0x46, 0x6f, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x57, 0x45, 0x42, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x6f, 0x6b, - 0x65, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, - 0x6f, 0x6b, 0x65, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, - 0x72, 0x65, 0x73, 0x5f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x65, 0x78, - 0x70, 0x69, 0x72, 0x65, 0x73, 0x49, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, - 0x0f, 0x0a, 0x0d, 0x4c, 0x6f, 0x67, 0x4f, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x22, 0x10, 0x0a, 0x0e, 0x4c, 0x6f, 0x67, 0x4f, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x15, 0x0a, 0x13, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x16, 0x0a, 0x14, 0x52, 0x65, 0x76, - 0x6f, 0x6b, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x31, 0x0a, 0x16, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x75, - 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, - 0x65, 0x72, 0x49, 0x64, 0x22, 0x19, 0x0a, 0x17, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x55, 0x73, - 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x1a, 0x0a, 0x18, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x42, 0x0a, 0x19, 0x52, - 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x76, 0x6f, - 0x6b, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0d, 0x72, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, - 0x5b, 0x0a, 0x1e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 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, 0x21, 0x0a, 0x1f, - 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x15, 0x0a, 0x13, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x70, 0x0a, 0x14, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, - 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, - 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x12, 0x35, 0x0a, 0x17, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x6b, 0x65, - 0x6e, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x5f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x14, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x45, - 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x49, 0x6e, 0x22, 0x54, 0x0a, 0x17, 0x53, 0x79, 0x6e, 0x63, - 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 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, 0x1a, - 0x0a, 0x18, 0x53, 0x79, 0x6e, 0x63, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, - 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xad, 0x01, 0x0a, 0x19, 0x52, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, - 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x72, 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, 0x3d, 0x0a, 0x0c, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, - 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6d, 0x65, 0x64, 0x69, - 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, - 0x72, 0x69, 0x65, 0x73, 0x52, 0x0c, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, - 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x51, 0x0a, 0x0c, 0x52, 0x65, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x77, - 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x69, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x49, 0x64, 0x22, 0x83, 0x04, - 0x0a, 0x10, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6f, - 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x49, - 0x64, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x06, 0x68, 0x6f, 0x6f, 0x6b, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x68, 0x6f, - 0x6f, 0x6b, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x68, 0x6f, - 0x6f, 0x6b, 0x55, 0x72, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x5f, - 0x75, 0x72, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x65, 0x70, 0x6c, 0x6f, - 0x79, 0x55, 0x72, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x5f, 0x75, 0x72, - 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x55, 0x72, - 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x6f, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, - 0x0a, 0x09, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x68, 0x6f, 0x6f, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, - 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x72, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x12, 0x32, 0x0a, 0x05, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x39, 0x0a, - 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0e, 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, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0f, 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, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x22, 0x55, 0x0a, 0x1a, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, - 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x37, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, - 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0xa5, 0x03, 0x0a, 0x10, 0x52, - 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, - 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, - 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x77, - 0x6e, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x69, 0x64, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x49, 0x64, 0x12, 0x1d, 0x0a, - 0x0a, 0x69, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x09, 0x69, 0x73, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x17, 0x0a, 0x07, - 0x69, 0x73, 0x5f, 0x66, 0x6f, 0x72, 0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, - 0x73, 0x46, 0x6f, 0x72, 0x6b, 0x12, 0x19, 0x0a, 0x08, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x75, 0x72, - 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x68, 0x6f, 0x6f, 0x6b, 0x55, 0x72, 0x6c, - 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x55, 0x72, 0x6c, 0x12, - 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x39, 0x0a, 0x0a, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0c, 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, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0d, 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, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x22, 0x3f, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x6f, 0x72, 0x79, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, - 0x0a, 0x0d, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, - 0x79, 0x49, 0x64, 0x22, 0x5a, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, - 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x3d, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, - 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x22, - 0x6b, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, - 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, - 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 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, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x5c, 0x0a, 0x1b, - 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x4e, - 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x0a, 0x72, - 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1d, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x0a, - 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x22, 0xb3, 0x01, 0x0a, 0x17, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x72, 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, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, - 0x2f, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x17, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, - 0x70, 0x6f, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x22, 0x53, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, - 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x07, - 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, - 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x07, 0x72, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0x0f, 0x0a, 0x0d, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x28, 0x0a, 0x0e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x22, 0x95, 0x01, 0x0a, 0x1e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x50, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 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, 0x38, - 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x39, 0x0a, 0x1f, 0x56, 0x65, 0x72, 0x69, - 0x66, 0x79, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x46, - 0x72, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x22, 0x1b, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x56, 0x75, 0x6c, 0x6e, 0x65, 0x72, - 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x22, 0x2d, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x56, 0x75, 0x6c, 0x6e, 0x65, 0x72, 0x61, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x79, 0x42, 0x79, 0x49, 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, - 0xc5, 0x03, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x56, 0x75, 0x6c, 0x6e, 0x65, 0x72, 0x61, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x79, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, - 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x08, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x49, 0x64, 0x12, 0x17, 0x0a, - 0x07, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, - 0x72, 0x65, 0x70, 0x6f, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x61, - 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, - 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, - 0x74, 0x79, 0x12, 0x29, 0x0a, 0x10, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x66, - 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x12, 0x27, 0x0a, - 0x0f, 0x75, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x75, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x68, 0x73, 0x61, 0x69, 0x64, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x67, 0x68, 0x73, 0x61, 0x69, 0x64, 0x12, 0x21, - 0x0a, 0x0c, 0x61, 0x64, 0x76, 0x69, 0x73, 0x72, 0x6f, 0x79, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x64, 0x76, 0x69, 0x73, 0x72, 0x6f, 0x79, 0x55, 0x72, - 0x6c, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x5f, 0x61, 0x74, 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, 0x09, 0x73, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0c, 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, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x5d, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x56, 0x75, - 0x6c, 0x6e, 0x65, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x05, 0x76, 0x75, 0x6c, 0x6e, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, - 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x75, 0x6c, 0x6e, 0x65, 0x72, 0x61, 0x62, 0x69, 0x6c, - 0x69, 0x74, 0x79, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, - 0x05, 0x76, 0x75, 0x6c, 0x6e, 0x73, 0x22, 0x13, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x53, 0x65, 0x63, - 0x72, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x52, 0x0a, 0x12, 0x47, - 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x3c, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x22, - 0x26, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x42, 0x79, 0x49, 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, 0x5d, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x53, 0x65, - 0x63, 0x72, 0x65, 0x74, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x1c, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x42, 0x72, 0x61, - 0x6e, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x22, 0x4d, 0x0a, 0x10, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x50, 0x72, - 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x72, 0x61, 0x6e, - 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, - 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, - 0x74, 0x65, 0x64, 0x22, 0x6b, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, - 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x12, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x5f, 0x70, 0x72, 0x6f, - 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, - 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x72, 0x61, - 0x6e, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x62, - 0x72, 0x61, 0x6e, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x22, 0x7f, 0x0a, 0x19, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x12, 0x34, 0x0a, 0x16, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x72, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x73, 0x22, 0xbe, 0x03, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, - 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x12, 0x39, - 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 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, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 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, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x12, 0x48, 0x0a, 0x0f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x48, 0x00, 0x52, 0x0e, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3c, - 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, - 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, - 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x0c, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x3f, 0x0a, 0x0c, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, - 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x48, 0x01, 0x52, 0x0b, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x55, 0x73, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, - 0x10, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x75, 0x73, - 0x65, 0x72, 0x22, 0xc8, 0x01, 0x0a, 0x12, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 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, 0x18, 0x0a, - 0x07, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x5f, 0x61, 0x74, 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, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, - 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, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x50, 0x0a, - 0x19, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 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, 0x19, 0x0a, 0x05, 0x66, 0x6f, - 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6f, 0x72, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x22, - 0x1c, 0x0a, 0x1a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x66, 0x0a, - 0x17, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x22, 0x61, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x61, - 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x45, 0x0a, 0x0d, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, - 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x0d, 0x6f, 0x72, 0x67, 0x61, 0x6e, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x41, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x4f, - 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x72, 0x67, - 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x8a, 0x02, 0x0a, 0x17, - 0x47, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, - 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x61, - 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x48, 0x00, - 0x52, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, - 0x01, 0x12, 0x36, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, - 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, - 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x2d, 0x0a, 0x05, 0x72, 0x6f, 0x6c, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, - 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, - 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, - 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6f, 0x72, 0x67, 0x61, - 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x32, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x4f, - 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x79, 0x4e, 0x61, 0x6d, - 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, 0x90, 0x02, 0x0a, - 0x1d, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, - 0x0a, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, - 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x48, 0x00, 0x52, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6d, 0x65, 0x64, - 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x12, 0x2d, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x17, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, - 0x6c, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x12, - 0x2d, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, - 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, - 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x42, 0x0f, - 0x0a, 0x0d, 0x5f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, - 0xae, 0x01, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, - 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x70, 0x72, - 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, - 0x0b, 0x69, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x42, - 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, - 0x22, 0x2d, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x42, 0x79, - 0x4e, 0x61, 0x6d, 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, - 0x36, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x42, 0x79, 0x49, - 0x64, 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, 0x22, 0x6b, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, - 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x22, 0xa6, 0x02, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x52, 0x65, 0x63, 0x6f, 0x72, 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, 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, - 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, - 0x63, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x50, 0x72, - 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x5f, 0x61, 0x74, 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, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, - 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, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0xae, 0x02, - 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 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, 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x74, - 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x50, - 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 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, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, - 0x74, 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, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0xbf, - 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x42, 0x79, 0x4e, - 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x07, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6d, - 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x48, 0x00, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, - 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x05, - 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, - 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x05, 0x75, - 0x73, 0x65, 0x72, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x22, 0xbd, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x42, - 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x07, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6d, - 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x48, 0x00, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, - 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x05, - 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, - 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x05, 0x75, - 0x73, 0x65, 0x72, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x22, 0x4d, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6d, 0x65, 0x64, 0x69, - 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x22, - 0x4b, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x88, - 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x22, 0x17, 0x0a, 0x15, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xc4, 0x01, 0x0a, 0x1f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x52, 0x6f, 0x6c, 0x65, 0x42, 0x79, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x67, - 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x07, 0x69, 0x73, 0x41, 0x64, - 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x70, 0x72, 0x6f, - 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x0b, - 0x69, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0b, - 0x0a, 0x09, 0x5f, 0x69, 0x73, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, - 0x69, 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x22, 0xa3, 0x02, 0x0a, - 0x20, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x42, 0x79, 0x4f, 0x72, 0x67, - 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, - 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, - 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x19, - 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x07, 0x69, 0x73, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, - 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0b, 0x69, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x12, 0x39, 0x0a, 0x0a, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 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, 0x09, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x22, 0xde, 0x01, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6c, - 0x65, 0x42, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, - 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 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, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, - 0x08, 0x69, 0x73, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x00, 0x52, 0x07, 0x69, 0x73, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, - 0x0c, 0x69, 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x0b, 0x69, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, - 0x65, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x69, 0x73, 0x5f, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, - 0x74, 0x65, 0x64, 0x22, 0xbd, 0x02, 0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, - 0x6c, 0x65, 0x42, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x02, 0x69, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x72, - 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x07, 0x69, 0x73, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, - 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0b, 0x69, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x12, 0x39, 0x0a, - 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 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, 0x09, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x22, 0x48, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x6c, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, - 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x22, 0x14, 0x0a, - 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0xc0, 0x02, 0x0a, 0x0a, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, - 0x69, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x72, 0x67, - 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x00, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x21, - 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, - 0x64, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 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, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x22, 0x87, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x52, 0x6f, - 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x72, - 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, - 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x22, 0x41, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, - 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x05, 0x72, 0x6f, - 0x6c, 0x65, 0x73, 0x22, 0x86, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, - 0x42, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 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, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, - 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x22, 0x4a, 0x0a, 0x19, - 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x42, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x05, 0x72, 0x6f, 0x6c, - 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, - 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x22, 0x24, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x52, - 0x6f, 0x6c, 0x65, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x22, 0x50, - 0x0a, 0x13, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, - 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x48, 0x00, 0x52, 0x04, - 0x72, 0x6f, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x72, 0x6f, 0x6c, 0x65, - 0x22, 0x53, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x42, 0x79, 0x4e, 0x61, 0x6d, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, - 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x52, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x65, - 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, - 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, - 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x52, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x48, 0x00, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x88, 0x01, 0x01, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x22, 0x13, 0x0a, 0x11, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xa8, - 0x03, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, - 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x29, - 0x0a, 0x10, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x4e, 0x61, 0x6d, 0x65, 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, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x05, 0x65, - 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x65, 0x6d, - 0x61, 0x69, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x10, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x74, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x09, 0x66, 0x69, 0x72, 0x73, 0x74, 0x4e, 0x61, - 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, - 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x5f, 0x61, 0x74, 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, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x42, 0x0d, 0x0a, 0x0b, - 0x5f, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x48, 0x0a, 0x11, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x19, - 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, - 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6f, - 0x72, 0x63, 0x65, 0x22, 0x14, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, - 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xee, 0x02, 0x0a, 0x0a, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, - 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x64, 0x12, 0x19, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x00, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x10, - 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, - 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x66, 0x69, 0x72, 0x73, 0x74, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x09, 0x66, - 0x69, 0x72, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x6c, - 0x61, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, - 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, - 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 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, 0x09, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x42, 0x0d, 0x0a, - 0x0b, 0x5f, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x5e, 0x0a, 0x0f, 0x47, 0x65, - 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, - 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x22, 0x41, 0x0a, 0x10, 0x47, 0x65, - 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, - 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, - 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x22, 0x95, 0x01, - 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x42, 0x79, 0x4f, 0x72, 0x67, 0x61, - 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x22, 0x4f, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, - 0x73, 0x42, 0x79, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, - 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, - 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x22, 0x86, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x55, 0x73, - 0x65, 0x72, 0x73, 0x42, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 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, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x48, 0x00, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x22, - 0x4a, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x42, 0x79, 0x50, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x05, - 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x65, - 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x22, 0x2d, 0x0a, 0x12, 0x47, - 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0xb7, 0x01, 0x0a, 0x13, 0x47, - 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x30, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x55, - 0x73, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x48, 0x00, 0x52, 0x04, 0x75, 0x73, 0x65, - 0x72, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, - 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x2d, 0x0a, 0x05, - 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x65, - 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x75, 0x73, 0x65, 0x72, 0x22, 0x33, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, - 0x79, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x18, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x22, 0xbc, 0x01, 0x0a, 0x18, 0x47, 0x65, - 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, - 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x48, 0x00, 0x52, - 0x04, 0x75, 0x73, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6d, 0x65, 0x64, - 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x12, 0x2d, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x17, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, - 0x6c, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x22, 0x10, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x55, - 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xb3, 0x01, 0x0a, 0x0f, 0x47, - 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, - 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, - 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x48, 0x00, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x88, 0x01, 0x01, - 0x12, 0x36, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, - 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x08, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x2d, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, - 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x75, 0x73, 0x65, 0x72, - 0x22, 0x46, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x65, 0x64, 0x69, - 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, - 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x22, 0x47, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x2e, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, - 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, - 0x65, 0x22, 0x56, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, - 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x07, 0x63, 0x6f, 0x6e, - 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x65, 0x64, - 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, - 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x17, 0x0a, 0x15, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x45, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x07, 0x63, 0x6f, 0x6e, - 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x65, 0x64, - 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, - 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, 0x48, 0x0a, 0x14, 0x4c, 0x69, 0x73, - 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x30, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, - 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x66, 0x69, - 0x6c, 0x65, 0x73, 0x22, 0x57, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, - 0x65, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x07, - 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x0e, 0x0a, 0x02, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x48, 0x0a, 0x16, - 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, - 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x07, 0x70, - 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x22, 0xb7, 0x01, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x66, 0x69, - 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x66, 0x69, - 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, - 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x3d, 0x0a, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x64, 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, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, - 0x22, 0xfb, 0x04, 0x0a, 0x14, 0x52, 0x75, 0x6c, 0x65, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, - 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x75, 0x6c, 0x65, - 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x75, 0x6c, 0x65, 0x49, - 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x75, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3d, - 0x0a, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 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, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x52, 0x0a, - 0x0b, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x07, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, - 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x66, 0x6f, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x67, - 0x75, 0x69, 0x64, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, - 0x75, 0x69, 0x64, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x72, 0x65, 0x6d, 0x65, 0x64, - 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x59, 0x0a, 0x18, 0x72, 0x65, 0x6d, 0x65, 0x64, 0x69, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x64, 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, 0x48, 0x00, 0x52, 0x16, 0x72, 0x65, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x4c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, - 0x01, 0x12, 0x2f, 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, - 0x72, 0x65, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x66, 0x6f, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, - 0x01, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x72, 0x65, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x22, 0xa5, - 0x02, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x2e, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x50, 0x0a, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, - 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x64, 0x49, 0x64, 0x52, 0x06, - 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x6c, 0x6c, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x03, 0x61, 0x6c, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x75, 0x6c, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x75, 0x6c, 0x65, 0x1a, 0x48, 0x0a, 0x0d, - 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x64, 0x49, 0x64, 0x12, 0x27, 0x0a, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x6d, 0x65, - 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, - 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0xbc, 0x01, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x50, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x79, 0x4e, 0x61, 0x6d, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0e, 0x70, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, - 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0d, 0x70, - 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x57, 0x0a, 0x16, - 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, - 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x45, - 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, - 0x14, 0x72, 0x75, 0x6c, 0x65, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x52, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x07, 0x63, 0x6f, 0x6e, - 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x65, 0x64, - 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, - 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, 0x66, 0x0a, 0x21, 0x47, 0x65, 0x74, - 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x79, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, - 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, - 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x22, 0x3c, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, - 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x6b, 0x65, 0x79, 0x5f, - 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0d, 0x6b, 0x65, 0x79, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x22, - 0x35, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, - 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x75, 0x62, - 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x22, 0x55, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x4b, 0x65, 0x79, 0x50, 0x61, 0x69, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, - 0x0a, 0x0a, 0x70, 0x61, 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x70, 0x61, 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 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, 0x5d, 0x0a, - 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x50, 0x61, 0x69, 0x72, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, - 0x6b, 0x65, 0x79, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x1d, 0x0a, - 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x22, 0x2f, 0x0a, 0x12, - 0x52, 0x45, 0x53, 0x54, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x61, 0x73, 0x65, 0x55, 0x72, 0x6c, 0x22, 0x32, 0x0a, - 0x14, 0x47, 0x69, 0x74, 0x48, 0x75, 0x62, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x22, 0xab, 0x03, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, - 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x6d, 0x70, 0x6c, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x32, 0x0a, 0x03, 0x64, 0x65, 0x66, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, - 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x64, 0x65, 0x66, 0x1a, 0x47, 0x0a, 0x07, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x78, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x72, 0x67, 0x61, - 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x1a, 0x9a, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x38, 0x0a, 0x04, 0x72, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1f, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x45, - 0x53, 0x54, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x48, 0x00, 0x52, 0x04, 0x72, 0x65, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x06, 0x67, - 0x69, 0x74, 0x68, 0x75, 0x62, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x65, - 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x69, 0x74, 0x48, 0x75, 0x62, - 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x01, - 0x52, 0x06, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x72, 0x65, 0x73, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x22, - 0x8a, 0x01, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, - 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, - 0x12, 0x1d, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x01, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x0f, 0x0a, 0x0d, 0x5f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x22, 0x46, 0x0a, 0x14, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, - 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, - 0x74, 0x65, 0x78, 0x74, 0x22, 0x4d, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, - 0x0a, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x15, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, - 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x72, 0x75, 0x6c, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x73, 0x22, 0x5e, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x2e, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x14, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x22, 0x4f, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x32, 0x0a, 0x09, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, - 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x72, 0x75, 0x6c, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x58, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, - 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x14, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x4d, - 0x0a, 0x17, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x79, 0x49, - 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x09, 0x72, 0x75, 0x6c, - 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6d, - 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x52, 0x08, 0x72, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x4b, 0x0a, - 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x09, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6d, 0x65, 0x64, 0x69, - 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x52, 0x08, 0x72, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x4c, 0x0a, 0x16, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x09, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, - 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, - 0x72, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x4b, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x32, 0x0a, 0x09, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, - 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x72, 0x75, 0x6c, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x4c, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, - 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x32, 0x0a, 0x09, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, - 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x72, 0x75, 0x6c, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x57, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x07, - 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x0e, 0x0a, 0x02, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x18, 0x0a, 0x16, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x90, 0x01, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x74, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, - 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x73, 0x12, 0x17, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x00, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x88, 0x01, 0x01, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, - 0x72, 0x73, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x61, 0x72, 0x73, 0x65, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x25, 0x0a, 0x0b, 0x42, 0x75, 0x69, - 0x6c, 0x74, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, - 0x6f, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, - 0x22, 0x0e, 0x0a, 0x0c, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x3e, 0x0a, 0x07, 0x47, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, - 0x6c, 0x6f, 0x6e, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x72, 0x61, 0x6e, - 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, - 0x22, 0x86, 0x01, 0x0a, 0x08, 0x44, 0x69, 0x66, 0x66, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3f, 0x0a, - 0x0a, 0x65, 0x63, 0x6f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, - 0x44, 0x69, 0x66, 0x66, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x63, 0x6f, 0x73, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x52, 0x0a, 0x65, 0x63, 0x6f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0x39, - 0x0a, 0x09, 0x45, 0x63, 0x6f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x18, 0x0a, 0x07, 0x64, 0x65, 0x70, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x64, 0x65, 0x70, 0x66, 0x69, 0x6c, 0x65, 0x22, 0xdf, 0x0c, 0x0a, 0x08, 0x52, 0x75, - 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x02, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x2e, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x14, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, - 0x32, 0x0a, 0x03, 0x64, 0x65, 0x66, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6d, - 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x2e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, - 0x64, 0x65, 0x66, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x64, 0x61, 0x6e, 0x63, - 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x75, 0x69, 0x64, 0x61, 0x6e, 0x63, - 0x65, 0x1a, 0x80, 0x0b, 0x0a, 0x0a, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6e, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x38, 0x0a, - 0x0b, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x02, 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, 0x0a, 0x72, 0x75, 0x6c, - 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x3f, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x61, 0x6d, - 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x53, - 0x63, 0x68, 0x65, 0x6d, 0x61, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x06, 0x69, 0x6e, 0x67, 0x65, - 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, - 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, - 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x49, 0x6e, 0x67, 0x65, 0x73, - 0x74, 0x52, 0x06, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x04, 0x65, 0x76, 0x61, - 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, - 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x44, - 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x52, 0x04, - 0x65, 0x76, 0x61, 0x6c, 0x12, 0x48, 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, - 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, - 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x44, - 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x6d, 0x65, 0x64, 0x69, - 0x61, 0x74, 0x65, 0x52, 0x09, 0x72, 0x65, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x1a, 0xd1, - 0x02, 0x0a, 0x06, 0x49, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x2e, 0x0a, - 0x04, 0x72, 0x65, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6d, 0x65, - 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x54, 0x79, - 0x70, 0x65, 0x48, 0x00, 0x52, 0x04, 0x72, 0x65, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, - 0x07, 0x62, 0x75, 0x69, 0x6c, 0x74, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, - 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x69, - 0x6c, 0x74, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x48, 0x01, 0x52, 0x07, 0x62, 0x75, 0x69, 0x6c, - 0x74, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x08, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, - 0x63, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, - 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x54, - 0x79, 0x70, 0x65, 0x48, 0x02, 0x52, 0x08, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x03, 0x67, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x14, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x69, - 0x74, 0x54, 0x79, 0x70, 0x65, 0x48, 0x03, 0x52, 0x03, 0x67, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x2e, 0x0a, 0x04, 0x64, 0x69, 0x66, 0x66, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, - 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x69, 0x66, 0x66, - 0x54, 0x79, 0x70, 0x65, 0x48, 0x04, 0x52, 0x04, 0x64, 0x69, 0x66, 0x66, 0x88, 0x01, 0x01, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x62, 0x75, 0x69, - 0x6c, 0x74, 0x69, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, - 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x67, 0x69, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x64, 0x69, - 0x66, 0x66, 0x1a, 0xd4, 0x04, 0x0a, 0x04, 0x45, 0x76, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, - 0x42, 0x0a, 0x02, 0x6a, 0x71, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6d, 0x65, - 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x2e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x76, - 0x61, 0x6c, 0x2e, 0x4a, 0x51, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x52, - 0x02, 0x6a, 0x71, 0x12, 0x43, 0x0a, 0x04, 0x72, 0x65, 0x67, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2a, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, - 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x67, 0x6f, 0x48, 0x00, 0x52, - 0x04, 0x72, 0x65, 0x67, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x09, 0x76, 0x75, 0x6c, 0x6e, - 0x63, 0x68, 0x65, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6d, 0x65, - 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x2e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x76, - 0x61, 0x6c, 0x2e, 0x56, 0x75, 0x6c, 0x6e, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x48, 0x01, 0x52, 0x09, - 0x76, 0x75, 0x6c, 0x6e, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x88, 0x01, 0x01, 0x1a, 0xdc, 0x01, 0x0a, - 0x0c, 0x4a, 0x51, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x12, 0x57, 0x0a, - 0x08, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x3b, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, - 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x2e, 0x4a, 0x51, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, - 0x73, 0x6f, 0x6e, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x08, 0x69, 0x6e, - 0x67, 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, 0x55, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, - 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x44, - 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x2e, 0x4a, - 0x51, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x2e, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x6f, 0x72, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x1c, 0x0a, - 0x08, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x65, 0x66, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x65, 0x66, 0x1a, 0x2c, 0x0a, 0x04, 0x52, - 0x65, 0x67, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x65, 0x66, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x65, 0x66, 0x1a, 0x37, 0x0a, 0x09, 0x56, 0x75, 0x6c, - 0x6e, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x64, 0x62, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x02, 0x64, 0x62, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x72, 0x65, 0x67, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x76, 0x75, 0x6c, 0x6e, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x1a, 0x58, 0x0a, 0x09, 0x52, 0x65, 0x6d, - 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x2e, 0x0a, 0x04, 0x72, 0x65, - 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, - 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x48, - 0x00, 0x52, 0x04, 0x72, 0x65, 0x73, 0x74, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x72, - 0x65, 0x73, 0x74, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5f, 0x73, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x69, 0x64, 0x22, 0x8a, 0x04, 0x0a, 0x07, - 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x2e, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, - 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, - 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x07, - 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x02, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x39, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x04, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, - 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x52, - 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x46, 0x0a, 0x11, 0x62, - 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, - 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x52, 0x75, 0x6c, - 0x65, 0x52, 0x10, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x12, 0x35, 0x0a, 0x08, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x18, - 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, - 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x52, 0x75, 0x6c, 0x65, - 0x52, 0x08, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x12, 0x3c, 0x0a, 0x0c, 0x70, 0x75, - 0x6c, 0x6c, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, - 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x0b, 0x70, 0x75, 0x6c, - 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x65, - 0x64, 0x69, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x09, 0x72, - 0x65, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x76, 0x0a, 0x04, 0x52, - 0x75, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x03, 0x64, 0x65, 0x66, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x03, - 0x64, 0x65, 0x66, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x69, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, - 0x65, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x2a, 0x7b, 0x0a, 0x0b, 0x4f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x18, 0x4f, 0x42, 0x4a, 0x45, 0x43, - 0x54, 0x5f, 0x4f, 0x57, 0x4e, 0x45, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, - 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, - 0x4f, 0x57, 0x4e, 0x45, 0x52, 0x5f, 0x4f, 0x52, 0x47, 0x41, 0x4e, 0x49, 0x5a, 0x41, 0x54, 0x49, - 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4f, - 0x57, 0x4e, 0x45, 0x52, 0x5f, 0x50, 0x52, 0x4f, 0x4a, 0x45, 0x43, 0x54, 0x10, 0x02, 0x12, 0x15, - 0x0a, 0x11, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4f, 0x57, 0x4e, 0x45, 0x52, 0x5f, 0x55, - 0x53, 0x45, 0x52, 0x10, 0x03, 0x2a, 0x5a, 0x0a, 0x0c, 0x44, 0x65, 0x70, 0x45, 0x63, 0x6f, 0x73, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x1d, 0x0a, 0x19, 0x44, 0x45, 0x50, 0x5f, 0x45, 0x43, 0x4f, - 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, - 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x44, 0x45, 0x50, 0x5f, 0x45, 0x43, 0x4f, 0x53, - 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x4e, 0x50, 0x4d, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x44, - 0x45, 0x50, 0x5f, 0x45, 0x43, 0x4f, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x47, 0x4f, 0x10, - 0x02, 0x2a, 0x98, 0x01, 0x0a, 0x0a, 0x52, 0x65, 0x70, 0x6f, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x12, 0x20, 0x0a, 0x1c, 0x52, 0x45, 0x50, 0x4f, 0x5f, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, - 0x53, 0x48, 0x4f, 0x57, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, - 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x52, 0x45, 0x50, 0x4f, 0x5f, 0x46, 0x49, 0x4c, 0x54, 0x45, - 0x52, 0x5f, 0x53, 0x48, 0x4f, 0x57, 0x5f, 0x41, 0x4c, 0x4c, 0x10, 0x01, 0x12, 0x28, 0x0a, 0x24, - 0x52, 0x45, 0x50, 0x4f, 0x5f, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x53, 0x48, 0x4f, 0x57, - 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x47, 0x49, 0x53, 0x54, 0x45, 0x52, 0x45, 0x44, 0x5f, - 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x02, 0x12, 0x24, 0x0a, 0x20, 0x52, 0x45, 0x50, 0x4f, 0x5f, 0x46, - 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x53, 0x48, 0x4f, 0x57, 0x5f, 0x52, 0x45, 0x47, 0x49, 0x53, - 0x54, 0x45, 0x52, 0x45, 0x44, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x03, 0x2a, 0x88, 0x01, 0x0a, - 0x06, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x16, 0x0a, 0x12, 0x45, 0x4e, 0x54, 0x49, 0x54, - 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x17, 0x0a, 0x13, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x53, 0x49, - 0x54, 0x4f, 0x52, 0x49, 0x45, 0x53, 0x10, 0x01, 0x12, 0x1d, 0x0a, 0x19, 0x45, 0x4e, 0x54, 0x49, - 0x54, 0x59, 0x5f, 0x42, 0x55, 0x49, 0x4c, 0x44, 0x5f, 0x45, 0x4e, 0x56, 0x49, 0x52, 0x4f, 0x4e, - 0x4d, 0x45, 0x4e, 0x54, 0x53, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x45, 0x4e, 0x54, 0x49, 0x54, - 0x59, 0x5f, 0x41, 0x52, 0x54, 0x49, 0x46, 0x41, 0x43, 0x54, 0x53, 0x10, 0x03, 0x12, 0x18, 0x0a, - 0x14, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x50, 0x55, 0x4c, 0x4c, 0x5f, 0x52, 0x45, 0x51, - 0x55, 0x45, 0x53, 0x54, 0x53, 0x10, 0x04, 0x32, 0x81, 0x01, 0x0a, 0x0d, 0x48, 0x65, 0x61, 0x6c, - 0x74, 0x68, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x70, 0x0a, 0x0b, 0x43, 0x68, 0x65, - 0x63, 0x6b, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x12, 0x1f, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, - 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x6c, - 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x6d, 0x65, 0x64, 0x69, - 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x48, 0x65, 0x61, - 0x6c, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0xaa, 0xf8, 0x18, - 0x04, 0x08, 0x01, 0x10, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x32, 0x9c, 0x02, 0x0a, 0x0f, - 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, - 0x84, 0x01, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, - 0x73, 0x12, 0x21, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, - 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2c, 0xaa, 0xf8, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x12, 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, - 0x31, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x7d, 0x12, 0x81, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x41, 0x72, - 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x42, 0x79, 0x49, 0x64, 0x12, 0x23, 0x2e, 0x6d, 0x65, 0x64, - 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, - 0x66, 0x61, 0x63, 0x74, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x24, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0xaa, 0xf8, 0x18, 0x02, 0x28, 0x02, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x17, 0x12, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x72, 0x74, - 0x69, 0x66, 0x61, 0x63, 0x74, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x32, 0xe8, 0x08, 0x0a, 0x0c, 0x4f, - 0x41, 0x75, 0x74, 0x68, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x8a, 0x01, 0x0a, 0x13, - 0x47, 0x65, 0x74, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x55, 0x52, 0x4c, 0x12, 0x27, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x55, 0x52, 0x4c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6d, - 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x75, - 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x52, 0x4c, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, 0xaa, 0xf8, 0x18, 0x04, 0x18, 0x01, 0x28, 0x02, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x12, 0x10, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, - 0x61, 0x75, 0x74, 0x68, 0x2f, 0x75, 0x72, 0x6c, 0x12, 0x90, 0x01, 0x0a, 0x17, 0x45, 0x78, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x46, 0x6f, 0x72, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x43, 0x4c, 0x49, 0x12, 0x2b, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, - 0x76, 0x31, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x46, - 0x6f, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x43, 0x4c, 0x49, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x48, - 0x74, 0x74, 0x70, 0x42, 0x6f, 0x64, 0x79, 0x22, 0x32, 0xaa, 0xf8, 0x18, 0x02, 0x08, 0x01, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x12, 0x24, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, - 0x75, 0x74, 0x68, 0x2f, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x2f, 0x7b, 0x70, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x7d, 0x2f, 0x63, 0x6c, 0x69, 0x12, 0xa8, 0x01, 0x0a, 0x17, - 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x46, 0x6f, 0x72, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x57, 0x45, 0x42, 0x12, 0x2b, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, - 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, - 0x64, 0x65, 0x46, 0x6f, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x57, 0x45, 0x42, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, - 0x76, 0x31, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x46, - 0x6f, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x57, 0x45, 0x42, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x32, 0xaa, 0xf8, 0x18, 0x02, 0x08, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, - 0x12, 0x24, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63, - 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x72, 0x7d, 0x2f, 0x77, 0x65, 0x62, 0x12, 0x95, 0x01, 0x0a, 0x12, 0x53, 0x74, 0x6f, 0x72, 0x65, - 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x26, 0x2e, - 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x6f, 0x72, - 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, - 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2e, - 0xaa, 0xf8, 0x18, 0x02, 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x3a, 0x01, 0x2a, 0x22, - 0x1d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x7b, 0x70, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x7d, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x8c, - 0x01, 0x0a, 0x11, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x25, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, - 0x76, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x6d, 0x65, - 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, - 0x4f, 0x61, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x28, 0xaa, 0xf8, 0x18, 0x02, 0x20, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x1c, 0x3a, 0x01, 0x2a, 0x22, 0x17, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x75, - 0x74, 0x68, 0x2f, 0x72, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x2d, 0x61, 0x6c, 0x6c, 0x12, 0xb4, 0x01, - 0x0a, 0x17, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x50, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x2b, 0x2e, 0x6d, 0x65, 0x64, 0x69, - 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x4f, 0x61, - 0x75, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, - 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x4f, 0x61, 0x75, 0x74, 0x68, - 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3e, 0xaa, 0xf8, 0x18, 0x04, 0x18, 0x01, 0x28, 0x02, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x30, 0x3a, 0x01, 0x2a, 0x22, 0x2b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, - 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x7d, - 0x2f, 0x72, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xae, 0x01, 0x0a, 0x17, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x50, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x46, 0x72, 0x6f, 0x6d, - 0x12, 0x2b, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x56, - 0x65, 0x72, 0x69, 0x66, 0x79, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, - 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x65, 0x72, 0x69, - 0x66, 0x79, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x46, - 0x72, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x38, 0xaa, 0xf8, 0x18, - 0x02, 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x12, 0x2a, 0x2f, 0x61, 0x70, 0x69, 0x2f, - 0x76, 0x31, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x2f, 0x7b, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x7d, 0x2f, 0x7b, 0x74, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x7d, 0x32, 0xd0, 0x04, 0x0a, 0x0b, 0x41, 0x75, 0x74, 0x68, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x61, 0x0a, 0x06, 0x4c, 0x6f, 0x67, 0x4f, 0x75, 0x74, 0x12, - 0x1a, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, - 0x67, 0x4f, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x65, - 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4f, 0x75, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, - 0x3a, 0x01, 0x2a, 0x22, 0x13, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x75, 0x74, - 0x68, 0x2f, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x12, 0x79, 0x0a, 0x0c, 0x52, 0x65, 0x76, 0x6f, - 0x6b, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x20, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, - 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6d, 0x65, 0x64, - 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, 0xaa, - 0xf8, 0x18, 0x02, 0x20, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x3a, 0x01, 0x2a, 0x22, 0x13, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x72, 0x65, 0x76, - 0x6f, 0x6b, 0x65, 0x12, 0x8c, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x55, 0x73, - 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x23, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, - 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x55, 0x73, 0x65, 0x72, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x6d, - 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, - 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x2e, 0xaa, 0xf8, 0x18, 0x02, 0x20, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, - 0x3a, 0x01, 0x2a, 0x22, 0x1d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x75, 0x74, - 0x68, 0x2f, 0x72, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, - 0x64, 0x7d, 0x12, 0x74, 0x0a, 0x0c, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x12, 0x20, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, - 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, - 0x76, 0x31, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x3a, - 0x01, 0x2a, 0x22, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x75, 0x74, 0x68, - 0x2f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x12, 0x5e, 0x0a, 0x06, 0x56, 0x65, 0x72, 0x69, - 0x66, 0x79, 0x12, 0x1a, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, - 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, - 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x65, 0x72, - 0x69, 0x66, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x15, 0x12, 0x13, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x75, 0x74, - 0x68, 0x2f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x32, 0xc2, 0x06, 0x0a, 0x11, 0x52, 0x65, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x9f, - 0x01, 0x0a, 0x10, 0x53, 0x79, 0x6e, 0x63, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, - 0x69, 0x65, 0x73, 0x12, 0x24, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, - 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, - 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x6d, 0x65, 0x64, 0x69, - 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x52, 0x65, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x3e, 0xaa, 0xf8, 0x18, 0x02, 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x3a, 0x01, - 0x2a, 0x22, 0x2d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x7d, 0x2f, 0x73, 0x79, 0x6e, 0x63, - 0x12, 0xa9, 0x01, 0x0a, 0x12, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x26, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, - 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x27, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x42, 0xaa, 0xf8, 0x18, 0x04, 0x18, 0x01, - 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x34, 0x3a, 0x01, 0x2a, 0x22, 0x2f, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2f, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x72, 0x7d, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x97, 0x01, 0x0a, - 0x10, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, - 0x73, 0x12, 0x24, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, - 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, - 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x36, - 0xaa, 0xf8, 0x18, 0x02, 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x12, 0x28, 0x2f, 0x61, - 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, - 0x65, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2f, 0x7b, 0x70, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x7d, 0x12, 0x97, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x52, 0x65, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x49, 0x64, 0x12, 0x25, 0x2e, 0x6d, - 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, - 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0xaa, 0xf8, 0x18, - 0x02, 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x12, 0x25, 0x2f, 0x61, 0x70, 0x69, 0x2f, - 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x69, 0x64, - 0x2f, 0x7b, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x7d, - 0x12, 0xaa, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, - 0x72, 0x79, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, - 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, - 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x28, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x4e, - 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x40, 0xaa, 0xf8, 0x18, - 0x02, 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x34, 0x12, 0x32, 0x2f, 0x61, 0x70, 0x69, 0x2f, - 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x70, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x32, 0xa6, 0x01, - 0x0a, 0x17, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x8a, 0x01, 0x0a, 0x13, 0x47, 0x65, - 0x74, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x27, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6d, 0x65, 0x64, - 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x72, 0x61, 0x6e, - 0x63, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x12, 0x18, 0x2f, 0x61, - 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x70, 0x72, 0x6f, 0x74, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x32, 0xf6, 0x05, 0x0a, 0x13, 0x4f, 0x72, 0x67, 0x61, 0x6e, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x8c, - 0x01, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, - 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, - 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0xaa, 0xf8, 0x18, 0x02, 0x20, 0x01, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x19, 0x3a, 0x01, 0x2a, 0x22, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, - 0x2f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x84, 0x01, - 0x0a, 0x10, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x12, 0x24, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, - 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x23, 0xaa, 0xf8, 0x18, 0x02, 0x20, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x12, 0x15, 0x2f, - 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x95, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x61, - 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, - 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, - 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, - 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x37, 0xaa, 0xf8, 0x18, 0x04, 0x18, 0x01, 0x28, 0x01, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x29, 0x12, 0x27, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, - 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x61, - 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x9f, 0x01, 0x0a, - 0x15, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x29, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, - 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2a, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, - 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0xaa, - 0xf8, 0x18, 0x02, 0x28, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x12, 0x21, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x8e, - 0x01, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, - 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, - 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x27, 0xaa, 0xf8, 0x18, 0x02, 0x20, 0x01, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x1b, 0x2a, 0x19, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, - 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x32, - 0xad, 0x05, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x12, 0x7a, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x12, 0x21, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, - 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, - 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0xaa, 0xf8, 0x18, 0x04, - 0x18, 0x01, 0x28, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x3a, 0x01, 0x2a, 0x22, 0x0f, 0x2f, - 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x84, - 0x01, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x1f, - 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x20, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x32, 0xaa, 0xf8, 0x18, 0x04, 0x18, 0x01, 0x28, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x24, 0x12, 0x22, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x8c, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x2e, 0x6d, 0x65, 0x64, - 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x25, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0xaa, 0xf8, 0x18, 0x04, 0x18, 0x01, 0x28, - 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x12, 0x1b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, - 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x2f, 0x7b, 0x6e, - 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x8a, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x42, 0x79, 0x49, 0x64, 0x12, 0x22, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, - 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x6d, 0x65, - 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x2f, 0xaa, 0xf8, 0x18, 0x04, 0x18, 0x01, 0x28, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, - 0x12, 0x1f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x2f, 0x69, 0x64, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, - 0x7d, 0x12, 0x7c, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x12, 0x21, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, - 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, - 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, 0xaa, 0xf8, 0x18, 0x04, 0x18, - 0x01, 0x28, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x2a, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, - 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x32, - 0xc6, 0x07, 0x0a, 0x0b, 0x52, 0x6f, 0x6c, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, - 0xa5, 0x01, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x42, 0x79, - 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x2e, 0x6d, - 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x42, 0x79, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6d, 0x65, 0x64, - 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, - 0x6f, 0x6c, 0x65, 0x42, 0x79, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2c, 0xaa, 0xf8, 0x18, 0x04, 0x18, - 0x01, 0x28, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x3a, 0x01, 0x2a, 0x22, 0x19, 0x2f, 0x61, - 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x2f, 0x6f, 0x72, 0x67, 0x61, 0x6e, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x91, 0x01, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x42, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, - 0x27, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x42, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, - 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6c, - 0x65, 0x42, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x27, 0xaa, 0xf8, 0x18, 0x04, 0x18, 0x01, 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x19, 0x3a, 0x01, 0x2a, 0x22, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, - 0x6f, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x70, 0x0a, 0x0a, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x1e, 0x2e, 0x6d, 0x65, 0x64, 0x69, - 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, - 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x6d, 0x65, 0x64, 0x69, - 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, - 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x21, 0xaa, 0xf8, 0x18, 0x04, - 0x18, 0x01, 0x28, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x2a, 0x11, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x78, 0x0a, - 0x08, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x1c, 0x2e, 0x6d, 0x65, 0x64, 0x69, - 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, - 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0xaa, 0xf8, 0x18, 0x04, 0x18, 0x01, 0x28, 0x01, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x12, 0x1f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, - 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x96, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x52, - 0x6f, 0x6c, 0x65, 0x73, 0x42, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x25, 0x2e, - 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, - 0x6f, 0x6c, 0x65, 0x73, 0x42, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, - 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x42, 0x79, 0x50, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0xaa, 0xf8, - 0x18, 0x04, 0x18, 0x01, 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x12, 0x22, 0x2f, 0x61, - 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, - 0x12, 0x73, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x42, 0x79, 0x49, 0x64, 0x12, - 0x1f, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x20, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x21, 0xaa, 0xf8, 0x18, 0x04, 0x18, 0x01, 0x28, 0x01, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x13, 0x12, 0x11, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x6f, 0x6c, 0x65, - 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x80, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6c, - 0x65, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, - 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x42, 0x79, 0x4e, - 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x6d, 0x65, 0x64, - 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x65, - 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x28, - 0xaa, 0xf8, 0x18, 0x04, 0x18, 0x01, 0x28, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x12, 0x18, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x2f, 0x6e, 0x61, 0x6d, - 0x65, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x32, 0xf9, 0x07, 0x0a, 0x0b, 0x55, 0x73, 0x65, - 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x6e, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1e, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, - 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, - 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1f, 0xaa, 0xf8, 0x18, 0x04, 0x18, 0x01, 0x28, - 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x3a, 0x01, 0x2a, 0x22, 0x0c, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x12, 0x70, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1e, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, - 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, - 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x21, 0xaa, 0xf8, 0x18, 0x04, 0x18, 0x01, 0x28, - 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x2a, 0x11, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, - 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x64, 0x0a, 0x08, 0x47, 0x65, - 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x1c, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, - 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, - 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x1b, 0xaa, 0xf8, 0x18, 0x02, 0x20, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x0f, 0x12, 0x0d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, - 0x12, 0xa2, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x42, 0x79, 0x4f, - 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x2e, 0x6d, 0x65, - 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, - 0x72, 0x73, 0x42, 0x79, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, - 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x42, 0x79, - 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0xaa, 0xf8, 0x18, 0x04, 0x18, 0x01, 0x28, 0x01, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x21, 0x12, 0x1f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, - 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x8e, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, - 0x72, 0x73, 0x42, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x25, 0x2e, 0x6d, 0x65, - 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, - 0x72, 0x73, 0x42, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x42, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2a, 0xaa, 0xf8, 0x18, 0x04, - 0x18, 0x01, 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x12, 0x1a, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x78, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, - 0x72, 0x42, 0x79, 0x49, 0x64, 0x12, 0x1f, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, - 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0xaa, 0xf8, 0x18, 0x04, 0x18, 0x01, - 0x28, 0x03, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, - 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, - 0x12, 0x8f, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x53, 0x75, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x24, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x53, 0x75, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x6d, 0x65, - 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, - 0x72, 0x42, 0x79, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x2e, 0xaa, 0xf8, 0x18, 0x04, 0x18, 0x01, 0x28, 0x01, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x20, 0x12, 0x1e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, - 0x2f, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x7d, 0x12, 0x60, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1b, 0x2e, - 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, - 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6d, 0x65, 0x64, - 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1a, 0xaa, 0xf8, 0x18, 0x02, 0x28, 0x03, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0e, 0x12, 0x0c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, - 0x75, 0x73, 0x65, 0x72, 0x32, 0xd8, 0x0c, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x7a, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x21, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, - 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x6d, 0x65, - 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x22, 0xaa, 0xf8, 0x18, 0x04, 0x18, 0x01, 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x3a, - 0x01, 0x2a, 0x22, 0x0f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x12, 0x7c, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x12, 0x21, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, - 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, - 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, 0xaa, 0xf8, 0x18, - 0x04, 0x18, 0x01, 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x2a, 0x14, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2f, 0x7b, 0x69, 0x64, - 0x7d, 0x12, 0x73, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, - 0x73, 0x12, 0x20, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, - 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0xaa, 0xf8, 0x18, 0x02, 0x28, 0x02, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x12, 0x12, 0x10, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x77, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x42, 0x79, 0x49, 0x64, 0x12, 0x22, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, - 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, - 0x65, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x6d, - 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x1c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x12, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, - 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, - 0xa3, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x2e, 0x6d, 0x65, 0x64, - 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, - 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x30, 0xaa, 0xf8, 0x18, 0x02, 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x24, 0x12, 0x22, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x66, 0x69, - 0x6c, 0x65, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0xa0, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x79, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x12, 0x2d, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x42, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x42, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x24, 0xaa, 0xf8, 0x18, 0x02, 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, - 0x12, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, - 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x78, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x21, 0x2e, 0x6d, 0x65, 0x64, 0x69, - 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x6d, - 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x20, 0xaa, 0xf8, 0x18, 0x02, 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x12, 0x12, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x73, 0x12, 0x8f, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, - 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x26, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0xaa, 0xf8, 0x18, 0x02, 0x28, 0x02, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, 0x1d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, - 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x2f, 0x7b, 0x6e, - 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x82, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x42, 0x79, 0x49, 0x64, 0x12, 0x23, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, - 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, - 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, - 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x24, 0xaa, 0xf8, 0x18, 0x02, 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x18, 0x12, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x7f, 0x0a, 0x0e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x2e, 0x6d, 0x65, - 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x23, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, 0xaa, 0xf8, 0x18, 0x04, 0x18, 0x01, 0x28, 0x02, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x16, 0x3a, 0x01, 0x2a, 0x22, 0x11, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, - 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x12, 0x7f, 0x0a, 0x0e, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x2e, 0x6d, - 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x23, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, 0xaa, 0xf8, 0x18, 0x04, 0x18, 0x01, 0x28, 0x02, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x3a, 0x01, 0x2a, 0x1a, 0x11, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, - 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x12, 0x81, 0x01, 0x0a, 0x0e, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, - 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, - 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0xaa, 0xf8, 0x18, 0x04, 0x18, 0x01, 0x28, - 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x2a, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, - 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x32, - 0xee, 0x01, 0x0a, 0x0a, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x68, - 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x20, - 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x21, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x13, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0d, 0x12, 0x0b, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6b, 0x65, 0x79, 0x12, 0x76, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x4b, 0x65, 0x79, 0x50, 0x61, 0x69, 0x72, 0x12, 0x21, 0x2e, 0x6d, 0x65, 0x64, 0x69, - 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4b, 0x65, - 0x79, 0x50, 0x61, 0x69, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x6d, - 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x4b, 0x65, 0x79, 0x50, 0x61, 0x69, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x1e, 0xaa, 0xf8, 0x18, 0x04, 0x18, 0x01, 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, - 0x3a, 0x01, 0x2a, 0x22, 0x0b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6b, 0x65, 0x79, - 0x3a, 0x5a, 0x0a, 0x0b, 0x72, 0x70, 0x63, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, - 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, - 0x85, 0x8f, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, - 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x70, 0x63, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x52, 0x0a, 0x72, 0x70, 0x63, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x32, 0x5a, 0x30, - 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x74, 0x61, 0x63, 0x6b, - 0x6c, 0x6f, 0x6b, 0x2f, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2f, 0x70, 0x6b, 0x67, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x67, 0x6f, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} - -var ( - file_mediator_v1_mediator_proto_rawDescOnce sync.Once - file_mediator_v1_mediator_proto_rawDescData = file_mediator_v1_mediator_proto_rawDesc -) - -func file_mediator_v1_mediator_proto_rawDescGZIP() []byte { - file_mediator_v1_mediator_proto_rawDescOnce.Do(func() { - file_mediator_v1_mediator_proto_rawDescData = protoimpl.X.CompressGZIP(file_mediator_v1_mediator_proto_rawDescData) - }) - return file_mediator_v1_mediator_proto_rawDescData -} - -var file_mediator_v1_mediator_proto_enumTypes = make([]protoimpl.EnumInfo, 4) -var file_mediator_v1_mediator_proto_msgTypes = make([]protoimpl.MessageInfo, 172) -var file_mediator_v1_mediator_proto_goTypes = []interface{}{ - (ObjectOwner)(0), // 0: mediator.v1.ObjectOwner - (DepEcosystem)(0), // 1: mediator.v1.DepEcosystem - (RepoFilter)(0), // 2: mediator.v1.RepoFilter - (Entity)(0), // 3: mediator.v1.Entity - (*RpcOptions)(nil), // 4: mediator.v1.RpcOptions - (*ListArtifactsRequest)(nil), // 5: mediator.v1.ListArtifactsRequest - (*ListArtifactsResponse)(nil), // 6: mediator.v1.ListArtifactsResponse - (*Artifact)(nil), // 7: mediator.v1.Artifact - (*GithubWorkflow)(nil), // 8: mediator.v1.GithubWorkflow - (*SignatureVerification)(nil), // 9: mediator.v1.SignatureVerification - (*ArtifactVersion)(nil), // 10: mediator.v1.ArtifactVersion - (*GetArtifactByIdRequest)(nil), // 11: mediator.v1.GetArtifactByIdRequest - (*GetArtifactByIdResponse)(nil), // 12: mediator.v1.GetArtifactByIdResponse - (*PullRequest)(nil), // 13: mediator.v1.PullRequest - (*Dependency)(nil), // 14: mediator.v1.Dependency - (*PrDependencies)(nil), // 15: mediator.v1.PrDependencies - (*CheckHealthRequest)(nil), // 16: mediator.v1.CheckHealthRequest - (*CheckHealthResponse)(nil), // 17: mediator.v1.CheckHealthResponse - (*GetAuthorizationURLRequest)(nil), // 18: mediator.v1.GetAuthorizationURLRequest - (*GetAuthorizationURLResponse)(nil), // 19: mediator.v1.GetAuthorizationURLResponse - (*ExchangeCodeForTokenCLIRequest)(nil), // 20: mediator.v1.ExchangeCodeForTokenCLIRequest - (*StoreProviderTokenRequest)(nil), // 21: mediator.v1.StoreProviderTokenRequest - (*StoreProviderTokenResponse)(nil), // 22: mediator.v1.StoreProviderTokenResponse - (*ExchangeCodeForTokenWEBRequest)(nil), // 23: mediator.v1.ExchangeCodeForTokenWEBRequest - (*ExchangeCodeForTokenWEBResponse)(nil), // 24: mediator.v1.ExchangeCodeForTokenWEBResponse - (*LogOutRequest)(nil), // 25: mediator.v1.LogOutRequest - (*LogOutResponse)(nil), // 26: mediator.v1.LogOutResponse - (*RevokeTokensRequest)(nil), // 27: mediator.v1.RevokeTokensRequest - (*RevokeTokensResponse)(nil), // 28: mediator.v1.RevokeTokensResponse - (*RevokeUserTokenRequest)(nil), // 29: mediator.v1.RevokeUserTokenRequest - (*RevokeUserTokenResponse)(nil), // 30: mediator.v1.RevokeUserTokenResponse - (*RevokeOauthTokensRequest)(nil), // 31: mediator.v1.RevokeOauthTokensRequest - (*RevokeOauthTokensResponse)(nil), // 32: mediator.v1.RevokeOauthTokensResponse - (*RevokeOauthProjectTokenRequest)(nil), // 33: mediator.v1.RevokeOauthProjectTokenRequest - (*RevokeOauthProjectTokenResponse)(nil), // 34: mediator.v1.RevokeOauthProjectTokenResponse - (*RefreshTokenRequest)(nil), // 35: mediator.v1.RefreshTokenRequest - (*RefreshTokenResponse)(nil), // 36: mediator.v1.RefreshTokenResponse - (*SyncRepositoriesRequest)(nil), // 37: mediator.v1.SyncRepositoriesRequest - (*SyncRepositoriesResponse)(nil), // 38: mediator.v1.SyncRepositoriesResponse - (*RegisterRepositoryRequest)(nil), // 39: mediator.v1.RegisterRepositoryRequest - (*Repositories)(nil), // 40: mediator.v1.Repositories - (*RepositoryResult)(nil), // 41: mediator.v1.RepositoryResult - (*RegisterRepositoryResponse)(nil), // 42: mediator.v1.RegisterRepositoryResponse - (*RepositoryRecord)(nil), // 43: mediator.v1.RepositoryRecord - (*GetRepositoryByIdRequest)(nil), // 44: mediator.v1.GetRepositoryByIdRequest - (*GetRepositoryByIdResponse)(nil), // 45: mediator.v1.GetRepositoryByIdResponse - (*GetRepositoryByNameRequest)(nil), // 46: mediator.v1.GetRepositoryByNameRequest - (*GetRepositoryByNameResponse)(nil), // 47: mediator.v1.GetRepositoryByNameResponse - (*ListRepositoriesRequest)(nil), // 48: mediator.v1.ListRepositoriesRequest - (*ListRepositoriesResponse)(nil), // 49: mediator.v1.ListRepositoriesResponse - (*VerifyRequest)(nil), // 50: mediator.v1.VerifyRequest - (*VerifyResponse)(nil), // 51: mediator.v1.VerifyResponse - (*VerifyProviderTokenFromRequest)(nil), // 52: mediator.v1.VerifyProviderTokenFromRequest - (*VerifyProviderTokenFromResponse)(nil), // 53: mediator.v1.VerifyProviderTokenFromResponse - (*GetVulnerabilitiesRequest)(nil), // 54: mediator.v1.GetVulnerabilitiesRequest - (*GetVulnerabilityByIdRequest)(nil), // 55: mediator.v1.GetVulnerabilityByIdRequest - (*GetVulnerabilityByIdResponse)(nil), // 56: mediator.v1.GetVulnerabilityByIdResponse - (*GetVulnerabilitiesResponse)(nil), // 57: mediator.v1.GetVulnerabilitiesResponse - (*GetSecretsRequest)(nil), // 58: mediator.v1.GetSecretsRequest - (*GetSecretsResponse)(nil), // 59: mediator.v1.GetSecretsResponse - (*GetSecretByIdRequest)(nil), // 60: mediator.v1.GetSecretByIdRequest - (*GetSecretByIdResponse)(nil), // 61: mediator.v1.GetSecretByIdResponse - (*GetBranchProtectionRequest)(nil), // 62: mediator.v1.GetBranchProtectionRequest - (*BranchProtection)(nil), // 63: mediator.v1.BranchProtection - (*GetBranchProtectionResponse)(nil), // 64: mediator.v1.GetBranchProtectionResponse - (*CreateOrganizationRequest)(nil), // 65: mediator.v1.CreateOrganizationRequest - (*CreateOrganizationResponse)(nil), // 66: mediator.v1.CreateOrganizationResponse - (*OrganizationRecord)(nil), // 67: mediator.v1.OrganizationRecord - (*DeleteOrganizationRequest)(nil), // 68: mediator.v1.DeleteOrganizationRequest - (*DeleteOrganizationResponse)(nil), // 69: mediator.v1.DeleteOrganizationResponse - (*GetOrganizationsRequest)(nil), // 70: mediator.v1.GetOrganizationsRequest - (*GetOrganizationsResponse)(nil), // 71: mediator.v1.GetOrganizationsResponse - (*GetOrganizationRequest)(nil), // 72: mediator.v1.GetOrganizationRequest - (*GetOrganizationResponse)(nil), // 73: mediator.v1.GetOrganizationResponse - (*GetOrganizationByNameRequest)(nil), // 74: mediator.v1.GetOrganizationByNameRequest - (*GetOrganizationByNameResponse)(nil), // 75: mediator.v1.GetOrganizationByNameResponse - (*CreateProjectRequest)(nil), // 76: mediator.v1.CreateProjectRequest - (*GetProjectByNameRequest)(nil), // 77: mediator.v1.GetProjectByNameRequest - (*GetProjectByIdRequest)(nil), // 78: mediator.v1.GetProjectByIdRequest - (*GetProjectsRequest)(nil), // 79: mediator.v1.GetProjectsRequest - (*ProjectRecord)(nil), // 80: mediator.v1.ProjectRecord - (*CreateProjectResponse)(nil), // 81: mediator.v1.CreateProjectResponse - (*GetProjectByNameResponse)(nil), // 82: mediator.v1.GetProjectByNameResponse - (*GetProjectByIdResponse)(nil), // 83: mediator.v1.GetProjectByIdResponse - (*GetProjectsResponse)(nil), // 84: mediator.v1.GetProjectsResponse - (*DeleteProjectRequest)(nil), // 85: mediator.v1.DeleteProjectRequest - (*DeleteProjectResponse)(nil), // 86: mediator.v1.DeleteProjectResponse - (*CreateRoleByOrganizationRequest)(nil), // 87: mediator.v1.CreateRoleByOrganizationRequest - (*CreateRoleByOrganizationResponse)(nil), // 88: mediator.v1.CreateRoleByOrganizationResponse - (*CreateRoleByProjectRequest)(nil), // 89: mediator.v1.CreateRoleByProjectRequest - (*CreateRoleByProjectResponse)(nil), // 90: mediator.v1.CreateRoleByProjectResponse - (*DeleteRoleRequest)(nil), // 91: mediator.v1.DeleteRoleRequest - (*DeleteRoleResponse)(nil), // 92: mediator.v1.DeleteRoleResponse - (*RoleRecord)(nil), // 93: mediator.v1.RoleRecord - (*GetRolesRequest)(nil), // 94: mediator.v1.GetRolesRequest - (*GetRolesResponse)(nil), // 95: mediator.v1.GetRolesResponse - (*GetRolesByProjectRequest)(nil), // 96: mediator.v1.GetRolesByProjectRequest - (*GetRolesByProjectResponse)(nil), // 97: mediator.v1.GetRolesByProjectResponse - (*GetRoleByIdRequest)(nil), // 98: mediator.v1.GetRoleByIdRequest - (*GetRoleByIdResponse)(nil), // 99: mediator.v1.GetRoleByIdResponse - (*GetRoleByNameRequest)(nil), // 100: mediator.v1.GetRoleByNameRequest - (*GetRoleByNameResponse)(nil), // 101: mediator.v1.GetRoleByNameResponse - (*CreateUserRequest)(nil), // 102: mediator.v1.CreateUserRequest - (*CreateUserResponse)(nil), // 103: mediator.v1.CreateUserResponse - (*DeleteUserRequest)(nil), // 104: mediator.v1.DeleteUserRequest - (*DeleteUserResponse)(nil), // 105: mediator.v1.DeleteUserResponse - (*UserRecord)(nil), // 106: mediator.v1.UserRecord - (*GetUsersRequest)(nil), // 107: mediator.v1.GetUsersRequest - (*GetUsersResponse)(nil), // 108: mediator.v1.GetUsersResponse - (*GetUsersByOrganizationRequest)(nil), // 109: mediator.v1.GetUsersByOrganizationRequest - (*GetUsersByOrganizationResponse)(nil), // 110: mediator.v1.GetUsersByOrganizationResponse - (*GetUsersByProjectRequest)(nil), // 111: mediator.v1.GetUsersByProjectRequest - (*GetUsersByProjectResponse)(nil), // 112: mediator.v1.GetUsersByProjectResponse - (*GetUserByIdRequest)(nil), // 113: mediator.v1.GetUserByIdRequest - (*GetUserByIdResponse)(nil), // 114: mediator.v1.GetUserByIdResponse - (*GetUserBySubjectRequest)(nil), // 115: mediator.v1.GetUserBySubjectRequest - (*GetUserBySubjectResponse)(nil), // 116: mediator.v1.GetUserBySubjectResponse - (*GetUserRequest)(nil), // 117: mediator.v1.GetUserRequest - (*GetUserResponse)(nil), // 118: mediator.v1.GetUserResponse - (*CreateProfileRequest)(nil), // 119: mediator.v1.CreateProfileRequest - (*CreateProfileResponse)(nil), // 120: mediator.v1.CreateProfileResponse - (*DeleteProfileRequest)(nil), // 121: mediator.v1.DeleteProfileRequest - (*DeleteProfileResponse)(nil), // 122: mediator.v1.DeleteProfileResponse - (*ListProfilesRequest)(nil), // 123: mediator.v1.ListProfilesRequest - (*ListProfilesResponse)(nil), // 124: mediator.v1.ListProfilesResponse - (*GetProfileByIdRequest)(nil), // 125: mediator.v1.GetProfileByIdRequest - (*GetProfileByIdResponse)(nil), // 126: mediator.v1.GetProfileByIdResponse - (*ProfileStatus)(nil), // 127: mediator.v1.ProfileStatus - (*RuleEvaluationStatus)(nil), // 128: mediator.v1.RuleEvaluationStatus - (*GetProfileStatusByNameRequest)(nil), // 129: mediator.v1.GetProfileStatusByNameRequest - (*GetProfileStatusByNameResponse)(nil), // 130: mediator.v1.GetProfileStatusByNameResponse - (*GetProfileStatusByProjectRequest)(nil), // 131: mediator.v1.GetProfileStatusByProjectRequest - (*GetProfileStatusByProjectResponse)(nil), // 132: mediator.v1.GetProfileStatusByProjectResponse - (*GetPublicKeyRequest)(nil), // 133: mediator.v1.GetPublicKeyRequest - (*GetPublicKeyResponse)(nil), // 134: mediator.v1.GetPublicKeyResponse - (*CreateKeyPairRequest)(nil), // 135: mediator.v1.CreateKeyPairRequest - (*CreateKeyPairResponse)(nil), // 136: mediator.v1.CreateKeyPairResponse - (*RESTProviderConfig)(nil), // 137: mediator.v1.RESTProviderConfig - (*GitHubProviderConfig)(nil), // 138: mediator.v1.GitHubProviderConfig - (*Provider)(nil), // 139: mediator.v1.Provider - (*Context)(nil), // 140: mediator.v1.Context - (*ListRuleTypesRequest)(nil), // 141: mediator.v1.ListRuleTypesRequest - (*ListRuleTypesResponse)(nil), // 142: mediator.v1.ListRuleTypesResponse - (*GetRuleTypeByNameRequest)(nil), // 143: mediator.v1.GetRuleTypeByNameRequest - (*GetRuleTypeByNameResponse)(nil), // 144: mediator.v1.GetRuleTypeByNameResponse - (*GetRuleTypeByIdRequest)(nil), // 145: mediator.v1.GetRuleTypeByIdRequest - (*GetRuleTypeByIdResponse)(nil), // 146: mediator.v1.GetRuleTypeByIdResponse - (*CreateRuleTypeRequest)(nil), // 147: mediator.v1.CreateRuleTypeRequest - (*CreateRuleTypeResponse)(nil), // 148: mediator.v1.CreateRuleTypeResponse - (*UpdateRuleTypeRequest)(nil), // 149: mediator.v1.UpdateRuleTypeRequest - (*UpdateRuleTypeResponse)(nil), // 150: mediator.v1.UpdateRuleTypeResponse - (*DeleteRuleTypeRequest)(nil), // 151: mediator.v1.DeleteRuleTypeRequest - (*DeleteRuleTypeResponse)(nil), // 152: mediator.v1.DeleteRuleTypeResponse - (*RestType)(nil), // 153: mediator.v1.RestType - (*BuiltinType)(nil), // 154: mediator.v1.BuiltinType - (*ArtifactType)(nil), // 155: mediator.v1.ArtifactType - (*GitType)(nil), // 156: mediator.v1.GitType - (*DiffType)(nil), // 157: mediator.v1.DiffType - (*RuleType)(nil), // 158: mediator.v1.RuleType - (*Profile)(nil), // 159: mediator.v1.Profile - (*PrDependencies_ContextualDependency)(nil), // 160: mediator.v1.PrDependencies.ContextualDependency - (*PrDependencies_ContextualDependency_FilePatch)(nil), // 161: mediator.v1.PrDependencies.ContextualDependency.FilePatch - nil, // 162: mediator.v1.RuleEvaluationStatus.EntityInfoEntry - (*GetProfileStatusByNameRequest_EntityTypedId)(nil), // 163: mediator.v1.GetProfileStatusByNameRequest.EntityTypedId - (*Provider_Context)(nil), // 164: mediator.v1.Provider.Context - (*Provider_Definition)(nil), // 165: mediator.v1.Provider.Definition - (*DiffType_Ecosystem)(nil), // 166: mediator.v1.DiffType.Ecosystem - (*RuleType_Definition)(nil), // 167: mediator.v1.RuleType.Definition - (*RuleType_Definition_Ingest)(nil), // 168: mediator.v1.RuleType.Definition.Ingest - (*RuleType_Definition_Eval)(nil), // 169: mediator.v1.RuleType.Definition.Eval - (*RuleType_Definition_Remediate)(nil), // 170: mediator.v1.RuleType.Definition.Remediate - (*RuleType_Definition_Eval_JQComparison)(nil), // 171: mediator.v1.RuleType.Definition.Eval.JQComparison - (*RuleType_Definition_Eval_Rego)(nil), // 172: mediator.v1.RuleType.Definition.Eval.Rego - (*RuleType_Definition_Eval_Vulncheck)(nil), // 173: mediator.v1.RuleType.Definition.Eval.Vulncheck - (*RuleType_Definition_Eval_JQComparison_Operator)(nil), // 174: mediator.v1.RuleType.Definition.Eval.JQComparison.Operator - (*Profile_Rule)(nil), // 175: mediator.v1.Profile.Rule - (*timestamppb.Timestamp)(nil), // 176: google.protobuf.Timestamp - (*wrapperspb.StringValue)(nil), // 177: google.protobuf.StringValue - (*structpb.Struct)(nil), // 178: google.protobuf.Struct - (*descriptorpb.MethodOptions)(nil), // 179: google.protobuf.MethodOptions - (*httpbody.HttpBody)(nil), // 180: google.api.HttpBody -} -var file_mediator_v1_mediator_proto_depIdxs = []int32{ - 0, // 0: mediator.v1.RpcOptions.auth_scope:type_name -> mediator.v1.ObjectOwner - 7, // 1: mediator.v1.ListArtifactsResponse.results:type_name -> mediator.v1.Artifact - 10, // 2: mediator.v1.Artifact.versions:type_name -> mediator.v1.ArtifactVersion - 176, // 3: mediator.v1.Artifact.created_at:type_name -> google.protobuf.Timestamp - 176, // 4: mediator.v1.SignatureVerification.signature_time:type_name -> google.protobuf.Timestamp - 9, // 5: mediator.v1.ArtifactVersion.signature_verification:type_name -> mediator.v1.SignatureVerification - 8, // 6: mediator.v1.ArtifactVersion.github_workflow:type_name -> mediator.v1.GithubWorkflow - 176, // 7: mediator.v1.ArtifactVersion.created_at:type_name -> google.protobuf.Timestamp - 7, // 8: mediator.v1.GetArtifactByIdResponse.artifact:type_name -> mediator.v1.Artifact - 10, // 9: mediator.v1.GetArtifactByIdResponse.versions:type_name -> mediator.v1.ArtifactVersion - 1, // 10: mediator.v1.Dependency.ecosystem:type_name -> mediator.v1.DepEcosystem - 13, // 11: mediator.v1.PrDependencies.pr:type_name -> mediator.v1.PullRequest - 160, // 12: mediator.v1.PrDependencies.deps:type_name -> mediator.v1.PrDependencies.ContextualDependency - 40, // 13: mediator.v1.RegisterRepositoryRequest.repositories:type_name -> mediator.v1.Repositories - 177, // 14: mediator.v1.RepositoryResult.error:type_name -> google.protobuf.StringValue - 176, // 15: mediator.v1.RepositoryResult.created_at:type_name -> google.protobuf.Timestamp - 176, // 16: mediator.v1.RepositoryResult.updated_at:type_name -> google.protobuf.Timestamp - 41, // 17: mediator.v1.RegisterRepositoryResponse.results:type_name -> mediator.v1.RepositoryResult - 176, // 18: mediator.v1.RepositoryRecord.created_at:type_name -> google.protobuf.Timestamp - 176, // 19: mediator.v1.RepositoryRecord.updated_at:type_name -> google.protobuf.Timestamp - 43, // 20: mediator.v1.GetRepositoryByIdResponse.repository:type_name -> mediator.v1.RepositoryRecord - 43, // 21: mediator.v1.GetRepositoryByNameResponse.repository:type_name -> mediator.v1.RepositoryRecord - 2, // 22: mediator.v1.ListRepositoriesRequest.filter:type_name -> mediator.v1.RepoFilter - 43, // 23: mediator.v1.ListRepositoriesResponse.results:type_name -> mediator.v1.RepositoryRecord - 176, // 24: mediator.v1.VerifyProviderTokenFromRequest.timestamp:type_name -> google.protobuf.Timestamp - 176, // 25: mediator.v1.GetVulnerabilityByIdResponse.scanned_at:type_name -> google.protobuf.Timestamp - 176, // 26: mediator.v1.GetVulnerabilityByIdResponse.created_at:type_name -> google.protobuf.Timestamp - 56, // 27: mediator.v1.GetVulnerabilitiesResponse.vulns:type_name -> mediator.v1.GetVulnerabilityByIdResponse - 61, // 28: mediator.v1.GetSecretsResponse.secrets:type_name -> mediator.v1.GetSecretByIdResponse - 63, // 29: mediator.v1.GetBranchProtectionResponse.branch_protections:type_name -> mediator.v1.BranchProtection - 176, // 30: mediator.v1.CreateOrganizationResponse.created_at:type_name -> google.protobuf.Timestamp - 176, // 31: mediator.v1.CreateOrganizationResponse.updated_at:type_name -> google.protobuf.Timestamp - 80, // 32: mediator.v1.CreateOrganizationResponse.default_project:type_name -> mediator.v1.ProjectRecord - 93, // 33: mediator.v1.CreateOrganizationResponse.default_roles:type_name -> mediator.v1.RoleRecord - 106, // 34: mediator.v1.CreateOrganizationResponse.default_user:type_name -> mediator.v1.UserRecord - 176, // 35: mediator.v1.OrganizationRecord.created_at:type_name -> google.protobuf.Timestamp - 176, // 36: mediator.v1.OrganizationRecord.updated_at:type_name -> google.protobuf.Timestamp - 67, // 37: mediator.v1.GetOrganizationsResponse.organizations:type_name -> mediator.v1.OrganizationRecord - 67, // 38: mediator.v1.GetOrganizationResponse.organization:type_name -> mediator.v1.OrganizationRecord - 80, // 39: mediator.v1.GetOrganizationResponse.projects:type_name -> mediator.v1.ProjectRecord - 93, // 40: mediator.v1.GetOrganizationResponse.roles:type_name -> mediator.v1.RoleRecord - 106, // 41: mediator.v1.GetOrganizationResponse.users:type_name -> mediator.v1.UserRecord - 67, // 42: mediator.v1.GetOrganizationByNameResponse.organization:type_name -> mediator.v1.OrganizationRecord - 80, // 43: mediator.v1.GetOrganizationByNameResponse.projects:type_name -> mediator.v1.ProjectRecord - 93, // 44: mediator.v1.GetOrganizationByNameResponse.roles:type_name -> mediator.v1.RoleRecord - 106, // 45: mediator.v1.GetOrganizationByNameResponse.users:type_name -> mediator.v1.UserRecord - 176, // 46: mediator.v1.ProjectRecord.created_at:type_name -> google.protobuf.Timestamp - 176, // 47: mediator.v1.ProjectRecord.updated_at:type_name -> google.protobuf.Timestamp - 176, // 48: mediator.v1.CreateProjectResponse.created_at:type_name -> google.protobuf.Timestamp - 176, // 49: mediator.v1.CreateProjectResponse.updated_at:type_name -> google.protobuf.Timestamp - 80, // 50: mediator.v1.GetProjectByNameResponse.project:type_name -> mediator.v1.ProjectRecord - 93, // 51: mediator.v1.GetProjectByNameResponse.roles:type_name -> mediator.v1.RoleRecord - 106, // 52: mediator.v1.GetProjectByNameResponse.users:type_name -> mediator.v1.UserRecord - 80, // 53: mediator.v1.GetProjectByIdResponse.project:type_name -> mediator.v1.ProjectRecord - 93, // 54: mediator.v1.GetProjectByIdResponse.roles:type_name -> mediator.v1.RoleRecord - 106, // 55: mediator.v1.GetProjectByIdResponse.users:type_name -> mediator.v1.UserRecord - 80, // 56: mediator.v1.GetProjectsResponse.projects:type_name -> mediator.v1.ProjectRecord - 176, // 57: mediator.v1.CreateRoleByOrganizationResponse.created_at:type_name -> google.protobuf.Timestamp - 176, // 58: mediator.v1.CreateRoleByOrganizationResponse.updated_at:type_name -> google.protobuf.Timestamp - 176, // 59: mediator.v1.CreateRoleByProjectResponse.created_at:type_name -> google.protobuf.Timestamp - 176, // 60: mediator.v1.CreateRoleByProjectResponse.updated_at:type_name -> google.protobuf.Timestamp - 176, // 61: mediator.v1.RoleRecord.created_at:type_name -> google.protobuf.Timestamp - 176, // 62: mediator.v1.RoleRecord.updated_at:type_name -> google.protobuf.Timestamp - 93, // 63: mediator.v1.GetRolesResponse.roles:type_name -> mediator.v1.RoleRecord - 93, // 64: mediator.v1.GetRolesByProjectResponse.roles:type_name -> mediator.v1.RoleRecord - 93, // 65: mediator.v1.GetRoleByIdResponse.role:type_name -> mediator.v1.RoleRecord - 93, // 66: mediator.v1.GetRoleByNameResponse.role:type_name -> mediator.v1.RoleRecord - 176, // 67: mediator.v1.CreateUserResponse.created_at:type_name -> google.protobuf.Timestamp - 176, // 68: mediator.v1.UserRecord.created_at:type_name -> google.protobuf.Timestamp - 176, // 69: mediator.v1.UserRecord.updated_at:type_name -> google.protobuf.Timestamp - 106, // 70: mediator.v1.GetUsersResponse.users:type_name -> mediator.v1.UserRecord - 106, // 71: mediator.v1.GetUsersByOrganizationResponse.users:type_name -> mediator.v1.UserRecord - 106, // 72: mediator.v1.GetUsersByProjectResponse.users:type_name -> mediator.v1.UserRecord - 106, // 73: mediator.v1.GetUserByIdResponse.user:type_name -> mediator.v1.UserRecord - 80, // 74: mediator.v1.GetUserByIdResponse.projects:type_name -> mediator.v1.ProjectRecord - 93, // 75: mediator.v1.GetUserByIdResponse.roles:type_name -> mediator.v1.RoleRecord - 106, // 76: mediator.v1.GetUserBySubjectResponse.user:type_name -> mediator.v1.UserRecord - 80, // 77: mediator.v1.GetUserBySubjectResponse.projects:type_name -> mediator.v1.ProjectRecord - 93, // 78: mediator.v1.GetUserBySubjectResponse.roles:type_name -> mediator.v1.RoleRecord - 106, // 79: mediator.v1.GetUserResponse.user:type_name -> mediator.v1.UserRecord - 80, // 80: mediator.v1.GetUserResponse.projects:type_name -> mediator.v1.ProjectRecord - 93, // 81: mediator.v1.GetUserResponse.roles:type_name -> mediator.v1.RoleRecord - 159, // 82: mediator.v1.CreateProfileRequest.profile:type_name -> mediator.v1.Profile - 159, // 83: mediator.v1.CreateProfileResponse.profile:type_name -> mediator.v1.Profile - 140, // 84: mediator.v1.DeleteProfileRequest.context:type_name -> mediator.v1.Context - 140, // 85: mediator.v1.ListProfilesRequest.context:type_name -> mediator.v1.Context - 159, // 86: mediator.v1.ListProfilesResponse.profiles:type_name -> mediator.v1.Profile - 140, // 87: mediator.v1.GetProfileByIdRequest.context:type_name -> mediator.v1.Context - 159, // 88: mediator.v1.GetProfileByIdResponse.profile:type_name -> mediator.v1.Profile - 176, // 89: mediator.v1.ProfileStatus.last_updated:type_name -> google.protobuf.Timestamp - 176, // 90: mediator.v1.RuleEvaluationStatus.last_updated:type_name -> google.protobuf.Timestamp - 162, // 91: mediator.v1.RuleEvaluationStatus.entity_info:type_name -> mediator.v1.RuleEvaluationStatus.EntityInfoEntry - 176, // 92: mediator.v1.RuleEvaluationStatus.remediation_last_updated:type_name -> google.protobuf.Timestamp - 140, // 93: mediator.v1.GetProfileStatusByNameRequest.context:type_name -> mediator.v1.Context - 163, // 94: mediator.v1.GetProfileStatusByNameRequest.entity:type_name -> mediator.v1.GetProfileStatusByNameRequest.EntityTypedId - 127, // 95: mediator.v1.GetProfileStatusByNameResponse.profile_status:type_name -> mediator.v1.ProfileStatus - 128, // 96: mediator.v1.GetProfileStatusByNameResponse.rule_evaluation_status:type_name -> mediator.v1.RuleEvaluationStatus - 140, // 97: mediator.v1.GetProfileStatusByProjectRequest.context:type_name -> mediator.v1.Context - 127, // 98: mediator.v1.GetProfileStatusByProjectResponse.profile_status:type_name -> mediator.v1.ProfileStatus - 164, // 99: mediator.v1.Provider.context:type_name -> mediator.v1.Provider.Context - 165, // 100: mediator.v1.Provider.def:type_name -> mediator.v1.Provider.Definition - 140, // 101: mediator.v1.ListRuleTypesRequest.context:type_name -> mediator.v1.Context - 158, // 102: mediator.v1.ListRuleTypesResponse.rule_types:type_name -> mediator.v1.RuleType - 140, // 103: mediator.v1.GetRuleTypeByNameRequest.context:type_name -> mediator.v1.Context - 158, // 104: mediator.v1.GetRuleTypeByNameResponse.rule_type:type_name -> mediator.v1.RuleType - 140, // 105: mediator.v1.GetRuleTypeByIdRequest.context:type_name -> mediator.v1.Context - 158, // 106: mediator.v1.GetRuleTypeByIdResponse.rule_type:type_name -> mediator.v1.RuleType - 158, // 107: mediator.v1.CreateRuleTypeRequest.rule_type:type_name -> mediator.v1.RuleType - 158, // 108: mediator.v1.CreateRuleTypeResponse.rule_type:type_name -> mediator.v1.RuleType - 158, // 109: mediator.v1.UpdateRuleTypeRequest.rule_type:type_name -> mediator.v1.RuleType - 158, // 110: mediator.v1.UpdateRuleTypeResponse.rule_type:type_name -> mediator.v1.RuleType - 140, // 111: mediator.v1.DeleteRuleTypeRequest.context:type_name -> mediator.v1.Context - 166, // 112: mediator.v1.DiffType.ecosystems:type_name -> mediator.v1.DiffType.Ecosystem - 140, // 113: mediator.v1.RuleType.context:type_name -> mediator.v1.Context - 167, // 114: mediator.v1.RuleType.def:type_name -> mediator.v1.RuleType.Definition - 140, // 115: mediator.v1.Profile.context:type_name -> mediator.v1.Context - 175, // 116: mediator.v1.Profile.repository:type_name -> mediator.v1.Profile.Rule - 175, // 117: mediator.v1.Profile.build_environment:type_name -> mediator.v1.Profile.Rule - 175, // 118: mediator.v1.Profile.artifact:type_name -> mediator.v1.Profile.Rule - 175, // 119: mediator.v1.Profile.pull_request:type_name -> mediator.v1.Profile.Rule - 14, // 120: mediator.v1.PrDependencies.ContextualDependency.dep:type_name -> mediator.v1.Dependency - 161, // 121: mediator.v1.PrDependencies.ContextualDependency.file:type_name -> mediator.v1.PrDependencies.ContextualDependency.FilePatch - 3, // 122: mediator.v1.GetProfileStatusByNameRequest.EntityTypedId.type:type_name -> mediator.v1.Entity - 137, // 123: mediator.v1.Provider.Definition.rest:type_name -> mediator.v1.RESTProviderConfig - 138, // 124: mediator.v1.Provider.Definition.github:type_name -> mediator.v1.GitHubProviderConfig - 178, // 125: mediator.v1.RuleType.Definition.rule_schema:type_name -> google.protobuf.Struct - 178, // 126: mediator.v1.RuleType.Definition.param_schema:type_name -> google.protobuf.Struct - 168, // 127: mediator.v1.RuleType.Definition.ingest:type_name -> mediator.v1.RuleType.Definition.Ingest - 169, // 128: mediator.v1.RuleType.Definition.eval:type_name -> mediator.v1.RuleType.Definition.Eval - 170, // 129: mediator.v1.RuleType.Definition.remediate:type_name -> mediator.v1.RuleType.Definition.Remediate - 153, // 130: mediator.v1.RuleType.Definition.Ingest.rest:type_name -> mediator.v1.RestType - 154, // 131: mediator.v1.RuleType.Definition.Ingest.builtin:type_name -> mediator.v1.BuiltinType - 155, // 132: mediator.v1.RuleType.Definition.Ingest.artifact:type_name -> mediator.v1.ArtifactType - 156, // 133: mediator.v1.RuleType.Definition.Ingest.git:type_name -> mediator.v1.GitType - 157, // 134: mediator.v1.RuleType.Definition.Ingest.diff:type_name -> mediator.v1.DiffType - 171, // 135: mediator.v1.RuleType.Definition.Eval.jq:type_name -> mediator.v1.RuleType.Definition.Eval.JQComparison - 172, // 136: mediator.v1.RuleType.Definition.Eval.rego:type_name -> mediator.v1.RuleType.Definition.Eval.Rego - 173, // 137: mediator.v1.RuleType.Definition.Eval.vulncheck:type_name -> mediator.v1.RuleType.Definition.Eval.Vulncheck - 153, // 138: mediator.v1.RuleType.Definition.Remediate.rest:type_name -> mediator.v1.RestType - 174, // 139: mediator.v1.RuleType.Definition.Eval.JQComparison.ingested:type_name -> mediator.v1.RuleType.Definition.Eval.JQComparison.Operator - 174, // 140: mediator.v1.RuleType.Definition.Eval.JQComparison.profile:type_name -> mediator.v1.RuleType.Definition.Eval.JQComparison.Operator - 178, // 141: mediator.v1.Profile.Rule.params:type_name -> google.protobuf.Struct - 178, // 142: mediator.v1.Profile.Rule.def:type_name -> google.protobuf.Struct - 179, // 143: mediator.v1.rpc_options:extendee -> google.protobuf.MethodOptions - 4, // 144: mediator.v1.rpc_options:type_name -> mediator.v1.RpcOptions - 16, // 145: mediator.v1.HealthService.CheckHealth:input_type -> mediator.v1.CheckHealthRequest - 5, // 146: mediator.v1.ArtifactService.ListArtifacts:input_type -> mediator.v1.ListArtifactsRequest - 11, // 147: mediator.v1.ArtifactService.GetArtifactById:input_type -> mediator.v1.GetArtifactByIdRequest - 18, // 148: mediator.v1.OAuthService.GetAuthorizationURL:input_type -> mediator.v1.GetAuthorizationURLRequest - 20, // 149: mediator.v1.OAuthService.ExchangeCodeForTokenCLI:input_type -> mediator.v1.ExchangeCodeForTokenCLIRequest - 23, // 150: mediator.v1.OAuthService.ExchangeCodeForTokenWEB:input_type -> mediator.v1.ExchangeCodeForTokenWEBRequest - 21, // 151: mediator.v1.OAuthService.StoreProviderToken:input_type -> mediator.v1.StoreProviderTokenRequest - 31, // 152: mediator.v1.OAuthService.RevokeOauthTokens:input_type -> mediator.v1.RevokeOauthTokensRequest - 33, // 153: mediator.v1.OAuthService.RevokeOauthProjectToken:input_type -> mediator.v1.RevokeOauthProjectTokenRequest - 52, // 154: mediator.v1.OAuthService.VerifyProviderTokenFrom:input_type -> mediator.v1.VerifyProviderTokenFromRequest - 25, // 155: mediator.v1.AuthService.LogOut:input_type -> mediator.v1.LogOutRequest - 27, // 156: mediator.v1.AuthService.RevokeTokens:input_type -> mediator.v1.RevokeTokensRequest - 29, // 157: mediator.v1.AuthService.RevokeUserToken:input_type -> mediator.v1.RevokeUserTokenRequest - 35, // 158: mediator.v1.AuthService.RefreshToken:input_type -> mediator.v1.RefreshTokenRequest - 50, // 159: mediator.v1.AuthService.Verify:input_type -> mediator.v1.VerifyRequest - 37, // 160: mediator.v1.RepositoryService.SyncRepositories:input_type -> mediator.v1.SyncRepositoriesRequest - 39, // 161: mediator.v1.RepositoryService.RegisterRepository:input_type -> mediator.v1.RegisterRepositoryRequest - 48, // 162: mediator.v1.RepositoryService.ListRepositories:input_type -> mediator.v1.ListRepositoriesRequest - 44, // 163: mediator.v1.RepositoryService.GetRepositoryById:input_type -> mediator.v1.GetRepositoryByIdRequest - 46, // 164: mediator.v1.RepositoryService.GetRepositoryByName:input_type -> mediator.v1.GetRepositoryByNameRequest - 62, // 165: mediator.v1.BranchProtectionService.GetBranchProtection:input_type -> mediator.v1.GetBranchProtectionRequest - 65, // 166: mediator.v1.OrganizationService.CreateOrganization:input_type -> mediator.v1.CreateOrganizationRequest - 70, // 167: mediator.v1.OrganizationService.GetOrganizations:input_type -> mediator.v1.GetOrganizationsRequest - 72, // 168: mediator.v1.OrganizationService.GetOrganization:input_type -> mediator.v1.GetOrganizationRequest - 74, // 169: mediator.v1.OrganizationService.GetOrganizationByName:input_type -> mediator.v1.GetOrganizationByNameRequest - 68, // 170: mediator.v1.OrganizationService.DeleteOrganization:input_type -> mediator.v1.DeleteOrganizationRequest - 76, // 171: mediator.v1.ProjectService.CreateProject:input_type -> mediator.v1.CreateProjectRequest - 79, // 172: mediator.v1.ProjectService.GetProjects:input_type -> mediator.v1.GetProjectsRequest - 77, // 173: mediator.v1.ProjectService.GetProjectByName:input_type -> mediator.v1.GetProjectByNameRequest - 78, // 174: mediator.v1.ProjectService.GetProjectById:input_type -> mediator.v1.GetProjectByIdRequest - 85, // 175: mediator.v1.ProjectService.DeleteProject:input_type -> mediator.v1.DeleteProjectRequest - 87, // 176: mediator.v1.RoleService.CreateRoleByOrganization:input_type -> mediator.v1.CreateRoleByOrganizationRequest - 89, // 177: mediator.v1.RoleService.CreateRoleByProject:input_type -> mediator.v1.CreateRoleByProjectRequest - 91, // 178: mediator.v1.RoleService.DeleteRole:input_type -> mediator.v1.DeleteRoleRequest - 94, // 179: mediator.v1.RoleService.GetRoles:input_type -> mediator.v1.GetRolesRequest - 96, // 180: mediator.v1.RoleService.GetRolesByProject:input_type -> mediator.v1.GetRolesByProjectRequest - 98, // 181: mediator.v1.RoleService.GetRoleById:input_type -> mediator.v1.GetRoleByIdRequest - 100, // 182: mediator.v1.RoleService.GetRoleByName:input_type -> mediator.v1.GetRoleByNameRequest - 102, // 183: mediator.v1.UserService.CreateUser:input_type -> mediator.v1.CreateUserRequest - 104, // 184: mediator.v1.UserService.DeleteUser:input_type -> mediator.v1.DeleteUserRequest - 107, // 185: mediator.v1.UserService.GetUsers:input_type -> mediator.v1.GetUsersRequest - 109, // 186: mediator.v1.UserService.GetUsersByOrganization:input_type -> mediator.v1.GetUsersByOrganizationRequest - 111, // 187: mediator.v1.UserService.GetUsersByProject:input_type -> mediator.v1.GetUsersByProjectRequest - 113, // 188: mediator.v1.UserService.GetUserById:input_type -> mediator.v1.GetUserByIdRequest - 115, // 189: mediator.v1.UserService.GetUserBySubject:input_type -> mediator.v1.GetUserBySubjectRequest - 117, // 190: mediator.v1.UserService.GetUser:input_type -> mediator.v1.GetUserRequest - 119, // 191: mediator.v1.ProfileService.CreateProfile:input_type -> mediator.v1.CreateProfileRequest - 121, // 192: mediator.v1.ProfileService.DeleteProfile:input_type -> mediator.v1.DeleteProfileRequest - 123, // 193: mediator.v1.ProfileService.ListProfiles:input_type -> mediator.v1.ListProfilesRequest - 125, // 194: mediator.v1.ProfileService.GetProfileById:input_type -> mediator.v1.GetProfileByIdRequest - 129, // 195: mediator.v1.ProfileService.GetProfileStatusByName:input_type -> mediator.v1.GetProfileStatusByNameRequest - 131, // 196: mediator.v1.ProfileService.GetProfileStatusByProject:input_type -> mediator.v1.GetProfileStatusByProjectRequest - 141, // 197: mediator.v1.ProfileService.ListRuleTypes:input_type -> mediator.v1.ListRuleTypesRequest - 143, // 198: mediator.v1.ProfileService.GetRuleTypeByName:input_type -> mediator.v1.GetRuleTypeByNameRequest - 145, // 199: mediator.v1.ProfileService.GetRuleTypeById:input_type -> mediator.v1.GetRuleTypeByIdRequest - 147, // 200: mediator.v1.ProfileService.CreateRuleType:input_type -> mediator.v1.CreateRuleTypeRequest - 149, // 201: mediator.v1.ProfileService.UpdateRuleType:input_type -> mediator.v1.UpdateRuleTypeRequest - 151, // 202: mediator.v1.ProfileService.DeleteRuleType:input_type -> mediator.v1.DeleteRuleTypeRequest - 133, // 203: mediator.v1.KeyService.GetPublicKey:input_type -> mediator.v1.GetPublicKeyRequest - 135, // 204: mediator.v1.KeyService.CreateKeyPair:input_type -> mediator.v1.CreateKeyPairRequest - 17, // 205: mediator.v1.HealthService.CheckHealth:output_type -> mediator.v1.CheckHealthResponse - 6, // 206: mediator.v1.ArtifactService.ListArtifacts:output_type -> mediator.v1.ListArtifactsResponse - 12, // 207: mediator.v1.ArtifactService.GetArtifactById:output_type -> mediator.v1.GetArtifactByIdResponse - 19, // 208: mediator.v1.OAuthService.GetAuthorizationURL:output_type -> mediator.v1.GetAuthorizationURLResponse - 180, // 209: mediator.v1.OAuthService.ExchangeCodeForTokenCLI:output_type -> google.api.HttpBody - 24, // 210: mediator.v1.OAuthService.ExchangeCodeForTokenWEB:output_type -> mediator.v1.ExchangeCodeForTokenWEBResponse - 22, // 211: mediator.v1.OAuthService.StoreProviderToken:output_type -> mediator.v1.StoreProviderTokenResponse - 32, // 212: mediator.v1.OAuthService.RevokeOauthTokens:output_type -> mediator.v1.RevokeOauthTokensResponse - 34, // 213: mediator.v1.OAuthService.RevokeOauthProjectToken:output_type -> mediator.v1.RevokeOauthProjectTokenResponse - 53, // 214: mediator.v1.OAuthService.VerifyProviderTokenFrom:output_type -> mediator.v1.VerifyProviderTokenFromResponse - 26, // 215: mediator.v1.AuthService.LogOut:output_type -> mediator.v1.LogOutResponse - 28, // 216: mediator.v1.AuthService.RevokeTokens:output_type -> mediator.v1.RevokeTokensResponse - 30, // 217: mediator.v1.AuthService.RevokeUserToken:output_type -> mediator.v1.RevokeUserTokenResponse - 36, // 218: mediator.v1.AuthService.RefreshToken:output_type -> mediator.v1.RefreshTokenResponse - 51, // 219: mediator.v1.AuthService.Verify:output_type -> mediator.v1.VerifyResponse - 38, // 220: mediator.v1.RepositoryService.SyncRepositories:output_type -> mediator.v1.SyncRepositoriesResponse - 42, // 221: mediator.v1.RepositoryService.RegisterRepository:output_type -> mediator.v1.RegisterRepositoryResponse - 49, // 222: mediator.v1.RepositoryService.ListRepositories:output_type -> mediator.v1.ListRepositoriesResponse - 45, // 223: mediator.v1.RepositoryService.GetRepositoryById:output_type -> mediator.v1.GetRepositoryByIdResponse - 47, // 224: mediator.v1.RepositoryService.GetRepositoryByName:output_type -> mediator.v1.GetRepositoryByNameResponse - 64, // 225: mediator.v1.BranchProtectionService.GetBranchProtection:output_type -> mediator.v1.GetBranchProtectionResponse - 66, // 226: mediator.v1.OrganizationService.CreateOrganization:output_type -> mediator.v1.CreateOrganizationResponse - 71, // 227: mediator.v1.OrganizationService.GetOrganizations:output_type -> mediator.v1.GetOrganizationsResponse - 73, // 228: mediator.v1.OrganizationService.GetOrganization:output_type -> mediator.v1.GetOrganizationResponse - 75, // 229: mediator.v1.OrganizationService.GetOrganizationByName:output_type -> mediator.v1.GetOrganizationByNameResponse - 69, // 230: mediator.v1.OrganizationService.DeleteOrganization:output_type -> mediator.v1.DeleteOrganizationResponse - 81, // 231: mediator.v1.ProjectService.CreateProject:output_type -> mediator.v1.CreateProjectResponse - 84, // 232: mediator.v1.ProjectService.GetProjects:output_type -> mediator.v1.GetProjectsResponse - 82, // 233: mediator.v1.ProjectService.GetProjectByName:output_type -> mediator.v1.GetProjectByNameResponse - 83, // 234: mediator.v1.ProjectService.GetProjectById:output_type -> mediator.v1.GetProjectByIdResponse - 86, // 235: mediator.v1.ProjectService.DeleteProject:output_type -> mediator.v1.DeleteProjectResponse - 88, // 236: mediator.v1.RoleService.CreateRoleByOrganization:output_type -> mediator.v1.CreateRoleByOrganizationResponse - 90, // 237: mediator.v1.RoleService.CreateRoleByProject:output_type -> mediator.v1.CreateRoleByProjectResponse - 92, // 238: mediator.v1.RoleService.DeleteRole:output_type -> mediator.v1.DeleteRoleResponse - 95, // 239: mediator.v1.RoleService.GetRoles:output_type -> mediator.v1.GetRolesResponse - 97, // 240: mediator.v1.RoleService.GetRolesByProject:output_type -> mediator.v1.GetRolesByProjectResponse - 99, // 241: mediator.v1.RoleService.GetRoleById:output_type -> mediator.v1.GetRoleByIdResponse - 101, // 242: mediator.v1.RoleService.GetRoleByName:output_type -> mediator.v1.GetRoleByNameResponse - 103, // 243: mediator.v1.UserService.CreateUser:output_type -> mediator.v1.CreateUserResponse - 105, // 244: mediator.v1.UserService.DeleteUser:output_type -> mediator.v1.DeleteUserResponse - 108, // 245: mediator.v1.UserService.GetUsers:output_type -> mediator.v1.GetUsersResponse - 110, // 246: mediator.v1.UserService.GetUsersByOrganization:output_type -> mediator.v1.GetUsersByOrganizationResponse - 112, // 247: mediator.v1.UserService.GetUsersByProject:output_type -> mediator.v1.GetUsersByProjectResponse - 114, // 248: mediator.v1.UserService.GetUserById:output_type -> mediator.v1.GetUserByIdResponse - 116, // 249: mediator.v1.UserService.GetUserBySubject:output_type -> mediator.v1.GetUserBySubjectResponse - 118, // 250: mediator.v1.UserService.GetUser:output_type -> mediator.v1.GetUserResponse - 120, // 251: mediator.v1.ProfileService.CreateProfile:output_type -> mediator.v1.CreateProfileResponse - 122, // 252: mediator.v1.ProfileService.DeleteProfile:output_type -> mediator.v1.DeleteProfileResponse - 124, // 253: mediator.v1.ProfileService.ListProfiles:output_type -> mediator.v1.ListProfilesResponse - 126, // 254: mediator.v1.ProfileService.GetProfileById:output_type -> mediator.v1.GetProfileByIdResponse - 130, // 255: mediator.v1.ProfileService.GetProfileStatusByName:output_type -> mediator.v1.GetProfileStatusByNameResponse - 132, // 256: mediator.v1.ProfileService.GetProfileStatusByProject:output_type -> mediator.v1.GetProfileStatusByProjectResponse - 142, // 257: mediator.v1.ProfileService.ListRuleTypes:output_type -> mediator.v1.ListRuleTypesResponse - 144, // 258: mediator.v1.ProfileService.GetRuleTypeByName:output_type -> mediator.v1.GetRuleTypeByNameResponse - 146, // 259: mediator.v1.ProfileService.GetRuleTypeById:output_type -> mediator.v1.GetRuleTypeByIdResponse - 148, // 260: mediator.v1.ProfileService.CreateRuleType:output_type -> mediator.v1.CreateRuleTypeResponse - 150, // 261: mediator.v1.ProfileService.UpdateRuleType:output_type -> mediator.v1.UpdateRuleTypeResponse - 152, // 262: mediator.v1.ProfileService.DeleteRuleType:output_type -> mediator.v1.DeleteRuleTypeResponse - 134, // 263: mediator.v1.KeyService.GetPublicKey:output_type -> mediator.v1.GetPublicKeyResponse - 136, // 264: mediator.v1.KeyService.CreateKeyPair:output_type -> mediator.v1.CreateKeyPairResponse - 205, // [205:265] is the sub-list for method output_type - 145, // [145:205] is the sub-list for method input_type - 144, // [144:145] is the sub-list for extension type_name - 143, // [143:144] is the sub-list for extension extendee - 0, // [0:143] is the sub-list for field type_name -} - -func init() { file_mediator_v1_mediator_proto_init() } -func file_mediator_v1_mediator_proto_init() { - if File_mediator_v1_mediator_proto != nil { - return - } - if !protoimpl.UnsafeEnabled { - file_mediator_v1_mediator_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RpcOptions); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mediator_v1_mediator_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListArtifactsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mediator_v1_mediator_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListArtifactsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mediator_v1_mediator_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Artifact); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mediator_v1_mediator_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GithubWorkflow); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mediator_v1_mediator_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SignatureVerification); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mediator_v1_mediator_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ArtifactVersion); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mediator_v1_mediator_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetArtifactByIdRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mediator_v1_mediator_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetArtifactByIdResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mediator_v1_mediator_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PullRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mediator_v1_mediator_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Dependency); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mediator_v1_mediator_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PrDependencies); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mediator_v1_mediator_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CheckHealthRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mediator_v1_mediator_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CheckHealthResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mediator_v1_mediator_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetAuthorizationURLRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mediator_v1_mediator_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetAuthorizationURLResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mediator_v1_mediator_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExchangeCodeForTokenCLIRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mediator_v1_mediator_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StoreProviderTokenRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mediator_v1_mediator_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StoreProviderTokenResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mediator_v1_mediator_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExchangeCodeForTokenWEBRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mediator_v1_mediator_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExchangeCodeForTokenWEBResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mediator_v1_mediator_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LogOutRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mediator_v1_mediator_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LogOutResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mediator_v1_mediator_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RevokeTokensRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mediator_v1_mediator_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RevokeTokensResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mediator_v1_mediator_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RevokeUserTokenRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mediator_v1_mediator_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RevokeUserTokenResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mediator_v1_mediator_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RevokeOauthTokensRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mediator_v1_mediator_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RevokeOauthTokensResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mediator_v1_mediator_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RevokeOauthProjectTokenRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mediator_v1_mediator_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RevokeOauthProjectTokenResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mediator_v1_mediator_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RefreshTokenRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mediator_v1_mediator_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RefreshTokenResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mediator_v1_mediator_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SyncRepositoriesRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mediator_v1_mediator_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SyncRepositoriesResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mediator_v1_mediator_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RegisterRepositoryRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mediator_v1_mediator_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Repositories); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mediator_v1_mediator_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RepositoryResult); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mediator_v1_mediator_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RegisterRepositoryResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mediator_v1_mediator_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RepositoryRecord); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mediator_v1_mediator_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetRepositoryByIdRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mediator_v1_mediator_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetRepositoryByIdResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mediator_v1_mediator_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetRepositoryByNameRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mediator_v1_mediator_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetRepositoryByNameResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mediator_v1_mediator_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListRepositoriesRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mediator_v1_mediator_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListRepositoriesResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mediator_v1_mediator_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VerifyRequest); i { +var file_mediator_v1_mediator_proto_rawDesc = []byte{ + 0x0a, 0x1a, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, + 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0b, 0x6d, 0x65, + 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 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, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x6f, 0x72, 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, 0x1e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, + 0x70, 0x65, 0x72, 0x73, 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, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x68, 0x74, 0x74, 0x70, 0x62, 0x6f, 0x64, 0x79, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x22, 0xc1, 0x01, 0x0a, 0x0a, 0x52, 0x70, 0x63, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x6f, 0x75, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x6f, 0x75, 0x73, + 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x5f, 0x6c, 0x6f, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x05, 0x6e, 0x6f, 0x4c, 0x6f, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x77, 0x6e, 0x65, 0x72, + 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6f, 0x77, 0x6e, + 0x65, 0x72, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x26, 0x0a, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0d, 0x72, 0x6f, 0x6f, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x37, + 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, + 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x09, 0x61, 0x75, + 0x74, 0x68, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x22, 0x51, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x41, + 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 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, 0x48, 0x0a, 0x15, 0x4c, 0x69, + 0x73, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, + 0x76, 0x31, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x52, 0x07, 0x72, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x73, 0x22, 0x9e, 0x02, 0x0a, 0x08, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, + 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x70, 0x6b, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, + 0x50, 0x6b, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x12, 0x1e, 0x0a, 0x0a, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, + 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, + 0x12, 0x38, 0x0a, 0x08, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, + 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x52, 0x08, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x7d, 0x0a, 0x0e, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x57, + 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, + 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x63, + 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x73, 0x68, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x68, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x72, + 0x69, 0x67, 0x67, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x69, + 0x67, 0x67, 0x65, 0x72, 0x22, 0xc9, 0x03, 0x0a, 0x15, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, + 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x08, 0x69, 0x73, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x69, + 0x73, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0a, 0x69, 0x73, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x2c, 0x0a, 0x12, + 0x69, 0x73, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x73, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x0d, 0x63, 0x65, + 0x72, 0x74, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x0c, 0x63, 0x65, 0x72, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, + 0x79, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x63, 0x65, 0x72, 0x74, 0x5f, 0x69, 0x73, 0x73, + 0x75, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0a, 0x63, 0x65, 0x72, + 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x72, 0x65, + 0x6b, 0x6f, 0x72, 0x5f, 0x6c, 0x6f, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x02, 0x52, 0x0a, 0x72, 0x65, 0x6b, 0x6f, 0x72, 0x4c, 0x6f, 0x67, 0x49, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x72, 0x65, 0x6b, 0x6f, 0x72, 0x5f, 0x6c, 0x6f, 0x67, 0x5f, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x48, 0x03, 0x52, 0x0d, 0x72, 0x65, + 0x6b, 0x6f, 0x72, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x88, 0x01, 0x01, 0x12, 0x46, + 0x0a, 0x0e, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x74, 0x69, 0x6d, 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, 0x48, 0x04, 0x52, 0x0d, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x54, + 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x5f, + 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x63, 0x65, 0x72, + 0x74, 0x5f, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x72, 0x65, 0x6b, + 0x6f, 0x72, 0x5f, 0x6c, 0x6f, 0x67, 0x5f, 0x69, 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x72, 0x65, + 0x6b, 0x6f, 0x72, 0x5f, 0x6c, 0x6f, 0x67, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x11, 0x0a, + 0x0f, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x22, 0xcb, 0x02, 0x0a, 0x0f, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x68, 0x61, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x68, 0x61, 0x12, 0x59, 0x0a, 0x16, 0x73, 0x69, 0x67, + 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, 0x65, 0x64, 0x69, + 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x15, 0x73, + 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x49, 0x0a, 0x0f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x5f, 0x77, + 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x48, 0x00, 0x52, 0x0e, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x88, 0x01, 0x01, 0x12, + 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 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, + 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x22, 0x63, + 0x0a, 0x16, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x42, 0x79, 0x49, + 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, 0x27, 0x0a, 0x0f, 0x6c, 0x61, 0x74, 0x65, + 0x73, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0e, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x74, 0x61, 0x67, 0x22, 0x86, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, + 0x61, 0x63, 0x74, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x31, 0x0a, 0x08, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, + 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x52, 0x08, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, + 0x63, 0x74, 0x12, 0x38, 0x0a, 0x08, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, + 0x76, 0x31, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x52, 0x08, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xaf, 0x01, 0x0a, + 0x0b, 0x50, 0x75, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x1d, + 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x73, 0x68, 0x61, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x68, 0x61, 0x12, 0x16, 0x0a, + 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x6f, 0x77, + 0x6e, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x70, 0x6f, 0x4f, + 0x77, 0x6e, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x49, 0x64, 0x22, 0x73, + 0x0a, 0x0a, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x37, 0x0a, 0x09, + 0x65, 0x63, 0x6f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x19, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, + 0x70, 0x45, 0x63, 0x6f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x09, 0x65, 0x63, 0x6f, 0x73, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x22, 0xd2, 0x02, 0x0a, 0x0e, 0x50, 0x72, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, + 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x02, 0x70, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, + 0x2e, 0x50, 0x75, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x02, 0x70, 0x72, + 0x12, 0x44, 0x0a, 0x04, 0x64, 0x65, 0x70, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, + 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x44, + 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x74, + 0x65, 0x78, 0x74, 0x75, 0x61, 0x6c, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, + 0x52, 0x04, 0x64, 0x65, 0x70, 0x73, 0x1a, 0xcf, 0x01, 0x0a, 0x14, 0x43, 0x6f, 0x6e, 0x74, 0x65, + 0x78, 0x74, 0x75, 0x61, 0x6c, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x12, + 0x29, 0x0a, 0x03, 0x64, 0x65, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, + 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x65, 0x6e, + 0x64, 0x65, 0x6e, 0x63, 0x79, 0x52, 0x03, 0x64, 0x65, 0x70, 0x12, 0x4e, 0x0a, 0x04, 0x66, 0x69, + 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, + 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, + 0x6e, 0x63, 0x69, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x75, 0x61, 0x6c, + 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x50, + 0x61, 0x74, 0x63, 0x68, 0x52, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x3c, 0x0a, 0x09, 0x46, 0x69, + 0x6c, 0x65, 0x50, 0x61, 0x74, 0x63, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x70, + 0x61, 0x74, 0x63, 0x68, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x70, 0x61, 0x74, 0x63, 0x68, 0x55, 0x72, 0x6c, 0x22, 0x14, 0x0a, 0x12, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x2d, + 0x0a, 0x13, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xa2, 0x01, + 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x55, 0x52, 0x4c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, + 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 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, 0x10, 0x0a, 0x03, 0x63, 0x6c, 0x69, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x63, 0x6c, 0x69, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x19, 0x0a, + 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, + 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6f, 0x77, 0x6e, + 0x65, 0x72, 0x22, 0x2f, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x52, 0x4c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x75, 0x72, 0x6c, 0x22, 0xa8, 0x01, 0x0a, 0x1e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x43, 0x6f, 0x64, 0x65, 0x46, 0x6f, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x43, 0x4c, 0x49, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, + 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, + 0x65, 0x72, 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, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, + 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x55, 0x72, 0x69, 0x22, 0x9e, + 0x01, 0x0a, 0x19, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, + 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 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, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x19, 0x0a, 0x05, 0x6f, 0x77, + 0x6e, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x6f, 0x77, 0x6e, + 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x22, + 0x1c, 0x0a, 0x1a, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x92, 0x01, + 0x0a, 0x1e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x46, 0x6f, + 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x57, 0x45, 0x42, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 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, 0x12, 0x0a, 0x04, 0x63, + 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, + 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x75, 0x72, 0x69, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x55, + 0x72, 0x69, 0x22, 0x9a, 0x01, 0x0a, 0x1f, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, + 0x6f, 0x64, 0x65, 0x46, 0x6f, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x57, 0x45, 0x42, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, + 0x72, 0x65, 0x73, 0x5f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x65, 0x78, + 0x70, 0x69, 0x72, 0x65, 0x73, 0x49, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, + 0x0f, 0x0a, 0x0d, 0x4c, 0x6f, 0x67, 0x4f, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x22, 0x10, 0x0a, 0x0e, 0x4c, 0x6f, 0x67, 0x4f, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x15, 0x0a, 0x13, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x16, 0x0a, 0x14, 0x52, 0x65, 0x76, + 0x6f, 0x6b, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x31, 0x0a, 0x16, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x75, + 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, + 0x65, 0x72, 0x49, 0x64, 0x22, 0x19, 0x0a, 0x17, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x55, 0x73, + 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x1a, 0x0a, 0x18, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x42, 0x0a, 0x19, 0x52, + 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x76, 0x6f, + 0x6b, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0d, 0x72, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, + 0x5b, 0x0a, 0x1e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x50, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 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, 0x21, 0x0a, 0x1f, + 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x15, 0x0a, 0x13, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x70, 0x0a, 0x14, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, + 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, + 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x12, 0x35, 0x0a, 0x17, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x5f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x14, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x45, + 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x49, 0x6e, 0x22, 0xf7, 0x01, 0x0a, 0x07, 0x50, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 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, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, + 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0b, 0x69, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x12, 0x39, 0x0a, 0x0a, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 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, 0x09, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x64, 0x5f, 0x61, 0x74, 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, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, + 0x41, 0x74, 0x22, 0x54, 0x0a, 0x17, 0x53, 0x79, 0x6e, 0x63, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, + 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 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, 0x1a, 0x0a, 0x18, 0x53, 0x79, 0x6e, 0x63, + 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xad, 0x01, 0x0a, 0x19, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, + 0x72, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 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, 0x3d, 0x0a, + 0x0c, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, + 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x52, 0x0c, + 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x73, 0x22, 0x51, 0x0a, 0x0c, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, + 0x72, 0x69, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x17, + 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x72, 0x65, 0x70, 0x6f, 0x49, 0x64, 0x22, 0x83, 0x04, 0x0a, 0x10, 0x52, 0x65, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x14, 0x0a, 0x05, + 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x77, 0x6e, + 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, + 0x72, 0x79, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x68, + 0x6f, 0x6f, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x68, 0x6f, + 0x6f, 0x6b, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x75, 0x72, 0x6c, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x68, 0x6f, 0x6f, 0x6b, 0x55, 0x72, 0x6c, 0x12, + 0x1d, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x55, 0x72, 0x6c, 0x12, 0x1b, + 0x0a, 0x09, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x68, + 0x6f, 0x6f, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x68, 0x6f, 0x6f, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x6f, 0x6f, 0x6b, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x6f, + 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, + 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, + 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, + 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, + 0x72, 0x65, 0x64, 0x12, 0x32, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0e, 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, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, + 0x18, 0x0f, 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, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x55, 0x0a, + 0x1a, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x07, 0x72, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, + 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x72, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x73, 0x22, 0xa5, 0x03, 0x0a, 0x10, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x6f, 0x72, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x17, + 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x72, 0x65, 0x70, 0x6f, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x70, 0x72, + 0x69, 0x76, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x50, + 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x73, 0x5f, 0x66, 0x6f, 0x72, + 0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x46, 0x6f, 0x72, 0x6b, 0x12, + 0x19, 0x0a, 0x08, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x68, 0x6f, 0x6f, 0x6b, 0x55, 0x72, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x65, + 0x70, 0x6c, 0x6f, 0x79, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x55, 0x72, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x6f, + 0x6e, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, + 0x6f, 0x6e, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0c, 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, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, + 0x0d, 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, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3f, 0x0a, 0x18, + 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x49, + 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x22, 0x5a, 0x0a, + 0x19, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, + 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x0a, 0x72, 0x65, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, + 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x0a, 0x72, + 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x22, 0x6b, 0x0a, 0x1a, 0x47, 0x65, 0x74, + 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, + 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, + 0x64, 0x65, 0x72, 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, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x5c, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x65, 0x64, 0x69, + 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, + 0x72, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x6f, 0x72, 0x79, 0x22, 0xb3, 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 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, 0x14, 0x0a, 0x05, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x2f, 0x0a, 0x06, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x6d, 0x65, 0x64, 0x69, + 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x53, 0x0a, 0x18, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, + 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, + 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, + 0x0f, 0x0a, 0x0d, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x22, 0x28, 0x0a, 0x0e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x95, 0x01, 0x0a, 0x1e, 0x56, + 0x65, 0x72, 0x69, 0x66, 0x79, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, + 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 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, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x22, 0x39, 0x0a, 0x1f, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x50, 0x72, 0x6f, 0x76, + 0x69, 0x64, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x1b, 0x0a, + 0x19, 0x47, 0x65, 0x74, 0x56, 0x75, 0x6c, 0x6e, 0x65, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x2d, 0x0a, 0x1b, 0x47, 0x65, + 0x74, 0x56, 0x75, 0x6c, 0x6e, 0x65, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x42, 0x79, + 0x49, 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, 0xc5, 0x03, 0x0a, 0x1c, 0x47, 0x65, + 0x74, 0x56, 0x75, 0x6c, 0x6e, 0x65, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x42, 0x79, + 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x5f, + 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x49, 0x64, + 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, + 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x12, 0x29, 0x0a, 0x10, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x41, + 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x75, 0x70, 0x67, 0x72, 0x61, + 0x64, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0e, 0x75, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x12, 0x16, 0x0a, 0x06, 0x67, 0x68, 0x73, 0x61, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x67, 0x68, 0x73, 0x61, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x64, 0x76, 0x69, + 0x73, 0x72, 0x6f, 0x79, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x61, 0x64, 0x76, 0x69, 0x73, 0x72, 0x6f, 0x79, 0x55, 0x72, 0x6c, 0x12, 0x39, 0x0a, 0x0a, 0x73, + 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x5f, 0x61, 0x74, 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, 0x09, 0x73, 0x63, 0x61, + 0x6e, 0x6e, 0x65, 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0c, 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, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x22, 0x5d, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x56, 0x75, 0x6c, 0x6e, 0x65, 0x72, 0x61, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x3f, 0x0a, 0x05, 0x76, 0x75, 0x6c, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, + 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x56, 0x75, 0x6c, 0x6e, 0x65, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x42, 0x79, 0x49, + 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x05, 0x76, 0x75, 0x6c, 0x6e, 0x73, + 0x22, 0x13, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x52, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, + 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x07, 0x73, + 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, + 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, + 0x63, 0x72, 0x65, 0x74, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x52, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x22, 0x26, 0x0a, 0x14, 0x47, 0x65, 0x74, + 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x42, 0x79, 0x49, 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, 0x5d, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x42, 0x79, + 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, + 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x22, 0x1c, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x50, 0x72, 0x6f, + 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4d, + 0x0a, 0x10, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, + 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0b, 0x69, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x22, 0x6b, 0x0a, + 0x1b, 0x47, 0x65, 0x74, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x12, + 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, + 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x50, 0x72, 0x6f, + 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x50, + 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x13, 0x0a, 0x11, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, + 0xa8, 0x03, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, + 0x29, 0x0a, 0x10, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x4e, 0x61, 0x6d, 0x65, 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, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x05, + 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x65, + 0x6d, 0x61, 0x69, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x10, 0x69, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x53, 0x75, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x09, 0x66, 0x69, 0x72, 0x73, 0x74, 0x4e, + 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x08, 0x6c, 0x61, 0x73, + 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 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, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x41, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x42, 0x0d, 0x0a, + 0x0b, 0x5f, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x48, 0x0a, 0x11, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, + 0x19, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, + 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, + 0x6f, 0x72, 0x63, 0x65, 0x22, 0x14, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, + 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xee, 0x02, 0x0a, 0x0a, 0x55, + 0x73, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x67, + 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x64, 0x12, 0x19, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, + 0x10, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, + 0x79, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x66, 0x69, 0x72, 0x73, + 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x09, + 0x66, 0x69, 0x72, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, + 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x02, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x39, + 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 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, 0x09, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x42, 0x0d, + 0x0a, 0x0b, 0x5f, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x10, 0x0a, 0x0e, 0x47, + 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x7e, 0x0a, + 0x0f, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x30, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, + 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x48, 0x00, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x88, + 0x01, 0x01, 0x12, 0x30, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, + 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x22, 0x46, 0x0a, + 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, + 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x07, 0x70, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x22, 0x47, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, + 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x14, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x22, 0x56, + 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, + 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x17, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x45, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, + 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, 0x48, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, + 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x14, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, + 0x22, 0x57, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x42, 0x79, + 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x07, 0x63, 0x6f, 0x6e, + 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x65, 0x64, + 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, + 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x48, 0x0a, 0x16, 0x47, 0x65, 0x74, + 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, + 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x22, 0xb7, 0x01, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3d, + 0x0a, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 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, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x22, 0xfb, 0x04, + 0x0a, 0x14, 0x52, 0x75, 0x6c, 0x65, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, + 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x1b, + 0x0a, 0x09, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x72, 0x75, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3d, 0x0a, 0x0c, 0x6c, + 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 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, 0x0b, 0x6c, + 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x52, 0x0a, 0x0b, 0x65, 0x6e, + 0x74, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x31, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, + 0x6c, 0x65, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x0a, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, + 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x64, + 0x61, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x75, 0x69, 0x64, + 0x61, 0x6e, 0x63, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x72, 0x65, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x11, 0x72, 0x65, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x59, 0x0a, 0x18, 0x72, 0x65, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 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, 0x48, 0x00, 0x52, 0x16, 0x72, 0x65, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x4c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2f, + 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x72, 0x65, 0x6d, + 0x65, 0x64, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x1a, + 0x3d, 0x0a, 0x0f, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x1b, + 0x0a, 0x19, 0x5f, 0x72, 0x65, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, + 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x22, 0xa5, 0x02, 0x0a, 0x1d, + 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, + 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, + 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, + 0x74, 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x50, 0x0a, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x38, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45, 0x6e, + 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x64, 0x49, 0x64, 0x52, 0x06, 0x65, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x6c, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x03, 0x61, 0x6c, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x75, 0x6c, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x75, 0x6c, 0x65, 0x1a, 0x48, 0x0a, 0x0d, 0x45, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x64, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, + 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x02, 0x69, 0x64, 0x22, 0xbc, 0x01, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, + 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x57, 0x0a, 0x16, 0x72, 0x75, 0x6c, + 0x65, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x65, 0x64, 0x69, + 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x45, 0x76, 0x61, 0x6c, + 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x14, 0x72, 0x75, + 0x6c, 0x65, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x22, 0x52, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, + 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, 0x66, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x79, 0x50, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0e, 0x70, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, + 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, + 0x0d, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x3c, + 0x0a, 0x13, 0x47, 0x65, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6b, + 0x65, 0x79, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x22, 0x35, 0x0a, 0x14, + 0x47, 0x65, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, + 0x4b, 0x65, 0x79, 0x22, 0x55, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, + 0x50, 0x61, 0x69, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x70, + 0x61, 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x70, 0x61, 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 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, 0x5d, 0x0a, 0x15, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x50, 0x61, 0x69, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6b, 0x65, 0x79, + 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x75, + 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x22, 0x2f, 0x0a, 0x12, 0x52, 0x45, 0x53, + 0x54, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, + 0x19, 0x0a, 0x08, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x62, 0x61, 0x73, 0x65, 0x55, 0x72, 0x6c, 0x22, 0x32, 0x0a, 0x14, 0x47, 0x69, + 0x74, 0x48, 0x75, 0x62, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x22, 0xab, + 0x03, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x37, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1d, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, + 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x12, 0x32, 0x0a, 0x03, 0x64, 0x65, 0x66, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x20, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x03, 0x64, 0x65, 0x66, 0x1a, 0x47, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, + 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x1a, + 0x9a, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x38, + 0x0a, 0x04, 0x72, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, + 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x45, 0x53, 0x54, 0x50, + 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, + 0x04, 0x72, 0x65, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x06, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, + 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x69, 0x74, 0x48, 0x75, 0x62, 0x50, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x01, 0x52, 0x06, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x72, 0x65, 0x73, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x22, 0x8a, 0x01, 0x0a, + 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, + 0x69, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, + 0x69, 0x64, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x6f, 0x72, + 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, + 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, + 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, + 0x5f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0a, 0x0a, + 0x08, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x22, 0x46, 0x0a, 0x14, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x2e, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, + 0x74, 0x22, 0x4d, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x0a, 0x72, 0x75, + 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, + 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x72, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, + 0x22, 0x5e, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, + 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x07, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, + 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, + 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x22, 0x4f, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, + 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, + 0x09, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x15, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, + 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x72, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x22, 0x58, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x07, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, + 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, + 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x4d, 0x0a, 0x17, 0x47, + 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x09, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6d, 0x65, 0x64, 0x69, + 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x52, 0x08, 0x72, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x4b, 0x0a, 0x15, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x09, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, + 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x72, + 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x4c, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x32, 0x0a, 0x09, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, + 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x72, 0x75, 0x6c, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x4b, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, + 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, + 0x0a, 0x09, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, + 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x72, 0x75, 0x6c, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x22, 0x4c, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x09, + 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x15, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, + 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x72, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x22, 0x57, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x07, 0x63, 0x6f, 0x6e, + 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x65, 0x64, + 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, + 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x18, 0x0a, 0x16, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x90, 0x01, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, + 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, + 0x74, 0x68, 0x6f, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x17, + 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, + 0x62, 0x6f, 0x64, 0x79, 0x88, 0x01, 0x01, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, 0x72, 0x73, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x61, 0x72, 0x73, 0x65, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x25, 0x0a, 0x0b, 0x42, 0x75, 0x69, 0x6c, 0x74, 0x69, + 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x22, 0x0e, 0x0a, + 0x0c, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, 0x0a, + 0x07, 0x47, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x6f, 0x6e, + 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x6f, + 0x6e, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x22, 0x86, 0x01, + 0x0a, 0x08, 0x44, 0x69, 0x66, 0x66, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3f, 0x0a, 0x0a, 0x65, 0x63, + 0x6f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, + 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x69, 0x66, + 0x66, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x63, 0x6f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, + 0x0a, 0x65, 0x63, 0x6f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0x39, 0x0a, 0x09, 0x45, + 0x63, 0x6f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x64, 0x65, 0x70, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, + 0x65, 0x70, 0x66, 0x69, 0x6c, 0x65, 0x22, 0xdf, 0x0c, 0x0a, 0x08, 0x52, 0x75, 0x6c, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x02, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x07, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, + 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, + 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x32, 0x0a, 0x03, + 0x64, 0x65, 0x66, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6d, 0x65, 0x64, 0x69, + 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x2e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x64, 0x65, 0x66, + 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x64, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x75, 0x69, 0x64, 0x61, 0x6e, 0x63, 0x65, 0x1a, 0x80, + 0x0b, 0x0a, 0x0a, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, + 0x09, 0x69, 0x6e, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x69, 0x6e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x38, 0x0a, 0x0b, 0x72, 0x75, + 0x6c, 0x65, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x02, 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, 0x0a, 0x72, 0x75, 0x6c, 0x65, 0x53, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x12, 0x3f, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5f, 0x73, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, + 0x75, 0x63, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x53, 0x63, 0x68, 0x65, + 0x6d, 0x61, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x06, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, + 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x65, 0x66, + 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x49, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x52, 0x06, + 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x04, 0x65, 0x76, 0x61, 0x6c, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, + 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x65, 0x66, 0x69, + 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x52, 0x04, 0x65, 0x76, 0x61, + 0x6c, 0x12, 0x48, 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, + 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x65, 0x66, 0x69, + 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, + 0x52, 0x09, 0x72, 0x65, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x1a, 0xd1, 0x02, 0x0a, 0x06, + 0x49, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x2e, 0x0a, 0x04, 0x72, 0x65, + 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, + 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x48, + 0x00, 0x52, 0x04, 0x72, 0x65, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x07, 0x62, 0x75, + 0x69, 0x6c, 0x74, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6d, 0x65, + 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x74, 0x69, + 0x6e, 0x54, 0x79, 0x70, 0x65, 0x48, 0x01, 0x52, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x74, 0x69, 0x6e, + 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x08, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, + 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, + 0x48, 0x02, 0x52, 0x08, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x2b, 0x0a, 0x03, 0x67, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, + 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x69, 0x74, 0x54, 0x79, + 0x70, 0x65, 0x48, 0x03, 0x52, 0x03, 0x67, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x04, + 0x64, 0x69, 0x66, 0x66, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6d, 0x65, 0x64, + 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x69, 0x66, 0x66, 0x54, 0x79, 0x70, + 0x65, 0x48, 0x04, 0x52, 0x04, 0x64, 0x69, 0x66, 0x66, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x72, 0x65, 0x73, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x74, 0x69, + 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x42, 0x06, + 0x0a, 0x04, 0x5f, 0x67, 0x69, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x1a, + 0xd4, 0x04, 0x0a, 0x04, 0x45, 0x76, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x42, 0x0a, 0x02, + 0x6a, 0x71, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, + 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, + 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x2e, + 0x4a, 0x51, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x52, 0x02, 0x6a, 0x71, + 0x12, 0x43, 0x0a, 0x04, 0x72, 0x65, 0x67, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, + 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x67, 0x6f, 0x48, 0x00, 0x52, 0x04, 0x72, 0x65, + 0x67, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x09, 0x76, 0x75, 0x6c, 0x6e, 0x63, 0x68, 0x65, + 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, + 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, + 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x2e, + 0x56, 0x75, 0x6c, 0x6e, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x48, 0x01, 0x52, 0x09, 0x76, 0x75, 0x6c, + 0x6e, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x88, 0x01, 0x01, 0x1a, 0xdc, 0x01, 0x0a, 0x0c, 0x4a, 0x51, + 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x12, 0x57, 0x0a, 0x08, 0x69, 0x6e, + 0x67, 0x65, 0x73, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6d, + 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x2e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, + 0x76, 0x61, 0x6c, 0x2e, 0x4a, 0x51, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, + 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x08, 0x69, 0x6e, 0x67, 0x65, 0x73, + 0x74, 0x65, 0x64, 0x12, 0x55, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, + 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x65, 0x66, 0x69, + 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x2e, 0x4a, 0x51, 0x43, 0x6f, + 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x1c, 0x0a, 0x08, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x65, 0x66, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x65, 0x66, 0x1a, 0x2c, 0x0a, 0x04, 0x52, 0x65, 0x67, 0x6f, + 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x65, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x64, 0x65, 0x66, 0x1a, 0x37, 0x0a, 0x09, 0x56, 0x75, 0x6c, 0x6e, 0x63, 0x68, + 0x65, 0x63, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x64, 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x02, 0x64, 0x62, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x72, 0x65, 0x67, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x76, 0x75, 0x6c, + 0x6e, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x1a, 0x58, 0x0a, 0x09, 0x52, 0x65, 0x6d, 0x65, 0x64, 0x69, + 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x2e, 0x0a, 0x04, 0x72, 0x65, 0x73, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, + 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x04, + 0x72, 0x65, 0x73, 0x74, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x72, 0x65, 0x73, 0x74, + 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x69, 0x64, 0x22, 0x8a, 0x04, 0x0a, 0x07, 0x50, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x12, 0x2e, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, + 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, + 0x74, 0x65, 0x78, 0x74, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x02, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x39, 0x0a, + 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, + 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x0a, 0x72, 0x65, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x46, 0x0a, 0x11, 0x62, 0x75, 0x69, 0x6c, + 0x64, 0x5f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, + 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x10, + 0x62, 0x75, 0x69, 0x6c, 0x64, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x35, 0x0a, 0x08, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x18, 0x06, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, + 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x08, 0x61, + 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x12, 0x3c, 0x0a, 0x0c, 0x70, 0x75, 0x6c, 0x6c, 0x5f, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x0b, 0x70, 0x75, 0x6c, 0x6c, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x65, 0x64, 0x69, 0x61, + 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x09, 0x72, 0x65, 0x6d, 0x65, + 0x64, 0x69, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x76, 0x0a, 0x04, 0x52, 0x75, 0x6c, 0x65, + 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x06, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x03, 0x64, 0x65, 0x66, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x03, 0x64, 0x65, 0x66, + 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x69, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x6d, 0x65, + 0x64, 0x69, 0x61, 0x74, 0x65, 0x2a, 0x7b, 0x0a, 0x0b, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4f, + 0x77, 0x6e, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x18, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4f, + 0x57, 0x4e, 0x45, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4f, 0x57, 0x4e, + 0x45, 0x52, 0x5f, 0x4f, 0x52, 0x47, 0x41, 0x4e, 0x49, 0x5a, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, + 0x01, 0x12, 0x18, 0x0a, 0x14, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4f, 0x57, 0x4e, 0x45, + 0x52, 0x5f, 0x50, 0x52, 0x4f, 0x4a, 0x45, 0x43, 0x54, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x4f, + 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4f, 0x57, 0x4e, 0x45, 0x52, 0x5f, 0x55, 0x53, 0x45, 0x52, + 0x10, 0x03, 0x2a, 0x5a, 0x0a, 0x0c, 0x44, 0x65, 0x70, 0x45, 0x63, 0x6f, 0x73, 0x79, 0x73, 0x74, + 0x65, 0x6d, 0x12, 0x1d, 0x0a, 0x19, 0x44, 0x45, 0x50, 0x5f, 0x45, 0x43, 0x4f, 0x53, 0x59, 0x53, + 0x54, 0x45, 0x4d, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x15, 0x0a, 0x11, 0x44, 0x45, 0x50, 0x5f, 0x45, 0x43, 0x4f, 0x53, 0x59, 0x53, 0x54, + 0x45, 0x4d, 0x5f, 0x4e, 0x50, 0x4d, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x44, 0x45, 0x50, 0x5f, + 0x45, 0x43, 0x4f, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x47, 0x4f, 0x10, 0x02, 0x2a, 0x98, + 0x01, 0x0a, 0x0a, 0x52, 0x65, 0x70, 0x6f, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x20, 0x0a, + 0x1c, 0x52, 0x45, 0x50, 0x4f, 0x5f, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x53, 0x48, 0x4f, + 0x57, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x18, 0x0a, 0x14, 0x52, 0x45, 0x50, 0x4f, 0x5f, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x53, + 0x48, 0x4f, 0x57, 0x5f, 0x41, 0x4c, 0x4c, 0x10, 0x01, 0x12, 0x28, 0x0a, 0x24, 0x52, 0x45, 0x50, + 0x4f, 0x5f, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x53, 0x48, 0x4f, 0x57, 0x5f, 0x4e, 0x4f, + 0x54, 0x5f, 0x52, 0x45, 0x47, 0x49, 0x53, 0x54, 0x45, 0x52, 0x45, 0x44, 0x5f, 0x4f, 0x4e, 0x4c, + 0x59, 0x10, 0x02, 0x12, 0x24, 0x0a, 0x20, 0x52, 0x45, 0x50, 0x4f, 0x5f, 0x46, 0x49, 0x4c, 0x54, + 0x45, 0x52, 0x5f, 0x53, 0x48, 0x4f, 0x57, 0x5f, 0x52, 0x45, 0x47, 0x49, 0x53, 0x54, 0x45, 0x52, + 0x45, 0x44, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x03, 0x2a, 0x88, 0x01, 0x0a, 0x06, 0x45, 0x6e, + 0x74, 0x69, 0x74, 0x79, 0x12, 0x16, 0x0a, 0x12, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, + 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x4f, 0x52, + 0x49, 0x45, 0x53, 0x10, 0x01, 0x12, 0x1d, 0x0a, 0x19, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, + 0x42, 0x55, 0x49, 0x4c, 0x44, 0x5f, 0x45, 0x4e, 0x56, 0x49, 0x52, 0x4f, 0x4e, 0x4d, 0x45, 0x4e, + 0x54, 0x53, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x41, + 0x52, 0x54, 0x49, 0x46, 0x41, 0x43, 0x54, 0x53, 0x10, 0x03, 0x12, 0x18, 0x0a, 0x14, 0x45, 0x4e, + 0x54, 0x49, 0x54, 0x59, 0x5f, 0x50, 0x55, 0x4c, 0x4c, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, + 0x54, 0x53, 0x10, 0x04, 0x32, 0x81, 0x01, 0x0a, 0x0d, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x70, 0x0a, 0x0b, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x48, + 0x65, 0x61, 0x6c, 0x74, 0x68, 0x12, 0x1f, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, + 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, + 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0xaa, 0xf8, 0x18, 0x04, 0x08, 0x01, + 0x10, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, + 0x31, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x32, 0x9c, 0x02, 0x0a, 0x0f, 0x41, 0x72, 0x74, + 0x69, 0x66, 0x61, 0x63, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x84, 0x01, 0x0a, + 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x12, 0x21, + 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x22, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2c, 0xaa, 0xf8, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x12, 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, + 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, + 0x65, 0x72, 0x7d, 0x12, 0x81, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, + 0x61, 0x63, 0x74, 0x42, 0x79, 0x49, 0x64, 0x12, 0x23, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, + 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, + 0x74, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x6d, + 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, + 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x23, 0xaa, 0xf8, 0x18, 0x02, 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, + 0x12, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, + 0x63, 0x74, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x32, 0xe8, 0x08, 0x0a, 0x0c, 0x4f, 0x41, 0x75, 0x74, + 0x68, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x8a, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, + 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x52, 0x4c, + 0x12, 0x27, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, + 0x52, 0x4c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6d, 0x65, 0x64, 0x69, + 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x75, 0x74, 0x68, 0x6f, + 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x52, 0x4c, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x20, 0xaa, 0xf8, 0x18, 0x04, 0x18, 0x01, 0x28, 0x02, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x12, 0x12, 0x10, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x75, 0x74, + 0x68, 0x2f, 0x75, 0x72, 0x6c, 0x12, 0x90, 0x01, 0x0a, 0x17, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x46, 0x6f, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x43, 0x4c, + 0x49, 0x12, 0x2b, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, + 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x46, 0x6f, 0x72, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x43, 0x4c, 0x49, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x48, 0x74, 0x74, 0x70, + 0x42, 0x6f, 0x64, 0x79, 0x22, 0x32, 0xaa, 0xf8, 0x18, 0x02, 0x08, 0x01, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x26, 0x12, 0x24, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x75, 0x74, 0x68, + 0x2f, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x76, 0x69, + 0x64, 0x65, 0x72, 0x7d, 0x2f, 0x63, 0x6c, 0x69, 0x12, 0xa8, 0x01, 0x0a, 0x17, 0x45, 0x78, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x46, 0x6f, 0x72, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x57, 0x45, 0x42, 0x12, 0x2b, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, + 0x76, 0x31, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x46, + 0x6f, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x57, 0x45, 0x42, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2c, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, + 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x46, 0x6f, 0x72, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x57, 0x45, 0x42, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x32, 0xaa, 0xf8, 0x18, 0x02, 0x08, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x12, 0x24, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63, 0x61, 0x6c, 0x6c, + 0x62, 0x61, 0x63, 0x6b, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x7d, 0x2f, + 0x77, 0x65, 0x62, 0x12, 0x95, 0x01, 0x0a, 0x12, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x50, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x26, 0x2e, 0x6d, 0x65, 0x64, + 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x50, 0x72, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2e, 0xaa, 0xf8, 0x18, + 0x02, 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x3a, 0x01, 0x2a, 0x22, 0x1d, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x76, + 0x69, 0x64, 0x65, 0x72, 0x7d, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x8c, 0x01, 0x0a, 0x11, + 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x73, 0x12, 0x25, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, + 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, + 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x4f, 0x61, 0x75, + 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x28, 0xaa, 0xf8, 0x18, 0x02, 0x20, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x3a, 0x01, + 0x2a, 0x22, 0x17, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, + 0x72, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x2d, 0x61, 0x6c, 0x6c, 0x12, 0xb4, 0x01, 0x0a, 0x17, 0x52, + 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x2b, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, + 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x4f, 0x61, 0x75, 0x74, 0x68, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, + 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x50, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x3e, 0xaa, 0xf8, 0x18, 0x04, 0x18, 0x01, 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x30, 0x3a, 0x01, 0x2a, 0x22, 0x2b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x75, + 0x74, 0x68, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x7d, 0x2f, 0x72, 0x65, + 0x76, 0x6f, 0x6b, 0x65, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, + 0x7d, 0x12, 0xae, 0x01, 0x0a, 0x17, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x50, 0x72, 0x6f, 0x76, + 0x69, 0x64, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x12, 0x2b, 0x2e, + 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x65, 0x72, 0x69, + 0x66, 0x79, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x46, + 0x72, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x6d, 0x65, 0x64, + 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x50, + 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x46, 0x72, 0x6f, 0x6d, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x38, 0xaa, 0xf8, 0x18, 0x02, 0x28, 0x02, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x12, 0x2a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, + 0x61, 0x75, 0x74, 0x68, 0x2f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x2f, 0x7b, 0x70, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x72, 0x7d, 0x2f, 0x7b, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x7d, 0x32, 0xd0, 0x04, 0x0a, 0x0b, 0x41, 0x75, 0x74, 0x68, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x12, 0x61, 0x0a, 0x06, 0x4c, 0x6f, 0x67, 0x4f, 0x75, 0x74, 0x12, 0x1a, 0x2e, 0x6d, + 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4f, 0x75, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, + 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4f, 0x75, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x3a, 0x01, 0x2a, + 0x22, 0x13, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x6c, + 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x12, 0x79, 0x0a, 0x0c, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x20, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, + 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, + 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, 0xaa, 0xf8, 0x18, 0x02, + 0x20, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x3a, 0x01, 0x2a, 0x22, 0x13, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x72, 0x65, 0x76, 0x6f, 0x6b, 0x65, + 0x12, 0x8c, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x23, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, + 0x76, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x6d, 0x65, 0x64, 0x69, + 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x55, 0x73, + 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x2e, 0xaa, 0xf8, 0x18, 0x02, 0x20, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x3a, 0x01, 0x2a, + 0x22, 0x1d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x72, + 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x12, + 0x74, 0x0a, 0x0c, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, + 0x20, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, + 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x21, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, + 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x3a, 0x01, 0x2a, 0x22, + 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x72, 0x65, + 0x66, 0x72, 0x65, 0x73, 0x68, 0x12, 0x5e, 0x0a, 0x06, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, + 0x1a, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x65, + 0x72, 0x69, 0x66, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x65, + 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, + 0x12, 0x13, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x76, + 0x65, 0x72, 0x69, 0x66, 0x79, 0x32, 0xc2, 0x06, 0x0a, 0x11, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x6f, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x9f, 0x01, 0x0a, 0x10, + 0x53, 0x79, 0x6e, 0x63, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, + 0x12, 0x24, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x53, + 0x79, 0x6e, 0x63, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, + 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x6f, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3e, 0xaa, + 0xf8, 0x18, 0x02, 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x3a, 0x01, 0x2a, 0x22, 0x2d, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, + 0x72, 0x69, 0x65, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2f, 0x7b, 0x70, + 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x7d, 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x12, 0xa9, 0x01, + 0x0a, 0x12, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x6f, 0x72, 0x79, 0x12, 0x26, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, + 0x76, 0x31, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x6d, + 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x42, 0xaa, 0xf8, 0x18, 0x04, 0x18, 0x01, 0x28, 0x02, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x34, 0x3a, 0x01, 0x2a, 0x22, 0x2f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, + 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x70, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x72, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x7d, + 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x97, 0x01, 0x0a, 0x10, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, 0x24, + 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, + 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, + 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x36, 0xaa, 0xf8, 0x18, + 0x02, 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x12, 0x28, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x2f, + 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, + 0x65, 0x72, 0x7d, 0x12, 0x97, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x49, 0x64, 0x12, 0x25, 0x2e, 0x6d, 0x65, 0x64, 0x69, + 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x26, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x49, 0x64, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0xaa, 0xf8, 0x18, 0x02, 0x28, 0x02, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x12, 0x25, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, + 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x69, 0x64, 0x2f, 0x7b, 0x72, + 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xaa, 0x01, + 0x0a, 0x13, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, + 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, + 0x79, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, + 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x40, 0xaa, 0xf8, 0x18, 0x02, 0x28, 0x02, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x34, 0x12, 0x32, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, + 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x70, 0x72, 0x6f, 0x76, 0x69, + 0x64, 0x65, 0x72, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x7d, 0x2f, 0x6e, + 0x61, 0x6d, 0x65, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x32, 0xa6, 0x01, 0x0a, 0x17, 0x42, + 0x72, 0x61, 0x6e, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x8a, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x42, 0x72, + 0x61, 0x6e, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, + 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, + 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x50, + 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x12, 0x18, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x76, 0x31, 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x32, 0xd1, 0x02, 0x0a, 0x0b, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x12, 0x6e, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, + 0x72, 0x12, 0x1e, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1f, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x1f, 0xaa, 0xf8, 0x18, 0x04, 0x18, 0x01, 0x28, 0x01, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x11, 0x3a, 0x01, 0x2a, 0x22, 0x0c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x75, + 0x73, 0x65, 0x72, 0x12, 0x70, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, + 0x72, 0x12, 0x1e, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1f, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x21, 0xaa, 0xf8, 0x18, 0x04, 0x18, 0x01, 0x28, 0x01, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x13, 0x2a, 0x11, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, + 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x60, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, + 0x12, 0x1b, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, + 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, + 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1a, 0xaa, 0xf8, 0x18, + 0x02, 0x28, 0x03, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0e, 0x12, 0x0c, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x32, 0xd8, 0x0c, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x7a, 0x0a, 0x0d, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x21, 0x2e, 0x6d, 0x65, + 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, + 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x22, 0xaa, 0xf8, 0x18, 0x04, 0x18, 0x01, 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x14, 0x3a, 0x01, 0x2a, 0x22, 0x0f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x7c, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x21, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, + 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x6d, 0x65, 0x64, + 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, + 0xaa, 0xf8, 0x18, 0x04, 0x18, 0x01, 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x2a, 0x14, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2f, + 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x73, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x73, 0x12, 0x20, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, + 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, + 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0xaa, 0xf8, 0x18, 0x02, 0x28, + 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x12, 0x10, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, + 0x2f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x77, 0x0a, 0x0e, 0x47, 0x65, 0x74, + 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x42, 0x79, 0x49, 0x64, 0x12, 0x22, 0x2e, 0x6d, 0x65, + 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x23, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x12, 0x14, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2f, 0x7b, 0x69, + 0x64, 0x7d, 0x12, 0xa3, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, + 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x2e, + 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x79, 0x4e, 0x61, + 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x6d, 0x65, 0x64, 0x69, + 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x30, 0xaa, 0xf8, 0x18, 0x02, 0x28, 0x02, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x24, 0x12, 0x22, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, + 0x7d, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0xa0, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, + 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x79, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x2d, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, + 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x42, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, 0xaa, 0xf8, 0x18, 0x02, 0x28, 0x02, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x78, 0x0a, 0x0d, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x21, 0x2e, 0x6d, + 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x22, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x20, 0xaa, 0xf8, 0x18, 0x02, 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x14, 0x12, 0x12, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x73, 0x12, 0x8f, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x2e, 0x6d, 0x65, + 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x79, 0x4e, 0x61, + 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0xaa, 0xf8, 0x18, 0x02, + 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, 0x1d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, + 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x6e, 0x61, 0x6d, 0x65, + 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x82, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x52, + 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x79, 0x49, 0x64, 0x12, 0x23, 0x2e, 0x6d, 0x65, + 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x24, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, 0xaa, 0xf8, 0x18, 0x02, 0x28, 0x02, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, + 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x7f, 0x0a, 0x0e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, + 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, 0xaa, 0xf8, 0x18, 0x04, 0x18, 0x01, 0x28, + 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x3a, 0x01, 0x2a, 0x22, 0x11, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x12, 0x7f, 0x0a, + 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x22, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, + 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, 0xaa, 0xf8, 0x18, 0x04, 0x18, 0x01, + 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x3a, 0x01, 0x2a, 0x1a, 0x11, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x12, 0x81, + 0x01, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x22, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, + 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0xaa, 0xf8, 0x18, 0x04, + 0x18, 0x01, 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x2a, 0x16, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x7b, 0x69, + 0x64, 0x7d, 0x32, 0xee, 0x01, 0x0a, 0x0a, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x12, 0x68, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, + 0x79, 0x12, 0x20, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x13, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0d, 0x12, 0x0b, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6b, 0x65, 0x79, 0x12, 0x76, 0x0a, 0x0d, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x50, 0x61, 0x69, 0x72, 0x12, 0x21, 0x2e, 0x6d, + 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x4b, 0x65, 0x79, 0x50, 0x61, 0x69, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x22, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x50, 0x61, 0x69, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x1e, 0xaa, 0xf8, 0x18, 0x04, 0x18, 0x01, 0x28, 0x02, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x10, 0x3a, 0x01, 0x2a, 0x22, 0x0b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, + 0x6b, 0x65, 0x79, 0x3a, 0x5a, 0x0a, 0x0b, 0x72, 0x70, 0x63, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x85, 0x8f, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x65, 0x64, + 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x70, 0x63, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x52, 0x0a, 0x72, 0x70, 0x63, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, + 0x32, 0x5a, 0x30, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x74, + 0x61, 0x63, 0x6b, 0x6c, 0x6f, 0x6b, 0x2f, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2f, + 0x70, 0x6b, 0x67, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2f, 0x67, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_mediator_v1_mediator_proto_rawDescOnce sync.Once + file_mediator_v1_mediator_proto_rawDescData = file_mediator_v1_mediator_proto_rawDesc +) + +func file_mediator_v1_mediator_proto_rawDescGZIP() []byte { + file_mediator_v1_mediator_proto_rawDescOnce.Do(func() { + file_mediator_v1_mediator_proto_rawDescData = protoimpl.X.CompressGZIP(file_mediator_v1_mediator_proto_rawDescData) + }) + return file_mediator_v1_mediator_proto_rawDescData +} + +var file_mediator_v1_mediator_proto_enumTypes = make([]protoimpl.EnumInfo, 4) +var file_mediator_v1_mediator_proto_msgTypes = make([]protoimpl.MessageInfo, 126) +var file_mediator_v1_mediator_proto_goTypes = []interface{}{ + (ObjectOwner)(0), // 0: mediator.v1.ObjectOwner + (DepEcosystem)(0), // 1: mediator.v1.DepEcosystem + (RepoFilter)(0), // 2: mediator.v1.RepoFilter + (Entity)(0), // 3: mediator.v1.Entity + (*RpcOptions)(nil), // 4: mediator.v1.RpcOptions + (*ListArtifactsRequest)(nil), // 5: mediator.v1.ListArtifactsRequest + (*ListArtifactsResponse)(nil), // 6: mediator.v1.ListArtifactsResponse + (*Artifact)(nil), // 7: mediator.v1.Artifact + (*GithubWorkflow)(nil), // 8: mediator.v1.GithubWorkflow + (*SignatureVerification)(nil), // 9: mediator.v1.SignatureVerification + (*ArtifactVersion)(nil), // 10: mediator.v1.ArtifactVersion + (*GetArtifactByIdRequest)(nil), // 11: mediator.v1.GetArtifactByIdRequest + (*GetArtifactByIdResponse)(nil), // 12: mediator.v1.GetArtifactByIdResponse + (*PullRequest)(nil), // 13: mediator.v1.PullRequest + (*Dependency)(nil), // 14: mediator.v1.Dependency + (*PrDependencies)(nil), // 15: mediator.v1.PrDependencies + (*CheckHealthRequest)(nil), // 16: mediator.v1.CheckHealthRequest + (*CheckHealthResponse)(nil), // 17: mediator.v1.CheckHealthResponse + (*GetAuthorizationURLRequest)(nil), // 18: mediator.v1.GetAuthorizationURLRequest + (*GetAuthorizationURLResponse)(nil), // 19: mediator.v1.GetAuthorizationURLResponse + (*ExchangeCodeForTokenCLIRequest)(nil), // 20: mediator.v1.ExchangeCodeForTokenCLIRequest + (*StoreProviderTokenRequest)(nil), // 21: mediator.v1.StoreProviderTokenRequest + (*StoreProviderTokenResponse)(nil), // 22: mediator.v1.StoreProviderTokenResponse + (*ExchangeCodeForTokenWEBRequest)(nil), // 23: mediator.v1.ExchangeCodeForTokenWEBRequest + (*ExchangeCodeForTokenWEBResponse)(nil), // 24: mediator.v1.ExchangeCodeForTokenWEBResponse + (*LogOutRequest)(nil), // 25: mediator.v1.LogOutRequest + (*LogOutResponse)(nil), // 26: mediator.v1.LogOutResponse + (*RevokeTokensRequest)(nil), // 27: mediator.v1.RevokeTokensRequest + (*RevokeTokensResponse)(nil), // 28: mediator.v1.RevokeTokensResponse + (*RevokeUserTokenRequest)(nil), // 29: mediator.v1.RevokeUserTokenRequest + (*RevokeUserTokenResponse)(nil), // 30: mediator.v1.RevokeUserTokenResponse + (*RevokeOauthTokensRequest)(nil), // 31: mediator.v1.RevokeOauthTokensRequest + (*RevokeOauthTokensResponse)(nil), // 32: mediator.v1.RevokeOauthTokensResponse + (*RevokeOauthProjectTokenRequest)(nil), // 33: mediator.v1.RevokeOauthProjectTokenRequest + (*RevokeOauthProjectTokenResponse)(nil), // 34: mediator.v1.RevokeOauthProjectTokenResponse + (*RefreshTokenRequest)(nil), // 35: mediator.v1.RefreshTokenRequest + (*RefreshTokenResponse)(nil), // 36: mediator.v1.RefreshTokenResponse + (*Project)(nil), // 37: mediator.v1.Project + (*SyncRepositoriesRequest)(nil), // 38: mediator.v1.SyncRepositoriesRequest + (*SyncRepositoriesResponse)(nil), // 39: mediator.v1.SyncRepositoriesResponse + (*RegisterRepositoryRequest)(nil), // 40: mediator.v1.RegisterRepositoryRequest + (*Repositories)(nil), // 41: mediator.v1.Repositories + (*RepositoryResult)(nil), // 42: mediator.v1.RepositoryResult + (*RegisterRepositoryResponse)(nil), // 43: mediator.v1.RegisterRepositoryResponse + (*RepositoryRecord)(nil), // 44: mediator.v1.RepositoryRecord + (*GetRepositoryByIdRequest)(nil), // 45: mediator.v1.GetRepositoryByIdRequest + (*GetRepositoryByIdResponse)(nil), // 46: mediator.v1.GetRepositoryByIdResponse + (*GetRepositoryByNameRequest)(nil), // 47: mediator.v1.GetRepositoryByNameRequest + (*GetRepositoryByNameResponse)(nil), // 48: mediator.v1.GetRepositoryByNameResponse + (*ListRepositoriesRequest)(nil), // 49: mediator.v1.ListRepositoriesRequest + (*ListRepositoriesResponse)(nil), // 50: mediator.v1.ListRepositoriesResponse + (*VerifyRequest)(nil), // 51: mediator.v1.VerifyRequest + (*VerifyResponse)(nil), // 52: mediator.v1.VerifyResponse + (*VerifyProviderTokenFromRequest)(nil), // 53: mediator.v1.VerifyProviderTokenFromRequest + (*VerifyProviderTokenFromResponse)(nil), // 54: mediator.v1.VerifyProviderTokenFromResponse + (*GetVulnerabilitiesRequest)(nil), // 55: mediator.v1.GetVulnerabilitiesRequest + (*GetVulnerabilityByIdRequest)(nil), // 56: mediator.v1.GetVulnerabilityByIdRequest + (*GetVulnerabilityByIdResponse)(nil), // 57: mediator.v1.GetVulnerabilityByIdResponse + (*GetVulnerabilitiesResponse)(nil), // 58: mediator.v1.GetVulnerabilitiesResponse + (*GetSecretsRequest)(nil), // 59: mediator.v1.GetSecretsRequest + (*GetSecretsResponse)(nil), // 60: mediator.v1.GetSecretsResponse + (*GetSecretByIdRequest)(nil), // 61: mediator.v1.GetSecretByIdRequest + (*GetSecretByIdResponse)(nil), // 62: mediator.v1.GetSecretByIdResponse + (*GetBranchProtectionRequest)(nil), // 63: mediator.v1.GetBranchProtectionRequest + (*BranchProtection)(nil), // 64: mediator.v1.BranchProtection + (*GetBranchProtectionResponse)(nil), // 65: mediator.v1.GetBranchProtectionResponse + (*CreateUserRequest)(nil), // 66: mediator.v1.CreateUserRequest + (*CreateUserResponse)(nil), // 67: mediator.v1.CreateUserResponse + (*DeleteUserRequest)(nil), // 68: mediator.v1.DeleteUserRequest + (*DeleteUserResponse)(nil), // 69: mediator.v1.DeleteUserResponse + (*UserRecord)(nil), // 70: mediator.v1.UserRecord + (*GetUserRequest)(nil), // 71: mediator.v1.GetUserRequest + (*GetUserResponse)(nil), // 72: mediator.v1.GetUserResponse + (*CreateProfileRequest)(nil), // 73: mediator.v1.CreateProfileRequest + (*CreateProfileResponse)(nil), // 74: mediator.v1.CreateProfileResponse + (*DeleteProfileRequest)(nil), // 75: mediator.v1.DeleteProfileRequest + (*DeleteProfileResponse)(nil), // 76: mediator.v1.DeleteProfileResponse + (*ListProfilesRequest)(nil), // 77: mediator.v1.ListProfilesRequest + (*ListProfilesResponse)(nil), // 78: mediator.v1.ListProfilesResponse + (*GetProfileByIdRequest)(nil), // 79: mediator.v1.GetProfileByIdRequest + (*GetProfileByIdResponse)(nil), // 80: mediator.v1.GetProfileByIdResponse + (*ProfileStatus)(nil), // 81: mediator.v1.ProfileStatus + (*RuleEvaluationStatus)(nil), // 82: mediator.v1.RuleEvaluationStatus + (*GetProfileStatusByNameRequest)(nil), // 83: mediator.v1.GetProfileStatusByNameRequest + (*GetProfileStatusByNameResponse)(nil), // 84: mediator.v1.GetProfileStatusByNameResponse + (*GetProfileStatusByProjectRequest)(nil), // 85: mediator.v1.GetProfileStatusByProjectRequest + (*GetProfileStatusByProjectResponse)(nil), // 86: mediator.v1.GetProfileStatusByProjectResponse + (*GetPublicKeyRequest)(nil), // 87: mediator.v1.GetPublicKeyRequest + (*GetPublicKeyResponse)(nil), // 88: mediator.v1.GetPublicKeyResponse + (*CreateKeyPairRequest)(nil), // 89: mediator.v1.CreateKeyPairRequest + (*CreateKeyPairResponse)(nil), // 90: mediator.v1.CreateKeyPairResponse + (*RESTProviderConfig)(nil), // 91: mediator.v1.RESTProviderConfig + (*GitHubProviderConfig)(nil), // 92: mediator.v1.GitHubProviderConfig + (*Provider)(nil), // 93: mediator.v1.Provider + (*Context)(nil), // 94: mediator.v1.Context + (*ListRuleTypesRequest)(nil), // 95: mediator.v1.ListRuleTypesRequest + (*ListRuleTypesResponse)(nil), // 96: mediator.v1.ListRuleTypesResponse + (*GetRuleTypeByNameRequest)(nil), // 97: mediator.v1.GetRuleTypeByNameRequest + (*GetRuleTypeByNameResponse)(nil), // 98: mediator.v1.GetRuleTypeByNameResponse + (*GetRuleTypeByIdRequest)(nil), // 99: mediator.v1.GetRuleTypeByIdRequest + (*GetRuleTypeByIdResponse)(nil), // 100: mediator.v1.GetRuleTypeByIdResponse + (*CreateRuleTypeRequest)(nil), // 101: mediator.v1.CreateRuleTypeRequest + (*CreateRuleTypeResponse)(nil), // 102: mediator.v1.CreateRuleTypeResponse + (*UpdateRuleTypeRequest)(nil), // 103: mediator.v1.UpdateRuleTypeRequest + (*UpdateRuleTypeResponse)(nil), // 104: mediator.v1.UpdateRuleTypeResponse + (*DeleteRuleTypeRequest)(nil), // 105: mediator.v1.DeleteRuleTypeRequest + (*DeleteRuleTypeResponse)(nil), // 106: mediator.v1.DeleteRuleTypeResponse + (*RestType)(nil), // 107: mediator.v1.RestType + (*BuiltinType)(nil), // 108: mediator.v1.BuiltinType + (*ArtifactType)(nil), // 109: mediator.v1.ArtifactType + (*GitType)(nil), // 110: mediator.v1.GitType + (*DiffType)(nil), // 111: mediator.v1.DiffType + (*RuleType)(nil), // 112: mediator.v1.RuleType + (*Profile)(nil), // 113: mediator.v1.Profile + (*PrDependencies_ContextualDependency)(nil), // 114: mediator.v1.PrDependencies.ContextualDependency + (*PrDependencies_ContextualDependency_FilePatch)(nil), // 115: mediator.v1.PrDependencies.ContextualDependency.FilePatch + nil, // 116: mediator.v1.RuleEvaluationStatus.EntityInfoEntry + (*GetProfileStatusByNameRequest_EntityTypedId)(nil), // 117: mediator.v1.GetProfileStatusByNameRequest.EntityTypedId + (*Provider_Context)(nil), // 118: mediator.v1.Provider.Context + (*Provider_Definition)(nil), // 119: mediator.v1.Provider.Definition + (*DiffType_Ecosystem)(nil), // 120: mediator.v1.DiffType.Ecosystem + (*RuleType_Definition)(nil), // 121: mediator.v1.RuleType.Definition + (*RuleType_Definition_Ingest)(nil), // 122: mediator.v1.RuleType.Definition.Ingest + (*RuleType_Definition_Eval)(nil), // 123: mediator.v1.RuleType.Definition.Eval + (*RuleType_Definition_Remediate)(nil), // 124: mediator.v1.RuleType.Definition.Remediate + (*RuleType_Definition_Eval_JQComparison)(nil), // 125: mediator.v1.RuleType.Definition.Eval.JQComparison + (*RuleType_Definition_Eval_Rego)(nil), // 126: mediator.v1.RuleType.Definition.Eval.Rego + (*RuleType_Definition_Eval_Vulncheck)(nil), // 127: mediator.v1.RuleType.Definition.Eval.Vulncheck + (*RuleType_Definition_Eval_JQComparison_Operator)(nil), // 128: mediator.v1.RuleType.Definition.Eval.JQComparison.Operator + (*Profile_Rule)(nil), // 129: mediator.v1.Profile.Rule + (*timestamppb.Timestamp)(nil), // 130: google.protobuf.Timestamp + (*wrapperspb.StringValue)(nil), // 131: google.protobuf.StringValue + (*structpb.Struct)(nil), // 132: google.protobuf.Struct + (*descriptorpb.MethodOptions)(nil), // 133: google.protobuf.MethodOptions + (*httpbody.HttpBody)(nil), // 134: google.api.HttpBody +} +var file_mediator_v1_mediator_proto_depIdxs = []int32{ + 0, // 0: mediator.v1.RpcOptions.auth_scope:type_name -> mediator.v1.ObjectOwner + 7, // 1: mediator.v1.ListArtifactsResponse.results:type_name -> mediator.v1.Artifact + 10, // 2: mediator.v1.Artifact.versions:type_name -> mediator.v1.ArtifactVersion + 130, // 3: mediator.v1.Artifact.created_at:type_name -> google.protobuf.Timestamp + 130, // 4: mediator.v1.SignatureVerification.signature_time:type_name -> google.protobuf.Timestamp + 9, // 5: mediator.v1.ArtifactVersion.signature_verification:type_name -> mediator.v1.SignatureVerification + 8, // 6: mediator.v1.ArtifactVersion.github_workflow:type_name -> mediator.v1.GithubWorkflow + 130, // 7: mediator.v1.ArtifactVersion.created_at:type_name -> google.protobuf.Timestamp + 7, // 8: mediator.v1.GetArtifactByIdResponse.artifact:type_name -> mediator.v1.Artifact + 10, // 9: mediator.v1.GetArtifactByIdResponse.versions:type_name -> mediator.v1.ArtifactVersion + 1, // 10: mediator.v1.Dependency.ecosystem:type_name -> mediator.v1.DepEcosystem + 13, // 11: mediator.v1.PrDependencies.pr:type_name -> mediator.v1.PullRequest + 114, // 12: mediator.v1.PrDependencies.deps:type_name -> mediator.v1.PrDependencies.ContextualDependency + 130, // 13: mediator.v1.Project.created_at:type_name -> google.protobuf.Timestamp + 130, // 14: mediator.v1.Project.updated_at:type_name -> google.protobuf.Timestamp + 41, // 15: mediator.v1.RegisterRepositoryRequest.repositories:type_name -> mediator.v1.Repositories + 131, // 16: mediator.v1.RepositoryResult.error:type_name -> google.protobuf.StringValue + 130, // 17: mediator.v1.RepositoryResult.created_at:type_name -> google.protobuf.Timestamp + 130, // 18: mediator.v1.RepositoryResult.updated_at:type_name -> google.protobuf.Timestamp + 42, // 19: mediator.v1.RegisterRepositoryResponse.results:type_name -> mediator.v1.RepositoryResult + 130, // 20: mediator.v1.RepositoryRecord.created_at:type_name -> google.protobuf.Timestamp + 130, // 21: mediator.v1.RepositoryRecord.updated_at:type_name -> google.protobuf.Timestamp + 44, // 22: mediator.v1.GetRepositoryByIdResponse.repository:type_name -> mediator.v1.RepositoryRecord + 44, // 23: mediator.v1.GetRepositoryByNameResponse.repository:type_name -> mediator.v1.RepositoryRecord + 2, // 24: mediator.v1.ListRepositoriesRequest.filter:type_name -> mediator.v1.RepoFilter + 44, // 25: mediator.v1.ListRepositoriesResponse.results:type_name -> mediator.v1.RepositoryRecord + 130, // 26: mediator.v1.VerifyProviderTokenFromRequest.timestamp:type_name -> google.protobuf.Timestamp + 130, // 27: mediator.v1.GetVulnerabilityByIdResponse.scanned_at:type_name -> google.protobuf.Timestamp + 130, // 28: mediator.v1.GetVulnerabilityByIdResponse.created_at:type_name -> google.protobuf.Timestamp + 57, // 29: mediator.v1.GetVulnerabilitiesResponse.vulns:type_name -> mediator.v1.GetVulnerabilityByIdResponse + 62, // 30: mediator.v1.GetSecretsResponse.secrets:type_name -> mediator.v1.GetSecretByIdResponse + 64, // 31: mediator.v1.GetBranchProtectionResponse.branch_protections:type_name -> mediator.v1.BranchProtection + 130, // 32: mediator.v1.CreateUserResponse.created_at:type_name -> google.protobuf.Timestamp + 130, // 33: mediator.v1.UserRecord.created_at:type_name -> google.protobuf.Timestamp + 130, // 34: mediator.v1.UserRecord.updated_at:type_name -> google.protobuf.Timestamp + 70, // 35: mediator.v1.GetUserResponse.user:type_name -> mediator.v1.UserRecord + 37, // 36: mediator.v1.GetUserResponse.projects:type_name -> mediator.v1.Project + 113, // 37: mediator.v1.CreateProfileRequest.profile:type_name -> mediator.v1.Profile + 113, // 38: mediator.v1.CreateProfileResponse.profile:type_name -> mediator.v1.Profile + 94, // 39: mediator.v1.DeleteProfileRequest.context:type_name -> mediator.v1.Context + 94, // 40: mediator.v1.ListProfilesRequest.context:type_name -> mediator.v1.Context + 113, // 41: mediator.v1.ListProfilesResponse.profiles:type_name -> mediator.v1.Profile + 94, // 42: mediator.v1.GetProfileByIdRequest.context:type_name -> mediator.v1.Context + 113, // 43: mediator.v1.GetProfileByIdResponse.profile:type_name -> mediator.v1.Profile + 130, // 44: mediator.v1.ProfileStatus.last_updated:type_name -> google.protobuf.Timestamp + 130, // 45: mediator.v1.RuleEvaluationStatus.last_updated:type_name -> google.protobuf.Timestamp + 116, // 46: mediator.v1.RuleEvaluationStatus.entity_info:type_name -> mediator.v1.RuleEvaluationStatus.EntityInfoEntry + 130, // 47: mediator.v1.RuleEvaluationStatus.remediation_last_updated:type_name -> google.protobuf.Timestamp + 94, // 48: mediator.v1.GetProfileStatusByNameRequest.context:type_name -> mediator.v1.Context + 117, // 49: mediator.v1.GetProfileStatusByNameRequest.entity:type_name -> mediator.v1.GetProfileStatusByNameRequest.EntityTypedId + 81, // 50: mediator.v1.GetProfileStatusByNameResponse.profile_status:type_name -> mediator.v1.ProfileStatus + 82, // 51: mediator.v1.GetProfileStatusByNameResponse.rule_evaluation_status:type_name -> mediator.v1.RuleEvaluationStatus + 94, // 52: mediator.v1.GetProfileStatusByProjectRequest.context:type_name -> mediator.v1.Context + 81, // 53: mediator.v1.GetProfileStatusByProjectResponse.profile_status:type_name -> mediator.v1.ProfileStatus + 118, // 54: mediator.v1.Provider.context:type_name -> mediator.v1.Provider.Context + 119, // 55: mediator.v1.Provider.def:type_name -> mediator.v1.Provider.Definition + 94, // 56: mediator.v1.ListRuleTypesRequest.context:type_name -> mediator.v1.Context + 112, // 57: mediator.v1.ListRuleTypesResponse.rule_types:type_name -> mediator.v1.RuleType + 94, // 58: mediator.v1.GetRuleTypeByNameRequest.context:type_name -> mediator.v1.Context + 112, // 59: mediator.v1.GetRuleTypeByNameResponse.rule_type:type_name -> mediator.v1.RuleType + 94, // 60: mediator.v1.GetRuleTypeByIdRequest.context:type_name -> mediator.v1.Context + 112, // 61: mediator.v1.GetRuleTypeByIdResponse.rule_type:type_name -> mediator.v1.RuleType + 112, // 62: mediator.v1.CreateRuleTypeRequest.rule_type:type_name -> mediator.v1.RuleType + 112, // 63: mediator.v1.CreateRuleTypeResponse.rule_type:type_name -> mediator.v1.RuleType + 112, // 64: mediator.v1.UpdateRuleTypeRequest.rule_type:type_name -> mediator.v1.RuleType + 112, // 65: mediator.v1.UpdateRuleTypeResponse.rule_type:type_name -> mediator.v1.RuleType + 94, // 66: mediator.v1.DeleteRuleTypeRequest.context:type_name -> mediator.v1.Context + 120, // 67: mediator.v1.DiffType.ecosystems:type_name -> mediator.v1.DiffType.Ecosystem + 94, // 68: mediator.v1.RuleType.context:type_name -> mediator.v1.Context + 121, // 69: mediator.v1.RuleType.def:type_name -> mediator.v1.RuleType.Definition + 94, // 70: mediator.v1.Profile.context:type_name -> mediator.v1.Context + 129, // 71: mediator.v1.Profile.repository:type_name -> mediator.v1.Profile.Rule + 129, // 72: mediator.v1.Profile.build_environment:type_name -> mediator.v1.Profile.Rule + 129, // 73: mediator.v1.Profile.artifact:type_name -> mediator.v1.Profile.Rule + 129, // 74: mediator.v1.Profile.pull_request:type_name -> mediator.v1.Profile.Rule + 14, // 75: mediator.v1.PrDependencies.ContextualDependency.dep:type_name -> mediator.v1.Dependency + 115, // 76: mediator.v1.PrDependencies.ContextualDependency.file:type_name -> mediator.v1.PrDependencies.ContextualDependency.FilePatch + 3, // 77: mediator.v1.GetProfileStatusByNameRequest.EntityTypedId.type:type_name -> mediator.v1.Entity + 91, // 78: mediator.v1.Provider.Definition.rest:type_name -> mediator.v1.RESTProviderConfig + 92, // 79: mediator.v1.Provider.Definition.github:type_name -> mediator.v1.GitHubProviderConfig + 132, // 80: mediator.v1.RuleType.Definition.rule_schema:type_name -> google.protobuf.Struct + 132, // 81: mediator.v1.RuleType.Definition.param_schema:type_name -> google.protobuf.Struct + 122, // 82: mediator.v1.RuleType.Definition.ingest:type_name -> mediator.v1.RuleType.Definition.Ingest + 123, // 83: mediator.v1.RuleType.Definition.eval:type_name -> mediator.v1.RuleType.Definition.Eval + 124, // 84: mediator.v1.RuleType.Definition.remediate:type_name -> mediator.v1.RuleType.Definition.Remediate + 107, // 85: mediator.v1.RuleType.Definition.Ingest.rest:type_name -> mediator.v1.RestType + 108, // 86: mediator.v1.RuleType.Definition.Ingest.builtin:type_name -> mediator.v1.BuiltinType + 109, // 87: mediator.v1.RuleType.Definition.Ingest.artifact:type_name -> mediator.v1.ArtifactType + 110, // 88: mediator.v1.RuleType.Definition.Ingest.git:type_name -> mediator.v1.GitType + 111, // 89: mediator.v1.RuleType.Definition.Ingest.diff:type_name -> mediator.v1.DiffType + 125, // 90: mediator.v1.RuleType.Definition.Eval.jq:type_name -> mediator.v1.RuleType.Definition.Eval.JQComparison + 126, // 91: mediator.v1.RuleType.Definition.Eval.rego:type_name -> mediator.v1.RuleType.Definition.Eval.Rego + 127, // 92: mediator.v1.RuleType.Definition.Eval.vulncheck:type_name -> mediator.v1.RuleType.Definition.Eval.Vulncheck + 107, // 93: mediator.v1.RuleType.Definition.Remediate.rest:type_name -> mediator.v1.RestType + 128, // 94: mediator.v1.RuleType.Definition.Eval.JQComparison.ingested:type_name -> mediator.v1.RuleType.Definition.Eval.JQComparison.Operator + 128, // 95: mediator.v1.RuleType.Definition.Eval.JQComparison.profile:type_name -> mediator.v1.RuleType.Definition.Eval.JQComparison.Operator + 132, // 96: mediator.v1.Profile.Rule.params:type_name -> google.protobuf.Struct + 132, // 97: mediator.v1.Profile.Rule.def:type_name -> google.protobuf.Struct + 133, // 98: mediator.v1.rpc_options:extendee -> google.protobuf.MethodOptions + 4, // 99: mediator.v1.rpc_options:type_name -> mediator.v1.RpcOptions + 16, // 100: mediator.v1.HealthService.CheckHealth:input_type -> mediator.v1.CheckHealthRequest + 5, // 101: mediator.v1.ArtifactService.ListArtifacts:input_type -> mediator.v1.ListArtifactsRequest + 11, // 102: mediator.v1.ArtifactService.GetArtifactById:input_type -> mediator.v1.GetArtifactByIdRequest + 18, // 103: mediator.v1.OAuthService.GetAuthorizationURL:input_type -> mediator.v1.GetAuthorizationURLRequest + 20, // 104: mediator.v1.OAuthService.ExchangeCodeForTokenCLI:input_type -> mediator.v1.ExchangeCodeForTokenCLIRequest + 23, // 105: mediator.v1.OAuthService.ExchangeCodeForTokenWEB:input_type -> mediator.v1.ExchangeCodeForTokenWEBRequest + 21, // 106: mediator.v1.OAuthService.StoreProviderToken:input_type -> mediator.v1.StoreProviderTokenRequest + 31, // 107: mediator.v1.OAuthService.RevokeOauthTokens:input_type -> mediator.v1.RevokeOauthTokensRequest + 33, // 108: mediator.v1.OAuthService.RevokeOauthProjectToken:input_type -> mediator.v1.RevokeOauthProjectTokenRequest + 53, // 109: mediator.v1.OAuthService.VerifyProviderTokenFrom:input_type -> mediator.v1.VerifyProviderTokenFromRequest + 25, // 110: mediator.v1.AuthService.LogOut:input_type -> mediator.v1.LogOutRequest + 27, // 111: mediator.v1.AuthService.RevokeTokens:input_type -> mediator.v1.RevokeTokensRequest + 29, // 112: mediator.v1.AuthService.RevokeUserToken:input_type -> mediator.v1.RevokeUserTokenRequest + 35, // 113: mediator.v1.AuthService.RefreshToken:input_type -> mediator.v1.RefreshTokenRequest + 51, // 114: mediator.v1.AuthService.Verify:input_type -> mediator.v1.VerifyRequest + 38, // 115: mediator.v1.RepositoryService.SyncRepositories:input_type -> mediator.v1.SyncRepositoriesRequest + 40, // 116: mediator.v1.RepositoryService.RegisterRepository:input_type -> mediator.v1.RegisterRepositoryRequest + 49, // 117: mediator.v1.RepositoryService.ListRepositories:input_type -> mediator.v1.ListRepositoriesRequest + 45, // 118: mediator.v1.RepositoryService.GetRepositoryById:input_type -> mediator.v1.GetRepositoryByIdRequest + 47, // 119: mediator.v1.RepositoryService.GetRepositoryByName:input_type -> mediator.v1.GetRepositoryByNameRequest + 63, // 120: mediator.v1.BranchProtectionService.GetBranchProtection:input_type -> mediator.v1.GetBranchProtectionRequest + 66, // 121: mediator.v1.UserService.CreateUser:input_type -> mediator.v1.CreateUserRequest + 68, // 122: mediator.v1.UserService.DeleteUser:input_type -> mediator.v1.DeleteUserRequest + 71, // 123: mediator.v1.UserService.GetUser:input_type -> mediator.v1.GetUserRequest + 73, // 124: mediator.v1.ProfileService.CreateProfile:input_type -> mediator.v1.CreateProfileRequest + 75, // 125: mediator.v1.ProfileService.DeleteProfile:input_type -> mediator.v1.DeleteProfileRequest + 77, // 126: mediator.v1.ProfileService.ListProfiles:input_type -> mediator.v1.ListProfilesRequest + 79, // 127: mediator.v1.ProfileService.GetProfileById:input_type -> mediator.v1.GetProfileByIdRequest + 83, // 128: mediator.v1.ProfileService.GetProfileStatusByName:input_type -> mediator.v1.GetProfileStatusByNameRequest + 85, // 129: mediator.v1.ProfileService.GetProfileStatusByProject:input_type -> mediator.v1.GetProfileStatusByProjectRequest + 95, // 130: mediator.v1.ProfileService.ListRuleTypes:input_type -> mediator.v1.ListRuleTypesRequest + 97, // 131: mediator.v1.ProfileService.GetRuleTypeByName:input_type -> mediator.v1.GetRuleTypeByNameRequest + 99, // 132: mediator.v1.ProfileService.GetRuleTypeById:input_type -> mediator.v1.GetRuleTypeByIdRequest + 101, // 133: mediator.v1.ProfileService.CreateRuleType:input_type -> mediator.v1.CreateRuleTypeRequest + 103, // 134: mediator.v1.ProfileService.UpdateRuleType:input_type -> mediator.v1.UpdateRuleTypeRequest + 105, // 135: mediator.v1.ProfileService.DeleteRuleType:input_type -> mediator.v1.DeleteRuleTypeRequest + 87, // 136: mediator.v1.KeyService.GetPublicKey:input_type -> mediator.v1.GetPublicKeyRequest + 89, // 137: mediator.v1.KeyService.CreateKeyPair:input_type -> mediator.v1.CreateKeyPairRequest + 17, // 138: mediator.v1.HealthService.CheckHealth:output_type -> mediator.v1.CheckHealthResponse + 6, // 139: mediator.v1.ArtifactService.ListArtifacts:output_type -> mediator.v1.ListArtifactsResponse + 12, // 140: mediator.v1.ArtifactService.GetArtifactById:output_type -> mediator.v1.GetArtifactByIdResponse + 19, // 141: mediator.v1.OAuthService.GetAuthorizationURL:output_type -> mediator.v1.GetAuthorizationURLResponse + 134, // 142: mediator.v1.OAuthService.ExchangeCodeForTokenCLI:output_type -> google.api.HttpBody + 24, // 143: mediator.v1.OAuthService.ExchangeCodeForTokenWEB:output_type -> mediator.v1.ExchangeCodeForTokenWEBResponse + 22, // 144: mediator.v1.OAuthService.StoreProviderToken:output_type -> mediator.v1.StoreProviderTokenResponse + 32, // 145: mediator.v1.OAuthService.RevokeOauthTokens:output_type -> mediator.v1.RevokeOauthTokensResponse + 34, // 146: mediator.v1.OAuthService.RevokeOauthProjectToken:output_type -> mediator.v1.RevokeOauthProjectTokenResponse + 54, // 147: mediator.v1.OAuthService.VerifyProviderTokenFrom:output_type -> mediator.v1.VerifyProviderTokenFromResponse + 26, // 148: mediator.v1.AuthService.LogOut:output_type -> mediator.v1.LogOutResponse + 28, // 149: mediator.v1.AuthService.RevokeTokens:output_type -> mediator.v1.RevokeTokensResponse + 30, // 150: mediator.v1.AuthService.RevokeUserToken:output_type -> mediator.v1.RevokeUserTokenResponse + 36, // 151: mediator.v1.AuthService.RefreshToken:output_type -> mediator.v1.RefreshTokenResponse + 52, // 152: mediator.v1.AuthService.Verify:output_type -> mediator.v1.VerifyResponse + 39, // 153: mediator.v1.RepositoryService.SyncRepositories:output_type -> mediator.v1.SyncRepositoriesResponse + 43, // 154: mediator.v1.RepositoryService.RegisterRepository:output_type -> mediator.v1.RegisterRepositoryResponse + 50, // 155: mediator.v1.RepositoryService.ListRepositories:output_type -> mediator.v1.ListRepositoriesResponse + 46, // 156: mediator.v1.RepositoryService.GetRepositoryById:output_type -> mediator.v1.GetRepositoryByIdResponse + 48, // 157: mediator.v1.RepositoryService.GetRepositoryByName:output_type -> mediator.v1.GetRepositoryByNameResponse + 65, // 158: mediator.v1.BranchProtectionService.GetBranchProtection:output_type -> mediator.v1.GetBranchProtectionResponse + 67, // 159: mediator.v1.UserService.CreateUser:output_type -> mediator.v1.CreateUserResponse + 69, // 160: mediator.v1.UserService.DeleteUser:output_type -> mediator.v1.DeleteUserResponse + 72, // 161: mediator.v1.UserService.GetUser:output_type -> mediator.v1.GetUserResponse + 74, // 162: mediator.v1.ProfileService.CreateProfile:output_type -> mediator.v1.CreateProfileResponse + 76, // 163: mediator.v1.ProfileService.DeleteProfile:output_type -> mediator.v1.DeleteProfileResponse + 78, // 164: mediator.v1.ProfileService.ListProfiles:output_type -> mediator.v1.ListProfilesResponse + 80, // 165: mediator.v1.ProfileService.GetProfileById:output_type -> mediator.v1.GetProfileByIdResponse + 84, // 166: mediator.v1.ProfileService.GetProfileStatusByName:output_type -> mediator.v1.GetProfileStatusByNameResponse + 86, // 167: mediator.v1.ProfileService.GetProfileStatusByProject:output_type -> mediator.v1.GetProfileStatusByProjectResponse + 96, // 168: mediator.v1.ProfileService.ListRuleTypes:output_type -> mediator.v1.ListRuleTypesResponse + 98, // 169: mediator.v1.ProfileService.GetRuleTypeByName:output_type -> mediator.v1.GetRuleTypeByNameResponse + 100, // 170: mediator.v1.ProfileService.GetRuleTypeById:output_type -> mediator.v1.GetRuleTypeByIdResponse + 102, // 171: mediator.v1.ProfileService.CreateRuleType:output_type -> mediator.v1.CreateRuleTypeResponse + 104, // 172: mediator.v1.ProfileService.UpdateRuleType:output_type -> mediator.v1.UpdateRuleTypeResponse + 106, // 173: mediator.v1.ProfileService.DeleteRuleType:output_type -> mediator.v1.DeleteRuleTypeResponse + 88, // 174: mediator.v1.KeyService.GetPublicKey:output_type -> mediator.v1.GetPublicKeyResponse + 90, // 175: mediator.v1.KeyService.CreateKeyPair:output_type -> mediator.v1.CreateKeyPairResponse + 138, // [138:176] is the sub-list for method output_type + 100, // [100:138] is the sub-list for method input_type + 99, // [99:100] is the sub-list for extension type_name + 98, // [98:99] is the sub-list for extension extendee + 0, // [0:98] is the sub-list for field type_name +} + +func init() { file_mediator_v1_mediator_proto_init() } +func file_mediator_v1_mediator_proto_init() { + if File_mediator_v1_mediator_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_mediator_v1_mediator_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RpcOptions); i { case 0: return &v.state case 1: @@ -13577,8 +9495,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VerifyResponse); i { + file_mediator_v1_mediator_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListArtifactsRequest); i { case 0: return &v.state case 1: @@ -13589,8 +9507,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VerifyProviderTokenFromRequest); i { + file_mediator_v1_mediator_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListArtifactsResponse); i { case 0: return &v.state case 1: @@ -13601,8 +9519,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VerifyProviderTokenFromResponse); i { + file_mediator_v1_mediator_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Artifact); i { case 0: return &v.state case 1: @@ -13613,8 +9531,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetVulnerabilitiesRequest); i { + file_mediator_v1_mediator_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GithubWorkflow); i { case 0: return &v.state case 1: @@ -13625,8 +9543,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetVulnerabilityByIdRequest); i { + file_mediator_v1_mediator_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignatureVerification); i { case 0: return &v.state case 1: @@ -13637,8 +9555,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetVulnerabilityByIdResponse); i { + file_mediator_v1_mediator_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ArtifactVersion); i { case 0: return &v.state case 1: @@ -13649,8 +9567,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetVulnerabilitiesResponse); i { + file_mediator_v1_mediator_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetArtifactByIdRequest); i { case 0: return &v.state case 1: @@ -13661,8 +9579,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetSecretsRequest); i { + file_mediator_v1_mediator_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetArtifactByIdResponse); i { case 0: return &v.state case 1: @@ -13673,8 +9591,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetSecretsResponse); i { + file_mediator_v1_mediator_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PullRequest); i { case 0: return &v.state case 1: @@ -13685,8 +9603,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetSecretByIdRequest); i { + file_mediator_v1_mediator_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Dependency); i { case 0: return &v.state case 1: @@ -13697,8 +9615,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetSecretByIdResponse); i { + file_mediator_v1_mediator_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PrDependencies); i { case 0: return &v.state case 1: @@ -13709,8 +9627,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetBranchProtectionRequest); i { + file_mediator_v1_mediator_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CheckHealthRequest); i { case 0: return &v.state case 1: @@ -13721,8 +9639,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BranchProtection); i { + file_mediator_v1_mediator_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CheckHealthResponse); i { case 0: return &v.state case 1: @@ -13733,8 +9651,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetBranchProtectionResponse); i { + file_mediator_v1_mediator_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetAuthorizationURLRequest); i { case 0: return &v.state case 1: @@ -13745,8 +9663,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateOrganizationRequest); i { + file_mediator_v1_mediator_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetAuthorizationURLResponse); i { case 0: return &v.state case 1: @@ -13757,8 +9675,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateOrganizationResponse); i { + file_mediator_v1_mediator_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExchangeCodeForTokenCLIRequest); i { case 0: return &v.state case 1: @@ -13769,8 +9687,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OrganizationRecord); i { + file_mediator_v1_mediator_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StoreProviderTokenRequest); i { case 0: return &v.state case 1: @@ -13781,8 +9699,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteOrganizationRequest); i { + file_mediator_v1_mediator_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StoreProviderTokenResponse); i { case 0: return &v.state case 1: @@ -13793,8 +9711,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteOrganizationResponse); i { + file_mediator_v1_mediator_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExchangeCodeForTokenWEBRequest); i { case 0: return &v.state case 1: @@ -13805,8 +9723,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetOrganizationsRequest); i { + file_mediator_v1_mediator_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExchangeCodeForTokenWEBResponse); i { case 0: return &v.state case 1: @@ -13817,8 +9735,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetOrganizationsResponse); i { + file_mediator_v1_mediator_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LogOutRequest); i { case 0: return &v.state case 1: @@ -13829,8 +9747,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetOrganizationRequest); i { + file_mediator_v1_mediator_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LogOutResponse); i { case 0: return &v.state case 1: @@ -13841,8 +9759,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetOrganizationResponse); i { + file_mediator_v1_mediator_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RevokeTokensRequest); i { case 0: return &v.state case 1: @@ -13853,8 +9771,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetOrganizationByNameRequest); i { + file_mediator_v1_mediator_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RevokeTokensResponse); i { case 0: return &v.state case 1: @@ -13865,8 +9783,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetOrganizationByNameResponse); i { + file_mediator_v1_mediator_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RevokeUserTokenRequest); i { case 0: return &v.state case 1: @@ -13877,8 +9795,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateProjectRequest); i { + file_mediator_v1_mediator_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RevokeUserTokenResponse); i { case 0: return &v.state case 1: @@ -13889,8 +9807,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetProjectByNameRequest); i { + file_mediator_v1_mediator_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RevokeOauthTokensRequest); i { case 0: return &v.state case 1: @@ -13901,8 +9819,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetProjectByIdRequest); i { + file_mediator_v1_mediator_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RevokeOauthTokensResponse); i { case 0: return &v.state case 1: @@ -13913,8 +9831,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetProjectsRequest); i { + file_mediator_v1_mediator_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RevokeOauthProjectTokenRequest); i { case 0: return &v.state case 1: @@ -13925,8 +9843,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProjectRecord); i { + file_mediator_v1_mediator_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RevokeOauthProjectTokenResponse); i { case 0: return &v.state case 1: @@ -13937,8 +9855,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateProjectResponse); i { + file_mediator_v1_mediator_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RefreshTokenRequest); i { case 0: return &v.state case 1: @@ -13949,8 +9867,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetProjectByNameResponse); i { + file_mediator_v1_mediator_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RefreshTokenResponse); i { case 0: return &v.state case 1: @@ -13961,8 +9879,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetProjectByIdResponse); i { + file_mediator_v1_mediator_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Project); i { case 0: return &v.state case 1: @@ -13973,8 +9891,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetProjectsResponse); i { + file_mediator_v1_mediator_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SyncRepositoriesRequest); i { case 0: return &v.state case 1: @@ -13985,8 +9903,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteProjectRequest); i { + file_mediator_v1_mediator_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SyncRepositoriesResponse); i { case 0: return &v.state case 1: @@ -13997,8 +9915,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteProjectResponse); i { + file_mediator_v1_mediator_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RegisterRepositoryRequest); i { case 0: return &v.state case 1: @@ -14009,8 +9927,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateRoleByOrganizationRequest); i { + file_mediator_v1_mediator_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Repositories); i { case 0: return &v.state case 1: @@ -14021,8 +9939,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateRoleByOrganizationResponse); i { + file_mediator_v1_mediator_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RepositoryResult); i { case 0: return &v.state case 1: @@ -14033,8 +9951,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateRoleByProjectRequest); i { + file_mediator_v1_mediator_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RegisterRepositoryResponse); i { case 0: return &v.state case 1: @@ -14045,8 +9963,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateRoleByProjectResponse); i { + file_mediator_v1_mediator_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RepositoryRecord); i { case 0: return &v.state case 1: @@ -14057,8 +9975,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteRoleRequest); i { + file_mediator_v1_mediator_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetRepositoryByIdRequest); i { case 0: return &v.state case 1: @@ -14069,8 +9987,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteRoleResponse); i { + file_mediator_v1_mediator_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetRepositoryByIdResponse); i { case 0: return &v.state case 1: @@ -14081,8 +9999,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RoleRecord); i { + file_mediator_v1_mediator_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetRepositoryByNameRequest); i { case 0: return &v.state case 1: @@ -14093,8 +10011,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetRolesRequest); i { + file_mediator_v1_mediator_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetRepositoryByNameResponse); i { case 0: return &v.state case 1: @@ -14105,8 +10023,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetRolesResponse); i { + file_mediator_v1_mediator_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListRepositoriesRequest); i { case 0: return &v.state case 1: @@ -14117,8 +10035,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetRolesByProjectRequest); i { + file_mediator_v1_mediator_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListRepositoriesResponse); i { case 0: return &v.state case 1: @@ -14129,8 +10047,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetRolesByProjectResponse); i { + file_mediator_v1_mediator_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VerifyRequest); i { case 0: return &v.state case 1: @@ -14141,8 +10059,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetRoleByIdRequest); i { + file_mediator_v1_mediator_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VerifyResponse); i { case 0: return &v.state case 1: @@ -14153,8 +10071,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetRoleByIdResponse); i { + file_mediator_v1_mediator_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VerifyProviderTokenFromRequest); i { case 0: return &v.state case 1: @@ -14165,8 +10083,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetRoleByNameRequest); i { + file_mediator_v1_mediator_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VerifyProviderTokenFromResponse); i { case 0: return &v.state case 1: @@ -14177,8 +10095,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetRoleByNameResponse); i { + file_mediator_v1_mediator_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetVulnerabilitiesRequest); i { case 0: return &v.state case 1: @@ -14189,8 +10107,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateUserRequest); i { + file_mediator_v1_mediator_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetVulnerabilityByIdRequest); i { case 0: return &v.state case 1: @@ -14201,8 +10119,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateUserResponse); i { + file_mediator_v1_mediator_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetVulnerabilityByIdResponse); i { case 0: return &v.state case 1: @@ -14213,8 +10131,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteUserRequest); i { + file_mediator_v1_mediator_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetVulnerabilitiesResponse); i { case 0: return &v.state case 1: @@ -14225,8 +10143,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteUserResponse); i { + file_mediator_v1_mediator_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetSecretsRequest); i { case 0: return &v.state case 1: @@ -14237,8 +10155,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserRecord); i { + file_mediator_v1_mediator_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetSecretsResponse); i { case 0: return &v.state case 1: @@ -14249,8 +10167,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUsersRequest); i { + file_mediator_v1_mediator_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetSecretByIdRequest); i { case 0: return &v.state case 1: @@ -14261,8 +10179,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUsersResponse); i { + file_mediator_v1_mediator_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetSecretByIdResponse); i { case 0: return &v.state case 1: @@ -14273,8 +10191,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUsersByOrganizationRequest); i { + file_mediator_v1_mediator_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetBranchProtectionRequest); i { case 0: return &v.state case 1: @@ -14285,8 +10203,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUsersByOrganizationResponse); i { + file_mediator_v1_mediator_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BranchProtection); i { case 0: return &v.state case 1: @@ -14297,8 +10215,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUsersByProjectRequest); i { + file_mediator_v1_mediator_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetBranchProtectionResponse); i { case 0: return &v.state case 1: @@ -14309,8 +10227,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUsersByProjectResponse); i { + file_mediator_v1_mediator_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateUserRequest); i { case 0: return &v.state case 1: @@ -14321,8 +10239,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUserByIdRequest); i { + file_mediator_v1_mediator_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateUserResponse); i { case 0: return &v.state case 1: @@ -14333,8 +10251,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUserByIdResponse); i { + file_mediator_v1_mediator_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteUserRequest); i { case 0: return &v.state case 1: @@ -14345,8 +10263,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUserBySubjectRequest); i { + file_mediator_v1_mediator_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteUserResponse); i { case 0: return &v.state case 1: @@ -14357,8 +10275,8 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUserBySubjectResponse); i { + file_mediator_v1_mediator_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserRecord); i { case 0: return &v.state case 1: @@ -14369,7 +10287,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetUserRequest); i { case 0: return &v.state @@ -14381,7 +10299,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetUserResponse); i { case 0: return &v.state @@ -14393,7 +10311,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateProfileRequest); i { case 0: return &v.state @@ -14405,7 +10323,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateProfileResponse); i { case 0: return &v.state @@ -14417,7 +10335,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteProfileRequest); i { case 0: return &v.state @@ -14429,7 +10347,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteProfileResponse); i { case 0: return &v.state @@ -14441,7 +10359,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListProfilesRequest); i { case 0: return &v.state @@ -14453,7 +10371,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListProfilesResponse); i { case 0: return &v.state @@ -14465,7 +10383,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetProfileByIdRequest); i { case 0: return &v.state @@ -14477,7 +10395,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetProfileByIdResponse); i { case 0: return &v.state @@ -14489,7 +10407,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ProfileStatus); i { case 0: return &v.state @@ -14501,7 +10419,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RuleEvaluationStatus); i { case 0: return &v.state @@ -14513,7 +10431,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetProfileStatusByNameRequest); i { case 0: return &v.state @@ -14525,7 +10443,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetProfileStatusByNameResponse); i { case 0: return &v.state @@ -14537,7 +10455,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetProfileStatusByProjectRequest); i { case 0: return &v.state @@ -14549,7 +10467,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetProfileStatusByProjectResponse); i { case 0: return &v.state @@ -14561,7 +10479,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetPublicKeyRequest); i { case 0: return &v.state @@ -14573,7 +10491,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetPublicKeyResponse); i { case 0: return &v.state @@ -14585,7 +10503,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateKeyPairRequest); i { case 0: return &v.state @@ -14597,7 +10515,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[132].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateKeyPairResponse); i { case 0: return &v.state @@ -14609,7 +10527,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RESTProviderConfig); i { case 0: return &v.state @@ -14621,7 +10539,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[134].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GitHubProviderConfig); i { case 0: return &v.state @@ -14633,7 +10551,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[135].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Provider); i { case 0: return &v.state @@ -14645,7 +10563,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[136].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Context); i { case 0: return &v.state @@ -14657,7 +10575,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[137].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListRuleTypesRequest); i { case 0: return &v.state @@ -14669,7 +10587,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[138].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListRuleTypesResponse); i { case 0: return &v.state @@ -14681,7 +10599,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[139].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetRuleTypeByNameRequest); i { case 0: return &v.state @@ -14693,7 +10611,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[140].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetRuleTypeByNameResponse); i { case 0: return &v.state @@ -14705,7 +10623,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[141].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetRuleTypeByIdRequest); i { case 0: return &v.state @@ -14717,7 +10635,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[142].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetRuleTypeByIdResponse); i { case 0: return &v.state @@ -14729,7 +10647,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[143].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateRuleTypeRequest); i { case 0: return &v.state @@ -14741,7 +10659,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[144].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateRuleTypeResponse); i { case 0: return &v.state @@ -14753,7 +10671,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[145].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateRuleTypeRequest); i { case 0: return &v.state @@ -14765,7 +10683,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[146].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateRuleTypeResponse); i { case 0: return &v.state @@ -14777,7 +10695,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[147].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteRuleTypeRequest); i { case 0: return &v.state @@ -14789,7 +10707,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[148].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteRuleTypeResponse); i { case 0: return &v.state @@ -14801,7 +10719,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[149].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RestType); i { case 0: return &v.state @@ -14813,7 +10731,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[150].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BuiltinType); i { case 0: return &v.state @@ -14825,7 +10743,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[151].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ArtifactType); i { case 0: return &v.state @@ -14837,7 +10755,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[152].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GitType); i { case 0: return &v.state @@ -14849,7 +10767,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[153].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DiffType); i { case 0: return &v.state @@ -14861,7 +10779,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[154].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RuleType); i { case 0: return &v.state @@ -14873,7 +10791,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[155].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Profile); i { case 0: return &v.state @@ -14885,7 +10803,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[156].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PrDependencies_ContextualDependency); i { case 0: return &v.state @@ -14897,7 +10815,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[157].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PrDependencies_ContextualDependency_FilePatch); i { case 0: return &v.state @@ -14909,7 +10827,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[159].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetProfileStatusByNameRequest_EntityTypedId); i { case 0: return &v.state @@ -14921,7 +10839,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[160].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Provider_Context); i { case 0: return &v.state @@ -14933,7 +10851,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[161].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Provider_Definition); i { case 0: return &v.state @@ -14945,7 +10863,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[162].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DiffType_Ecosystem); i { case 0: return &v.state @@ -14957,7 +10875,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[163].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RuleType_Definition); i { case 0: return &v.state @@ -14969,7 +10887,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[164].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RuleType_Definition_Ingest); i { case 0: return &v.state @@ -14981,7 +10899,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[165].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RuleType_Definition_Eval); i { case 0: return &v.state @@ -14993,7 +10911,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[166].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RuleType_Definition_Remediate); i { case 0: return &v.state @@ -15005,7 +10923,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[167].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RuleType_Definition_Eval_JQComparison); i { case 0: return &v.state @@ -15017,7 +10935,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[168].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RuleType_Definition_Eval_Rego); i { case 0: return &v.state @@ -15029,7 +10947,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[169].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RuleType_Definition_Eval_Vulncheck); i { case 0: return &v.state @@ -15041,7 +10959,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[170].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RuleType_Definition_Eval_JQComparison_Operator); i { case 0: return &v.state @@ -15053,7 +10971,7 @@ func file_mediator_v1_mediator_proto_init() { return nil } } - file_mediator_v1_mediator_proto_msgTypes[171].Exporter = func(v interface{}, i int) interface{} { + file_mediator_v1_mediator_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Profile_Rule); i { case 0: return &v.state @@ -15070,51 +10988,29 @@ func file_mediator_v1_mediator_proto_init() { file_mediator_v1_mediator_proto_msgTypes[6].OneofWrappers = []interface{}{} file_mediator_v1_mediator_proto_msgTypes[14].OneofWrappers = []interface{}{} file_mediator_v1_mediator_proto_msgTypes[17].OneofWrappers = []interface{}{} - file_mediator_v1_mediator_proto_msgTypes[62].OneofWrappers = []interface{}{} + file_mediator_v1_mediator_proto_msgTypes[63].OneofWrappers = []interface{}{} file_mediator_v1_mediator_proto_msgTypes[64].OneofWrappers = []interface{}{} file_mediator_v1_mediator_proto_msgTypes[66].OneofWrappers = []interface{}{} - file_mediator_v1_mediator_proto_msgTypes[69].OneofWrappers = []interface{}{} - file_mediator_v1_mediator_proto_msgTypes[71].OneofWrappers = []interface{}{} - file_mediator_v1_mediator_proto_msgTypes[72].OneofWrappers = []interface{}{} + file_mediator_v1_mediator_proto_msgTypes[68].OneofWrappers = []interface{}{} file_mediator_v1_mediator_proto_msgTypes[78].OneofWrappers = []interface{}{} - file_mediator_v1_mediator_proto_msgTypes[79].OneofWrappers = []interface{}{} - file_mediator_v1_mediator_proto_msgTypes[81].OneofWrappers = []interface{}{} - file_mediator_v1_mediator_proto_msgTypes[83].OneofWrappers = []interface{}{} - file_mediator_v1_mediator_proto_msgTypes[85].OneofWrappers = []interface{}{} - file_mediator_v1_mediator_proto_msgTypes[87].OneofWrappers = []interface{}{} - file_mediator_v1_mediator_proto_msgTypes[89].OneofWrappers = []interface{}{} file_mediator_v1_mediator_proto_msgTypes[90].OneofWrappers = []interface{}{} - file_mediator_v1_mediator_proto_msgTypes[92].OneofWrappers = []interface{}{} - file_mediator_v1_mediator_proto_msgTypes[95].OneofWrappers = []interface{}{} - file_mediator_v1_mediator_proto_msgTypes[97].OneofWrappers = []interface{}{} - file_mediator_v1_mediator_proto_msgTypes[99].OneofWrappers = []interface{}{} - file_mediator_v1_mediator_proto_msgTypes[100].OneofWrappers = []interface{}{} - file_mediator_v1_mediator_proto_msgTypes[102].OneofWrappers = []interface{}{} file_mediator_v1_mediator_proto_msgTypes[103].OneofWrappers = []interface{}{} - file_mediator_v1_mediator_proto_msgTypes[105].OneofWrappers = []interface{}{} - file_mediator_v1_mediator_proto_msgTypes[107].OneofWrappers = []interface{}{} - file_mediator_v1_mediator_proto_msgTypes[110].OneofWrappers = []interface{}{} - file_mediator_v1_mediator_proto_msgTypes[112].OneofWrappers = []interface{}{} - file_mediator_v1_mediator_proto_msgTypes[114].OneofWrappers = []interface{}{} - file_mediator_v1_mediator_proto_msgTypes[124].OneofWrappers = []interface{}{} - file_mediator_v1_mediator_proto_msgTypes[136].OneofWrappers = []interface{}{} - file_mediator_v1_mediator_proto_msgTypes[149].OneofWrappers = []interface{}{} - file_mediator_v1_mediator_proto_msgTypes[154].OneofWrappers = []interface{}{} - file_mediator_v1_mediator_proto_msgTypes[155].OneofWrappers = []interface{}{} - file_mediator_v1_mediator_proto_msgTypes[161].OneofWrappers = []interface{}{} - file_mediator_v1_mediator_proto_msgTypes[163].OneofWrappers = []interface{}{} - file_mediator_v1_mediator_proto_msgTypes[164].OneofWrappers = []interface{}{} - file_mediator_v1_mediator_proto_msgTypes[165].OneofWrappers = []interface{}{} - file_mediator_v1_mediator_proto_msgTypes[166].OneofWrappers = []interface{}{} + file_mediator_v1_mediator_proto_msgTypes[108].OneofWrappers = []interface{}{} + file_mediator_v1_mediator_proto_msgTypes[109].OneofWrappers = []interface{}{} + file_mediator_v1_mediator_proto_msgTypes[115].OneofWrappers = []interface{}{} + file_mediator_v1_mediator_proto_msgTypes[117].OneofWrappers = []interface{}{} + file_mediator_v1_mediator_proto_msgTypes[118].OneofWrappers = []interface{}{} + file_mediator_v1_mediator_proto_msgTypes[119].OneofWrappers = []interface{}{} + file_mediator_v1_mediator_proto_msgTypes[120].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_mediator_v1_mediator_proto_rawDesc, NumEnums: 4, - NumMessages: 172, + NumMessages: 126, NumExtensions: 1, - NumServices: 12, + NumServices: 9, }, GoTypes: file_mediator_v1_mediator_proto_goTypes, DependencyIndexes: file_mediator_v1_mediator_proto_depIdxs, diff --git a/pkg/api/protobuf/go/mediator/v1/mediator.pb.gw.go b/pkg/api/protobuf/go/mediator/v1/mediator.pb.gw.go index f03925570e..b8b0cb5fb1 100644 --- a/pkg/api/protobuf/go/mediator/v1/mediator.pb.gw.go +++ b/pkg/api/protobuf/go/mediator/v1/mediator.pb.gw.go @@ -1199,8 +1199,8 @@ func local_request_BranchProtectionService_GetBranchProtection_0(ctx context.Con } -func request_OrganizationService_CreateOrganization_0(ctx context.Context, marshaler runtime.Marshaler, client OrganizationServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq CreateOrganizationRequest +func request_UserService_CreateUser_0(ctx context.Context, marshaler runtime.Marshaler, client UserServiceClient, 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) @@ -1211,13 +1211,13 @@ func request_OrganizationService_CreateOrganization_0(ctx context.Context, marsh return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.CreateOrganization(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.CreateUser(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } -func local_request_OrganizationService_CreateOrganization_0(ctx context.Context, marshaler runtime.Marshaler, server OrganizationServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq CreateOrganizationRequest +func local_request_UserService_CreateUser_0(ctx context.Context, marshaler runtime.Marshaler, server UserServiceServer, 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) @@ -1228,49 +1228,50 @@ func local_request_OrganizationService_CreateOrganization_0(ctx context.Context, return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := server.CreateOrganization(ctx, &protoReq) + msg, err := server.CreateUser(ctx, &protoReq) return msg, metadata, err } var ( - filter_OrganizationService_GetOrganizations_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} + filter_UserService_DeleteUser_0 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0}, Base: []int{1, 2, 0, 0}, Check: []int{0, 1, 2, 2}} ) -func request_OrganizationService_GetOrganizations_0(ctx context.Context, marshaler runtime.Marshaler, client OrganizationServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetOrganizationsRequest +func request_UserService_DeleteUser_0(ctx context.Context, marshaler runtime.Marshaler, client UserServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteUserRequest 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_OrganizationService_GetOrganizations_0); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.GetOrganizations(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, 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") + } -func local_request_OrganizationService_GetOrganizations_0(ctx context.Context, marshaler runtime.Marshaler, server OrganizationServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetOrganizationsRequest - var metadata runtime.ServerMetadata + protoReq.Id, err = runtime.Int32(val) + if err != nil { + 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_OrganizationService_GetOrganizations_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_UserService_DeleteUser_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := server.GetOrganizations(ctx, &protoReq) + msg, err := client.DeleteUser(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } -func request_OrganizationService_GetOrganization_0(ctx context.Context, marshaler runtime.Marshaler, client OrganizationServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetOrganizationRequest +func local_request_UserService_DeleteUser_0(ctx context.Context, marshaler runtime.Marshaler, server UserServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteUserRequest var metadata runtime.ServerMetadata var ( @@ -1280,105 +1281,86 @@ func request_OrganizationService_GetOrganization_0(ctx context.Context, marshale _ = err ) - val, ok = pathParams["organization_id"] + val, ok = pathParams["id"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "organization_id") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") } - protoReq.OrganizationId, err = runtime.String(val) + protoReq.Id, err = runtime.Int32(val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "organization_id", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } - msg, err := client.GetOrganization(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_UserService_DeleteUser_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.DeleteUser(ctx, &protoReq) return msg, metadata, err } -func local_request_OrganizationService_GetOrganization_0(ctx context.Context, marshaler runtime.Marshaler, server OrganizationServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetOrganizationRequest +func request_UserService_GetUser_0(ctx context.Context, marshaler runtime.Marshaler, client UserServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetUserRequest var metadata runtime.ServerMetadata - var ( - val string - ok bool - err error - _ = err - ) + msg, err := client.GetUser(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err - val, ok = pathParams["organization_id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "organization_id") - } +} - protoReq.OrganizationId, err = runtime.String(val) - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "organization_id", err) - } +func local_request_UserService_GetUser_0(ctx context.Context, marshaler runtime.Marshaler, server UserServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetUserRequest + var metadata runtime.ServerMetadata - msg, err := server.GetOrganization(ctx, &protoReq) + msg, err := server.GetUser(ctx, &protoReq) return msg, metadata, err } -func request_OrganizationService_GetOrganizationByName_0(ctx context.Context, marshaler runtime.Marshaler, client OrganizationServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetOrganizationByNameRequest +func request_ProfileService_CreateProfile_0(ctx context.Context, marshaler runtime.Marshaler, client ProfileServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateProfileRequest var metadata runtime.ServerMetadata - var ( - val string - ok bool - err error - _ = err - ) - - val, ok = pathParams["name"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) } - - protoReq.Name, err = runtime.String(val) - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.GetOrganizationByName(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.CreateProfile(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } -func local_request_OrganizationService_GetOrganizationByName_0(ctx context.Context, marshaler runtime.Marshaler, server OrganizationServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetOrganizationByNameRequest +func local_request_ProfileService_CreateProfile_0(ctx context.Context, marshaler runtime.Marshaler, server ProfileServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateProfileRequest var metadata runtime.ServerMetadata - var ( - val string - ok bool - err error - _ = err - ) - - val, ok = pathParams["name"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) } - - protoReq.Name, err = runtime.String(val) - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := server.GetOrganizationByName(ctx, &protoReq) + msg, err := server.CreateProfile(ctx, &protoReq) return msg, metadata, err } var ( - filter_OrganizationService_DeleteOrganization_0 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0}, Base: []int{1, 2, 0, 0}, Check: []int{0, 1, 2, 2}} + filter_ProfileService_DeleteProfile_0 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0}, Base: []int{1, 2, 0, 0}, Check: []int{0, 1, 2, 2}} ) -func request_OrganizationService_DeleteOrganization_0(ctx context.Context, marshaler runtime.Marshaler, client OrganizationServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq DeleteOrganizationRequest +func request_ProfileService_DeleteProfile_0(ctx context.Context, marshaler runtime.Marshaler, client ProfileServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteProfileRequest var metadata runtime.ServerMetadata var ( @@ -1401,17 +1383,17 @@ func request_OrganizationService_DeleteOrganization_0(ctx context.Context, marsh if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_OrganizationService_DeleteOrganization_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ProfileService_DeleteProfile_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.DeleteOrganization(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.DeleteProfile(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } -func local_request_OrganizationService_DeleteOrganization_0(ctx context.Context, marshaler runtime.Marshaler, server OrganizationServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq DeleteOrganizationRequest +func local_request_ProfileService_DeleteProfile_0(ctx context.Context, marshaler runtime.Marshaler, server ProfileServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteProfileRequest var metadata runtime.ServerMetadata var ( @@ -1434,55 +1416,57 @@ func local_request_OrganizationService_DeleteOrganization_0(ctx context.Context, if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_OrganizationService_DeleteOrganization_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ProfileService_DeleteProfile_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := server.DeleteOrganization(ctx, &protoReq) + msg, err := server.DeleteProfile(ctx, &protoReq) return msg, metadata, err } -func request_ProjectService_CreateProject_0(ctx context.Context, marshaler runtime.Marshaler, client ProjectServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq CreateProjectRequest +var ( + filter_ProfileService_ListProfiles_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_ProfileService_ListProfiles_0(ctx context.Context, marshaler runtime.Marshaler, client ProfileServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListProfilesRequest var metadata runtime.ServerMetadata - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ProfileService_ListProfiles_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.CreateProject(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.ListProfiles(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } -func local_request_ProjectService_CreateProject_0(ctx context.Context, marshaler runtime.Marshaler, server ProjectServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq CreateProjectRequest +func local_request_ProfileService_ListProfiles_0(ctx context.Context, marshaler runtime.Marshaler, server ProfileServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListProfilesRequest var metadata runtime.ServerMetadata - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ProfileService_ListProfiles_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := server.CreateProject(ctx, &protoReq) + msg, err := server.ListProfiles(ctx, &protoReq) return msg, metadata, err } var ( - filter_ProjectService_GetProjects_0 = &utilities.DoubleArray{Encoding: map[string]int{"organization_id": 0, "organizationId": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}} + filter_ProfileService_GetProfileById_0 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0}, Base: []int{1, 2, 0, 0}, Check: []int{0, 1, 2, 2}} ) -func request_ProjectService_GetProjects_0(ctx context.Context, marshaler runtime.Marshaler, client ProjectServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetProjectsRequest +func request_ProfileService_GetProfileById_0(ctx context.Context, marshaler runtime.Marshaler, client ProfileServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetProfileByIdRequest var metadata runtime.ServerMetadata var ( @@ -1492,30 +1476,30 @@ func request_ProjectService_GetProjects_0(ctx context.Context, marshaler runtime _ = err ) - val, ok = pathParams["organization_id"] + val, ok = pathParams["id"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "organization_id") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") } - protoReq.OrganizationId, err = runtime.String(val) + protoReq.Id, err = runtime.String(val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "organization_id", err) + 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_ProjectService_GetProjects_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ProfileService_GetProfileById_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.GetProjects(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.GetProfileById(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } -func local_request_ProjectService_GetProjects_0(ctx context.Context, marshaler runtime.Marshaler, server ProjectServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetProjectsRequest +func local_request_ProfileService_GetProfileById_0(ctx context.Context, marshaler runtime.Marshaler, server ProfileServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetProfileByIdRequest var metadata runtime.ServerMetadata var ( @@ -1525,30 +1509,34 @@ func local_request_ProjectService_GetProjects_0(ctx context.Context, marshaler r _ = err ) - val, ok = pathParams["organization_id"] + val, ok = pathParams["id"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "organization_id") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") } - protoReq.OrganizationId, err = runtime.String(val) + protoReq.Id, err = runtime.String(val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "organization_id", err) + 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_ProjectService_GetProjects_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ProfileService_GetProfileById_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := server.GetProjects(ctx, &protoReq) + msg, err := server.GetProfileById(ctx, &protoReq) return msg, metadata, err } -func request_ProjectService_GetProjectByName_0(ctx context.Context, marshaler runtime.Marshaler, client ProjectServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetProjectByNameRequest +var ( + filter_ProfileService_GetProfileStatusByName_0 = &utilities.DoubleArray{Encoding: map[string]int{"name": 0}, Base: []int{1, 2, 0, 0}, Check: []int{0, 1, 2, 2}} +) + +func request_ProfileService_GetProfileStatusByName_0(ctx context.Context, marshaler runtime.Marshaler, client ProfileServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetProfileStatusByNameRequest var metadata runtime.ServerMetadata var ( @@ -1568,13 +1556,20 @@ func request_ProjectService_GetProjectByName_0(ctx context.Context, marshaler ru return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) } - msg, err := client.GetProjectByName(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ProfileService_GetProfileStatusByName_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetProfileStatusByName(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } -func local_request_ProjectService_GetProjectByName_0(ctx context.Context, marshaler runtime.Marshaler, server ProjectServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetProjectByNameRequest +func local_request_ProfileService_GetProfileStatusByName_0(ctx context.Context, marshaler runtime.Marshaler, server ProfileServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetProfileStatusByNameRequest var metadata runtime.ServerMetadata var ( @@ -1594,207 +1589,96 @@ func local_request_ProjectService_GetProjectByName_0(ctx context.Context, marsha return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) } - msg, err := server.GetProjectByName(ctx, &protoReq) + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ProfileService_GetProfileStatusByName_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.GetProfileStatusByName(ctx, &protoReq) return msg, metadata, err } -func request_ProjectService_GetProjectById_0(ctx context.Context, marshaler runtime.Marshaler, client ProjectServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetProjectByIdRequest - var metadata runtime.ServerMetadata +var ( + filter_ProfileService_GetProfileStatusByProject_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) - var ( - val string - ok bool - err error - _ = err - ) +func request_ProfileService_GetProfileStatusByProject_0(ctx context.Context, marshaler runtime.Marshaler, client ProfileServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetProfileStatusByProjectRequest + var metadata runtime.ServerMetadata - val, ok = pathParams["project_id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project_id") + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - - 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) + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ProfileService_GetProfileStatusByProject_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.GetProjectById(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.GetProfileStatusByProject(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } -func local_request_ProjectService_GetProjectById_0(ctx context.Context, marshaler runtime.Marshaler, server ProjectServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetProjectByIdRequest +func local_request_ProfileService_GetProfileStatusByProject_0(ctx context.Context, marshaler runtime.Marshaler, server ProfileServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetProfileStatusByProjectRequest 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") + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - - 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) + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ProfileService_GetProfileStatusByProject_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := server.GetProjectById(ctx, &protoReq) + msg, err := server.GetProfileStatusByProject(ctx, &protoReq) return msg, metadata, err } var ( - filter_ProjectService_DeleteProject_0 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0}, Base: []int{1, 2, 0, 0}, Check: []int{0, 1, 2, 2}} + filter_ProfileService_ListRuleTypes_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} ) -func request_ProjectService_DeleteProject_0(ctx context.Context, marshaler runtime.Marshaler, client ProjectServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq DeleteProjectRequest +func request_ProfileService_ListRuleTypes_0(ctx context.Context, marshaler runtime.Marshaler, client ProfileServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListRuleTypesRequest 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 := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ProjectService_DeleteProject_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ProfileService_ListRuleTypes_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.DeleteProject(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.ListRuleTypes(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } -func local_request_ProjectService_DeleteProject_0(ctx context.Context, marshaler runtime.Marshaler, server ProjectServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq DeleteProjectRequest +func local_request_ProfileService_ListRuleTypes_0(ctx context.Context, marshaler runtime.Marshaler, server ProfileServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListRuleTypesRequest 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 := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ProjectService_DeleteProject_0); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.DeleteProject(ctx, &protoReq) - return msg, metadata, err - -} - -func request_RoleService_CreateRoleByOrganization_0(ctx context.Context, marshaler runtime.Marshaler, client RoleServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq CreateRoleByOrganizationRequest - 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.CreateRoleByOrganization(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_RoleService_CreateRoleByOrganization_0(ctx context.Context, marshaler runtime.Marshaler, server RoleServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq CreateRoleByOrganizationRequest - 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.CreateRoleByOrganization(ctx, &protoReq) - return msg, metadata, err - -} - -func request_RoleService_CreateRoleByProject_0(ctx context.Context, marshaler runtime.Marshaler, client RoleServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq CreateRoleByProjectRequest - 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.CreateRoleByProject(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_RoleService_CreateRoleByProject_0(ctx context.Context, marshaler runtime.Marshaler, server RoleServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq CreateRoleByProjectRequest - 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 { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ProfileService_ListRuleTypes_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := server.CreateRoleByProject(ctx, &protoReq) + msg, err := server.ListRuleTypes(ctx, &protoReq) return msg, metadata, err } var ( - filter_RoleService_DeleteRole_0 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0}, Base: []int{1, 2, 0, 0}, Check: []int{0, 1, 2, 2}} + filter_ProfileService_GetRuleTypeByName_0 = &utilities.DoubleArray{Encoding: map[string]int{"name": 0}, Base: []int{1, 2, 0, 0}, Check: []int{0, 1, 2, 2}} ) -func request_RoleService_DeleteRole_0(ctx context.Context, marshaler runtime.Marshaler, client RoleServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq DeleteRoleRequest +func request_ProfileService_GetRuleTypeByName_0(ctx context.Context, marshaler runtime.Marshaler, client ProfileServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetRuleTypeByNameRequest var metadata runtime.ServerMetadata var ( @@ -1804,30 +1688,30 @@ func request_RoleService_DeleteRole_0(ctx context.Context, marshaler runtime.Mar _ = err ) - val, ok = pathParams["id"] + val, ok = pathParams["name"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") } - protoReq.Id, err = runtime.Int32(val) + protoReq.Name, err = runtime.String(val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_RoleService_DeleteRole_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ProfileService_GetRuleTypeByName_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.DeleteRole(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.GetRuleTypeByName(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } -func local_request_RoleService_DeleteRole_0(ctx context.Context, marshaler runtime.Marshaler, server RoleServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq DeleteRoleRequest +func local_request_ProfileService_GetRuleTypeByName_0(ctx context.Context, marshaler runtime.Marshaler, server ProfileServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetRuleTypeByNameRequest var metadata runtime.ServerMetadata var ( @@ -1837,34 +1721,34 @@ func local_request_RoleService_DeleteRole_0(ctx context.Context, marshaler runti _ = err ) - val, ok = pathParams["id"] + val, ok = pathParams["name"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") } - protoReq.Id, err = runtime.Int32(val) + protoReq.Name, err = runtime.String(val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_RoleService_DeleteRole_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ProfileService_GetRuleTypeByName_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := server.DeleteRole(ctx, &protoReq) + msg, err := server.GetRuleTypeByName(ctx, &protoReq) return msg, metadata, err } var ( - filter_RoleService_GetRoles_0 = &utilities.DoubleArray{Encoding: map[string]int{"organization_id": 0, "organizationId": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}} + filter_ProfileService_GetRuleTypeById_0 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0}, Base: []int{1, 2, 0, 0}, Check: []int{0, 1, 2, 2}} ) -func request_RoleService_GetRoles_0(ctx context.Context, marshaler runtime.Marshaler, client RoleServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetRolesRequest +func request_ProfileService_GetRuleTypeById_0(ctx context.Context, marshaler runtime.Marshaler, client ProfileServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetRuleTypeByIdRequest var metadata runtime.ServerMetadata var ( @@ -1874,30 +1758,30 @@ func request_RoleService_GetRoles_0(ctx context.Context, marshaler runtime.Marsh _ = err ) - val, ok = pathParams["organization_id"] + val, ok = pathParams["id"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "organization_id") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") } - protoReq.OrganizationId, err = runtime.String(val) + protoReq.Id, err = runtime.String(val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "organization_id", err) + 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_RoleService_GetRoles_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ProfileService_GetRuleTypeById_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.GetRoles(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.GetRuleTypeById(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } -func local_request_RoleService_GetRoles_0(ctx context.Context, marshaler runtime.Marshaler, server RoleServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetRolesRequest +func local_request_ProfileService_GetRuleTypeById_0(ctx context.Context, marshaler runtime.Marshaler, server ProfileServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetRuleTypeByIdRequest var metadata runtime.ServerMetadata var ( @@ -1907,156 +1791,102 @@ func local_request_RoleService_GetRoles_0(ctx context.Context, marshaler runtime _ = err ) - val, ok = pathParams["organization_id"] + val, ok = pathParams["id"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "organization_id") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") } - protoReq.OrganizationId, err = runtime.String(val) + protoReq.Id, err = runtime.String(val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "organization_id", err) + 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_RoleService_GetRoles_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ProfileService_GetRuleTypeById_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := server.GetRoles(ctx, &protoReq) + msg, err := server.GetRuleTypeById(ctx, &protoReq) return msg, metadata, err } -var ( - filter_RoleService_GetRolesByProject_0 = &utilities.DoubleArray{Encoding: map[string]int{"project_id": 0, "projectId": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}} -) - -func request_RoleService_GetRolesByProject_0(ctx context.Context, marshaler runtime.Marshaler, client RoleServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetRolesByProjectRequest +func request_ProfileService_CreateRuleType_0(ctx context.Context, marshaler runtime.Marshaler, client ProfileServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateRuleTypeRequest 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) - } - - if err := req.ParseForm(); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_RoleService_GetRolesByProject_0); err != nil { + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.GetRolesByProject(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.CreateRuleType(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } -func local_request_RoleService_GetRolesByProject_0(ctx context.Context, marshaler runtime.Marshaler, server RoleServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetRolesByProjectRequest +func local_request_ProfileService_CreateRuleType_0(ctx context.Context, marshaler runtime.Marshaler, server ProfileServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateRuleTypeRequest 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) - } - - if err := req.ParseForm(); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_RoleService_GetRolesByProject_0); err != nil { + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := server.GetRolesByProject(ctx, &protoReq) + msg, err := server.CreateRuleType(ctx, &protoReq) return msg, metadata, err } -func request_RoleService_GetRoleById_0(ctx context.Context, marshaler runtime.Marshaler, client RoleServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetRoleByIdRequest +func request_ProfileService_UpdateRuleType_0(ctx context.Context, marshaler runtime.Marshaler, client ProfileServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq UpdateRuleTypeRequest 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") + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) } - - protoReq.Id, err = runtime.Int32(val) - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.GetRoleById(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.UpdateRuleType(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } -func local_request_RoleService_GetRoleById_0(ctx context.Context, marshaler runtime.Marshaler, server RoleServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetRoleByIdRequest +func local_request_ProfileService_UpdateRuleType_0(ctx context.Context, marshaler runtime.Marshaler, server ProfileServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq UpdateRuleTypeRequest 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") + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) } - - protoReq.Id, err = runtime.Int32(val) - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := server.GetRoleById(ctx, &protoReq) + msg, err := server.UpdateRuleType(ctx, &protoReq) return msg, metadata, err } var ( - filter_RoleService_GetRoleByName_0 = &utilities.DoubleArray{Encoding: map[string]int{"name": 0}, Base: []int{1, 2, 0, 0}, Check: []int{0, 1, 2, 2}} + filter_ProfileService_DeleteRuleType_0 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0}, Base: []int{1, 2, 0, 0}, Check: []int{0, 1, 2, 2}} ) -func request_RoleService_GetRoleByName_0(ctx context.Context, marshaler runtime.Marshaler, client RoleServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetRoleByNameRequest +func request_ProfileService_DeleteRuleType_0(ctx context.Context, marshaler runtime.Marshaler, client ProfileServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteRuleTypeRequest var metadata runtime.ServerMetadata var ( @@ -2066,30 +1896,30 @@ func request_RoleService_GetRoleByName_0(ctx context.Context, marshaler runtime. _ = err ) - val, ok = pathParams["name"] + val, ok = pathParams["id"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") } - protoReq.Name, err = runtime.String(val) + protoReq.Id, err = runtime.String(val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + 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_RoleService_GetRoleByName_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ProfileService_DeleteRuleType_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.GetRoleByName(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.DeleteRuleType(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } -func local_request_RoleService_GetRoleByName_0(ctx context.Context, marshaler runtime.Marshaler, server RoleServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetRoleByNameRequest +func local_request_ProfileService_DeleteRuleType_0(ctx context.Context, marshaler runtime.Marshaler, server ProfileServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteRuleTypeRequest var metadata runtime.ServerMetadata var ( @@ -2099,2134 +1929,105 @@ func local_request_RoleService_GetRoleByName_0(ctx context.Context, marshaler ru _ = err ) - val, ok = pathParams["name"] + val, ok = pathParams["id"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") } - protoReq.Name, err = runtime.String(val) + protoReq.Id, err = runtime.String(val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + 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_RoleService_GetRoleByName_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ProfileService_DeleteRuleType_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := server.GetRoleByName(ctx, &protoReq) + msg, err := server.DeleteRuleType(ctx, &protoReq) return msg, metadata, err } -func request_UserService_CreateUser_0(ctx context.Context, marshaler runtime.Marshaler, client UserServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq CreateUserRequest +var ( + filter_KeyService_GetPublicKey_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_KeyService_GetPublicKey_0(ctx context.Context, marshaler runtime.Marshaler, client KeyServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetPublicKeyRequest var metadata runtime.ServerMetadata - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_KeyService_GetPublicKey_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.CreateUser(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_UserService_CreateUser_0(ctx context.Context, marshaler runtime.Marshaler, server UserServiceServer, 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 - -} - -var ( - filter_UserService_DeleteUser_0 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0}, Base: []int{1, 2, 0, 0}, Check: []int{0, 1, 2, 2}} -) - -func request_UserService_DeleteUser_0(ctx context.Context, marshaler runtime.Marshaler, client UserServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq DeleteUserRequest - 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.Int32(val) - if err != nil { - 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_UserService_DeleteUser_0); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.DeleteUser(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_UserService_DeleteUser_0(ctx context.Context, marshaler runtime.Marshaler, server UserServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq DeleteUserRequest - 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.Int32(val) - if err != nil { - 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_UserService_DeleteUser_0); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.DeleteUser(ctx, &protoReq) - return msg, metadata, err - -} - -var ( - filter_UserService_GetUsers_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} -) - -func request_UserService_GetUsers_0(ctx context.Context, marshaler runtime.Marshaler, client UserServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetUsersRequest - 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_UserService_GetUsers_0); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.GetUsers(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_UserService_GetUsers_0(ctx context.Context, marshaler runtime.Marshaler, server UserServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetUsersRequest - 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_UserService_GetUsers_0); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.GetUsers(ctx, &protoReq) - return msg, metadata, err - -} - -var ( - filter_UserService_GetUsersByOrganization_0 = &utilities.DoubleArray{Encoding: map[string]int{"organization_id": 0, "organizationId": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}} -) - -func request_UserService_GetUsersByOrganization_0(ctx context.Context, marshaler runtime.Marshaler, client UserServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetUsersByOrganizationRequest - var metadata runtime.ServerMetadata - - var ( - val string - ok bool - err error - _ = err - ) - - val, ok = pathParams["organization_id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "organization_id") - } - - protoReq.OrganizationId, err = runtime.String(val) - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "organization_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_UserService_GetUsersByOrganization_0); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.GetUsersByOrganization(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_UserService_GetUsersByOrganization_0(ctx context.Context, marshaler runtime.Marshaler, server UserServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetUsersByOrganizationRequest - var metadata runtime.ServerMetadata - - var ( - val string - ok bool - err error - _ = err - ) - - val, ok = pathParams["organization_id"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "organization_id") - } - - protoReq.OrganizationId, err = runtime.String(val) - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "organization_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_UserService_GetUsersByOrganization_0); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.GetUsersByOrganization(ctx, &protoReq) + msg, err := client.GetPublicKey(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } -var ( - filter_UserService_GetUsersByProject_0 = &utilities.DoubleArray{Encoding: map[string]int{"project_id": 0, "projectId": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}} -) - -func request_UserService_GetUsersByProject_0(ctx context.Context, marshaler runtime.Marshaler, client UserServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetUsersByProjectRequest +func local_request_KeyService_GetPublicKey_0(ctx context.Context, marshaler runtime.Marshaler, server KeyServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetPublicKeyRequest 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) - } - if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_UserService_GetUsersByProject_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_KeyService_GetPublicKey_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.GetUsersByProject(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := server.GetPublicKey(ctx, &protoReq) return msg, metadata, err } -func local_request_UserService_GetUsersByProject_0(ctx context.Context, marshaler runtime.Marshaler, server UserServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetUsersByProjectRequest +func request_KeyService_CreateKeyPair_0(ctx context.Context, marshaler runtime.Marshaler, client KeyServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateKeyPairRequest 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) - } - - if err := req.ParseForm(); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_UserService_GetUsersByProject_0); err != nil { + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := server.GetUsersByProject(ctx, &protoReq) - return msg, metadata, err - -} - -func request_UserService_GetUserById_0(ctx context.Context, marshaler runtime.Marshaler, client UserServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetUserByIdRequest - 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.Int32(val) - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "user_id", err) - } - - msg, err := client.GetUserById(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.CreateKeyPair(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } -func local_request_UserService_GetUserById_0(ctx context.Context, marshaler runtime.Marshaler, server UserServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetUserByIdRequest - 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.Int32(val) - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "user_id", err) - } - - msg, err := server.GetUserById(ctx, &protoReq) - return msg, metadata, err - -} - -func request_UserService_GetUserBySubject_0(ctx context.Context, marshaler runtime.Marshaler, client UserServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetUserBySubjectRequest - var metadata runtime.ServerMetadata - - var ( - val string - ok bool - err error - _ = err - ) - - val, ok = pathParams["subject"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "subject") - } - - protoReq.Subject, err = runtime.String(val) - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "subject", err) - } - - msg, err := client.GetUserBySubject(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_UserService_GetUserBySubject_0(ctx context.Context, marshaler runtime.Marshaler, server UserServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetUserBySubjectRequest - var metadata runtime.ServerMetadata - - var ( - val string - ok bool - err error - _ = err - ) - - val, ok = pathParams["subject"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "subject") - } - - protoReq.Subject, err = runtime.String(val) - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "subject", err) - } - - msg, err := server.GetUserBySubject(ctx, &protoReq) - return msg, metadata, err - -} - -func request_UserService_GetUser_0(ctx context.Context, marshaler runtime.Marshaler, client UserServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetUserRequest - var metadata runtime.ServerMetadata - - msg, err := client.GetUser(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_UserService_GetUser_0(ctx context.Context, marshaler runtime.Marshaler, server UserServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetUserRequest - var metadata runtime.ServerMetadata - - msg, err := server.GetUser(ctx, &protoReq) - return msg, metadata, err - -} - -func request_ProfileService_CreateProfile_0(ctx context.Context, marshaler runtime.Marshaler, client ProfileServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq CreateProfileRequest - 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.CreateProfile(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_ProfileService_CreateProfile_0(ctx context.Context, marshaler runtime.Marshaler, server ProfileServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq CreateProfileRequest - 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.CreateProfile(ctx, &protoReq) - return msg, metadata, err - -} - -var ( - filter_ProfileService_DeleteProfile_0 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0}, Base: []int{1, 2, 0, 0}, Check: []int{0, 1, 2, 2}} -) - -func request_ProfileService_DeleteProfile_0(ctx context.Context, marshaler runtime.Marshaler, client ProfileServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq DeleteProfileRequest - 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 := req.ParseForm(); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ProfileService_DeleteProfile_0); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.DeleteProfile(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_ProfileService_DeleteProfile_0(ctx context.Context, marshaler runtime.Marshaler, server ProfileServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq DeleteProfileRequest - 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 := req.ParseForm(); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ProfileService_DeleteProfile_0); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.DeleteProfile(ctx, &protoReq) - return msg, metadata, err - -} - -var ( - filter_ProfileService_ListProfiles_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} -) - -func request_ProfileService_ListProfiles_0(ctx context.Context, marshaler runtime.Marshaler, client ProfileServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ListProfilesRequest - 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_ProfileService_ListProfiles_0); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.ListProfiles(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_ProfileService_ListProfiles_0(ctx context.Context, marshaler runtime.Marshaler, server ProfileServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ListProfilesRequest - 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_ProfileService_ListProfiles_0); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.ListProfiles(ctx, &protoReq) - return msg, metadata, err - -} - -var ( - filter_ProfileService_GetProfileById_0 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0}, Base: []int{1, 2, 0, 0}, Check: []int{0, 1, 2, 2}} -) - -func request_ProfileService_GetProfileById_0(ctx context.Context, marshaler runtime.Marshaler, client ProfileServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetProfileByIdRequest - 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 := req.ParseForm(); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ProfileService_GetProfileById_0); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.GetProfileById(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_ProfileService_GetProfileById_0(ctx context.Context, marshaler runtime.Marshaler, server ProfileServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetProfileByIdRequest - 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 := req.ParseForm(); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ProfileService_GetProfileById_0); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.GetProfileById(ctx, &protoReq) - return msg, metadata, err - -} - -var ( - filter_ProfileService_GetProfileStatusByName_0 = &utilities.DoubleArray{Encoding: map[string]int{"name": 0}, Base: []int{1, 2, 0, 0}, Check: []int{0, 1, 2, 2}} -) - -func request_ProfileService_GetProfileStatusByName_0(ctx context.Context, marshaler runtime.Marshaler, client ProfileServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetProfileStatusByNameRequest - var metadata runtime.ServerMetadata - - var ( - val string - ok bool - err error - _ = err - ) - - val, ok = pathParams["name"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") - } - - protoReq.Name, err = runtime.String(val) - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) - } - - if err := req.ParseForm(); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ProfileService_GetProfileStatusByName_0); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.GetProfileStatusByName(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_ProfileService_GetProfileStatusByName_0(ctx context.Context, marshaler runtime.Marshaler, server ProfileServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetProfileStatusByNameRequest - var metadata runtime.ServerMetadata - - var ( - val string - ok bool - err error - _ = err - ) - - val, ok = pathParams["name"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") - } - - protoReq.Name, err = runtime.String(val) - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) - } - - if err := req.ParseForm(); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ProfileService_GetProfileStatusByName_0); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.GetProfileStatusByName(ctx, &protoReq) - return msg, metadata, err - -} - -var ( - filter_ProfileService_GetProfileStatusByProject_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} -) - -func request_ProfileService_GetProfileStatusByProject_0(ctx context.Context, marshaler runtime.Marshaler, client ProfileServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetProfileStatusByProjectRequest - 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_ProfileService_GetProfileStatusByProject_0); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.GetProfileStatusByProject(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_ProfileService_GetProfileStatusByProject_0(ctx context.Context, marshaler runtime.Marshaler, server ProfileServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetProfileStatusByProjectRequest - 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_ProfileService_GetProfileStatusByProject_0); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.GetProfileStatusByProject(ctx, &protoReq) - return msg, metadata, err - -} - -var ( - filter_ProfileService_ListRuleTypes_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} -) - -func request_ProfileService_ListRuleTypes_0(ctx context.Context, marshaler runtime.Marshaler, client ProfileServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ListRuleTypesRequest - 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_ProfileService_ListRuleTypes_0); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.ListRuleTypes(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_ProfileService_ListRuleTypes_0(ctx context.Context, marshaler runtime.Marshaler, server ProfileServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ListRuleTypesRequest - 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_ProfileService_ListRuleTypes_0); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.ListRuleTypes(ctx, &protoReq) - return msg, metadata, err - -} - -var ( - filter_ProfileService_GetRuleTypeByName_0 = &utilities.DoubleArray{Encoding: map[string]int{"name": 0}, Base: []int{1, 2, 0, 0}, Check: []int{0, 1, 2, 2}} -) - -func request_ProfileService_GetRuleTypeByName_0(ctx context.Context, marshaler runtime.Marshaler, client ProfileServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetRuleTypeByNameRequest - var metadata runtime.ServerMetadata - - var ( - val string - ok bool - err error - _ = err - ) - - val, ok = pathParams["name"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") - } - - protoReq.Name, err = runtime.String(val) - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) - } - - if err := req.ParseForm(); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ProfileService_GetRuleTypeByName_0); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.GetRuleTypeByName(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_ProfileService_GetRuleTypeByName_0(ctx context.Context, marshaler runtime.Marshaler, server ProfileServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetRuleTypeByNameRequest - var metadata runtime.ServerMetadata - - var ( - val string - ok bool - err error - _ = err - ) - - val, ok = pathParams["name"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") - } - - protoReq.Name, err = runtime.String(val) - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) - } - - if err := req.ParseForm(); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ProfileService_GetRuleTypeByName_0); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.GetRuleTypeByName(ctx, &protoReq) - return msg, metadata, err - -} - -var ( - filter_ProfileService_GetRuleTypeById_0 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0}, Base: []int{1, 2, 0, 0}, Check: []int{0, 1, 2, 2}} -) - -func request_ProfileService_GetRuleTypeById_0(ctx context.Context, marshaler runtime.Marshaler, client ProfileServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetRuleTypeByIdRequest - 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 := req.ParseForm(); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ProfileService_GetRuleTypeById_0); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.GetRuleTypeById(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_ProfileService_GetRuleTypeById_0(ctx context.Context, marshaler runtime.Marshaler, server ProfileServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetRuleTypeByIdRequest - 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 := req.ParseForm(); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ProfileService_GetRuleTypeById_0); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.GetRuleTypeById(ctx, &protoReq) - return msg, metadata, err - -} - -func request_ProfileService_CreateRuleType_0(ctx context.Context, marshaler runtime.Marshaler, client ProfileServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq CreateRuleTypeRequest - 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.CreateRuleType(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_ProfileService_CreateRuleType_0(ctx context.Context, marshaler runtime.Marshaler, server ProfileServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq CreateRuleTypeRequest - 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.CreateRuleType(ctx, &protoReq) - return msg, metadata, err - -} - -func request_ProfileService_UpdateRuleType_0(ctx context.Context, marshaler runtime.Marshaler, client ProfileServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq UpdateRuleTypeRequest - 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.UpdateRuleType(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_ProfileService_UpdateRuleType_0(ctx context.Context, marshaler runtime.Marshaler, server ProfileServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq UpdateRuleTypeRequest - 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.UpdateRuleType(ctx, &protoReq) - return msg, metadata, err - -} - -var ( - filter_ProfileService_DeleteRuleType_0 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0}, Base: []int{1, 2, 0, 0}, Check: []int{0, 1, 2, 2}} -) - -func request_ProfileService_DeleteRuleType_0(ctx context.Context, marshaler runtime.Marshaler, client ProfileServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq DeleteRuleTypeRequest - 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 := req.ParseForm(); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ProfileService_DeleteRuleType_0); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.DeleteRuleType(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_ProfileService_DeleteRuleType_0(ctx context.Context, marshaler runtime.Marshaler, server ProfileServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq DeleteRuleTypeRequest - 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 := req.ParseForm(); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ProfileService_DeleteRuleType_0); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.DeleteRuleType(ctx, &protoReq) - return msg, metadata, err - -} - -var ( - filter_KeyService_GetPublicKey_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} -) - -func request_KeyService_GetPublicKey_0(ctx context.Context, marshaler runtime.Marshaler, client KeyServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetPublicKeyRequest - 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_KeyService_GetPublicKey_0); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.GetPublicKey(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_KeyService_GetPublicKey_0(ctx context.Context, marshaler runtime.Marshaler, server KeyServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetPublicKeyRequest - 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_KeyService_GetPublicKey_0); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.GetPublicKey(ctx, &protoReq) - return msg, metadata, err - -} - -func request_KeyService_CreateKeyPair_0(ctx context.Context, marshaler runtime.Marshaler, client KeyServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq CreateKeyPairRequest - 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.CreateKeyPair(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_KeyService_CreateKeyPair_0(ctx context.Context, marshaler runtime.Marshaler, server KeyServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq CreateKeyPairRequest - 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.CreateKeyPair(ctx, &protoReq) - return msg, metadata, err - -} - -// RegisterHealthServiceHandlerServer registers the http handlers for service HealthService to "mux". -// UnaryRPC :call HealthServiceServer directly. -// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. -// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterHealthServiceHandlerFromEndpoint instead. -func RegisterHealthServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server HealthServiceServer) error { - - mux.Handle("GET", pattern_HealthService_CheckHealth_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.HealthService/CheckHealth", runtime.WithHTTPPathPattern("/api/v1/health")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_HealthService_CheckHealth_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_HealthService_CheckHealth_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - return nil -} - -// RegisterArtifactServiceHandlerServer registers the http handlers for service ArtifactService to "mux". -// UnaryRPC :call ArtifactServiceServer directly. -// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. -// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterArtifactServiceHandlerFromEndpoint instead. -func RegisterArtifactServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server ArtifactServiceServer) error { - - mux.Handle("GET", pattern_ArtifactService_ListArtifacts_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.ArtifactService/ListArtifacts", runtime.WithHTTPPathPattern("/api/v1/artifacts/{provider}")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_ArtifactService_ListArtifacts_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_ArtifactService_ListArtifacts_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_ArtifactService_GetArtifactById_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.ArtifactService/GetArtifactById", runtime.WithHTTPPathPattern("/api/v1/artifact/{id}")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_ArtifactService_GetArtifactById_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_ArtifactService_GetArtifactById_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - return nil -} - -// RegisterOAuthServiceHandlerServer registers the http handlers for service OAuthService to "mux". -// UnaryRPC :call OAuthServiceServer directly. -// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. -// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterOAuthServiceHandlerFromEndpoint instead. -func RegisterOAuthServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server OAuthServiceServer) error { - - mux.Handle("GET", pattern_OAuthService_GetAuthorizationURL_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.OAuthService/GetAuthorizationURL", runtime.WithHTTPPathPattern("/api/v1/auth/url")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_OAuthService_GetAuthorizationURL_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_OAuthService_GetAuthorizationURL_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_OAuthService_ExchangeCodeForTokenCLI_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.OAuthService/ExchangeCodeForTokenCLI", runtime.WithHTTPPathPattern("/api/v1/auth/callback/{provider}/cli")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_OAuthService_ExchangeCodeForTokenCLI_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_OAuthService_ExchangeCodeForTokenCLI_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_OAuthService_ExchangeCodeForTokenWEB_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.OAuthService/ExchangeCodeForTokenWEB", runtime.WithHTTPPathPattern("/api/v1/auth/callback/{provider}/web")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_OAuthService_ExchangeCodeForTokenWEB_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_OAuthService_ExchangeCodeForTokenWEB_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_OAuthService_StoreProviderToken_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.OAuthService/StoreProviderToken", runtime.WithHTTPPathPattern("/api/v1/auth/{provider}/token")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_OAuthService_StoreProviderToken_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_OAuthService_StoreProviderToken_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_OAuthService_RevokeOauthTokens_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.OAuthService/RevokeOauthTokens", runtime.WithHTTPPathPattern("/api/v1/auth/revoke-all")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_OAuthService_RevokeOauthTokens_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_OAuthService_RevokeOauthTokens_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_OAuthService_RevokeOauthProjectToken_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.OAuthService/RevokeOauthProjectToken", runtime.WithHTTPPathPattern("/api/v1/auth/{provider}/revoke/{project_id}")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_OAuthService_RevokeOauthProjectToken_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_OAuthService_RevokeOauthProjectToken_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_OAuthService_VerifyProviderTokenFrom_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.OAuthService/VerifyProviderTokenFrom", runtime.WithHTTPPathPattern("/api/v1/auth/verify/{provider}/{timestamp}")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_OAuthService_VerifyProviderTokenFrom_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_OAuthService_VerifyProviderTokenFrom_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - return nil -} - -// RegisterAuthServiceHandlerServer registers the http handlers for service AuthService to "mux". -// UnaryRPC :call AuthServiceServer directly. -// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. -// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterAuthServiceHandlerFromEndpoint instead. -func RegisterAuthServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server AuthServiceServer) error { - - mux.Handle("POST", pattern_AuthService_LogOut_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.AuthService/LogOut", runtime.WithHTTPPathPattern("/api/v1/auth/logout")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_AuthService_LogOut_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_AuthService_LogOut_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_AuthService_RevokeTokens_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.AuthService/RevokeTokens", runtime.WithHTTPPathPattern("/api/v1/auth/revoke")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_AuthService_RevokeTokens_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_AuthService_RevokeTokens_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_AuthService_RevokeUserToken_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.AuthService/RevokeUserToken", runtime.WithHTTPPathPattern("/api/v1/auth/revoke/{user_id}")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_AuthService_RevokeUserToken_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_AuthService_RevokeUserToken_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_AuthService_RefreshToken_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.AuthService/RefreshToken", runtime.WithHTTPPathPattern("/api/v1/auth/refresh")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_AuthService_RefreshToken_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_AuthService_RefreshToken_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_AuthService_Verify_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.AuthService/Verify", runtime.WithHTTPPathPattern("/api/v1/auth/verify")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_AuthService_Verify_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_AuthService_Verify_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - return nil -} - -// RegisterRepositoryServiceHandlerServer registers the http handlers for service RepositoryService to "mux". -// UnaryRPC :call RepositoryServiceServer directly. -// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. -// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterRepositoryServiceHandlerFromEndpoint instead. -func RegisterRepositoryServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server RepositoryServiceServer) error { - - mux.Handle("POST", pattern_RepositoryService_SyncRepositories_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.RepositoryService/SyncRepositories", runtime.WithHTTPPathPattern("/api/v1/repositories/provider/{provider}/sync")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_RepositoryService_SyncRepositories_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_RepositoryService_SyncRepositories_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_RepositoryService_RegisterRepository_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.RepositoryService/RegisterRepository", runtime.WithHTTPPathPattern("/api/v1/repository/provider/{provider}/register")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_RepositoryService_RegisterRepository_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_RepositoryService_RegisterRepository_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_RepositoryService_ListRepositories_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.RepositoryService/ListRepositories", runtime.WithHTTPPathPattern("/api/v1/repositories/provider/{provider}")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_RepositoryService_ListRepositories_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_RepositoryService_ListRepositories_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_RepositoryService_GetRepositoryById_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.RepositoryService/GetRepositoryById", runtime.WithHTTPPathPattern("/api/v1/repository/id/{repository_id}")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_RepositoryService_GetRepositoryById_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_RepositoryService_GetRepositoryById_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_RepositoryService_GetRepositoryByName_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.RepositoryService/GetRepositoryByName", runtime.WithHTTPPathPattern("/api/v1/repository/provider/{provider}/name/{name}")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_RepositoryService_GetRepositoryByName_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_RepositoryService_GetRepositoryByName_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - return nil -} - -// RegisterBranchProtectionServiceHandlerServer registers the http handlers for service BranchProtectionService to "mux". -// UnaryRPC :call BranchProtectionServiceServer directly. -// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. -// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterBranchProtectionServiceHandlerFromEndpoint instead. -func RegisterBranchProtectionServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server BranchProtectionServiceServer) error { - - mux.Handle("GET", pattern_BranchProtectionService_GetBranchProtection_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.BranchProtectionService/GetBranchProtection", runtime.WithHTTPPathPattern("/api/v1/branchprotection")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_BranchProtectionService_GetBranchProtection_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_BranchProtectionService_GetBranchProtection_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - return nil -} - -// RegisterOrganizationServiceHandlerServer registers the http handlers for service OrganizationService to "mux". -// UnaryRPC :call OrganizationServiceServer directly. -// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. -// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterOrganizationServiceHandlerFromEndpoint instead. -func RegisterOrganizationServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server OrganizationServiceServer) error { - - mux.Handle("POST", pattern_OrganizationService_CreateOrganization_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.OrganizationService/CreateOrganization", runtime.WithHTTPPathPattern("/api/v1/organization")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_OrganizationService_CreateOrganization_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_OrganizationService_CreateOrganization_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_OrganizationService_GetOrganizations_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.OrganizationService/GetOrganizations", runtime.WithHTTPPathPattern("/api/v1/organizations")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_OrganizationService_GetOrganizations_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_OrganizationService_GetOrganizations_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_OrganizationService_GetOrganization_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.OrganizationService/GetOrganization", runtime.WithHTTPPathPattern("/api/v1/organizations/{organization_id}")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_OrganizationService_GetOrganization_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_OrganizationService_GetOrganization_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_OrganizationService_GetOrganizationByName_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.OrganizationService/GetOrganizationByName", runtime.WithHTTPPathPattern("/api/v1/organizations/name/{name}")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_OrganizationService_GetOrganizationByName_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_OrganizationService_GetOrganizationByName_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("DELETE", pattern_OrganizationService_DeleteOrganization_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.OrganizationService/DeleteOrganization", runtime.WithHTTPPathPattern("/api/v1/organization/{id}")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_OrganizationService_DeleteOrganization_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_OrganizationService_DeleteOrganization_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - return nil -} - -// RegisterProjectServiceHandlerServer registers the http handlers for service ProjectService to "mux". -// UnaryRPC :call ProjectServiceServer directly. -// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. -// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterProjectServiceHandlerFromEndpoint instead. -func RegisterProjectServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server ProjectServiceServer) error { - - mux.Handle("POST", pattern_ProjectService_CreateProject_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.ProjectService/CreateProject", runtime.WithHTTPPathPattern("/api/v1/project")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_ProjectService_CreateProject_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_ProjectService_CreateProject_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_ProjectService_GetProjects_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.ProjectService/GetProjects", runtime.WithHTTPPathPattern("/api/v1/projects/{organization_id}")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_ProjectService_GetProjects_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_ProjectService_GetProjects_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_ProjectService_GetProjectByName_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.ProjectService/GetProjectByName", runtime.WithHTTPPathPattern("/api/v1/project/name/{name}")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_ProjectService_GetProjectByName_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_ProjectService_GetProjectByName_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_ProjectService_GetProjectById_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.ProjectService/GetProjectById", runtime.WithHTTPPathPattern("/api/v1/project/id/{project_id}")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_ProjectService_GetProjectById_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_ProjectService_GetProjectById_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("DELETE", pattern_ProjectService_DeleteProject_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.ProjectService/DeleteProject", runtime.WithHTTPPathPattern("/api/v1/project/{id}")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_ProjectService_DeleteProject_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_ProjectService_DeleteProject_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - return nil -} - -// RegisterRoleServiceHandlerServer registers the http handlers for service RoleService to "mux". -// UnaryRPC :call RoleServiceServer directly. -// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. -// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterRoleServiceHandlerFromEndpoint instead. -func RegisterRoleServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server RoleServiceServer) error { - - mux.Handle("POST", pattern_RoleService_CreateRoleByOrganization_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.RoleService/CreateRoleByOrganization", runtime.WithHTTPPathPattern("/api/v1/role/organization")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_RoleService_CreateRoleByOrganization_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_RoleService_CreateRoleByOrganization_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_RoleService_CreateRoleByProject_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.RoleService/CreateRoleByProject", runtime.WithHTTPPathPattern("/api/v1/role/project")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_RoleService_CreateRoleByProject_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_RoleService_CreateRoleByProject_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("DELETE", pattern_RoleService_DeleteRole_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.RoleService/DeleteRole", runtime.WithHTTPPathPattern("/api/v1/role/{id}")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_RoleService_DeleteRole_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_RoleService_DeleteRole_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_RoleService_GetRoles_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.RoleService/GetRoles", runtime.WithHTTPPathPattern("/api/v1/roles/{organization_id}")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_RoleService_GetRoles_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_RoleService_GetRoles_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_RoleService_GetRolesByProject_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.RoleService/GetRolesByProject", runtime.WithHTTPPathPattern("/api/v1/roles/project/{project_id}")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_RoleService_GetRolesByProject_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_RoleService_GetRolesByProject_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) +func local_request_KeyService_CreateKeyPair_0(ctx context.Context, marshaler runtime.Marshaler, server KeyServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateKeyPairRequest + 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) + } - mux.Handle("GET", pattern_RoleService_GetRoleById_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.RoleService/GetRoleById", runtime.WithHTTPPathPattern("/api/v1/role/{id}")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_RoleService_GetRoleById_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } + msg, err := server.CreateKeyPair(ctx, &protoReq) + return msg, metadata, err - forward_RoleService_GetRoleById_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) +} - }) +// RegisterHealthServiceHandlerServer registers the http handlers for service HealthService to "mux". +// UnaryRPC :call HealthServiceServer directly. +// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. +// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterHealthServiceHandlerFromEndpoint instead. +func RegisterHealthServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server HealthServiceServer) error { - mux.Handle("GET", pattern_RoleService_GetRoleByName_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_HealthService_CheckHealth_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream @@ -4234,12 +2035,12 @@ func RegisterRoleServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.RoleService/GetRoleByName", runtime.WithHTTPPathPattern("/api/v1/role/name/{name}")) + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.HealthService/CheckHealth", runtime.WithHTTPPathPattern("/api/v1/health")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_RoleService_GetRoleByName_0(annotatedContext, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_HealthService_CheckHealth_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { @@ -4247,20 +2048,20 @@ func RegisterRoleServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux return } - forward_RoleService_GetRoleByName_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_HealthService_CheckHealth_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) return nil } -// RegisterUserServiceHandlerServer registers the http handlers for service UserService to "mux". -// UnaryRPC :call UserServiceServer directly. +// RegisterArtifactServiceHandlerServer registers the http handlers for service ArtifactService to "mux". +// UnaryRPC :call ArtifactServiceServer directly. // StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. -// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterUserServiceHandlerFromEndpoint instead. -func RegisterUserServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server UserServiceServer) error { +// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterArtifactServiceHandlerFromEndpoint instead. +func RegisterArtifactServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server ArtifactServiceServer) error { - mux.Handle("POST", pattern_UserService_CreateUser_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_ArtifactService_ListArtifacts_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream @@ -4268,12 +2069,12 @@ func RegisterUserServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.UserService/CreateUser", runtime.WithHTTPPathPattern("/api/v1/user")) + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.ArtifactService/ListArtifacts", runtime.WithHTTPPathPattern("/api/v1/artifacts/{provider}")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_UserService_CreateUser_0(annotatedContext, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_ArtifactService_ListArtifacts_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { @@ -4281,11 +2082,11 @@ func RegisterUserServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux return } - forward_UserService_CreateUser_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_ArtifactService_ListArtifacts_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("DELETE", pattern_UserService_DeleteUser_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_ArtifactService_GetArtifactById_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream @@ -4293,12 +2094,12 @@ func RegisterUserServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.UserService/DeleteUser", runtime.WithHTTPPathPattern("/api/v1/user/{id}")) + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.ArtifactService/GetArtifactById", runtime.WithHTTPPathPattern("/api/v1/artifact/{id}")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_UserService_DeleteUser_0(annotatedContext, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_ArtifactService_GetArtifactById_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { @@ -4306,36 +2107,20 @@ func RegisterUserServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux return } - forward_UserService_DeleteUser_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_ArtifactService_GetArtifactById_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_UserService_GetUsers_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.UserService/GetUsers", runtime.WithHTTPPathPattern("/api/v1/users")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_UserService_GetUsers_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_UserService_GetUsers_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + return nil +} - }) +// RegisterOAuthServiceHandlerServer registers the http handlers for service OAuthService to "mux". +// UnaryRPC :call OAuthServiceServer directly. +// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. +// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterOAuthServiceHandlerFromEndpoint instead. +func RegisterOAuthServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server OAuthServiceServer) error { - mux.Handle("GET", pattern_UserService_GetUsersByOrganization_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_OAuthService_GetAuthorizationURL_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream @@ -4343,12 +2128,12 @@ func RegisterUserServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.UserService/GetUsersByOrganization", runtime.WithHTTPPathPattern("/api/v1/users/{organization_id}")) + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.OAuthService/GetAuthorizationURL", runtime.WithHTTPPathPattern("/api/v1/auth/url")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_UserService_GetUsersByOrganization_0(annotatedContext, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_OAuthService_GetAuthorizationURL_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { @@ -4356,11 +2141,11 @@ func RegisterUserServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux return } - forward_UserService_GetUsersByOrganization_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_OAuthService_GetAuthorizationURL_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_UserService_GetUsersByProject_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_OAuthService_ExchangeCodeForTokenCLI_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream @@ -4368,12 +2153,12 @@ func RegisterUserServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.UserService/GetUsersByProject", runtime.WithHTTPPathPattern("/api/v1/users/{project_id}")) + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.OAuthService/ExchangeCodeForTokenCLI", runtime.WithHTTPPathPattern("/api/v1/auth/callback/{provider}/cli")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_UserService_GetUsersByProject_0(annotatedContext, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_OAuthService_ExchangeCodeForTokenCLI_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { @@ -4381,11 +2166,11 @@ func RegisterUserServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux return } - forward_UserService_GetUsersByProject_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_OAuthService_ExchangeCodeForTokenCLI_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_UserService_GetUserById_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_OAuthService_ExchangeCodeForTokenWEB_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream @@ -4393,12 +2178,12 @@ func RegisterUserServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.UserService/GetUserById", runtime.WithHTTPPathPattern("/api/v1/user/{user_id}")) + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.OAuthService/ExchangeCodeForTokenWEB", runtime.WithHTTPPathPattern("/api/v1/auth/callback/{provider}/web")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_UserService_GetUserById_0(annotatedContext, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_OAuthService_ExchangeCodeForTokenWEB_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { @@ -4406,11 +2191,11 @@ func RegisterUserServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux return } - forward_UserService_GetUserById_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_OAuthService_ExchangeCodeForTokenWEB_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_UserService_GetUserBySubject_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("POST", pattern_OAuthService_StoreProviderToken_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream @@ -4418,12 +2203,12 @@ func RegisterUserServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.UserService/GetUserBySubject", runtime.WithHTTPPathPattern("/api/v1/user/subject/{subject}")) + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.OAuthService/StoreProviderToken", runtime.WithHTTPPathPattern("/api/v1/auth/{provider}/token")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_UserService_GetUserBySubject_0(annotatedContext, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_OAuthService_StoreProviderToken_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { @@ -4431,11 +2216,11 @@ func RegisterUserServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux return } - forward_UserService_GetUserBySubject_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_OAuthService_StoreProviderToken_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_UserService_GetUser_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("POST", pattern_OAuthService_RevokeOauthTokens_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream @@ -4443,12 +2228,12 @@ func RegisterUserServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.UserService/GetUser", runtime.WithHTTPPathPattern("/api/v1/user")) + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.OAuthService/RevokeOauthTokens", runtime.WithHTTPPathPattern("/api/v1/auth/revoke-all")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_UserService_GetUser_0(annotatedContext, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_OAuthService_RevokeOauthTokens_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { @@ -4456,20 +2241,11 @@ func RegisterUserServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux return } - forward_UserService_GetUser_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_OAuthService_RevokeOauthTokens_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - return nil -} - -// RegisterProfileServiceHandlerServer registers the http handlers for service ProfileService to "mux". -// UnaryRPC :call ProfileServiceServer directly. -// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. -// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterProfileServiceHandlerFromEndpoint instead. -func RegisterProfileServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server ProfileServiceServer) error { - - mux.Handle("POST", pattern_ProfileService_CreateProfile_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("POST", pattern_OAuthService_RevokeOauthProjectToken_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream @@ -4477,12 +2253,12 @@ func RegisterProfileServiceHandlerServer(ctx context.Context, mux *runtime.Serve inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.ProfileService/CreateProfile", runtime.WithHTTPPathPattern("/api/v1/profile")) + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.OAuthService/RevokeOauthProjectToken", runtime.WithHTTPPathPattern("/api/v1/auth/{provider}/revoke/{project_id}")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_ProfileService_CreateProfile_0(annotatedContext, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_OAuthService_RevokeOauthProjectToken_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { @@ -4490,11 +2266,11 @@ func RegisterProfileServiceHandlerServer(ctx context.Context, mux *runtime.Serve return } - forward_ProfileService_CreateProfile_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_OAuthService_RevokeOauthProjectToken_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("DELETE", pattern_ProfileService_DeleteProfile_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_OAuthService_VerifyProviderTokenFrom_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream @@ -4502,12 +2278,12 @@ func RegisterProfileServiceHandlerServer(ctx context.Context, mux *runtime.Serve inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.ProfileService/DeleteProfile", runtime.WithHTTPPathPattern("/api/v1/profile/{id}")) + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.OAuthService/VerifyProviderTokenFrom", runtime.WithHTTPPathPattern("/api/v1/auth/verify/{provider}/{timestamp}")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_ProfileService_DeleteProfile_0(annotatedContext, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_OAuthService_VerifyProviderTokenFrom_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { @@ -4515,36 +2291,20 @@ func RegisterProfileServiceHandlerServer(ctx context.Context, mux *runtime.Serve return } - forward_ProfileService_DeleteProfile_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_OAuthService_VerifyProviderTokenFrom_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_ProfileService_ListProfiles_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.ProfileService/ListProfiles", runtime.WithHTTPPathPattern("/api/v1/profiles")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_ProfileService_ListProfiles_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_ProfileService_ListProfiles_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + return nil +} - }) +// RegisterAuthServiceHandlerServer registers the http handlers for service AuthService to "mux". +// UnaryRPC :call AuthServiceServer directly. +// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. +// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterAuthServiceHandlerFromEndpoint instead. +func RegisterAuthServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server AuthServiceServer) error { - mux.Handle("GET", pattern_ProfileService_GetProfileById_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("POST", pattern_AuthService_LogOut_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream @@ -4552,12 +2312,12 @@ func RegisterProfileServiceHandlerServer(ctx context.Context, mux *runtime.Serve inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.ProfileService/GetProfileById", runtime.WithHTTPPathPattern("/api/v1/profile/{id}")) + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.AuthService/LogOut", runtime.WithHTTPPathPattern("/api/v1/auth/logout")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_ProfileService_GetProfileById_0(annotatedContext, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_AuthService_LogOut_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { @@ -4565,11 +2325,11 @@ func RegisterProfileServiceHandlerServer(ctx context.Context, mux *runtime.Serve return } - forward_ProfileService_GetProfileById_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AuthService_LogOut_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_ProfileService_GetProfileStatusByName_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("POST", pattern_AuthService_RevokeTokens_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream @@ -4577,12 +2337,12 @@ func RegisterProfileServiceHandlerServer(ctx context.Context, mux *runtime.Serve inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.ProfileService/GetProfileStatusByName", runtime.WithHTTPPathPattern("/api/v1/profile/name/{name}/status")) + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.AuthService/RevokeTokens", runtime.WithHTTPPathPattern("/api/v1/auth/revoke")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_ProfileService_GetProfileStatusByName_0(annotatedContext, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_AuthService_RevokeTokens_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { @@ -4590,11 +2350,11 @@ func RegisterProfileServiceHandlerServer(ctx context.Context, mux *runtime.Serve return } - forward_ProfileService_GetProfileStatusByName_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AuthService_RevokeTokens_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_ProfileService_GetProfileStatusByProject_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("POST", pattern_AuthService_RevokeUserToken_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream @@ -4602,12 +2362,12 @@ func RegisterProfileServiceHandlerServer(ctx context.Context, mux *runtime.Serve inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.ProfileService/GetProfileStatusByProject", runtime.WithHTTPPathPattern("/api/v1/profile_status")) + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.AuthService/RevokeUserToken", runtime.WithHTTPPathPattern("/api/v1/auth/revoke/{user_id}")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_ProfileService_GetProfileStatusByProject_0(annotatedContext, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_AuthService_RevokeUserToken_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { @@ -4615,11 +2375,11 @@ func RegisterProfileServiceHandlerServer(ctx context.Context, mux *runtime.Serve return } - forward_ProfileService_GetProfileStatusByProject_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AuthService_RevokeUserToken_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_ProfileService_ListRuleTypes_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("POST", pattern_AuthService_RefreshToken_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream @@ -4627,12 +2387,12 @@ func RegisterProfileServiceHandlerServer(ctx context.Context, mux *runtime.Serve inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.ProfileService/ListRuleTypes", runtime.WithHTTPPathPattern("/api/v1/rule_types")) + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.AuthService/RefreshToken", runtime.WithHTTPPathPattern("/api/v1/auth/refresh")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_ProfileService_ListRuleTypes_0(annotatedContext, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_AuthService_RefreshToken_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { @@ -4640,11 +2400,11 @@ func RegisterProfileServiceHandlerServer(ctx context.Context, mux *runtime.Serve return } - forward_ProfileService_ListRuleTypes_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AuthService_RefreshToken_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_ProfileService_GetRuleTypeByName_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_AuthService_Verify_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream @@ -4652,12 +2412,12 @@ func RegisterProfileServiceHandlerServer(ctx context.Context, mux *runtime.Serve inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.ProfileService/GetRuleTypeByName", runtime.WithHTTPPathPattern("/api/v1/rule_type/name/{name}")) + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.AuthService/Verify", runtime.WithHTTPPathPattern("/api/v1/auth/verify")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_ProfileService_GetRuleTypeByName_0(annotatedContext, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_AuthService_Verify_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { @@ -4665,36 +2425,20 @@ func RegisterProfileServiceHandlerServer(ctx context.Context, mux *runtime.Serve return } - forward_ProfileService_GetRuleTypeByName_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AuthService_Verify_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_ProfileService_GetRuleTypeById_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.ProfileService/GetRuleTypeById", runtime.WithHTTPPathPattern("/api/v1/rule_type/{id}")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_ProfileService_GetRuleTypeById_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_ProfileService_GetRuleTypeById_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + return nil +} - }) +// RegisterRepositoryServiceHandlerServer registers the http handlers for service RepositoryService to "mux". +// UnaryRPC :call RepositoryServiceServer directly. +// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. +// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterRepositoryServiceHandlerFromEndpoint instead. +func RegisterRepositoryServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server RepositoryServiceServer) error { - mux.Handle("POST", pattern_ProfileService_CreateRuleType_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("POST", pattern_RepositoryService_SyncRepositories_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream @@ -4702,12 +2446,12 @@ func RegisterProfileServiceHandlerServer(ctx context.Context, mux *runtime.Serve inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.ProfileService/CreateRuleType", runtime.WithHTTPPathPattern("/api/v1/rule_type")) + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.RepositoryService/SyncRepositories", runtime.WithHTTPPathPattern("/api/v1/repositories/provider/{provider}/sync")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_ProfileService_CreateRuleType_0(annotatedContext, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_RepositoryService_SyncRepositories_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { @@ -4715,11 +2459,11 @@ func RegisterProfileServiceHandlerServer(ctx context.Context, mux *runtime.Serve return } - forward_ProfileService_CreateRuleType_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_RepositoryService_SyncRepositories_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("PUT", pattern_ProfileService_UpdateRuleType_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("POST", pattern_RepositoryService_RegisterRepository_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream @@ -4727,12 +2471,12 @@ func RegisterProfileServiceHandlerServer(ctx context.Context, mux *runtime.Serve inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.ProfileService/UpdateRuleType", runtime.WithHTTPPathPattern("/api/v1/rule_type")) + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.RepositoryService/RegisterRepository", runtime.WithHTTPPathPattern("/api/v1/repository/provider/{provider}/register")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_ProfileService_UpdateRuleType_0(annotatedContext, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_RepositoryService_RegisterRepository_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { @@ -4740,11 +2484,11 @@ func RegisterProfileServiceHandlerServer(ctx context.Context, mux *runtime.Serve return } - forward_ProfileService_UpdateRuleType_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_RepositoryService_RegisterRepository_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("DELETE", pattern_ProfileService_DeleteRuleType_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_RepositoryService_ListRepositories_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream @@ -4752,12 +2496,12 @@ func RegisterProfileServiceHandlerServer(ctx context.Context, mux *runtime.Serve inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.ProfileService/DeleteRuleType", runtime.WithHTTPPathPattern("/api/v1/rule_type/{id}")) + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.RepositoryService/ListRepositories", runtime.WithHTTPPathPattern("/api/v1/repositories/provider/{provider}")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_ProfileService_DeleteRuleType_0(annotatedContext, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_RepositoryService_ListRepositories_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { @@ -4765,20 +2509,11 @@ func RegisterProfileServiceHandlerServer(ctx context.Context, mux *runtime.Serve return } - forward_ProfileService_DeleteRuleType_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_RepositoryService_ListRepositories_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - return nil -} - -// RegisterKeyServiceHandlerServer registers the http handlers for service KeyService to "mux". -// UnaryRPC :call KeyServiceServer directly. -// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. -// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterKeyServiceHandlerFromEndpoint instead. -func RegisterKeyServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server KeyServiceServer) error { - - mux.Handle("GET", pattern_KeyService_GetPublicKey_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_RepositoryService_GetRepositoryById_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream @@ -4786,12 +2521,12 @@ func RegisterKeyServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.KeyService/GetPublicKey", runtime.WithHTTPPathPattern("/api/v1/key")) + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.RepositoryService/GetRepositoryById", runtime.WithHTTPPathPattern("/api/v1/repository/id/{repository_id}")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_KeyService_GetPublicKey_0(annotatedContext, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_RepositoryService_GetRepositoryById_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { @@ -4799,11 +2534,11 @@ func RegisterKeyServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, return } - forward_KeyService_GetPublicKey_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_RepositoryService_GetRepositoryById_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("POST", pattern_KeyService_CreateKeyPair_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_RepositoryService_GetRepositoryByName_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream @@ -4811,12 +2546,12 @@ func RegisterKeyServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.KeyService/CreateKeyPair", runtime.WithHTTPPathPattern("/api/v1/key")) + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.RepositoryService/GetRepositoryByName", runtime.WithHTTPPathPattern("/api/v1/repository/provider/{provider}/name/{name}")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_KeyService_CreateKeyPair_0(annotatedContext, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_RepositoryService_GetRepositoryByName_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { @@ -4824,728 +2559,556 @@ func RegisterKeyServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, return } - forward_KeyService_CreateKeyPair_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_RepositoryService_GetRepositoryByName_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) return nil } -// RegisterHealthServiceHandlerFromEndpoint is same as RegisterHealthServiceHandler but -// automatically dials to "endpoint" and closes the connection when "ctx" gets done. -func RegisterHealthServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { - conn, err := grpc.DialContext(ctx, endpoint, opts...) - if err != nil { - return err - } - defer func() { - if err != nil { - if cerr := conn.Close(); cerr != nil { - grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) - } - return - } - go func() { - <-ctx.Done() - if cerr := conn.Close(); cerr != nil { - grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) - } - }() - }() - - return RegisterHealthServiceHandler(ctx, mux, conn) -} - -// RegisterHealthServiceHandler registers the http handlers for service HealthService to "mux". -// The handlers forward requests to the grpc endpoint over "conn". -func RegisterHealthServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { - return RegisterHealthServiceHandlerClient(ctx, mux, NewHealthServiceClient(conn)) -} - -// RegisterHealthServiceHandlerClient registers the http handlers for service HealthService -// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "HealthServiceClient". -// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "HealthServiceClient" -// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in -// "HealthServiceClient" to call the correct interceptors. -func RegisterHealthServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client HealthServiceClient) error { +// RegisterBranchProtectionServiceHandlerServer registers the http handlers for service BranchProtectionService to "mux". +// UnaryRPC :call BranchProtectionServiceServer directly. +// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. +// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterBranchProtectionServiceHandlerFromEndpoint instead. +func RegisterBranchProtectionServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server BranchProtectionServiceServer) error { - mux.Handle("GET", pattern_HealthService_CheckHealth_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_BranchProtectionService_GetBranchProtection_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.HealthService/CheckHealth", runtime.WithHTTPPathPattern("/api/v1/health")) + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.BranchProtectionService/GetBranchProtection", runtime.WithHTTPPathPattern("/api/v1/branchprotection")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_HealthService_CheckHealth_0(annotatedContext, inboundMarshaler, client, req, pathParams) + resp, md, err := local_request_BranchProtectionService_GetBranchProtection_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_HealthService_CheckHealth_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_BranchProtectionService_GetBranchProtection_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) return nil } -var ( - pattern_HealthService_CheckHealth_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "health"}, "")) -) - -var ( - forward_HealthService_CheckHealth_0 = runtime.ForwardResponseMessage -) - -// RegisterArtifactServiceHandlerFromEndpoint is same as RegisterArtifactServiceHandler but -// automatically dials to "endpoint" and closes the connection when "ctx" gets done. -func RegisterArtifactServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { - conn, err := grpc.DialContext(ctx, endpoint, opts...) - if err != nil { - return err - } - defer func() { - if err != nil { - if cerr := conn.Close(); cerr != nil { - grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) - } - return - } - go func() { - <-ctx.Done() - if cerr := conn.Close(); cerr != nil { - grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) - } - }() - }() - - return RegisterArtifactServiceHandler(ctx, mux, conn) -} - -// RegisterArtifactServiceHandler registers the http handlers for service ArtifactService to "mux". -// The handlers forward requests to the grpc endpoint over "conn". -func RegisterArtifactServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { - return RegisterArtifactServiceHandlerClient(ctx, mux, NewArtifactServiceClient(conn)) -} - -// RegisterArtifactServiceHandlerClient registers the http handlers for service ArtifactService -// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "ArtifactServiceClient". -// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "ArtifactServiceClient" -// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in -// "ArtifactServiceClient" to call the correct interceptors. -func RegisterArtifactServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ArtifactServiceClient) error { +// RegisterUserServiceHandlerServer registers the http handlers for service UserService to "mux". +// UnaryRPC :call UserServiceServer directly. +// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. +// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterUserServiceHandlerFromEndpoint instead. +func RegisterUserServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server UserServiceServer) error { - mux.Handle("GET", pattern_ArtifactService_ListArtifacts_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("POST", pattern_UserService_CreateUser_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.ArtifactService/ListArtifacts", runtime.WithHTTPPathPattern("/api/v1/artifacts/{provider}")) + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.UserService/CreateUser", runtime.WithHTTPPathPattern("/api/v1/user")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_ArtifactService_ListArtifacts_0(annotatedContext, inboundMarshaler, client, req, pathParams) + resp, md, err := local_request_UserService_CreateUser_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_ArtifactService_ListArtifacts_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_UserService_CreateUser_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_ArtifactService_GetArtifactById_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("DELETE", pattern_UserService_DeleteUser_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.ArtifactService/GetArtifactById", runtime.WithHTTPPathPattern("/api/v1/artifact/{id}")) + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.UserService/DeleteUser", runtime.WithHTTPPathPattern("/api/v1/user/{id}")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_ArtifactService_GetArtifactById_0(annotatedContext, inboundMarshaler, client, req, pathParams) + resp, md, err := local_request_UserService_DeleteUser_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_ArtifactService_GetArtifactById_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_UserService_DeleteUser_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - return nil -} - -var ( - pattern_ArtifactService_ListArtifacts_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "artifacts", "provider"}, "")) - - pattern_ArtifactService_GetArtifactById_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "artifact", "id"}, "")) -) - -var ( - forward_ArtifactService_ListArtifacts_0 = runtime.ForwardResponseMessage - - forward_ArtifactService_GetArtifactById_0 = runtime.ForwardResponseMessage -) - -// RegisterOAuthServiceHandlerFromEndpoint is same as RegisterOAuthServiceHandler but -// automatically dials to "endpoint" and closes the connection when "ctx" gets done. -func RegisterOAuthServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { - conn, err := grpc.DialContext(ctx, endpoint, opts...) - if err != nil { - return err - } - defer func() { - if err != nil { - if cerr := conn.Close(); cerr != nil { - grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) - } - return - } - go func() { - <-ctx.Done() - if cerr := conn.Close(); cerr != nil { - grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) - } - }() - }() - - return RegisterOAuthServiceHandler(ctx, mux, conn) -} - -// RegisterOAuthServiceHandler registers the http handlers for service OAuthService to "mux". -// The handlers forward requests to the grpc endpoint over "conn". -func RegisterOAuthServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { - return RegisterOAuthServiceHandlerClient(ctx, mux, NewOAuthServiceClient(conn)) -} - -// RegisterOAuthServiceHandlerClient registers the http handlers for service OAuthService -// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "OAuthServiceClient". -// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "OAuthServiceClient" -// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in -// "OAuthServiceClient" to call the correct interceptors. -func RegisterOAuthServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client OAuthServiceClient) error { - - mux.Handle("GET", pattern_OAuthService_GetAuthorizationURL_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_UserService_GetUser_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.OAuthService/GetAuthorizationURL", runtime.WithHTTPPathPattern("/api/v1/auth/url")) + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.UserService/GetUser", runtime.WithHTTPPathPattern("/api/v1/user")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_OAuthService_GetAuthorizationURL_0(annotatedContext, inboundMarshaler, client, req, pathParams) + resp, md, err := local_request_UserService_GetUser_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_OAuthService_GetAuthorizationURL_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_UserService_GetUser_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_OAuthService_ExchangeCodeForTokenCLI_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + return nil +} + +// RegisterProfileServiceHandlerServer registers the http handlers for service ProfileService to "mux". +// UnaryRPC :call ProfileServiceServer directly. +// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. +// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterProfileServiceHandlerFromEndpoint instead. +func RegisterProfileServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server ProfileServiceServer) error { + + mux.Handle("POST", pattern_ProfileService_CreateProfile_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.OAuthService/ExchangeCodeForTokenCLI", runtime.WithHTTPPathPattern("/api/v1/auth/callback/{provider}/cli")) + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.ProfileService/CreateProfile", runtime.WithHTTPPathPattern("/api/v1/profile")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_OAuthService_ExchangeCodeForTokenCLI_0(annotatedContext, inboundMarshaler, client, req, pathParams) + resp, md, err := local_request_ProfileService_CreateProfile_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_OAuthService_ExchangeCodeForTokenCLI_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_ProfileService_CreateProfile_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_OAuthService_ExchangeCodeForTokenWEB_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("DELETE", pattern_ProfileService_DeleteProfile_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.OAuthService/ExchangeCodeForTokenWEB", runtime.WithHTTPPathPattern("/api/v1/auth/callback/{provider}/web")) + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.ProfileService/DeleteProfile", runtime.WithHTTPPathPattern("/api/v1/profile/{id}")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_OAuthService_ExchangeCodeForTokenWEB_0(annotatedContext, inboundMarshaler, client, req, pathParams) + resp, md, err := local_request_ProfileService_DeleteProfile_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_OAuthService_ExchangeCodeForTokenWEB_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_ProfileService_DeleteProfile_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("POST", pattern_OAuthService_StoreProviderToken_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_ProfileService_ListProfiles_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.OAuthService/StoreProviderToken", runtime.WithHTTPPathPattern("/api/v1/auth/{provider}/token")) + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.ProfileService/ListProfiles", runtime.WithHTTPPathPattern("/api/v1/profiles")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_OAuthService_StoreProviderToken_0(annotatedContext, inboundMarshaler, client, req, pathParams) + resp, md, err := local_request_ProfileService_ListProfiles_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_OAuthService_StoreProviderToken_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_ProfileService_ListProfiles_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("POST", pattern_OAuthService_RevokeOauthTokens_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_ProfileService_GetProfileById_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.OAuthService/RevokeOauthTokens", runtime.WithHTTPPathPattern("/api/v1/auth/revoke-all")) + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.ProfileService/GetProfileById", runtime.WithHTTPPathPattern("/api/v1/profile/{id}")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_OAuthService_RevokeOauthTokens_0(annotatedContext, inboundMarshaler, client, req, pathParams) + resp, md, err := local_request_ProfileService_GetProfileById_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_OAuthService_RevokeOauthTokens_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_ProfileService_GetProfileById_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("POST", pattern_OAuthService_RevokeOauthProjectToken_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_ProfileService_GetProfileStatusByName_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.OAuthService/RevokeOauthProjectToken", runtime.WithHTTPPathPattern("/api/v1/auth/{provider}/revoke/{project_id}")) + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.ProfileService/GetProfileStatusByName", runtime.WithHTTPPathPattern("/api/v1/profile/name/{name}/status")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_OAuthService_RevokeOauthProjectToken_0(annotatedContext, inboundMarshaler, client, req, pathParams) + resp, md, err := local_request_ProfileService_GetProfileStatusByName_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_OAuthService_RevokeOauthProjectToken_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_ProfileService_GetProfileStatusByName_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_OAuthService_VerifyProviderTokenFrom_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_ProfileService_GetProfileStatusByProject_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.OAuthService/VerifyProviderTokenFrom", runtime.WithHTTPPathPattern("/api/v1/auth/verify/{provider}/{timestamp}")) + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.ProfileService/GetProfileStatusByProject", runtime.WithHTTPPathPattern("/api/v1/profile_status")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_OAuthService_VerifyProviderTokenFrom_0(annotatedContext, inboundMarshaler, client, req, pathParams) + resp, md, err := local_request_ProfileService_GetProfileStatusByProject_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_OAuthService_VerifyProviderTokenFrom_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_ProfileService_GetProfileStatusByProject_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - return nil -} - -var ( - pattern_OAuthService_GetAuthorizationURL_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "auth", "url"}, "")) - - pattern_OAuthService_ExchangeCodeForTokenCLI_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 2, 5}, []string{"api", "v1", "auth", "callback", "provider", "cli"}, "")) - - pattern_OAuthService_ExchangeCodeForTokenWEB_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 2, 5}, []string{"api", "v1", "auth", "callback", "provider", "web"}, "")) - - pattern_OAuthService_StoreProviderToken_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4}, []string{"api", "v1", "auth", "provider", "token"}, "")) - - pattern_OAuthService_RevokeOauthTokens_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "auth", "revoke-all"}, "")) - - pattern_OAuthService_RevokeOauthProjectToken_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4, 1, 0, 4, 1, 5, 5}, []string{"api", "v1", "auth", "provider", "revoke", "project_id"}, "")) - - pattern_OAuthService_VerifyProviderTokenFrom_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5}, []string{"api", "v1", "auth", "verify", "provider", "timestamp"}, "")) -) - -var ( - forward_OAuthService_GetAuthorizationURL_0 = runtime.ForwardResponseMessage - - forward_OAuthService_ExchangeCodeForTokenCLI_0 = runtime.ForwardResponseMessage - - forward_OAuthService_ExchangeCodeForTokenWEB_0 = runtime.ForwardResponseMessage - - forward_OAuthService_StoreProviderToken_0 = runtime.ForwardResponseMessage - - forward_OAuthService_RevokeOauthTokens_0 = runtime.ForwardResponseMessage - - forward_OAuthService_RevokeOauthProjectToken_0 = runtime.ForwardResponseMessage - - forward_OAuthService_VerifyProviderTokenFrom_0 = runtime.ForwardResponseMessage -) - -// RegisterAuthServiceHandlerFromEndpoint is same as RegisterAuthServiceHandler but -// automatically dials to "endpoint" and closes the connection when "ctx" gets done. -func RegisterAuthServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { - conn, err := grpc.DialContext(ctx, endpoint, opts...) - if err != nil { - return err - } - defer func() { - if err != nil { - if cerr := conn.Close(); cerr != nil { - grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) - } - return - } - go func() { - <-ctx.Done() - if cerr := conn.Close(); cerr != nil { - grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) - } - }() - }() - - return RegisterAuthServiceHandler(ctx, mux, conn) -} - -// RegisterAuthServiceHandler registers the http handlers for service AuthService to "mux". -// The handlers forward requests to the grpc endpoint over "conn". -func RegisterAuthServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { - return RegisterAuthServiceHandlerClient(ctx, mux, NewAuthServiceClient(conn)) -} - -// RegisterAuthServiceHandlerClient registers the http handlers for service AuthService -// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "AuthServiceClient". -// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "AuthServiceClient" -// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in -// "AuthServiceClient" to call the correct interceptors. -func RegisterAuthServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client AuthServiceClient) error { - - mux.Handle("POST", pattern_AuthService_LogOut_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_ProfileService_ListRuleTypes_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.AuthService/LogOut", runtime.WithHTTPPathPattern("/api/v1/auth/logout")) + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.ProfileService/ListRuleTypes", runtime.WithHTTPPathPattern("/api/v1/rule_types")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AuthService_LogOut_0(annotatedContext, inboundMarshaler, client, req, pathParams) + resp, md, err := local_request_ProfileService_ListRuleTypes_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_AuthService_LogOut_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_ProfileService_ListRuleTypes_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("POST", pattern_AuthService_RevokeTokens_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_ProfileService_GetRuleTypeByName_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.AuthService/RevokeTokens", runtime.WithHTTPPathPattern("/api/v1/auth/revoke")) + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.ProfileService/GetRuleTypeByName", runtime.WithHTTPPathPattern("/api/v1/rule_type/name/{name}")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AuthService_RevokeTokens_0(annotatedContext, inboundMarshaler, client, req, pathParams) + resp, md, err := local_request_ProfileService_GetRuleTypeByName_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_AuthService_RevokeTokens_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_ProfileService_GetRuleTypeByName_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("POST", pattern_AuthService_RevokeUserToken_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_ProfileService_GetRuleTypeById_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.AuthService/RevokeUserToken", runtime.WithHTTPPathPattern("/api/v1/auth/revoke/{user_id}")) + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.ProfileService/GetRuleTypeById", runtime.WithHTTPPathPattern("/api/v1/rule_type/{id}")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AuthService_RevokeUserToken_0(annotatedContext, inboundMarshaler, client, req, pathParams) + resp, md, err := local_request_ProfileService_GetRuleTypeById_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_AuthService_RevokeUserToken_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_ProfileService_GetRuleTypeById_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("POST", pattern_AuthService_RefreshToken_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("POST", pattern_ProfileService_CreateRuleType_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.AuthService/RefreshToken", runtime.WithHTTPPathPattern("/api/v1/auth/refresh")) + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.ProfileService/CreateRuleType", runtime.WithHTTPPathPattern("/api/v1/rule_type")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AuthService_RefreshToken_0(annotatedContext, inboundMarshaler, client, req, pathParams) + resp, md, err := local_request_ProfileService_CreateRuleType_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_AuthService_RefreshToken_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_ProfileService_CreateRuleType_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_AuthService_Verify_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("PUT", pattern_ProfileService_UpdateRuleType_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.AuthService/Verify", runtime.WithHTTPPathPattern("/api/v1/auth/verify")) + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.ProfileService/UpdateRuleType", runtime.WithHTTPPathPattern("/api/v1/rule_type")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AuthService_Verify_0(annotatedContext, inboundMarshaler, client, req, pathParams) + resp, md, err := local_request_ProfileService_UpdateRuleType_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_AuthService_Verify_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_ProfileService_UpdateRuleType_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - return nil -} - -var ( - pattern_AuthService_LogOut_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "auth", "logout"}, "")) - - pattern_AuthService_RevokeTokens_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "auth", "revoke"}, "")) - - pattern_AuthService_RevokeUserToken_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"api", "v1", "auth", "revoke", "user_id"}, "")) - - pattern_AuthService_RefreshToken_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "auth", "refresh"}, "")) - - pattern_AuthService_Verify_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "auth", "verify"}, "")) -) - -var ( - forward_AuthService_LogOut_0 = runtime.ForwardResponseMessage - - forward_AuthService_RevokeTokens_0 = runtime.ForwardResponseMessage - - forward_AuthService_RevokeUserToken_0 = runtime.ForwardResponseMessage - - forward_AuthService_RefreshToken_0 = runtime.ForwardResponseMessage - - forward_AuthService_Verify_0 = runtime.ForwardResponseMessage -) - -// RegisterRepositoryServiceHandlerFromEndpoint is same as RegisterRepositoryServiceHandler but -// automatically dials to "endpoint" and closes the connection when "ctx" gets done. -func RegisterRepositoryServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { - conn, err := grpc.DialContext(ctx, endpoint, opts...) - if err != nil { - return err - } - defer func() { - if err != nil { - if cerr := conn.Close(); cerr != nil { - grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) - } - return - } - go func() { - <-ctx.Done() - if cerr := conn.Close(); cerr != nil { - grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) - } - }() - }() - - return RegisterRepositoryServiceHandler(ctx, mux, conn) -} - -// RegisterRepositoryServiceHandler registers the http handlers for service RepositoryService to "mux". -// The handlers forward requests to the grpc endpoint over "conn". -func RegisterRepositoryServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { - return RegisterRepositoryServiceHandlerClient(ctx, mux, NewRepositoryServiceClient(conn)) -} - -// RegisterRepositoryServiceHandlerClient registers the http handlers for service RepositoryService -// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "RepositoryServiceClient". -// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "RepositoryServiceClient" -// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in -// "RepositoryServiceClient" to call the correct interceptors. -func RegisterRepositoryServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client RepositoryServiceClient) error { - - mux.Handle("POST", pattern_RepositoryService_SyncRepositories_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("DELETE", pattern_ProfileService_DeleteRuleType_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.RepositoryService/SyncRepositories", runtime.WithHTTPPathPattern("/api/v1/repositories/provider/{provider}/sync")) + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.ProfileService/DeleteRuleType", runtime.WithHTTPPathPattern("/api/v1/rule_type/{id}")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_RepositoryService_SyncRepositories_0(annotatedContext, inboundMarshaler, client, req, pathParams) + resp, md, err := local_request_ProfileService_DeleteRuleType_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_RepositoryService_SyncRepositories_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_ProfileService_DeleteRuleType_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("POST", pattern_RepositoryService_RegisterRepository_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + return nil +} + +// RegisterKeyServiceHandlerServer registers the http handlers for service KeyService to "mux". +// UnaryRPC :call KeyServiceServer directly. +// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. +// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterKeyServiceHandlerFromEndpoint instead. +func RegisterKeyServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server KeyServiceServer) error { + + mux.Handle("GET", pattern_KeyService_GetPublicKey_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.RepositoryService/RegisterRepository", runtime.WithHTTPPathPattern("/api/v1/repository/provider/{provider}/register")) + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.KeyService/GetPublicKey", runtime.WithHTTPPathPattern("/api/v1/key")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_RepositoryService_RegisterRepository_0(annotatedContext, inboundMarshaler, client, req, pathParams) + resp, md, err := local_request_KeyService_GetPublicKey_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_RepositoryService_RegisterRepository_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_KeyService_GetPublicKey_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_RepositoryService_ListRepositories_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("POST", pattern_KeyService_CreateKeyPair_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.RepositoryService/ListRepositories", runtime.WithHTTPPathPattern("/api/v1/repositories/provider/{provider}")) + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mediator.v1.KeyService/CreateKeyPair", runtime.WithHTTPPathPattern("/api/v1/key")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_RepositoryService_ListRepositories_0(annotatedContext, inboundMarshaler, client, req, pathParams) + resp, md, err := local_request_KeyService_CreateKeyPair_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_RepositoryService_ListRepositories_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_KeyService_CreateKeyPair_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_RepositoryService_GetRepositoryById_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.RepositoryService/GetRepositoryById", runtime.WithHTTPPathPattern("/api/v1/repository/id/{repository_id}")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_RepositoryService_GetRepositoryById_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + return nil +} + +// RegisterHealthServiceHandlerFromEndpoint is same as RegisterHealthServiceHandler but +// automatically dials to "endpoint" and closes the connection when "ctx" gets done. +func RegisterHealthServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { + conn, err := grpc.DialContext(ctx, endpoint, opts...) + if err != nil { + return err + } + defer func() { if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } return } + go func() { + <-ctx.Done() + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + }() + }() - forward_RepositoryService_GetRepositoryById_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + return RegisterHealthServiceHandler(ctx, mux, conn) +} - }) +// RegisterHealthServiceHandler registers the http handlers for service HealthService to "mux". +// The handlers forward requests to the grpc endpoint over "conn". +func RegisterHealthServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { + return RegisterHealthServiceHandlerClient(ctx, mux, NewHealthServiceClient(conn)) +} - mux.Handle("GET", pattern_RepositoryService_GetRepositoryByName_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { +// RegisterHealthServiceHandlerClient registers the http handlers for service HealthService +// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "HealthServiceClient". +// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "HealthServiceClient" +// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in +// "HealthServiceClient" to call the correct interceptors. +func RegisterHealthServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client HealthServiceClient) error { + + mux.Handle("GET", pattern_HealthService_CheckHealth_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) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.RepositoryService/GetRepositoryByName", runtime.WithHTTPPathPattern("/api/v1/repository/provider/{provider}/name/{name}")) + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.HealthService/CheckHealth", runtime.WithHTTPPathPattern("/api/v1/health")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_RepositoryService_GetRepositoryByName_0(annotatedContext, inboundMarshaler, client, req, pathParams) + resp, md, err := request_HealthService_CheckHealth_0(annotatedContext, inboundMarshaler, client, req, pathParams) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_RepositoryService_GetRepositoryByName_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_HealthService_CheckHealth_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -5553,32 +3116,16 @@ func RegisterRepositoryServiceHandlerClient(ctx context.Context, mux *runtime.Se } var ( - pattern_RepositoryService_SyncRepositories_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 3, 2, 4}, []string{"api", "v1", "repositories", "provider", "sync"}, "")) - - pattern_RepositoryService_RegisterRepository_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 3, 2, 4}, []string{"api", "v1", "repository", "provider", "register"}, "")) - - pattern_RepositoryService_ListRepositories_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "repositories", "provider"}, "")) - - pattern_RepositoryService_GetRepositoryById_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"api", "v1", "repository", "id", "repository_id"}, "")) - - pattern_RepositoryService_GetRepositoryByName_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 3, 2, 4, 1, 0, 4, 1, 5, 4}, []string{"api", "v1", "repository", "provider", "name"}, "")) + pattern_HealthService_CheckHealth_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "health"}, "")) ) var ( - forward_RepositoryService_SyncRepositories_0 = runtime.ForwardResponseMessage - - forward_RepositoryService_RegisterRepository_0 = runtime.ForwardResponseMessage - - forward_RepositoryService_ListRepositories_0 = runtime.ForwardResponseMessage - - forward_RepositoryService_GetRepositoryById_0 = runtime.ForwardResponseMessage - - forward_RepositoryService_GetRepositoryByName_0 = runtime.ForwardResponseMessage + forward_HealthService_CheckHealth_0 = runtime.ForwardResponseMessage ) -// RegisterBranchProtectionServiceHandlerFromEndpoint is same as RegisterBranchProtectionServiceHandler but +// RegisterArtifactServiceHandlerFromEndpoint is same as RegisterArtifactServiceHandler but // automatically dials to "endpoint" and closes the connection when "ctx" gets done. -func RegisterBranchProtectionServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { +func RegisterArtifactServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { conn, err := grpc.DialContext(ctx, endpoint, opts...) if err != nil { return err @@ -5598,41 +3145,63 @@ func RegisterBranchProtectionServiceHandlerFromEndpoint(ctx context.Context, mux }() }() - return RegisterBranchProtectionServiceHandler(ctx, mux, conn) + return RegisterArtifactServiceHandler(ctx, mux, conn) } -// RegisterBranchProtectionServiceHandler registers the http handlers for service BranchProtectionService to "mux". +// RegisterArtifactServiceHandler registers the http handlers for service ArtifactService to "mux". // The handlers forward requests to the grpc endpoint over "conn". -func RegisterBranchProtectionServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { - return RegisterBranchProtectionServiceHandlerClient(ctx, mux, NewBranchProtectionServiceClient(conn)) +func RegisterArtifactServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { + return RegisterArtifactServiceHandlerClient(ctx, mux, NewArtifactServiceClient(conn)) } -// RegisterBranchProtectionServiceHandlerClient registers the http handlers for service BranchProtectionService -// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "BranchProtectionServiceClient". -// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "BranchProtectionServiceClient" +// RegisterArtifactServiceHandlerClient registers the http handlers for service ArtifactService +// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "ArtifactServiceClient". +// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "ArtifactServiceClient" // doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in -// "BranchProtectionServiceClient" to call the correct interceptors. -func RegisterBranchProtectionServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client BranchProtectionServiceClient) error { +// "ArtifactServiceClient" to call the correct interceptors. +func RegisterArtifactServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ArtifactServiceClient) error { - mux.Handle("GET", pattern_BranchProtectionService_GetBranchProtection_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_ArtifactService_ListArtifacts_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) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.BranchProtectionService/GetBranchProtection", runtime.WithHTTPPathPattern("/api/v1/branchprotection")) + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.ArtifactService/ListArtifacts", runtime.WithHTTPPathPattern("/api/v1/artifacts/{provider}")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_BranchProtectionService_GetBranchProtection_0(annotatedContext, inboundMarshaler, client, req, pathParams) + resp, md, err := request_ArtifactService_ListArtifacts_0(annotatedContext, inboundMarshaler, client, req, pathParams) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_BranchProtectionService_GetBranchProtection_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_ArtifactService_ListArtifacts_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_ArtifactService_GetArtifactById_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) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.ArtifactService/GetArtifactById", runtime.WithHTTPPathPattern("/api/v1/artifact/{id}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_ArtifactService_GetArtifactById_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_ArtifactService_GetArtifactById_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -5640,16 +3209,20 @@ func RegisterBranchProtectionServiceHandlerClient(ctx context.Context, mux *runt } var ( - pattern_BranchProtectionService_GetBranchProtection_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "branchprotection"}, "")) + pattern_ArtifactService_ListArtifacts_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "artifacts", "provider"}, "")) + + pattern_ArtifactService_GetArtifactById_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "artifact", "id"}, "")) ) var ( - forward_BranchProtectionService_GetBranchProtection_0 = runtime.ForwardResponseMessage + forward_ArtifactService_ListArtifacts_0 = runtime.ForwardResponseMessage + + forward_ArtifactService_GetArtifactById_0 = runtime.ForwardResponseMessage ) -// RegisterOrganizationServiceHandlerFromEndpoint is same as RegisterOrganizationServiceHandler but +// RegisterOAuthServiceHandlerFromEndpoint is same as RegisterOAuthServiceHandler but // automatically dials to "endpoint" and closes the connection when "ctx" gets done. -func RegisterOrganizationServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { +func RegisterOAuthServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { conn, err := grpc.DialContext(ctx, endpoint, opts...) if err != nil { return err @@ -5669,129 +3242,173 @@ func RegisterOrganizationServiceHandlerFromEndpoint(ctx context.Context, mux *ru }() }() - return RegisterOrganizationServiceHandler(ctx, mux, conn) + return RegisterOAuthServiceHandler(ctx, mux, conn) } -// RegisterOrganizationServiceHandler registers the http handlers for service OrganizationService to "mux". +// RegisterOAuthServiceHandler registers the http handlers for service OAuthService to "mux". // The handlers forward requests to the grpc endpoint over "conn". -func RegisterOrganizationServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { - return RegisterOrganizationServiceHandlerClient(ctx, mux, NewOrganizationServiceClient(conn)) +func RegisterOAuthServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { + return RegisterOAuthServiceHandlerClient(ctx, mux, NewOAuthServiceClient(conn)) } -// RegisterOrganizationServiceHandlerClient registers the http handlers for service OrganizationService -// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "OrganizationServiceClient". -// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "OrganizationServiceClient" +// RegisterOAuthServiceHandlerClient registers the http handlers for service OAuthService +// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "OAuthServiceClient". +// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "OAuthServiceClient" // doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in -// "OrganizationServiceClient" to call the correct interceptors. -func RegisterOrganizationServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client OrganizationServiceClient) error { +// "OAuthServiceClient" to call the correct interceptors. +func RegisterOAuthServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client OAuthServiceClient) error { + + mux.Handle("GET", pattern_OAuthService_GetAuthorizationURL_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) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.OAuthService/GetAuthorizationURL", runtime.WithHTTPPathPattern("/api/v1/auth/url")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_OAuthService_GetAuthorizationURL_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_OAuthService_GetAuthorizationURL_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_OAuthService_ExchangeCodeForTokenCLI_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) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.OAuthService/ExchangeCodeForTokenCLI", runtime.WithHTTPPathPattern("/api/v1/auth/callback/{provider}/cli")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_OAuthService_ExchangeCodeForTokenCLI_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_OAuthService_ExchangeCodeForTokenCLI_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) - mux.Handle("POST", pattern_OrganizationService_CreateOrganization_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_OAuthService_ExchangeCodeForTokenWEB_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) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.OrganizationService/CreateOrganization", runtime.WithHTTPPathPattern("/api/v1/organization")) + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.OAuthService/ExchangeCodeForTokenWEB", runtime.WithHTTPPathPattern("/api/v1/auth/callback/{provider}/web")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_OrganizationService_CreateOrganization_0(annotatedContext, inboundMarshaler, client, req, pathParams) + resp, md, err := request_OAuthService_ExchangeCodeForTokenWEB_0(annotatedContext, inboundMarshaler, client, req, pathParams) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_OrganizationService_CreateOrganization_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_OAuthService_ExchangeCodeForTokenWEB_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_OrganizationService_GetOrganizations_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("POST", pattern_OAuthService_StoreProviderToken_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) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.OrganizationService/GetOrganizations", runtime.WithHTTPPathPattern("/api/v1/organizations")) + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.OAuthService/StoreProviderToken", runtime.WithHTTPPathPattern("/api/v1/auth/{provider}/token")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_OrganizationService_GetOrganizations_0(annotatedContext, inboundMarshaler, client, req, pathParams) + resp, md, err := request_OAuthService_StoreProviderToken_0(annotatedContext, inboundMarshaler, client, req, pathParams) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_OrganizationService_GetOrganizations_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_OAuthService_StoreProviderToken_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_OrganizationService_GetOrganization_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("POST", pattern_OAuthService_RevokeOauthTokens_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) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.OrganizationService/GetOrganization", runtime.WithHTTPPathPattern("/api/v1/organizations/{organization_id}")) + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.OAuthService/RevokeOauthTokens", runtime.WithHTTPPathPattern("/api/v1/auth/revoke-all")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_OrganizationService_GetOrganization_0(annotatedContext, inboundMarshaler, client, req, pathParams) + resp, md, err := request_OAuthService_RevokeOauthTokens_0(annotatedContext, inboundMarshaler, client, req, pathParams) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_OrganizationService_GetOrganization_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_OAuthService_RevokeOauthTokens_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_OrganizationService_GetOrganizationByName_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("POST", pattern_OAuthService_RevokeOauthProjectToken_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) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.OrganizationService/GetOrganizationByName", runtime.WithHTTPPathPattern("/api/v1/organizations/name/{name}")) + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.OAuthService/RevokeOauthProjectToken", runtime.WithHTTPPathPattern("/api/v1/auth/{provider}/revoke/{project_id}")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_OrganizationService_GetOrganizationByName_0(annotatedContext, inboundMarshaler, client, req, pathParams) + resp, md, err := request_OAuthService_RevokeOauthProjectToken_0(annotatedContext, inboundMarshaler, client, req, pathParams) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_OrganizationService_GetOrganizationByName_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_OAuthService_RevokeOauthProjectToken_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("DELETE", pattern_OrganizationService_DeleteOrganization_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_OAuthService_VerifyProviderTokenFrom_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) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.OrganizationService/DeleteOrganization", runtime.WithHTTPPathPattern("/api/v1/organization/{id}")) + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.OAuthService/VerifyProviderTokenFrom", runtime.WithHTTPPathPattern("/api/v1/auth/verify/{provider}/{timestamp}")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_OrganizationService_DeleteOrganization_0(annotatedContext, inboundMarshaler, client, req, pathParams) + resp, md, err := request_OAuthService_VerifyProviderTokenFrom_0(annotatedContext, inboundMarshaler, client, req, pathParams) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_OrganizationService_DeleteOrganization_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_OAuthService_VerifyProviderTokenFrom_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -5799,32 +3416,40 @@ func RegisterOrganizationServiceHandlerClient(ctx context.Context, mux *runtime. } var ( - pattern_OrganizationService_CreateOrganization_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "organization"}, "")) + pattern_OAuthService_GetAuthorizationURL_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "auth", "url"}, "")) + + pattern_OAuthService_ExchangeCodeForTokenCLI_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 2, 5}, []string{"api", "v1", "auth", "callback", "provider", "cli"}, "")) - pattern_OrganizationService_GetOrganizations_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "organizations"}, "")) + pattern_OAuthService_ExchangeCodeForTokenWEB_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 2, 5}, []string{"api", "v1", "auth", "callback", "provider", "web"}, "")) + + pattern_OAuthService_StoreProviderToken_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4}, []string{"api", "v1", "auth", "provider", "token"}, "")) - pattern_OrganizationService_GetOrganization_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "organizations", "organization_id"}, "")) + pattern_OAuthService_RevokeOauthTokens_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "auth", "revoke-all"}, "")) - pattern_OrganizationService_GetOrganizationByName_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "organizations", "name"}, "")) + pattern_OAuthService_RevokeOauthProjectToken_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4, 1, 0, 4, 1, 5, 5}, []string{"api", "v1", "auth", "provider", "revoke", "project_id"}, "")) - pattern_OrganizationService_DeleteOrganization_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "organization", "id"}, "")) + pattern_OAuthService_VerifyProviderTokenFrom_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5}, []string{"api", "v1", "auth", "verify", "provider", "timestamp"}, "")) ) var ( - forward_OrganizationService_CreateOrganization_0 = runtime.ForwardResponseMessage + forward_OAuthService_GetAuthorizationURL_0 = runtime.ForwardResponseMessage + + forward_OAuthService_ExchangeCodeForTokenCLI_0 = runtime.ForwardResponseMessage + + forward_OAuthService_ExchangeCodeForTokenWEB_0 = runtime.ForwardResponseMessage - forward_OrganizationService_GetOrganizations_0 = runtime.ForwardResponseMessage + forward_OAuthService_StoreProviderToken_0 = runtime.ForwardResponseMessage - forward_OrganizationService_GetOrganization_0 = runtime.ForwardResponseMessage + forward_OAuthService_RevokeOauthTokens_0 = runtime.ForwardResponseMessage - forward_OrganizationService_GetOrganizationByName_0 = runtime.ForwardResponseMessage + forward_OAuthService_RevokeOauthProjectToken_0 = runtime.ForwardResponseMessage - forward_OrganizationService_DeleteOrganization_0 = runtime.ForwardResponseMessage + forward_OAuthService_VerifyProviderTokenFrom_0 = runtime.ForwardResponseMessage ) -// RegisterProjectServiceHandlerFromEndpoint is same as RegisterProjectServiceHandler but +// RegisterAuthServiceHandlerFromEndpoint is same as RegisterAuthServiceHandler but // automatically dials to "endpoint" and closes the connection when "ctx" gets done. -func RegisterProjectServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { +func RegisterAuthServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { conn, err := grpc.DialContext(ctx, endpoint, opts...) if err != nil { return err @@ -5844,129 +3469,129 @@ func RegisterProjectServiceHandlerFromEndpoint(ctx context.Context, mux *runtime }() }() - return RegisterProjectServiceHandler(ctx, mux, conn) + return RegisterAuthServiceHandler(ctx, mux, conn) } -// RegisterProjectServiceHandler registers the http handlers for service ProjectService to "mux". +// RegisterAuthServiceHandler registers the http handlers for service AuthService to "mux". // The handlers forward requests to the grpc endpoint over "conn". -func RegisterProjectServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { - return RegisterProjectServiceHandlerClient(ctx, mux, NewProjectServiceClient(conn)) +func RegisterAuthServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { + return RegisterAuthServiceHandlerClient(ctx, mux, NewAuthServiceClient(conn)) } -// RegisterProjectServiceHandlerClient registers the http handlers for service ProjectService -// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "ProjectServiceClient". -// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "ProjectServiceClient" +// RegisterAuthServiceHandlerClient registers the http handlers for service AuthService +// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "AuthServiceClient". +// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "AuthServiceClient" // doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in -// "ProjectServiceClient" to call the correct interceptors. -func RegisterProjectServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ProjectServiceClient) error { +// "AuthServiceClient" to call the correct interceptors. +func RegisterAuthServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client AuthServiceClient) error { - mux.Handle("POST", pattern_ProjectService_CreateProject_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("POST", pattern_AuthService_LogOut_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) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.ProjectService/CreateProject", runtime.WithHTTPPathPattern("/api/v1/project")) + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.AuthService/LogOut", runtime.WithHTTPPathPattern("/api/v1/auth/logout")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_ProjectService_CreateProject_0(annotatedContext, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AuthService_LogOut_0(annotatedContext, inboundMarshaler, client, req, pathParams) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_ProjectService_CreateProject_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AuthService_LogOut_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_ProjectService_GetProjects_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("POST", pattern_AuthService_RevokeTokens_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) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.ProjectService/GetProjects", runtime.WithHTTPPathPattern("/api/v1/projects/{organization_id}")) + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.AuthService/RevokeTokens", runtime.WithHTTPPathPattern("/api/v1/auth/revoke")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_ProjectService_GetProjects_0(annotatedContext, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AuthService_RevokeTokens_0(annotatedContext, inboundMarshaler, client, req, pathParams) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_ProjectService_GetProjects_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AuthService_RevokeTokens_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_ProjectService_GetProjectByName_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("POST", pattern_AuthService_RevokeUserToken_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) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.ProjectService/GetProjectByName", runtime.WithHTTPPathPattern("/api/v1/project/name/{name}")) + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.AuthService/RevokeUserToken", runtime.WithHTTPPathPattern("/api/v1/auth/revoke/{user_id}")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_ProjectService_GetProjectByName_0(annotatedContext, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AuthService_RevokeUserToken_0(annotatedContext, inboundMarshaler, client, req, pathParams) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_ProjectService_GetProjectByName_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AuthService_RevokeUserToken_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_ProjectService_GetProjectById_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("POST", pattern_AuthService_RefreshToken_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) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.ProjectService/GetProjectById", runtime.WithHTTPPathPattern("/api/v1/project/id/{project_id}")) + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.AuthService/RefreshToken", runtime.WithHTTPPathPattern("/api/v1/auth/refresh")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_ProjectService_GetProjectById_0(annotatedContext, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AuthService_RefreshToken_0(annotatedContext, inboundMarshaler, client, req, pathParams) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_ProjectService_GetProjectById_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AuthService_RefreshToken_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("DELETE", pattern_ProjectService_DeleteProject_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_AuthService_Verify_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) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.ProjectService/DeleteProject", runtime.WithHTTPPathPattern("/api/v1/project/{id}")) + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.AuthService/Verify", runtime.WithHTTPPathPattern("/api/v1/auth/verify")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_ProjectService_DeleteProject_0(annotatedContext, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AuthService_Verify_0(annotatedContext, inboundMarshaler, client, req, pathParams) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_ProjectService_DeleteProject_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AuthService_Verify_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -5974,32 +3599,32 @@ func RegisterProjectServiceHandlerClient(ctx context.Context, mux *runtime.Serve } var ( - pattern_ProjectService_CreateProject_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "project"}, "")) + pattern_AuthService_LogOut_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "auth", "logout"}, "")) - pattern_ProjectService_GetProjects_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "projects", "organization_id"}, "")) + pattern_AuthService_RevokeTokens_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "auth", "revoke"}, "")) - pattern_ProjectService_GetProjectByName_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "project", "name"}, "")) + pattern_AuthService_RevokeUserToken_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"api", "v1", "auth", "revoke", "user_id"}, "")) - pattern_ProjectService_GetProjectById_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"api", "v1", "project", "id", "project_id"}, "")) + pattern_AuthService_RefreshToken_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "auth", "refresh"}, "")) - pattern_ProjectService_DeleteProject_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "project", "id"}, "")) + pattern_AuthService_Verify_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "auth", "verify"}, "")) ) var ( - forward_ProjectService_CreateProject_0 = runtime.ForwardResponseMessage + forward_AuthService_LogOut_0 = runtime.ForwardResponseMessage - forward_ProjectService_GetProjects_0 = runtime.ForwardResponseMessage + forward_AuthService_RevokeTokens_0 = runtime.ForwardResponseMessage - forward_ProjectService_GetProjectByName_0 = runtime.ForwardResponseMessage + forward_AuthService_RevokeUserToken_0 = runtime.ForwardResponseMessage - forward_ProjectService_GetProjectById_0 = runtime.ForwardResponseMessage + forward_AuthService_RefreshToken_0 = runtime.ForwardResponseMessage - forward_ProjectService_DeleteProject_0 = runtime.ForwardResponseMessage + forward_AuthService_Verify_0 = runtime.ForwardResponseMessage ) -// RegisterRoleServiceHandlerFromEndpoint is same as RegisterRoleServiceHandler but +// RegisterRepositoryServiceHandlerFromEndpoint is same as RegisterRepositoryServiceHandler but // automatically dials to "endpoint" and closes the connection when "ctx" gets done. -func RegisterRoleServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { +func RegisterRepositoryServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { conn, err := grpc.DialContext(ctx, endpoint, opts...) if err != nil { return err @@ -6019,173 +3644,216 @@ func RegisterRoleServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.Se }() }() - return RegisterRoleServiceHandler(ctx, mux, conn) + return RegisterRepositoryServiceHandler(ctx, mux, conn) } -// RegisterRoleServiceHandler registers the http handlers for service RoleService to "mux". +// RegisterRepositoryServiceHandler registers the http handlers for service RepositoryService to "mux". // The handlers forward requests to the grpc endpoint over "conn". -func RegisterRoleServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { - return RegisterRoleServiceHandlerClient(ctx, mux, NewRoleServiceClient(conn)) +func RegisterRepositoryServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { + return RegisterRepositoryServiceHandlerClient(ctx, mux, NewRepositoryServiceClient(conn)) } -// RegisterRoleServiceHandlerClient registers the http handlers for service RoleService -// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "RoleServiceClient". -// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "RoleServiceClient" +// RegisterRepositoryServiceHandlerClient registers the http handlers for service RepositoryService +// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "RepositoryServiceClient". +// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "RepositoryServiceClient" // doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in -// "RoleServiceClient" to call the correct interceptors. -func RegisterRoleServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client RoleServiceClient) error { +// "RepositoryServiceClient" to call the correct interceptors. +func RegisterRepositoryServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client RepositoryServiceClient) error { - mux.Handle("POST", pattern_RoleService_CreateRoleByOrganization_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("POST", pattern_RepositoryService_SyncRepositories_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) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.RoleService/CreateRoleByOrganization", runtime.WithHTTPPathPattern("/api/v1/role/organization")) + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.RepositoryService/SyncRepositories", runtime.WithHTTPPathPattern("/api/v1/repositories/provider/{provider}/sync")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_RoleService_CreateRoleByOrganization_0(annotatedContext, inboundMarshaler, client, req, pathParams) + resp, md, err := request_RepositoryService_SyncRepositories_0(annotatedContext, inboundMarshaler, client, req, pathParams) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_RoleService_CreateRoleByOrganization_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_RepositoryService_SyncRepositories_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("POST", pattern_RoleService_CreateRoleByProject_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("POST", pattern_RepositoryService_RegisterRepository_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) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.RoleService/CreateRoleByProject", runtime.WithHTTPPathPattern("/api/v1/role/project")) + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.RepositoryService/RegisterRepository", runtime.WithHTTPPathPattern("/api/v1/repository/provider/{provider}/register")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_RoleService_CreateRoleByProject_0(annotatedContext, inboundMarshaler, client, req, pathParams) + resp, md, err := request_RepositoryService_RegisterRepository_0(annotatedContext, inboundMarshaler, client, req, pathParams) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_RoleService_CreateRoleByProject_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_RepositoryService_RegisterRepository_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("DELETE", pattern_RoleService_DeleteRole_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_RepositoryService_ListRepositories_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) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.RoleService/DeleteRole", runtime.WithHTTPPathPattern("/api/v1/role/{id}")) + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.RepositoryService/ListRepositories", runtime.WithHTTPPathPattern("/api/v1/repositories/provider/{provider}")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_RoleService_DeleteRole_0(annotatedContext, inboundMarshaler, client, req, pathParams) + resp, md, err := request_RepositoryService_ListRepositories_0(annotatedContext, inboundMarshaler, client, req, pathParams) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_RoleService_DeleteRole_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_RepositoryService_ListRepositories_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_RoleService_GetRoles_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_RepositoryService_GetRepositoryById_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) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.RoleService/GetRoles", runtime.WithHTTPPathPattern("/api/v1/roles/{organization_id}")) + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.RepositoryService/GetRepositoryById", runtime.WithHTTPPathPattern("/api/v1/repository/id/{repository_id}")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_RoleService_GetRoles_0(annotatedContext, inboundMarshaler, client, req, pathParams) + resp, md, err := request_RepositoryService_GetRepositoryById_0(annotatedContext, inboundMarshaler, client, req, pathParams) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_RoleService_GetRoles_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_RepositoryService_GetRepositoryById_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_RoleService_GetRolesByProject_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_RepositoryService_GetRepositoryByName_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) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.RoleService/GetRolesByProject", runtime.WithHTTPPathPattern("/api/v1/roles/project/{project_id}")) + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.RepositoryService/GetRepositoryByName", runtime.WithHTTPPathPattern("/api/v1/repository/provider/{provider}/name/{name}")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_RoleService_GetRolesByProject_0(annotatedContext, inboundMarshaler, client, req, pathParams) + resp, md, err := request_RepositoryService_GetRepositoryByName_0(annotatedContext, inboundMarshaler, client, req, pathParams) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_RoleService_GetRolesByProject_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_RepositoryService_GetRepositoryByName_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_RoleService_GetRoleById_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.RoleService/GetRoleById", runtime.WithHTTPPathPattern("/api/v1/role/{id}")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_RoleService_GetRoleById_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + return nil +} + +var ( + pattern_RepositoryService_SyncRepositories_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 3, 2, 4}, []string{"api", "v1", "repositories", "provider", "sync"}, "")) + + pattern_RepositoryService_RegisterRepository_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 3, 2, 4}, []string{"api", "v1", "repository", "provider", "register"}, "")) + + pattern_RepositoryService_ListRepositories_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "repositories", "provider"}, "")) + + pattern_RepositoryService_GetRepositoryById_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"api", "v1", "repository", "id", "repository_id"}, "")) + + pattern_RepositoryService_GetRepositoryByName_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 3, 2, 4, 1, 0, 4, 1, 5, 4}, []string{"api", "v1", "repository", "provider", "name"}, "")) +) + +var ( + forward_RepositoryService_SyncRepositories_0 = runtime.ForwardResponseMessage + + forward_RepositoryService_RegisterRepository_0 = runtime.ForwardResponseMessage + + forward_RepositoryService_ListRepositories_0 = runtime.ForwardResponseMessage + + forward_RepositoryService_GetRepositoryById_0 = runtime.ForwardResponseMessage + + forward_RepositoryService_GetRepositoryByName_0 = runtime.ForwardResponseMessage +) + +// RegisterBranchProtectionServiceHandlerFromEndpoint is same as RegisterBranchProtectionServiceHandler but +// automatically dials to "endpoint" and closes the connection when "ctx" gets done. +func RegisterBranchProtectionServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { + conn, err := grpc.DialContext(ctx, endpoint, opts...) + if err != nil { + return err + } + defer func() { if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } return } + go func() { + <-ctx.Done() + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + }() + }() - forward_RoleService_GetRoleById_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + return RegisterBranchProtectionServiceHandler(ctx, mux, conn) +} - }) +// RegisterBranchProtectionServiceHandler registers the http handlers for service BranchProtectionService to "mux". +// The handlers forward requests to the grpc endpoint over "conn". +func RegisterBranchProtectionServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { + return RegisterBranchProtectionServiceHandlerClient(ctx, mux, NewBranchProtectionServiceClient(conn)) +} + +// RegisterBranchProtectionServiceHandlerClient registers the http handlers for service BranchProtectionService +// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "BranchProtectionServiceClient". +// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "BranchProtectionServiceClient" +// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in +// "BranchProtectionServiceClient" to call the correct interceptors. +func RegisterBranchProtectionServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client BranchProtectionServiceClient) error { - mux.Handle("GET", pattern_RoleService_GetRoleByName_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_BranchProtectionService_GetBranchProtection_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) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.RoleService/GetRoleByName", runtime.WithHTTPPathPattern("/api/v1/role/name/{name}")) + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.BranchProtectionService/GetBranchProtection", runtime.WithHTTPPathPattern("/api/v1/branchprotection")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_RoleService_GetRoleByName_0(annotatedContext, inboundMarshaler, client, req, pathParams) + resp, md, err := request_BranchProtectionService_GetBranchProtection_0(annotatedContext, inboundMarshaler, client, req, pathParams) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_RoleService_GetRoleByName_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_BranchProtectionService_GetBranchProtection_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -6193,35 +3861,11 @@ func RegisterRoleServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux } var ( - pattern_RoleService_CreateRoleByOrganization_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "role", "organization"}, "")) - - pattern_RoleService_CreateRoleByProject_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "role", "project"}, "")) - - pattern_RoleService_DeleteRole_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "role", "id"}, "")) - - pattern_RoleService_GetRoles_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "roles", "organization_id"}, "")) - - pattern_RoleService_GetRolesByProject_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"api", "v1", "roles", "project", "project_id"}, "")) - - pattern_RoleService_GetRoleById_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "role", "id"}, "")) - - pattern_RoleService_GetRoleByName_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "role", "name"}, "")) + pattern_BranchProtectionService_GetBranchProtection_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "branchprotection"}, "")) ) var ( - forward_RoleService_CreateRoleByOrganization_0 = runtime.ForwardResponseMessage - - forward_RoleService_CreateRoleByProject_0 = runtime.ForwardResponseMessage - - forward_RoleService_DeleteRole_0 = runtime.ForwardResponseMessage - - forward_RoleService_GetRoles_0 = runtime.ForwardResponseMessage - - forward_RoleService_GetRolesByProject_0 = runtime.ForwardResponseMessage - - forward_RoleService_GetRoleById_0 = runtime.ForwardResponseMessage - - forward_RoleService_GetRoleByName_0 = runtime.ForwardResponseMessage + forward_BranchProtectionService_GetBranchProtection_0 = runtime.ForwardResponseMessage ) // RegisterUserServiceHandlerFromEndpoint is same as RegisterUserServiceHandler but @@ -6306,116 +3950,6 @@ func RegisterUserServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux }) - mux.Handle("GET", pattern_UserService_GetUsers_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.UserService/GetUsers", runtime.WithHTTPPathPattern("/api/v1/users")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_UserService_GetUsers_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_UserService_GetUsers_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_UserService_GetUsersByOrganization_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.UserService/GetUsersByOrganization", runtime.WithHTTPPathPattern("/api/v1/users/{organization_id}")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_UserService_GetUsersByOrganization_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_UserService_GetUsersByOrganization_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_UserService_GetUsersByProject_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.UserService/GetUsersByProject", runtime.WithHTTPPathPattern("/api/v1/users/{project_id}")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_UserService_GetUsersByProject_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_UserService_GetUsersByProject_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_UserService_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.UserService/GetUserById", runtime.WithHTTPPathPattern("/api/v1/user/{user_id}")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_UserService_GetUserById_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_UserService_GetUserById_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_UserService_GetUserBySubject_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mediator.v1.UserService/GetUserBySubject", runtime.WithHTTPPathPattern("/api/v1/user/subject/{subject}")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_UserService_GetUserBySubject_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_UserService_GetUserBySubject_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - mux.Handle("GET", pattern_UserService_GetUser_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -6446,16 +3980,6 @@ var ( pattern_UserService_DeleteUser_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "user", "id"}, "")) - pattern_UserService_GetUsers_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "users"}, "")) - - pattern_UserService_GetUsersByOrganization_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "users", "organization_id"}, "")) - - pattern_UserService_GetUsersByProject_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "users", "project_id"}, "")) - - pattern_UserService_GetUserById_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "user", "user_id"}, "")) - - pattern_UserService_GetUserBySubject_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "user", "subject"}, "")) - pattern_UserService_GetUser_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "user"}, "")) ) @@ -6464,16 +3988,6 @@ var ( forward_UserService_DeleteUser_0 = runtime.ForwardResponseMessage - forward_UserService_GetUsers_0 = runtime.ForwardResponseMessage - - forward_UserService_GetUsersByOrganization_0 = runtime.ForwardResponseMessage - - forward_UserService_GetUsersByProject_0 = runtime.ForwardResponseMessage - - forward_UserService_GetUserById_0 = runtime.ForwardResponseMessage - - forward_UserService_GetUserBySubject_0 = runtime.ForwardResponseMessage - forward_UserService_GetUser_0 = runtime.ForwardResponseMessage ) diff --git a/pkg/api/protobuf/go/mediator/v1/mediator_grpc.pb.go b/pkg/api/protobuf/go/mediator/v1/mediator_grpc.pb.go index 63c7812702..ed7a819929 100644 --- a/pkg/api/protobuf/go/mediator/v1/mediator_grpc.pb.go +++ b/pkg/api/protobuf/go/mediator/v1/mediator_grpc.pb.go @@ -1151,802 +1151,9 @@ var BranchProtectionService_ServiceDesc = grpc.ServiceDesc{ } const ( - OrganizationService_CreateOrganization_FullMethodName = "/mediator.v1.OrganizationService/CreateOrganization" - OrganizationService_GetOrganizations_FullMethodName = "/mediator.v1.OrganizationService/GetOrganizations" - OrganizationService_GetOrganization_FullMethodName = "/mediator.v1.OrganizationService/GetOrganization" - OrganizationService_GetOrganizationByName_FullMethodName = "/mediator.v1.OrganizationService/GetOrganizationByName" - OrganizationService_DeleteOrganization_FullMethodName = "/mediator.v1.OrganizationService/DeleteOrganization" -) - -// OrganizationServiceClient is the client API for OrganizationService service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. -type OrganizationServiceClient interface { - CreateOrganization(ctx context.Context, in *CreateOrganizationRequest, opts ...grpc.CallOption) (*CreateOrganizationResponse, error) - GetOrganizations(ctx context.Context, in *GetOrganizationsRequest, opts ...grpc.CallOption) (*GetOrganizationsResponse, error) - GetOrganization(ctx context.Context, in *GetOrganizationRequest, opts ...grpc.CallOption) (*GetOrganizationResponse, error) - GetOrganizationByName(ctx context.Context, in *GetOrganizationByNameRequest, opts ...grpc.CallOption) (*GetOrganizationByNameResponse, error) - DeleteOrganization(ctx context.Context, in *DeleteOrganizationRequest, opts ...grpc.CallOption) (*DeleteOrganizationResponse, error) -} - -type organizationServiceClient struct { - cc grpc.ClientConnInterface -} - -func NewOrganizationServiceClient(cc grpc.ClientConnInterface) OrganizationServiceClient { - return &organizationServiceClient{cc} -} - -func (c *organizationServiceClient) CreateOrganization(ctx context.Context, in *CreateOrganizationRequest, opts ...grpc.CallOption) (*CreateOrganizationResponse, error) { - out := new(CreateOrganizationResponse) - err := c.cc.Invoke(ctx, OrganizationService_CreateOrganization_FullMethodName, in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *organizationServiceClient) GetOrganizations(ctx context.Context, in *GetOrganizationsRequest, opts ...grpc.CallOption) (*GetOrganizationsResponse, error) { - out := new(GetOrganizationsResponse) - err := c.cc.Invoke(ctx, OrganizationService_GetOrganizations_FullMethodName, in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *organizationServiceClient) GetOrganization(ctx context.Context, in *GetOrganizationRequest, opts ...grpc.CallOption) (*GetOrganizationResponse, error) { - out := new(GetOrganizationResponse) - err := c.cc.Invoke(ctx, OrganizationService_GetOrganization_FullMethodName, in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *organizationServiceClient) GetOrganizationByName(ctx context.Context, in *GetOrganizationByNameRequest, opts ...grpc.CallOption) (*GetOrganizationByNameResponse, error) { - out := new(GetOrganizationByNameResponse) - err := c.cc.Invoke(ctx, OrganizationService_GetOrganizationByName_FullMethodName, in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *organizationServiceClient) DeleteOrganization(ctx context.Context, in *DeleteOrganizationRequest, opts ...grpc.CallOption) (*DeleteOrganizationResponse, error) { - out := new(DeleteOrganizationResponse) - err := c.cc.Invoke(ctx, OrganizationService_DeleteOrganization_FullMethodName, in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// OrganizationServiceServer is the server API for OrganizationService service. -// All implementations must embed UnimplementedOrganizationServiceServer -// for forward compatibility -type OrganizationServiceServer interface { - CreateOrganization(context.Context, *CreateOrganizationRequest) (*CreateOrganizationResponse, error) - GetOrganizations(context.Context, *GetOrganizationsRequest) (*GetOrganizationsResponse, error) - GetOrganization(context.Context, *GetOrganizationRequest) (*GetOrganizationResponse, error) - GetOrganizationByName(context.Context, *GetOrganizationByNameRequest) (*GetOrganizationByNameResponse, error) - DeleteOrganization(context.Context, *DeleteOrganizationRequest) (*DeleteOrganizationResponse, error) - mustEmbedUnimplementedOrganizationServiceServer() -} - -// UnimplementedOrganizationServiceServer must be embedded to have forward compatible implementations. -type UnimplementedOrganizationServiceServer struct { -} - -func (UnimplementedOrganizationServiceServer) CreateOrganization(context.Context, *CreateOrganizationRequest) (*CreateOrganizationResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method CreateOrganization not implemented") -} -func (UnimplementedOrganizationServiceServer) GetOrganizations(context.Context, *GetOrganizationsRequest) (*GetOrganizationsResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetOrganizations not implemented") -} -func (UnimplementedOrganizationServiceServer) GetOrganization(context.Context, *GetOrganizationRequest) (*GetOrganizationResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetOrganization not implemented") -} -func (UnimplementedOrganizationServiceServer) GetOrganizationByName(context.Context, *GetOrganizationByNameRequest) (*GetOrganizationByNameResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetOrganizationByName not implemented") -} -func (UnimplementedOrganizationServiceServer) DeleteOrganization(context.Context, *DeleteOrganizationRequest) (*DeleteOrganizationResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method DeleteOrganization not implemented") -} -func (UnimplementedOrganizationServiceServer) mustEmbedUnimplementedOrganizationServiceServer() {} - -// UnsafeOrganizationServiceServer may be embedded to opt out of forward compatibility for this service. -// Use of this interface is not recommended, as added methods to OrganizationServiceServer will -// result in compilation errors. -type UnsafeOrganizationServiceServer interface { - mustEmbedUnimplementedOrganizationServiceServer() -} - -func RegisterOrganizationServiceServer(s grpc.ServiceRegistrar, srv OrganizationServiceServer) { - s.RegisterService(&OrganizationService_ServiceDesc, srv) -} - -func _OrganizationService_CreateOrganization_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(CreateOrganizationRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(OrganizationServiceServer).CreateOrganization(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: OrganizationService_CreateOrganization_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(OrganizationServiceServer).CreateOrganization(ctx, req.(*CreateOrganizationRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _OrganizationService_GetOrganizations_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetOrganizationsRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(OrganizationServiceServer).GetOrganizations(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: OrganizationService_GetOrganizations_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(OrganizationServiceServer).GetOrganizations(ctx, req.(*GetOrganizationsRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _OrganizationService_GetOrganization_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetOrganizationRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(OrganizationServiceServer).GetOrganization(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: OrganizationService_GetOrganization_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(OrganizationServiceServer).GetOrganization(ctx, req.(*GetOrganizationRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _OrganizationService_GetOrganizationByName_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetOrganizationByNameRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(OrganizationServiceServer).GetOrganizationByName(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: OrganizationService_GetOrganizationByName_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(OrganizationServiceServer).GetOrganizationByName(ctx, req.(*GetOrganizationByNameRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _OrganizationService_DeleteOrganization_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(DeleteOrganizationRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(OrganizationServiceServer).DeleteOrganization(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: OrganizationService_DeleteOrganization_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(OrganizationServiceServer).DeleteOrganization(ctx, req.(*DeleteOrganizationRequest)) - } - return interceptor(ctx, in, info, handler) -} - -// OrganizationService_ServiceDesc is the grpc.ServiceDesc for OrganizationService service. -// It's only intended for direct use with grpc.RegisterService, -// and not to be introspected or modified (even as a copy) -var OrganizationService_ServiceDesc = grpc.ServiceDesc{ - ServiceName: "mediator.v1.OrganizationService", - HandlerType: (*OrganizationServiceServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "CreateOrganization", - Handler: _OrganizationService_CreateOrganization_Handler, - }, - { - MethodName: "GetOrganizations", - Handler: _OrganizationService_GetOrganizations_Handler, - }, - { - MethodName: "GetOrganization", - Handler: _OrganizationService_GetOrganization_Handler, - }, - { - MethodName: "GetOrganizationByName", - Handler: _OrganizationService_GetOrganizationByName_Handler, - }, - { - MethodName: "DeleteOrganization", - Handler: _OrganizationService_DeleteOrganization_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "mediator/v1/mediator.proto", -} - -const ( - ProjectService_CreateProject_FullMethodName = "/mediator.v1.ProjectService/CreateProject" - ProjectService_GetProjects_FullMethodName = "/mediator.v1.ProjectService/GetProjects" - ProjectService_GetProjectByName_FullMethodName = "/mediator.v1.ProjectService/GetProjectByName" - ProjectService_GetProjectById_FullMethodName = "/mediator.v1.ProjectService/GetProjectById" - ProjectService_DeleteProject_FullMethodName = "/mediator.v1.ProjectService/DeleteProject" -) - -// ProjectServiceClient is the client API for ProjectService service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. -type ProjectServiceClient interface { - CreateProject(ctx context.Context, in *CreateProjectRequest, opts ...grpc.CallOption) (*CreateProjectResponse, error) - GetProjects(ctx context.Context, in *GetProjectsRequest, opts ...grpc.CallOption) (*GetProjectsResponse, error) - GetProjectByName(ctx context.Context, in *GetProjectByNameRequest, opts ...grpc.CallOption) (*GetProjectByNameResponse, error) - GetProjectById(ctx context.Context, in *GetProjectByIdRequest, opts ...grpc.CallOption) (*GetProjectByIdResponse, error) - DeleteProject(ctx context.Context, in *DeleteProjectRequest, opts ...grpc.CallOption) (*DeleteProjectResponse, error) -} - -type projectServiceClient struct { - cc grpc.ClientConnInterface -} - -func NewProjectServiceClient(cc grpc.ClientConnInterface) ProjectServiceClient { - return &projectServiceClient{cc} -} - -func (c *projectServiceClient) CreateProject(ctx context.Context, in *CreateProjectRequest, opts ...grpc.CallOption) (*CreateProjectResponse, error) { - out := new(CreateProjectResponse) - err := c.cc.Invoke(ctx, ProjectService_CreateProject_FullMethodName, in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *projectServiceClient) GetProjects(ctx context.Context, in *GetProjectsRequest, opts ...grpc.CallOption) (*GetProjectsResponse, error) { - out := new(GetProjectsResponse) - err := c.cc.Invoke(ctx, ProjectService_GetProjects_FullMethodName, in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *projectServiceClient) GetProjectByName(ctx context.Context, in *GetProjectByNameRequest, opts ...grpc.CallOption) (*GetProjectByNameResponse, error) { - out := new(GetProjectByNameResponse) - err := c.cc.Invoke(ctx, ProjectService_GetProjectByName_FullMethodName, in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *projectServiceClient) GetProjectById(ctx context.Context, in *GetProjectByIdRequest, opts ...grpc.CallOption) (*GetProjectByIdResponse, error) { - out := new(GetProjectByIdResponse) - err := c.cc.Invoke(ctx, ProjectService_GetProjectById_FullMethodName, in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *projectServiceClient) DeleteProject(ctx context.Context, in *DeleteProjectRequest, opts ...grpc.CallOption) (*DeleteProjectResponse, error) { - out := new(DeleteProjectResponse) - err := c.cc.Invoke(ctx, ProjectService_DeleteProject_FullMethodName, in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// ProjectServiceServer is the server API for ProjectService service. -// All implementations must embed UnimplementedProjectServiceServer -// for forward compatibility -type ProjectServiceServer interface { - CreateProject(context.Context, *CreateProjectRequest) (*CreateProjectResponse, error) - GetProjects(context.Context, *GetProjectsRequest) (*GetProjectsResponse, error) - GetProjectByName(context.Context, *GetProjectByNameRequest) (*GetProjectByNameResponse, error) - GetProjectById(context.Context, *GetProjectByIdRequest) (*GetProjectByIdResponse, error) - DeleteProject(context.Context, *DeleteProjectRequest) (*DeleteProjectResponse, error) - mustEmbedUnimplementedProjectServiceServer() -} - -// UnimplementedProjectServiceServer must be embedded to have forward compatible implementations. -type UnimplementedProjectServiceServer struct { -} - -func (UnimplementedProjectServiceServer) CreateProject(context.Context, *CreateProjectRequest) (*CreateProjectResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method CreateProject not implemented") -} -func (UnimplementedProjectServiceServer) GetProjects(context.Context, *GetProjectsRequest) (*GetProjectsResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetProjects not implemented") -} -func (UnimplementedProjectServiceServer) GetProjectByName(context.Context, *GetProjectByNameRequest) (*GetProjectByNameResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetProjectByName not implemented") -} -func (UnimplementedProjectServiceServer) GetProjectById(context.Context, *GetProjectByIdRequest) (*GetProjectByIdResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetProjectById not implemented") -} -func (UnimplementedProjectServiceServer) DeleteProject(context.Context, *DeleteProjectRequest) (*DeleteProjectResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method DeleteProject not implemented") -} -func (UnimplementedProjectServiceServer) mustEmbedUnimplementedProjectServiceServer() {} - -// UnsafeProjectServiceServer may be embedded to opt out of forward compatibility for this service. -// Use of this interface is not recommended, as added methods to ProjectServiceServer will -// result in compilation errors. -type UnsafeProjectServiceServer interface { - mustEmbedUnimplementedProjectServiceServer() -} - -func RegisterProjectServiceServer(s grpc.ServiceRegistrar, srv ProjectServiceServer) { - s.RegisterService(&ProjectService_ServiceDesc, srv) -} - -func _ProjectService_CreateProject_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(CreateProjectRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ProjectServiceServer).CreateProject(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: ProjectService_CreateProject_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ProjectServiceServer).CreateProject(ctx, req.(*CreateProjectRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _ProjectService_GetProjects_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetProjectsRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ProjectServiceServer).GetProjects(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: ProjectService_GetProjects_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ProjectServiceServer).GetProjects(ctx, req.(*GetProjectsRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _ProjectService_GetProjectByName_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetProjectByNameRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ProjectServiceServer).GetProjectByName(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: ProjectService_GetProjectByName_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ProjectServiceServer).GetProjectByName(ctx, req.(*GetProjectByNameRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _ProjectService_GetProjectById_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetProjectByIdRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ProjectServiceServer).GetProjectById(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: ProjectService_GetProjectById_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ProjectServiceServer).GetProjectById(ctx, req.(*GetProjectByIdRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _ProjectService_DeleteProject_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(DeleteProjectRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ProjectServiceServer).DeleteProject(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: ProjectService_DeleteProject_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ProjectServiceServer).DeleteProject(ctx, req.(*DeleteProjectRequest)) - } - return interceptor(ctx, in, info, handler) -} - -// ProjectService_ServiceDesc is the grpc.ServiceDesc for ProjectService service. -// It's only intended for direct use with grpc.RegisterService, -// and not to be introspected or modified (even as a copy) -var ProjectService_ServiceDesc = grpc.ServiceDesc{ - ServiceName: "mediator.v1.ProjectService", - HandlerType: (*ProjectServiceServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "CreateProject", - Handler: _ProjectService_CreateProject_Handler, - }, - { - MethodName: "GetProjects", - Handler: _ProjectService_GetProjects_Handler, - }, - { - MethodName: "GetProjectByName", - Handler: _ProjectService_GetProjectByName_Handler, - }, - { - MethodName: "GetProjectById", - Handler: _ProjectService_GetProjectById_Handler, - }, - { - MethodName: "DeleteProject", - Handler: _ProjectService_DeleteProject_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "mediator/v1/mediator.proto", -} - -const ( - RoleService_CreateRoleByOrganization_FullMethodName = "/mediator.v1.RoleService/CreateRoleByOrganization" - RoleService_CreateRoleByProject_FullMethodName = "/mediator.v1.RoleService/CreateRoleByProject" - RoleService_DeleteRole_FullMethodName = "/mediator.v1.RoleService/DeleteRole" - RoleService_GetRoles_FullMethodName = "/mediator.v1.RoleService/GetRoles" - RoleService_GetRolesByProject_FullMethodName = "/mediator.v1.RoleService/GetRolesByProject" - RoleService_GetRoleById_FullMethodName = "/mediator.v1.RoleService/GetRoleById" - RoleService_GetRoleByName_FullMethodName = "/mediator.v1.RoleService/GetRoleByName" -) - -// RoleServiceClient is the client API for RoleService service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. -type RoleServiceClient interface { - CreateRoleByOrganization(ctx context.Context, in *CreateRoleByOrganizationRequest, opts ...grpc.CallOption) (*CreateRoleByOrganizationResponse, error) - CreateRoleByProject(ctx context.Context, in *CreateRoleByProjectRequest, opts ...grpc.CallOption) (*CreateRoleByProjectResponse, error) - DeleteRole(ctx context.Context, in *DeleteRoleRequest, opts ...grpc.CallOption) (*DeleteRoleResponse, error) - GetRoles(ctx context.Context, in *GetRolesRequest, opts ...grpc.CallOption) (*GetRolesResponse, error) - GetRolesByProject(ctx context.Context, in *GetRolesByProjectRequest, opts ...grpc.CallOption) (*GetRolesByProjectResponse, error) - GetRoleById(ctx context.Context, in *GetRoleByIdRequest, opts ...grpc.CallOption) (*GetRoleByIdResponse, error) - GetRoleByName(ctx context.Context, in *GetRoleByNameRequest, opts ...grpc.CallOption) (*GetRoleByNameResponse, error) -} - -type roleServiceClient struct { - cc grpc.ClientConnInterface -} - -func NewRoleServiceClient(cc grpc.ClientConnInterface) RoleServiceClient { - return &roleServiceClient{cc} -} - -func (c *roleServiceClient) CreateRoleByOrganization(ctx context.Context, in *CreateRoleByOrganizationRequest, opts ...grpc.CallOption) (*CreateRoleByOrganizationResponse, error) { - out := new(CreateRoleByOrganizationResponse) - err := c.cc.Invoke(ctx, RoleService_CreateRoleByOrganization_FullMethodName, in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *roleServiceClient) CreateRoleByProject(ctx context.Context, in *CreateRoleByProjectRequest, opts ...grpc.CallOption) (*CreateRoleByProjectResponse, error) { - out := new(CreateRoleByProjectResponse) - err := c.cc.Invoke(ctx, RoleService_CreateRoleByProject_FullMethodName, in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *roleServiceClient) DeleteRole(ctx context.Context, in *DeleteRoleRequest, opts ...grpc.CallOption) (*DeleteRoleResponse, error) { - out := new(DeleteRoleResponse) - err := c.cc.Invoke(ctx, RoleService_DeleteRole_FullMethodName, in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *roleServiceClient) GetRoles(ctx context.Context, in *GetRolesRequest, opts ...grpc.CallOption) (*GetRolesResponse, error) { - out := new(GetRolesResponse) - err := c.cc.Invoke(ctx, RoleService_GetRoles_FullMethodName, in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *roleServiceClient) GetRolesByProject(ctx context.Context, in *GetRolesByProjectRequest, opts ...grpc.CallOption) (*GetRolesByProjectResponse, error) { - out := new(GetRolesByProjectResponse) - err := c.cc.Invoke(ctx, RoleService_GetRolesByProject_FullMethodName, in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *roleServiceClient) GetRoleById(ctx context.Context, in *GetRoleByIdRequest, opts ...grpc.CallOption) (*GetRoleByIdResponse, error) { - out := new(GetRoleByIdResponse) - err := c.cc.Invoke(ctx, RoleService_GetRoleById_FullMethodName, in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *roleServiceClient) GetRoleByName(ctx context.Context, in *GetRoleByNameRequest, opts ...grpc.CallOption) (*GetRoleByNameResponse, error) { - out := new(GetRoleByNameResponse) - err := c.cc.Invoke(ctx, RoleService_GetRoleByName_FullMethodName, in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// RoleServiceServer is the server API for RoleService service. -// All implementations must embed UnimplementedRoleServiceServer -// for forward compatibility -type RoleServiceServer interface { - CreateRoleByOrganization(context.Context, *CreateRoleByOrganizationRequest) (*CreateRoleByOrganizationResponse, error) - CreateRoleByProject(context.Context, *CreateRoleByProjectRequest) (*CreateRoleByProjectResponse, error) - DeleteRole(context.Context, *DeleteRoleRequest) (*DeleteRoleResponse, error) - GetRoles(context.Context, *GetRolesRequest) (*GetRolesResponse, error) - GetRolesByProject(context.Context, *GetRolesByProjectRequest) (*GetRolesByProjectResponse, error) - GetRoleById(context.Context, *GetRoleByIdRequest) (*GetRoleByIdResponse, error) - GetRoleByName(context.Context, *GetRoleByNameRequest) (*GetRoleByNameResponse, error) - mustEmbedUnimplementedRoleServiceServer() -} - -// UnimplementedRoleServiceServer must be embedded to have forward compatible implementations. -type UnimplementedRoleServiceServer struct { -} - -func (UnimplementedRoleServiceServer) CreateRoleByOrganization(context.Context, *CreateRoleByOrganizationRequest) (*CreateRoleByOrganizationResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method CreateRoleByOrganization not implemented") -} -func (UnimplementedRoleServiceServer) CreateRoleByProject(context.Context, *CreateRoleByProjectRequest) (*CreateRoleByProjectResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method CreateRoleByProject not implemented") -} -func (UnimplementedRoleServiceServer) DeleteRole(context.Context, *DeleteRoleRequest) (*DeleteRoleResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method DeleteRole not implemented") -} -func (UnimplementedRoleServiceServer) GetRoles(context.Context, *GetRolesRequest) (*GetRolesResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetRoles not implemented") -} -func (UnimplementedRoleServiceServer) GetRolesByProject(context.Context, *GetRolesByProjectRequest) (*GetRolesByProjectResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetRolesByProject not implemented") -} -func (UnimplementedRoleServiceServer) GetRoleById(context.Context, *GetRoleByIdRequest) (*GetRoleByIdResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetRoleById not implemented") -} -func (UnimplementedRoleServiceServer) GetRoleByName(context.Context, *GetRoleByNameRequest) (*GetRoleByNameResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetRoleByName not implemented") -} -func (UnimplementedRoleServiceServer) mustEmbedUnimplementedRoleServiceServer() {} - -// UnsafeRoleServiceServer may be embedded to opt out of forward compatibility for this service. -// Use of this interface is not recommended, as added methods to RoleServiceServer will -// result in compilation errors. -type UnsafeRoleServiceServer interface { - mustEmbedUnimplementedRoleServiceServer() -} - -func RegisterRoleServiceServer(s grpc.ServiceRegistrar, srv RoleServiceServer) { - s.RegisterService(&RoleService_ServiceDesc, srv) -} - -func _RoleService_CreateRoleByOrganization_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(CreateRoleByOrganizationRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(RoleServiceServer).CreateRoleByOrganization(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: RoleService_CreateRoleByOrganization_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(RoleServiceServer).CreateRoleByOrganization(ctx, req.(*CreateRoleByOrganizationRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _RoleService_CreateRoleByProject_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(CreateRoleByProjectRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(RoleServiceServer).CreateRoleByProject(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: RoleService_CreateRoleByProject_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(RoleServiceServer).CreateRoleByProject(ctx, req.(*CreateRoleByProjectRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _RoleService_DeleteRole_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(DeleteRoleRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(RoleServiceServer).DeleteRole(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: RoleService_DeleteRole_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(RoleServiceServer).DeleteRole(ctx, req.(*DeleteRoleRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _RoleService_GetRoles_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetRolesRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(RoleServiceServer).GetRoles(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: RoleService_GetRoles_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(RoleServiceServer).GetRoles(ctx, req.(*GetRolesRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _RoleService_GetRolesByProject_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetRolesByProjectRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(RoleServiceServer).GetRolesByProject(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: RoleService_GetRolesByProject_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(RoleServiceServer).GetRolesByProject(ctx, req.(*GetRolesByProjectRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _RoleService_GetRoleById_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetRoleByIdRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(RoleServiceServer).GetRoleById(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: RoleService_GetRoleById_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(RoleServiceServer).GetRoleById(ctx, req.(*GetRoleByIdRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _RoleService_GetRoleByName_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetRoleByNameRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(RoleServiceServer).GetRoleByName(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: RoleService_GetRoleByName_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(RoleServiceServer).GetRoleByName(ctx, req.(*GetRoleByNameRequest)) - } - return interceptor(ctx, in, info, handler) -} - -// RoleService_ServiceDesc is the grpc.ServiceDesc for RoleService service. -// It's only intended for direct use with grpc.RegisterService, -// and not to be introspected or modified (even as a copy) -var RoleService_ServiceDesc = grpc.ServiceDesc{ - ServiceName: "mediator.v1.RoleService", - HandlerType: (*RoleServiceServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "CreateRoleByOrganization", - Handler: _RoleService_CreateRoleByOrganization_Handler, - }, - { - MethodName: "CreateRoleByProject", - Handler: _RoleService_CreateRoleByProject_Handler, - }, - { - MethodName: "DeleteRole", - Handler: _RoleService_DeleteRole_Handler, - }, - { - MethodName: "GetRoles", - Handler: _RoleService_GetRoles_Handler, - }, - { - MethodName: "GetRolesByProject", - Handler: _RoleService_GetRolesByProject_Handler, - }, - { - MethodName: "GetRoleById", - Handler: _RoleService_GetRoleById_Handler, - }, - { - MethodName: "GetRoleByName", - Handler: _RoleService_GetRoleByName_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "mediator/v1/mediator.proto", -} - -const ( - UserService_CreateUser_FullMethodName = "/mediator.v1.UserService/CreateUser" - UserService_DeleteUser_FullMethodName = "/mediator.v1.UserService/DeleteUser" - UserService_GetUsers_FullMethodName = "/mediator.v1.UserService/GetUsers" - UserService_GetUsersByOrganization_FullMethodName = "/mediator.v1.UserService/GetUsersByOrganization" - UserService_GetUsersByProject_FullMethodName = "/mediator.v1.UserService/GetUsersByProject" - UserService_GetUserById_FullMethodName = "/mediator.v1.UserService/GetUserById" - UserService_GetUserBySubject_FullMethodName = "/mediator.v1.UserService/GetUserBySubject" - UserService_GetUser_FullMethodName = "/mediator.v1.UserService/GetUser" + UserService_CreateUser_FullMethodName = "/mediator.v1.UserService/CreateUser" + UserService_DeleteUser_FullMethodName = "/mediator.v1.UserService/DeleteUser" + UserService_GetUser_FullMethodName = "/mediator.v1.UserService/GetUser" ) // UserServiceClient is the client API for UserService service. @@ -1955,11 +1162,6 @@ const ( type UserServiceClient interface { CreateUser(ctx context.Context, in *CreateUserRequest, opts ...grpc.CallOption) (*CreateUserResponse, error) DeleteUser(ctx context.Context, in *DeleteUserRequest, opts ...grpc.CallOption) (*DeleteUserResponse, error) - GetUsers(ctx context.Context, in *GetUsersRequest, opts ...grpc.CallOption) (*GetUsersResponse, error) - GetUsersByOrganization(ctx context.Context, in *GetUsersByOrganizationRequest, opts ...grpc.CallOption) (*GetUsersByOrganizationResponse, error) - GetUsersByProject(ctx context.Context, in *GetUsersByProjectRequest, opts ...grpc.CallOption) (*GetUsersByProjectResponse, error) - GetUserById(ctx context.Context, in *GetUserByIdRequest, opts ...grpc.CallOption) (*GetUserByIdResponse, error) - GetUserBySubject(ctx context.Context, in *GetUserBySubjectRequest, opts ...grpc.CallOption) (*GetUserBySubjectResponse, error) GetUser(ctx context.Context, in *GetUserRequest, opts ...grpc.CallOption) (*GetUserResponse, error) } @@ -1989,51 +1191,6 @@ func (c *userServiceClient) DeleteUser(ctx context.Context, in *DeleteUserReques return out, nil } -func (c *userServiceClient) GetUsers(ctx context.Context, in *GetUsersRequest, opts ...grpc.CallOption) (*GetUsersResponse, error) { - out := new(GetUsersResponse) - err := c.cc.Invoke(ctx, UserService_GetUsers_FullMethodName, in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *userServiceClient) GetUsersByOrganization(ctx context.Context, in *GetUsersByOrganizationRequest, opts ...grpc.CallOption) (*GetUsersByOrganizationResponse, error) { - out := new(GetUsersByOrganizationResponse) - err := c.cc.Invoke(ctx, UserService_GetUsersByOrganization_FullMethodName, in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *userServiceClient) GetUsersByProject(ctx context.Context, in *GetUsersByProjectRequest, opts ...grpc.CallOption) (*GetUsersByProjectResponse, error) { - out := new(GetUsersByProjectResponse) - err := c.cc.Invoke(ctx, UserService_GetUsersByProject_FullMethodName, in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *userServiceClient) GetUserById(ctx context.Context, in *GetUserByIdRequest, opts ...grpc.CallOption) (*GetUserByIdResponse, error) { - out := new(GetUserByIdResponse) - err := c.cc.Invoke(ctx, UserService_GetUserById_FullMethodName, in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *userServiceClient) GetUserBySubject(ctx context.Context, in *GetUserBySubjectRequest, opts ...grpc.CallOption) (*GetUserBySubjectResponse, error) { - out := new(GetUserBySubjectResponse) - err := c.cc.Invoke(ctx, UserService_GetUserBySubject_FullMethodName, in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - func (c *userServiceClient) GetUser(ctx context.Context, in *GetUserRequest, opts ...grpc.CallOption) (*GetUserResponse, error) { out := new(GetUserResponse) err := c.cc.Invoke(ctx, UserService_GetUser_FullMethodName, in, out, opts...) @@ -2049,11 +1206,6 @@ func (c *userServiceClient) GetUser(ctx context.Context, in *GetUserRequest, opt type UserServiceServer interface { CreateUser(context.Context, *CreateUserRequest) (*CreateUserResponse, error) DeleteUser(context.Context, *DeleteUserRequest) (*DeleteUserResponse, error) - GetUsers(context.Context, *GetUsersRequest) (*GetUsersResponse, error) - GetUsersByOrganization(context.Context, *GetUsersByOrganizationRequest) (*GetUsersByOrganizationResponse, error) - GetUsersByProject(context.Context, *GetUsersByProjectRequest) (*GetUsersByProjectResponse, error) - GetUserById(context.Context, *GetUserByIdRequest) (*GetUserByIdResponse, error) - GetUserBySubject(context.Context, *GetUserBySubjectRequest) (*GetUserBySubjectResponse, error) GetUser(context.Context, *GetUserRequest) (*GetUserResponse, error) mustEmbedUnimplementedUserServiceServer() } @@ -2068,21 +1220,6 @@ func (UnimplementedUserServiceServer) CreateUser(context.Context, *CreateUserReq func (UnimplementedUserServiceServer) DeleteUser(context.Context, *DeleteUserRequest) (*DeleteUserResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method DeleteUser not implemented") } -func (UnimplementedUserServiceServer) GetUsers(context.Context, *GetUsersRequest) (*GetUsersResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetUsers not implemented") -} -func (UnimplementedUserServiceServer) GetUsersByOrganization(context.Context, *GetUsersByOrganizationRequest) (*GetUsersByOrganizationResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetUsersByOrganization not implemented") -} -func (UnimplementedUserServiceServer) GetUsersByProject(context.Context, *GetUsersByProjectRequest) (*GetUsersByProjectResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetUsersByProject not implemented") -} -func (UnimplementedUserServiceServer) GetUserById(context.Context, *GetUserByIdRequest) (*GetUserByIdResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetUserById not implemented") -} -func (UnimplementedUserServiceServer) GetUserBySubject(context.Context, *GetUserBySubjectRequest) (*GetUserBySubjectResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetUserBySubject not implemented") -} func (UnimplementedUserServiceServer) GetUser(context.Context, *GetUserRequest) (*GetUserResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetUser not implemented") } @@ -2135,96 +1272,6 @@ func _UserService_DeleteUser_Handler(srv interface{}, ctx context.Context, dec f return interceptor(ctx, in, info, handler) } -func _UserService_GetUsers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetUsersRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(UserServiceServer).GetUsers(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: UserService_GetUsers_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(UserServiceServer).GetUsers(ctx, req.(*GetUsersRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _UserService_GetUsersByOrganization_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetUsersByOrganizationRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(UserServiceServer).GetUsersByOrganization(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: UserService_GetUsersByOrganization_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(UserServiceServer).GetUsersByOrganization(ctx, req.(*GetUsersByOrganizationRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _UserService_GetUsersByProject_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetUsersByProjectRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(UserServiceServer).GetUsersByProject(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: UserService_GetUsersByProject_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(UserServiceServer).GetUsersByProject(ctx, req.(*GetUsersByProjectRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _UserService_GetUserById_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetUserByIdRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(UserServiceServer).GetUserById(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: UserService_GetUserById_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(UserServiceServer).GetUserById(ctx, req.(*GetUserByIdRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _UserService_GetUserBySubject_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetUserBySubjectRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(UserServiceServer).GetUserBySubject(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: UserService_GetUserBySubject_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(UserServiceServer).GetUserBySubject(ctx, req.(*GetUserBySubjectRequest)) - } - return interceptor(ctx, in, info, handler) -} - func _UserService_GetUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetUserRequest) if err := dec(in); err != nil { @@ -2258,26 +1305,6 @@ var UserService_ServiceDesc = grpc.ServiceDesc{ MethodName: "DeleteUser", Handler: _UserService_DeleteUser_Handler, }, - { - MethodName: "GetUsers", - Handler: _UserService_GetUsers_Handler, - }, - { - MethodName: "GetUsersByOrganization", - Handler: _UserService_GetUsersByOrganization_Handler, - }, - { - MethodName: "GetUsersByProject", - Handler: _UserService_GetUsersByProject_Handler, - }, - { - MethodName: "GetUserById", - Handler: _UserService_GetUserById_Handler, - }, - { - MethodName: "GetUserBySubject", - Handler: _UserService_GetUserBySubject_Handler, - }, { MethodName: "GetUser", Handler: _UserService_GetUser_Handler, diff --git a/proto/mediator/v1/mediator.proto b/proto/mediator/v1/mediator.proto index c0ab380ba1..05e98f2c8f 100644 --- a/proto/mediator/v1/mediator.proto +++ b/proto/mediator/v1/mediator.proto @@ -374,205 +374,6 @@ service BranchProtectionService { } } -// manage Organizations CRUD -service OrganizationService { - rpc CreateOrganization (CreateOrganizationRequest) returns (CreateOrganizationResponse) { - option (google.api.http) = { - post: "/api/v1/organization" - body: "*" - }; - - option (rpc_options) = { - root_admin_only: true - }; - } - - rpc GetOrganizations (GetOrganizationsRequest) returns (GetOrganizationsResponse) { - option (google.api.http) = { - get: "/api/v1/organizations" - }; - - option (rpc_options) = { - root_admin_only: true - }; - } - - rpc GetOrganization (GetOrganizationRequest) returns (GetOrganizationResponse) { - option (google.api.http) = { - get: "/api/v1/organizations/{organization_id}" - }; - - option (rpc_options) = { - auth_scope: OBJECT_OWNER_ORGANIZATION - owner_only: true - }; - - } - - rpc GetOrganizationByName (GetOrganizationByNameRequest) returns (GetOrganizationByNameResponse) { - option (google.api.http) = { - get: "/api/v1/organizations/name/{name}" - }; - - option (rpc_options) = { - auth_scope: OBJECT_OWNER_ORGANIZATION - owner_only: false - }; - } - - rpc DeleteOrganization (DeleteOrganizationRequest) returns (DeleteOrganizationResponse) { - option (google.api.http) = { - delete: "/api/v1/organization/{id}" - }; - - option (rpc_options) = { - root_admin_only: true - }; - } - -} - -// manage Projects CRUD -service ProjectService { - rpc CreateProject (CreateProjectRequest) returns (CreateProjectResponse) { - option (google.api.http) = { - post: "/api/v1/project" - body: "*" - }; - - option (rpc_options) = { - auth_scope: OBJECT_OWNER_ORGANIZATION - owner_only: true - }; - } - - rpc GetProjects (GetProjectsRequest) returns (GetProjectsResponse) { - option (google.api.http) = { - get: "/api/v1/projects/{organization_id}" - }; - - option (rpc_options) = { - auth_scope: OBJECT_OWNER_ORGANIZATION - owner_only: true - }; - } - - rpc GetProjectByName (GetProjectByNameRequest) returns (GetProjectByNameResponse) { - option (google.api.http) = { - get: "/api/v1/project/name/{name}" - }; - - option (rpc_options) = { - auth_scope: OBJECT_OWNER_ORGANIZATION - owner_only: true - }; - } - - rpc GetProjectById (GetProjectByIdRequest) returns (GetProjectByIdResponse) { - option (google.api.http) = { - get: "/api/v1/project/id/{project_id}" - }; - - option (rpc_options) = { - auth_scope: OBJECT_OWNER_ORGANIZATION - owner_only: true - }; - } - - rpc DeleteProject (DeleteProjectRequest) returns (DeleteProjectResponse) { - option (google.api.http) = { - delete: "/api/v1/project/{id}" - }; - - option (rpc_options) = { - auth_scope: OBJECT_OWNER_ORGANIZATION - owner_only: true - }; - } -} - -// manage Roles CRUD -service RoleService { - rpc CreateRoleByOrganization (CreateRoleByOrganizationRequest) returns (CreateRoleByOrganizationResponse) { - option (google.api.http) = { - post: "/api/v1/role/organization" - body: "*" - }; - - option (rpc_options) = { - auth_scope: OBJECT_OWNER_ORGANIZATION - owner_only: true - }; - } - rpc CreateRoleByProject (CreateRoleByProjectRequest) returns (CreateRoleByProjectResponse) { - option (google.api.http) = { - post: "/api/v1/role/project" - body: "*" - }; - - option (rpc_options) = { - auth_scope: OBJECT_OWNER_PROJECT - owner_only: true - }; - } - - rpc DeleteRole (DeleteRoleRequest) returns (DeleteRoleResponse) { - option (google.api.http) = { - delete: "/api/v1/role/{id}" - }; - - option (rpc_options) = { - auth_scope: OBJECT_OWNER_ORGANIZATION - owner_only: true - }; - } - - rpc GetRoles (GetRolesRequest) returns (GetRolesResponse) { - option (google.api.http) = { - get: "/api/v1/roles/{organization_id}" - }; - - option (rpc_options) = { - auth_scope: OBJECT_OWNER_ORGANIZATION - owner_only: true - }; - } - - rpc GetRolesByProject (GetRolesByProjectRequest) returns (GetRolesByProjectResponse) { - option (google.api.http) = { - get: "/api/v1/roles/project/{project_id}" - }; - - option (rpc_options) = { - auth_scope: OBJECT_OWNER_PROJECT - owner_only: true - }; - } - - rpc GetRoleById (GetRoleByIdRequest) returns (GetRoleByIdResponse) { - option (google.api.http) = { - get: "/api/v1/role/{id}" - }; - - option (rpc_options) = { - auth_scope: OBJECT_OWNER_ORGANIZATION - owner_only: true - }; - } - - rpc GetRoleByName (GetRoleByNameRequest) returns (GetRoleByNameResponse) { - option (google.api.http) = { - get: "/api/v1/role/name/{name}" - }; - - option (rpc_options) = { - auth_scope: OBJECT_OWNER_ORGANIZATION - owner_only: true - }; - } - -} - // manage Users CRUD service UserService { rpc CreateUser (CreateUserRequest) returns (CreateUserResponse) { @@ -598,60 +399,6 @@ service UserService { }; } - rpc GetUsers (GetUsersRequest) returns (GetUsersResponse) { - option (google.api.http) = { - get: "/api/v1/users" - }; - - option (rpc_options) = { - root_admin_only: true - }; - } - - rpc GetUsersByOrganization (GetUsersByOrganizationRequest) returns (GetUsersByOrganizationResponse) { - option (google.api.http) = { - get: "/api/v1/users/{organization_id}" - }; - - option (rpc_options) = { - auth_scope: OBJECT_OWNER_ORGANIZATION - owner_only: true - }; - } - - rpc GetUsersByProject (GetUsersByProjectRequest) returns (GetUsersByProjectResponse) { - option (google.api.http) = { - get: "/api/v1/users/{project_id}" - }; - - option (rpc_options) = { - auth_scope: OBJECT_OWNER_PROJECT - owner_only: true - }; - } - - rpc GetUserById (GetUserByIdRequest) returns (GetUserByIdResponse) { - option (google.api.http) = { - get: "/api/v1/user/{user_id}" - }; - - option (rpc_options) = { - auth_scope: OBJECT_OWNER_USER - owner_only: true - }; - } - - rpc GetUserBySubject (GetUserBySubjectRequest) returns (GetUserBySubjectResponse) { - option (google.api.http) = { - get: "/api/v1/user/subject/{subject}" - }; - - option (rpc_options) = { - auth_scope: OBJECT_OWNER_ORGANIZATION - owner_only: true - }; - } - rpc GetUser (GetUserRequest) returns (GetUserResponse) { option (google.api.http) = { get: "/api/v1/user" @@ -909,6 +656,18 @@ message RefreshTokenResponse { int64 access_token_expires_in = 3; } +// Project API Objects +message Project { + string project_id = 1; + string name = 3; + string description = 4; + bool is_protected = 5; + google.protobuf.Timestamp created_at = 6; + google.protobuf.Timestamp updated_at = 7; +} + +// Repositories API objects + message SyncRepositoriesRequest { string provider = 1; string project_id = 2; @@ -1082,252 +841,6 @@ message GetBranchProtectionResponse { repeated BranchProtection branch_protections = 1; } -// Organization service -message CreateOrganizationRequest { - string name = 1; - string company = 2; - bool create_default_records = 3; - } - -message CreateOrganizationResponse { - string id = 1; - string name = 2; - string company = 3; - google.protobuf.Timestamp created_at = 5; - google.protobuf.Timestamp updated_at = 6; - optional ProjectRecord default_project = 7; - repeated RoleRecord default_roles = 8; - optional UserRecord default_user = 9; -} - -message OrganizationRecord { - string id = 1; - string name = 2; - string company = 3; - google.protobuf.Timestamp created_at = 5; - google.protobuf.Timestamp updated_at = 6; -} - -// DeleteOrganizationRequest represents a request to delete a organization -message DeleteOrganizationRequest { - string id = 1; - optional bool force = 2; -} - -// DeleteOrganizationResponse represents a response to a delete organization request -message DeleteOrganizationResponse { - -} - -// list organizations -message GetOrganizationsRequest { - optional int32 limit = 1; - optional int32 offset = 2; -} - -message GetOrganizationsResponse { - repeated OrganizationRecord organizations = 1; -} - -// get organization by id -message GetOrganizationRequest { - string organization_id = 1; -} - -message GetOrganizationResponse { - optional OrganizationRecord organization = 1; - repeated ProjectRecord projects = 2; - repeated RoleRecord roles = 3; - repeated UserRecord users = 4; -} - -// get organization by name -message GetOrganizationByNameRequest { - string name = 1; -} - -message GetOrganizationByNameResponse { - optional OrganizationRecord organization = 1; - repeated ProjectRecord projects = 2; - repeated RoleRecord roles = 3; - repeated UserRecord users = 4; -} - -// Project service - -// The CreateProjectRequest message represents a request to create a project -message CreateProjectRequest { - string organization_id = 1; - string name = 2; - string description = 3; - optional bool is_protected = 4; -} - -// The GetProjectByNameRequest message represents a request to get a project by name -message GetProjectByNameRequest { - string name = 1; -} - -// The GetProjectByIdRequest message represents a request to get a project by ID -message GetProjectByIdRequest { - string project_id = 1; -} - -// The GetProjectsRequest message represents a request to get an array of projects -message GetProjectsRequest { - string organization_id = 1; - int32 limit = 2; - int32 offset = 3; -} - -// BUF does not allow grouping (which is a shame) -message ProjectRecord { - string project_id = 1; - string organization_id = 2; - string name = 3; - string description = 4; - bool is_protected = 5; - google.protobuf.Timestamp created_at = 6; - google.protobuf.Timestamp updated_at = 7; -} - -message CreateProjectResponse { - string project_id = 1; - string organization_id = 2; - string name = 3; - string description = 4; - bool is_protected = 5; - google.protobuf.Timestamp created_at = 6; - google.protobuf.Timestamp updated_at = 7; -} - -message GetProjectByNameResponse { - optional ProjectRecord project = 1; - repeated RoleRecord roles = 2; - repeated UserRecord users = 3; -} - -message GetProjectByIdResponse { - optional ProjectRecord project = 1; - repeated RoleRecord roles = 2; - repeated UserRecord users = 3; -} - -// The GetProjectsResponse message represents a response with an array of projects -message GetProjectsResponse { - repeated ProjectRecord projects = 1; -} - -// DeleteProjectRequest represents a request to delete a project -message DeleteProjectRequest { - string id = 1; - optional bool force = 2; -} - -// DeleteProjectResponse represents a response to a delete project request -message DeleteProjectResponse { - -} - -// Role service -message CreateRoleByOrganizationRequest { - string organization_id = 1; - string name = 3; - optional bool is_admin = 4; - optional bool is_protected = 5; - } - -message CreateRoleByOrganizationResponse { - int32 id = 1; - string organization_id = 2; - string name = 4; - bool is_admin = 5; - bool is_protected = 6; - google.protobuf.Timestamp created_at = 7; - google.protobuf.Timestamp updated_at = 8; -} - -message CreateRoleByProjectRequest { - string organization_id = 1; - string project_id = 2; - string name = 3; - optional bool is_admin = 4; - optional bool is_protected = 5; - } - -message CreateRoleByProjectResponse { - int32 id = 1; - string organization_id = 2; - string project_id = 3; - string name = 4; - bool is_admin = 5; - bool is_protected = 6; - google.protobuf.Timestamp created_at = 7; - google.protobuf.Timestamp updated_at = 8; -} - -// delete role -message DeleteRoleRequest { - int32 id = 1; - optional bool force = 2; -} - -message DeleteRoleResponse { - -} - -message RoleRecord { - int32 id = 1; - string organization_id = 2; - optional string project_id = 3; - string name = 4; - bool is_admin = 5; - bool is_protected = 6; - google.protobuf.Timestamp created_at = 7; - google.protobuf.Timestamp updated_at = 8; -} - -// list roles -message GetRolesRequest { - string organization_id = 1; - optional int32 limit = 2; - optional int32 offset = 3; -} - -message GetRolesResponse { - repeated RoleRecord roles = 1; -} - -message GetRolesByProjectRequest { - string project_id = 1; - optional int32 limit = 2; - optional int32 offset = 3; -} - -message GetRolesByProjectResponse { - repeated RoleRecord roles = 1; -} - -// get role by id -message GetRoleByIdRequest { - int32 id = 1; -} - -message GetRoleByIdResponse { - optional RoleRecord role = 1; -} - -// get role by project and name -message GetRoleByNameRequest { - string organization_id = 1; - string name = 2; -} - -message GetRoleByNameResponse { - optional RoleRecord role = 1; -} - - // User service message CreateUserRequest { } @@ -1365,65 +878,13 @@ message UserRecord { } // list users -message GetUsersRequest { - optional int32 limit = 3; - optional int32 offset = 4; -} - -message GetUsersResponse { - repeated UserRecord users = 1; -} - -message GetUsersByOrganizationRequest { - string organization_id = 1; - optional int32 limit = 2; - optional int32 offset = 3; -} - -message GetUsersByOrganizationResponse { - repeated UserRecord users = 1; -} - -message GetUsersByProjectRequest { - string project_id = 1; - optional int32 limit = 2; - optional int32 offset = 3; -} - -message GetUsersByProjectResponse { - repeated UserRecord users = 1; -} - -// get user by id -message GetUserByIdRequest { - int32 user_id = 1; -} - -message GetUserByIdResponse { - optional UserRecord user = 1; - repeated ProjectRecord projects = 2; - repeated RoleRecord roles = 3; -} - -// get user by subject -message GetUserBySubjectRequest { - string subject = 1; -} - -message GetUserBySubjectResponse { - optional UserRecord user = 1; - repeated ProjectRecord projects = 2; - repeated RoleRecord roles = 3; -} - // get user message GetUserRequest { } message GetUserResponse { optional UserRecord user = 1; - repeated ProjectRecord projects = 2; - repeated RoleRecord roles = 3; + repeated Project projects = 2; } // Profile service