From b494c8a7af583fbc577e3a223a9ca7d11cc13740 Mon Sep 17 00:00:00 2001 From: Aditya Hegde Date: Fri, 21 Feb 2025 17:46:07 +0530 Subject: [PATCH 1/4] Use cached plan details for page load --- admin/billing/biller.go | 1 + admin/billing/noop.go | 4 + admin/billing/orb.go | 28 +- admin/server/organizations.go | 5 +- proto/gen/rill/admin/v1/admin.swagger.yaml | 4 +- proto/gen/rill/admin/v1/api.pb.go | 667 +++++++++--------- proto/gen/rill/admin/v1/api.pb.validate.go | 4 +- proto/rill/admin/v1/api.proto | 2 +- web-admin/src/client/gen/index.schemas.ts | 2 +- web-admin/src/features/billing/Payment.svelte | 5 +- .../billing/issues/useBillingIssueMessage.ts | 20 +- .../src/features/billing/plans/Plan.svelte | 4 +- .../src/features/billing/plans/selectors.ts | 2 +- web-admin/src/features/billing/plans/utils.ts | 23 +- .../navigation/TopNavigationBar.svelte | 13 +- web-admin/src/routes/+layout.svelte | 3 +- web-admin/src/routes/+layout.ts | 4 + .../[organization]/-/settings/+layout.svelte | 3 +- .../[organization]/-/settings/usage/+page.ts | 2 +- .../src/proto/gen/rill/admin/v1/api_pb.ts | 6 +- 20 files changed, 406 insertions(+), 396 deletions(-) diff --git a/admin/billing/biller.go b/admin/billing/biller.go index 53cb59f0653..60deeb0bed6 100644 --- a/admin/billing/biller.go +++ b/admin/billing/biller.go @@ -27,6 +27,7 @@ type Biller interface { GetPlan(ctx context.Context, id string) (*Plan, error) // GetPlanByName returns the plan with the given Rill plan name. GetPlanByName(ctx context.Context, name string) (*Plan, error) + GetPlanTypeForExternalId(externalID string) PlanType // CreateCustomer creates a customer for the given organization in the billing system and returns the external customer ID. CreateCustomer(ctx context.Context, organization *database.Organization, provider PaymentProvider) (*Customer, error) diff --git a/admin/billing/noop.go b/admin/billing/noop.go index a7ea744641f..963deba77d7 100644 --- a/admin/billing/noop.go +++ b/admin/billing/noop.go @@ -37,6 +37,10 @@ func (n noop) GetPlanByName(ctx context.Context, name string) (*Plan, error) { return nil, nil } +func (n noop) GetPlanTypeForExternalId(externalID string) PlanType { + return TrailPlanType +} + func (n noop) GetPublicPlans(ctx context.Context) ([]*Plan, error) { return nil, nil } diff --git a/admin/billing/orb.go b/admin/billing/orb.go index 7d1f2b6bf4f..f53ef0344e4 100644 --- a/admin/billing/orb.go +++ b/admin/billing/orb.go @@ -110,6 +110,19 @@ func (o *Orb) GetPlanByName(ctx context.Context, name string) (*Plan, error) { return nil, ErrNotFound } +func (o *Orb) GetPlanTypeForExternalId(externalID string) PlanType { + switch externalID { + case "free_trial": + return TrailPlanType + case "team": + return TeamPlanType + case "managed": + return ManagedPlanType + default: + return EnterprisePlanType + } +} + func (o *Orb) CreateCustomer(ctx context.Context, organization *database.Organization, provider PaymentProvider) (*Customer, error) { var paymentProviderType orb.CustomerNewParamsPaymentProvider switch provider { @@ -568,7 +581,7 @@ func (o *Orb) getBillingPlanFromOrbPlan(ctx context.Context, p *orb.Plan) (*Plan billingPlan := &Plan{ ID: p.ID, Name: p.ExternalPlanID, - PlanType: getPlanType(p.ExternalPlanID), + PlanType: o.GetPlanTypeForExternalId(p.ExternalPlanID), DisplayName: getPlanDisplayName(p.ExternalPlanID), Description: p.Description, TrialPeriodDays: trialPeriodDays, @@ -622,19 +635,6 @@ func getBillingInvoiceFromOrbInvoice(i *orb.Invoice) *Invoice { } } -func getPlanType(externalID string) PlanType { - switch externalID { - case "free_trial": - return TrailPlanType - case "team": - return TeamPlanType - case "managed": - return ManagedPlanType - default: - return EnterprisePlanType - } -} - func getPlanDisplayName(externalID string) string { switch externalID { case "free_trial": diff --git a/admin/server/organizations.go b/admin/server/organizations.go index 03f8d37f9ed..fbba3262668 100644 --- a/admin/server/organizations.go +++ b/admin/server/organizations.go @@ -1002,7 +1002,10 @@ func (s *Server) organizationToDTO(o *database.Organization, privileged bool) *a res.BillingCustomerId = o.BillingCustomerID res.PaymentCustomerId = o.PaymentCustomerID res.BillingEmail = o.BillingEmail - res.BillingPlanName = o.BillingPlanName + if o.BillingPlanName != nil { + planType := planTypeToDTO(s.admin.Biller.GetPlanTypeForExternalId(*o.BillingPlanName)) + res.BillingPlanType = &planType + } res.BillingPlanDisplayName = o.BillingPlanDisplayName } diff --git a/proto/gen/rill/admin/v1/admin.swagger.yaml b/proto/gen/rill/admin/v1/admin.swagger.yaml index 5aafbbd163d..e5778cb7e2d 100644 --- a/proto/gen/rill/admin/v1/admin.swagger.yaml +++ b/proto/gen/rill/admin/v1/admin.swagger.yaml @@ -4684,8 +4684,8 @@ definitions: type: string billingEmail: type: string - billingPlanName: - type: string + billingPlanType: + $ref: '#/definitions/v1BillingPlanType' billingPlanDisplayName: type: string createdOn: diff --git a/proto/gen/rill/admin/v1/api.pb.go b/proto/gen/rill/admin/v1/api.pb.go index eef286a6954..959f01f216d 100644 --- a/proto/gen/rill/admin/v1/api.pb.go +++ b/proto/gen/rill/admin/v1/api.pb.go @@ -15120,7 +15120,7 @@ type Organization struct { BillingCustomerId string `protobuf:"bytes,7,opt,name=billing_customer_id,json=billingCustomerId,proto3" json:"billing_customer_id,omitempty"` PaymentCustomerId string `protobuf:"bytes,8,opt,name=payment_customer_id,json=paymentCustomerId,proto3" json:"payment_customer_id,omitempty"` BillingEmail string `protobuf:"bytes,9,opt,name=billing_email,json=billingEmail,proto3" json:"billing_email,omitempty"` - BillingPlanName *string `protobuf:"bytes,14,opt,name=billing_plan_name,json=billingPlanName,proto3,oneof" json:"billing_plan_name,omitempty"` + BillingPlanType *BillingPlanType `protobuf:"varint,14,opt,name=billing_plan_type,json=billingPlanType,proto3,enum=rill.admin.v1.BillingPlanType,oneof" json:"billing_plan_type,omitempty"` BillingPlanDisplayName *string `protobuf:"bytes,15,opt,name=billing_plan_display_name,json=billingPlanDisplayName,proto3,oneof" json:"billing_plan_display_name,omitempty"` CreatedOn *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=created_on,json=createdOn,proto3" json:"created_on,omitempty"` UpdatedOn *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=updated_on,json=updatedOn,proto3" json:"updated_on,omitempty"` @@ -15235,11 +15235,11 @@ func (x *Organization) GetBillingEmail() string { return "" } -func (x *Organization) GetBillingPlanName() string { - if x != nil && x.BillingPlanName != nil { - return *x.BillingPlanName +func (x *Organization) GetBillingPlanType() BillingPlanType { + if x != nil && x.BillingPlanType != nil { + return *x.BillingPlanType } - return "" + return BillingPlanType_BILLING_PLAN_TYPE_UNSPECIFIED } func (x *Organization) GetBillingPlanDisplayName() string { @@ -20295,7 +20295,7 @@ var file_rill_admin_v1_api_proto_rawDesc = []byte{ 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 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, 0x4f, 0x6e, 0x22, 0xb3, 0x05, 0x0a, 0x0c, 0x4f, + 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x22, 0xd3, 0x05, 0x0a, 0x0c, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 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, @@ -20321,10 +20321,12 @@ var file_rill_admin_v1_api_proto_rawDesc = []byte{ 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, - 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x2f, 0x0a, 0x11, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, - 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x00, 0x52, 0x0f, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x6e, 0x4e, - 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x19, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, + 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x4f, 0x0a, 0x11, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, + 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x1e, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x6e, 0x54, 0x79, 0x70, 0x65, + 0x48, 0x00, 0x52, 0x0f, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x6e, 0x54, + 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x19, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x16, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x6e, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, @@ -20336,8 +20338,8 @@ var file_rill_admin_v1_api_proto_rawDesc = []byte{ 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, 0x4f, 0x6e, 0x42, 0x14, 0x0a, 0x12, - 0x5f, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x70, + 0x5f, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xc6, 0x03, 0x0a, 0x0c, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, @@ -22805,326 +22807,327 @@ var file_rill_admin_v1_api_proto_depIdxs = []int32{ 311, // 98: rill.admin.v1.Service.created_on:type_name -> google.protobuf.Timestamp 311, // 99: rill.admin.v1.Service.updated_on:type_name -> google.protobuf.Timestamp 270, // 100: rill.admin.v1.Organization.quotas:type_name -> rill.admin.v1.OrganizationQuotas - 311, // 101: rill.admin.v1.Organization.created_on:type_name -> google.protobuf.Timestamp - 311, // 102: rill.admin.v1.Organization.updated_on:type_name -> google.protobuf.Timestamp - 285, // 103: rill.admin.v1.Subscription.plan:type_name -> rill.admin.v1.BillingPlan - 311, // 104: rill.admin.v1.Subscription.start_date:type_name -> google.protobuf.Timestamp - 311, // 105: rill.admin.v1.Subscription.end_date:type_name -> google.protobuf.Timestamp - 311, // 106: rill.admin.v1.Subscription.current_billing_cycle_start_date:type_name -> google.protobuf.Timestamp - 311, // 107: rill.admin.v1.Subscription.current_billing_cycle_end_date:type_name -> google.protobuf.Timestamp - 311, // 108: rill.admin.v1.Subscription.trial_end_date:type_name -> google.protobuf.Timestamp - 310, // 109: rill.admin.v1.Project.annotations:type_name -> rill.admin.v1.Project.AnnotationsEntry - 311, // 110: rill.admin.v1.Project.created_on:type_name -> google.protobuf.Timestamp - 311, // 111: rill.admin.v1.Project.updated_on:type_name -> google.protobuf.Timestamp - 1, // 112: rill.admin.v1.Deployment.status:type_name -> rill.admin.v1.DeploymentStatus - 311, // 113: rill.admin.v1.Deployment.created_on:type_name -> google.protobuf.Timestamp - 311, // 114: rill.admin.v1.Deployment.updated_on:type_name -> google.protobuf.Timestamp - 312, // 115: rill.admin.v1.ProvisionerResource.args:type_name -> google.protobuf.Struct - 312, // 116: rill.admin.v1.ProvisionerResource.config:type_name -> google.protobuf.Struct - 311, // 117: rill.admin.v1.MemberUser.created_on:type_name -> google.protobuf.Timestamp - 311, // 118: rill.admin.v1.MemberUser.updated_on:type_name -> google.protobuf.Timestamp - 311, // 119: rill.admin.v1.Bookmark.created_on:type_name -> google.protobuf.Timestamp - 311, // 120: rill.admin.v1.Bookmark.updated_on:type_name -> google.protobuf.Timestamp - 311, // 121: rill.admin.v1.ServiceToken.created_on:type_name -> google.protobuf.Timestamp - 311, // 122: rill.admin.v1.ServiceToken.expires_on:type_name -> google.protobuf.Timestamp - 311, // 123: rill.admin.v1.MagicAuthToken.created_on:type_name -> google.protobuf.Timestamp - 311, // 124: rill.admin.v1.MagicAuthToken.expires_on:type_name -> google.protobuf.Timestamp - 311, // 125: rill.admin.v1.MagicAuthToken.used_on:type_name -> google.protobuf.Timestamp - 312, // 126: rill.admin.v1.MagicAuthToken.attributes:type_name -> google.protobuf.Struct - 313, // 127: rill.admin.v1.MagicAuthToken.filter:type_name -> rill.runtime.v1.Expression - 311, // 128: rill.admin.v1.VirtualFile.updated_on:type_name -> google.protobuf.Timestamp - 314, // 129: rill.admin.v1.ReportOptions.export_format:type_name -> rill.runtime.v1.ExportFormat - 312, // 130: rill.admin.v1.AlertOptions.resolver_properties:type_name -> google.protobuf.Struct - 2, // 131: rill.admin.v1.BillingPlan.plan_type:type_name -> rill.admin.v1.BillingPlanType - 286, // 132: rill.admin.v1.BillingPlan.quotas:type_name -> rill.admin.v1.Quotas - 311, // 133: rill.admin.v1.Usergroup.created_on:type_name -> google.protobuf.Timestamp - 311, // 134: rill.admin.v1.Usergroup.updated_on:type_name -> google.protobuf.Timestamp - 311, // 135: rill.admin.v1.MemberUsergroup.created_on:type_name -> google.protobuf.Timestamp - 311, // 136: rill.admin.v1.MemberUsergroup.updated_on:type_name -> google.protobuf.Timestamp - 3, // 137: rill.admin.v1.BillingIssue.type:type_name -> rill.admin.v1.BillingIssueType - 4, // 138: rill.admin.v1.BillingIssue.level:type_name -> rill.admin.v1.BillingIssueLevel - 290, // 139: rill.admin.v1.BillingIssue.metadata:type_name -> rill.admin.v1.BillingIssueMetadata - 311, // 140: rill.admin.v1.BillingIssue.event_time:type_name -> google.protobuf.Timestamp - 311, // 141: rill.admin.v1.BillingIssue.created_on:type_name -> google.protobuf.Timestamp - 291, // 142: rill.admin.v1.BillingIssueMetadata.on_trial:type_name -> rill.admin.v1.BillingIssueMetadataOnTrial - 292, // 143: rill.admin.v1.BillingIssueMetadata.trial_ended:type_name -> rill.admin.v1.BillingIssueMetadataTrialEnded - 293, // 144: rill.admin.v1.BillingIssueMetadata.no_payment_method:type_name -> rill.admin.v1.BillingIssueMetadataNoPaymentMethod - 294, // 145: rill.admin.v1.BillingIssueMetadata.no_billable_address:type_name -> rill.admin.v1.BillingIssueMetadataNoBillableAddress - 295, // 146: rill.admin.v1.BillingIssueMetadata.payment_failed:type_name -> rill.admin.v1.BillingIssueMetadataPaymentFailed - 297, // 147: rill.admin.v1.BillingIssueMetadata.subscription_cancelled:type_name -> rill.admin.v1.BillingIssueMetadataSubscriptionCancelled - 298, // 148: rill.admin.v1.BillingIssueMetadata.never_subscribed:type_name -> rill.admin.v1.BillingIssueMetadataNeverSubscribed - 311, // 149: rill.admin.v1.BillingIssueMetadataOnTrial.end_date:type_name -> google.protobuf.Timestamp - 311, // 150: rill.admin.v1.BillingIssueMetadataOnTrial.grace_period_end_date:type_name -> google.protobuf.Timestamp - 311, // 151: rill.admin.v1.BillingIssueMetadataTrialEnded.end_date:type_name -> google.protobuf.Timestamp - 311, // 152: rill.admin.v1.BillingIssueMetadataTrialEnded.grace_period_end_date:type_name -> google.protobuf.Timestamp - 296, // 153: rill.admin.v1.BillingIssueMetadataPaymentFailed.invoices:type_name -> rill.admin.v1.BillingIssueMetadataPaymentFailedMeta - 311, // 154: rill.admin.v1.BillingIssueMetadataPaymentFailedMeta.due_date:type_name -> google.protobuf.Timestamp - 311, // 155: rill.admin.v1.BillingIssueMetadataPaymentFailedMeta.failed_on:type_name -> google.protobuf.Timestamp - 311, // 156: rill.admin.v1.BillingIssueMetadataPaymentFailedMeta.grace_period_end_date:type_name -> google.protobuf.Timestamp - 311, // 157: rill.admin.v1.BillingIssueMetadataSubscriptionCancelled.end_date:type_name -> google.protobuf.Timestamp - 0, // 158: rill.admin.v1.GetGithubUserStatusResponse.OrganizationInstallationPermissionsEntry.value:type_name -> rill.admin.v1.GithubPermission - 307, // 159: rill.admin.v1.GetReportMetaResponse.RecipientUrlsEntry.value:type_name -> rill.admin.v1.GetReportMetaResponse.URLs - 5, // 160: rill.admin.v1.AdminService.Ping:input_type -> rill.admin.v1.PingRequest - 7, // 161: rill.admin.v1.AdminService.ListOrganizations:input_type -> rill.admin.v1.ListOrganizationsRequest - 9, // 162: rill.admin.v1.AdminService.GetOrganization:input_type -> rill.admin.v1.GetOrganizationRequest - 11, // 163: rill.admin.v1.AdminService.GetOrganizationNameForDomain:input_type -> rill.admin.v1.GetOrganizationNameForDomainRequest - 13, // 164: rill.admin.v1.AdminService.CreateOrganization:input_type -> rill.admin.v1.CreateOrganizationRequest - 15, // 165: rill.admin.v1.AdminService.DeleteOrganization:input_type -> rill.admin.v1.DeleteOrganizationRequest - 17, // 166: rill.admin.v1.AdminService.UpdateOrganization:input_type -> rill.admin.v1.UpdateOrganizationRequest - 19, // 167: rill.admin.v1.AdminService.ListProjectsForOrganization:input_type -> rill.admin.v1.ListProjectsForOrganizationRequest - 21, // 168: rill.admin.v1.AdminService.GetProject:input_type -> rill.admin.v1.GetProjectRequest - 23, // 169: rill.admin.v1.AdminService.GetProjectByID:input_type -> rill.admin.v1.GetProjectByIDRequest - 25, // 170: rill.admin.v1.AdminService.SearchProjectNames:input_type -> rill.admin.v1.SearchProjectNamesRequest - 46, // 171: rill.admin.v1.AdminService.CreateProject:input_type -> rill.admin.v1.CreateProjectRequest - 48, // 172: rill.admin.v1.AdminService.DeleteProject:input_type -> rill.admin.v1.DeleteProjectRequest - 50, // 173: rill.admin.v1.AdminService.UpdateProject:input_type -> rill.admin.v1.UpdateProjectRequest - 27, // 174: rill.admin.v1.AdminService.GetProjectVariables:input_type -> rill.admin.v1.GetProjectVariablesRequest - 30, // 175: rill.admin.v1.AdminService.UpdateProjectVariables:input_type -> rill.admin.v1.UpdateProjectVariablesRequest - 52, // 176: rill.admin.v1.AdminService.CreateAsset:input_type -> rill.admin.v1.CreateAssetRequest - 54, // 177: rill.admin.v1.AdminService.RedeployProject:input_type -> rill.admin.v1.RedeployProjectRequest - 56, // 178: rill.admin.v1.AdminService.HibernateProject:input_type -> rill.admin.v1.HibernateProjectRequest - 58, // 179: rill.admin.v1.AdminService.TriggerReconcile:input_type -> rill.admin.v1.TriggerReconcileRequest - 60, // 180: rill.admin.v1.AdminService.TriggerRefreshSources:input_type -> rill.admin.v1.TriggerRefreshSourcesRequest - 62, // 181: rill.admin.v1.AdminService.TriggerRedeploy:input_type -> rill.admin.v1.TriggerRedeployRequest - 64, // 182: rill.admin.v1.AdminService.Provision:input_type -> rill.admin.v1.ProvisionRequest - 66, // 183: rill.admin.v1.AdminService.ListOrganizationMemberUsers:input_type -> rill.admin.v1.ListOrganizationMemberUsersRequest - 68, // 184: rill.admin.v1.AdminService.ListOrganizationInvites:input_type -> rill.admin.v1.ListOrganizationInvitesRequest - 70, // 185: rill.admin.v1.AdminService.AddOrganizationMemberUser:input_type -> rill.admin.v1.AddOrganizationMemberUserRequest - 72, // 186: rill.admin.v1.AdminService.RemoveOrganizationMemberUser:input_type -> rill.admin.v1.RemoveOrganizationMemberUserRequest - 74, // 187: rill.admin.v1.AdminService.LeaveOrganization:input_type -> rill.admin.v1.LeaveOrganizationRequest - 76, // 188: rill.admin.v1.AdminService.SetOrganizationMemberUserRole:input_type -> rill.admin.v1.SetOrganizationMemberUserRoleRequest - 102, // 189: rill.admin.v1.AdminService.ListProjectMemberUsers:input_type -> rill.admin.v1.ListProjectMemberUsersRequest - 104, // 190: rill.admin.v1.AdminService.ListProjectInvites:input_type -> rill.admin.v1.ListProjectInvitesRequest - 106, // 191: rill.admin.v1.AdminService.AddProjectMemberUser:input_type -> rill.admin.v1.AddProjectMemberUserRequest - 108, // 192: rill.admin.v1.AdminService.RemoveProjectMemberUser:input_type -> rill.admin.v1.RemoveProjectMemberUserRequest - 110, // 193: rill.admin.v1.AdminService.SetProjectMemberUserRole:input_type -> rill.admin.v1.SetProjectMemberUserRoleRequest - 112, // 194: rill.admin.v1.AdminService.CreateUsergroup:input_type -> rill.admin.v1.CreateUsergroupRequest - 114, // 195: rill.admin.v1.AdminService.GetUsergroup:input_type -> rill.admin.v1.GetUsergroupRequest - 116, // 196: rill.admin.v1.AdminService.RenameUsergroup:input_type -> rill.admin.v1.RenameUsergroupRequest - 118, // 197: rill.admin.v1.AdminService.EditUsergroup:input_type -> rill.admin.v1.EditUsergroupRequest - 120, // 198: rill.admin.v1.AdminService.ListOrganizationMemberUsergroups:input_type -> rill.admin.v1.ListOrganizationMemberUsergroupsRequest - 122, // 199: rill.admin.v1.AdminService.ListProjectMemberUsergroups:input_type -> rill.admin.v1.ListProjectMemberUsergroupsRequest - 124, // 200: rill.admin.v1.AdminService.DeleteUsergroup:input_type -> rill.admin.v1.DeleteUsergroupRequest - 126, // 201: rill.admin.v1.AdminService.AddOrganizationMemberUsergroup:input_type -> rill.admin.v1.AddOrganizationMemberUsergroupRequest - 128, // 202: rill.admin.v1.AdminService.SetOrganizationMemberUsergroupRole:input_type -> rill.admin.v1.SetOrganizationMemberUsergroupRoleRequest - 130, // 203: rill.admin.v1.AdminService.RemoveOrganizationMemberUsergroup:input_type -> rill.admin.v1.RemoveOrganizationMemberUsergroupRequest - 132, // 204: rill.admin.v1.AdminService.AddProjectMemberUsergroup:input_type -> rill.admin.v1.AddProjectMemberUsergroupRequest - 134, // 205: rill.admin.v1.AdminService.SetProjectMemberUsergroupRole:input_type -> rill.admin.v1.SetProjectMemberUsergroupRoleRequest - 136, // 206: rill.admin.v1.AdminService.RemoveProjectMemberUsergroup:input_type -> rill.admin.v1.RemoveProjectMemberUsergroupRequest - 138, // 207: rill.admin.v1.AdminService.AddUsergroupMemberUser:input_type -> rill.admin.v1.AddUsergroupMemberUserRequest - 140, // 208: rill.admin.v1.AdminService.ListUsergroupMemberUsers:input_type -> rill.admin.v1.ListUsergroupMemberUsersRequest - 142, // 209: rill.admin.v1.AdminService.RemoveUsergroupMemberUser:input_type -> rill.admin.v1.RemoveUsergroupMemberUserRequest - 144, // 210: rill.admin.v1.AdminService.GetCurrentUser:input_type -> rill.admin.v1.GetCurrentUserRequest - 151, // 211: rill.admin.v1.AdminService.DeleteUser:input_type -> rill.admin.v1.DeleteUserRequest - 167, // 212: rill.admin.v1.AdminService.IssueRepresentativeAuthToken:input_type -> rill.admin.v1.IssueRepresentativeAuthTokenRequest - 165, // 213: rill.admin.v1.AdminService.RevokeCurrentAuthToken:input_type -> rill.admin.v1.RevokeCurrentAuthTokenRequest - 183, // 214: rill.admin.v1.AdminService.GetGithubRepoStatus:input_type -> rill.admin.v1.GetGithubRepoStatusRequest - 185, // 215: rill.admin.v1.AdminService.GetGithubUserStatus:input_type -> rill.admin.v1.GetGithubUserStatusRequest - 187, // 216: rill.admin.v1.AdminService.ListGithubUserRepos:input_type -> rill.admin.v1.ListGithubUserReposRequest - 189, // 217: rill.admin.v1.AdminService.ConnectProjectToGithub:input_type -> rill.admin.v1.ConnectProjectToGithubRequest - 191, // 218: rill.admin.v1.AdminService.UploadProjectAssets:input_type -> rill.admin.v1.UploadProjectAssetsRequest - 193, // 219: rill.admin.v1.AdminService.GetCloneCredentials:input_type -> rill.admin.v1.GetCloneCredentialsRequest - 195, // 220: rill.admin.v1.AdminService.CreateWhitelistedDomain:input_type -> rill.admin.v1.CreateWhitelistedDomainRequest - 197, // 221: rill.admin.v1.AdminService.RemoveWhitelistedDomain:input_type -> rill.admin.v1.RemoveWhitelistedDomainRequest - 199, // 222: rill.admin.v1.AdminService.ListWhitelistedDomains:input_type -> rill.admin.v1.ListWhitelistedDomainsRequest - 146, // 223: rill.admin.v1.AdminService.GetUser:input_type -> rill.admin.v1.GetUserRequest - 163, // 224: rill.admin.v1.AdminService.SearchUsers:input_type -> rill.admin.v1.SearchUsersRequest - 32, // 225: rill.admin.v1.AdminService.SearchProjectUsers:input_type -> rill.admin.v1.SearchProjectUsersRequest - 78, // 226: rill.admin.v1.AdminService.ListSuperusers:input_type -> rill.admin.v1.ListSuperusersRequest - 34, // 227: rill.admin.v1.AdminService.GetDeploymentCredentials:input_type -> rill.admin.v1.GetDeploymentCredentialsRequest - 36, // 228: rill.admin.v1.AdminService.GetIFrame:input_type -> rill.admin.v1.GetIFrameRequest - 80, // 229: rill.admin.v1.AdminService.SetSuperuser:input_type -> rill.admin.v1.SetSuperuserRequest - 82, // 230: rill.admin.v1.AdminService.SudoGetResource:input_type -> rill.admin.v1.SudoGetResourceRequest - 92, // 231: rill.admin.v1.AdminService.SudoUpdateUserQuotas:input_type -> rill.admin.v1.SudoUpdateUserQuotasRequest - 84, // 232: rill.admin.v1.AdminService.SudoUpdateOrganizationQuotas:input_type -> rill.admin.v1.SudoUpdateOrganizationQuotasRequest - 86, // 233: rill.admin.v1.AdminService.SudoUpdateOrganizationBillingCustomer:input_type -> rill.admin.v1.SudoUpdateOrganizationBillingCustomerRequest - 88, // 234: rill.admin.v1.AdminService.SudoExtendTrial:input_type -> rill.admin.v1.SudoExtendTrialRequest - 90, // 235: rill.admin.v1.AdminService.SudoUpdateOrganizationCustomDomain:input_type -> rill.admin.v1.SudoUpdateOrganizationCustomDomainRequest - 94, // 236: rill.admin.v1.AdminService.SudoUpdateAnnotations:input_type -> rill.admin.v1.SudoUpdateAnnotationsRequest - 96, // 237: rill.admin.v1.AdminService.SudoIssueRuntimeManagerToken:input_type -> rill.admin.v1.SudoIssueRuntimeManagerTokenRequest - 98, // 238: rill.admin.v1.AdminService.SudoDeleteOrganizationBillingIssue:input_type -> rill.admin.v1.SudoDeleteOrganizationBillingIssueRequest - 100, // 239: rill.admin.v1.AdminService.SudoTriggerBillingRepair:input_type -> rill.admin.v1.SudoTriggerBillingRepairRequest - 201, // 240: rill.admin.v1.AdminService.CreateProjectWhitelistedDomain:input_type -> rill.admin.v1.CreateProjectWhitelistedDomainRequest - 203, // 241: rill.admin.v1.AdminService.RemoveProjectWhitelistedDomain:input_type -> rill.admin.v1.RemoveProjectWhitelistedDomainRequest - 205, // 242: rill.admin.v1.AdminService.ListProjectWhitelistedDomains:input_type -> rill.admin.v1.ListProjectWhitelistedDomainsRequest - 38, // 243: rill.admin.v1.AdminService.ListServices:input_type -> rill.admin.v1.ListServicesRequest - 40, // 244: rill.admin.v1.AdminService.CreateService:input_type -> rill.admin.v1.CreateServiceRequest - 42, // 245: rill.admin.v1.AdminService.UpdateService:input_type -> rill.admin.v1.UpdateServiceRequest - 44, // 246: rill.admin.v1.AdminService.DeleteService:input_type -> rill.admin.v1.DeleteServiceRequest - 173, // 247: rill.admin.v1.AdminService.ListServiceAuthTokens:input_type -> rill.admin.v1.ListServiceAuthTokensRequest - 171, // 248: rill.admin.v1.AdminService.IssueServiceAuthToken:input_type -> rill.admin.v1.IssueServiceAuthTokenRequest - 169, // 249: rill.admin.v1.AdminService.RevokeServiceAuthToken:input_type -> rill.admin.v1.RevokeServiceAuthTokenRequest - 175, // 250: rill.admin.v1.AdminService.IssueMagicAuthToken:input_type -> rill.admin.v1.IssueMagicAuthTokenRequest - 177, // 251: rill.admin.v1.AdminService.ListMagicAuthTokens:input_type -> rill.admin.v1.ListMagicAuthTokensRequest - 179, // 252: rill.admin.v1.AdminService.GetCurrentMagicAuthToken:input_type -> rill.admin.v1.GetCurrentMagicAuthTokenRequest - 181, // 253: rill.admin.v1.AdminService.RevokeMagicAuthToken:input_type -> rill.admin.v1.RevokeMagicAuthTokenRequest - 149, // 254: rill.admin.v1.AdminService.UpdateUserPreferences:input_type -> rill.admin.v1.UpdateUserPreferencesRequest - 153, // 255: rill.admin.v1.AdminService.ListBookmarks:input_type -> rill.admin.v1.ListBookmarksRequest - 155, // 256: rill.admin.v1.AdminService.GetBookmark:input_type -> rill.admin.v1.GetBookmarkRequest - 157, // 257: rill.admin.v1.AdminService.CreateBookmark:input_type -> rill.admin.v1.CreateBookmarkRequest - 159, // 258: rill.admin.v1.AdminService.UpdateBookmark:input_type -> rill.admin.v1.UpdateBookmarkRequest - 161, // 259: rill.admin.v1.AdminService.RemoveBookmark:input_type -> rill.admin.v1.RemoveBookmarkRequest - 207, // 260: rill.admin.v1.AdminService.GetRepoMeta:input_type -> rill.admin.v1.GetRepoMetaRequest - 209, // 261: rill.admin.v1.AdminService.PullVirtualRepo:input_type -> rill.admin.v1.PullVirtualRepoRequest - 211, // 262: rill.admin.v1.AdminService.GetReportMeta:input_type -> rill.admin.v1.GetReportMetaRequest - 213, // 263: rill.admin.v1.AdminService.GetAlertMeta:input_type -> rill.admin.v1.GetAlertMetaRequest - 215, // 264: rill.admin.v1.AdminService.CreateReport:input_type -> rill.admin.v1.CreateReportRequest - 217, // 265: rill.admin.v1.AdminService.EditReport:input_type -> rill.admin.v1.EditReportRequest - 219, // 266: rill.admin.v1.AdminService.UnsubscribeReport:input_type -> rill.admin.v1.UnsubscribeReportRequest - 221, // 267: rill.admin.v1.AdminService.DeleteReport:input_type -> rill.admin.v1.DeleteReportRequest - 223, // 268: rill.admin.v1.AdminService.TriggerReport:input_type -> rill.admin.v1.TriggerReportRequest - 225, // 269: rill.admin.v1.AdminService.GenerateReportYAML:input_type -> rill.admin.v1.GenerateReportYAMLRequest - 227, // 270: rill.admin.v1.AdminService.CreateAlert:input_type -> rill.admin.v1.CreateAlertRequest - 229, // 271: rill.admin.v1.AdminService.EditAlert:input_type -> rill.admin.v1.EditAlertRequest - 231, // 272: rill.admin.v1.AdminService.UnsubscribeAlert:input_type -> rill.admin.v1.UnsubscribeAlertRequest - 233, // 273: rill.admin.v1.AdminService.DeleteAlert:input_type -> rill.admin.v1.DeleteAlertRequest - 235, // 274: rill.admin.v1.AdminService.GenerateAlertYAML:input_type -> rill.admin.v1.GenerateAlertYAMLRequest - 237, // 275: rill.admin.v1.AdminService.GetAlertYAML:input_type -> rill.admin.v1.GetAlertYAMLRequest - 239, // 276: rill.admin.v1.AdminService.GetBillingSubscription:input_type -> rill.admin.v1.GetBillingSubscriptionRequest - 241, // 277: rill.admin.v1.AdminService.UpdateBillingSubscription:input_type -> rill.admin.v1.UpdateBillingSubscriptionRequest - 243, // 278: rill.admin.v1.AdminService.CancelBillingSubscription:input_type -> rill.admin.v1.CancelBillingSubscriptionRequest - 245, // 279: rill.admin.v1.AdminService.RenewBillingSubscription:input_type -> rill.admin.v1.RenewBillingSubscriptionRequest - 247, // 280: rill.admin.v1.AdminService.GetPaymentsPortalURL:input_type -> rill.admin.v1.GetPaymentsPortalURLRequest - 249, // 281: rill.admin.v1.AdminService.ListPublicBillingPlans:input_type -> rill.admin.v1.ListPublicBillingPlansRequest - 251, // 282: rill.admin.v1.AdminService.GetBillingProjectCredentials:input_type -> rill.admin.v1.GetBillingProjectCredentialsRequest - 255, // 283: rill.admin.v1.AdminService.RequestProjectAccess:input_type -> rill.admin.v1.RequestProjectAccessRequest - 257, // 284: rill.admin.v1.AdminService.GetProjectAccessRequest:input_type -> rill.admin.v1.GetProjectAccessRequestRequest - 259, // 285: rill.admin.v1.AdminService.ApproveProjectAccess:input_type -> rill.admin.v1.ApproveProjectAccessRequest - 261, // 286: rill.admin.v1.AdminService.DenyProjectAccess:input_type -> rill.admin.v1.DenyProjectAccessRequest - 263, // 287: rill.admin.v1.AdminService.ListOrganizationBillingIssues:input_type -> rill.admin.v1.ListOrganizationBillingIssuesRequest - 6, // 288: rill.admin.v1.AdminService.Ping:output_type -> rill.admin.v1.PingResponse - 8, // 289: rill.admin.v1.AdminService.ListOrganizations:output_type -> rill.admin.v1.ListOrganizationsResponse - 10, // 290: rill.admin.v1.AdminService.GetOrganization:output_type -> rill.admin.v1.GetOrganizationResponse - 12, // 291: rill.admin.v1.AdminService.GetOrganizationNameForDomain:output_type -> rill.admin.v1.GetOrganizationNameForDomainResponse - 14, // 292: rill.admin.v1.AdminService.CreateOrganization:output_type -> rill.admin.v1.CreateOrganizationResponse - 16, // 293: rill.admin.v1.AdminService.DeleteOrganization:output_type -> rill.admin.v1.DeleteOrganizationResponse - 18, // 294: rill.admin.v1.AdminService.UpdateOrganization:output_type -> rill.admin.v1.UpdateOrganizationResponse - 20, // 295: rill.admin.v1.AdminService.ListProjectsForOrganization:output_type -> rill.admin.v1.ListProjectsForOrganizationResponse - 22, // 296: rill.admin.v1.AdminService.GetProject:output_type -> rill.admin.v1.GetProjectResponse - 24, // 297: rill.admin.v1.AdminService.GetProjectByID:output_type -> rill.admin.v1.GetProjectByIDResponse - 26, // 298: rill.admin.v1.AdminService.SearchProjectNames:output_type -> rill.admin.v1.SearchProjectNamesResponse - 47, // 299: rill.admin.v1.AdminService.CreateProject:output_type -> rill.admin.v1.CreateProjectResponse - 49, // 300: rill.admin.v1.AdminService.DeleteProject:output_type -> rill.admin.v1.DeleteProjectResponse - 51, // 301: rill.admin.v1.AdminService.UpdateProject:output_type -> rill.admin.v1.UpdateProjectResponse - 28, // 302: rill.admin.v1.AdminService.GetProjectVariables:output_type -> rill.admin.v1.GetProjectVariablesResponse - 31, // 303: rill.admin.v1.AdminService.UpdateProjectVariables:output_type -> rill.admin.v1.UpdateProjectVariablesResponse - 53, // 304: rill.admin.v1.AdminService.CreateAsset:output_type -> rill.admin.v1.CreateAssetResponse - 55, // 305: rill.admin.v1.AdminService.RedeployProject:output_type -> rill.admin.v1.RedeployProjectResponse - 57, // 306: rill.admin.v1.AdminService.HibernateProject:output_type -> rill.admin.v1.HibernateProjectResponse - 59, // 307: rill.admin.v1.AdminService.TriggerReconcile:output_type -> rill.admin.v1.TriggerReconcileResponse - 61, // 308: rill.admin.v1.AdminService.TriggerRefreshSources:output_type -> rill.admin.v1.TriggerRefreshSourcesResponse - 63, // 309: rill.admin.v1.AdminService.TriggerRedeploy:output_type -> rill.admin.v1.TriggerRedeployResponse - 65, // 310: rill.admin.v1.AdminService.Provision:output_type -> rill.admin.v1.ProvisionResponse - 67, // 311: rill.admin.v1.AdminService.ListOrganizationMemberUsers:output_type -> rill.admin.v1.ListOrganizationMemberUsersResponse - 69, // 312: rill.admin.v1.AdminService.ListOrganizationInvites:output_type -> rill.admin.v1.ListOrganizationInvitesResponse - 71, // 313: rill.admin.v1.AdminService.AddOrganizationMemberUser:output_type -> rill.admin.v1.AddOrganizationMemberUserResponse - 73, // 314: rill.admin.v1.AdminService.RemoveOrganizationMemberUser:output_type -> rill.admin.v1.RemoveOrganizationMemberUserResponse - 75, // 315: rill.admin.v1.AdminService.LeaveOrganization:output_type -> rill.admin.v1.LeaveOrganizationResponse - 77, // 316: rill.admin.v1.AdminService.SetOrganizationMemberUserRole:output_type -> rill.admin.v1.SetOrganizationMemberUserRoleResponse - 103, // 317: rill.admin.v1.AdminService.ListProjectMemberUsers:output_type -> rill.admin.v1.ListProjectMemberUsersResponse - 105, // 318: rill.admin.v1.AdminService.ListProjectInvites:output_type -> rill.admin.v1.ListProjectInvitesResponse - 107, // 319: rill.admin.v1.AdminService.AddProjectMemberUser:output_type -> rill.admin.v1.AddProjectMemberUserResponse - 109, // 320: rill.admin.v1.AdminService.RemoveProjectMemberUser:output_type -> rill.admin.v1.RemoveProjectMemberUserResponse - 111, // 321: rill.admin.v1.AdminService.SetProjectMemberUserRole:output_type -> rill.admin.v1.SetProjectMemberUserRoleResponse - 113, // 322: rill.admin.v1.AdminService.CreateUsergroup:output_type -> rill.admin.v1.CreateUsergroupResponse - 115, // 323: rill.admin.v1.AdminService.GetUsergroup:output_type -> rill.admin.v1.GetUsergroupResponse - 117, // 324: rill.admin.v1.AdminService.RenameUsergroup:output_type -> rill.admin.v1.RenameUsergroupResponse - 119, // 325: rill.admin.v1.AdminService.EditUsergroup:output_type -> rill.admin.v1.EditUsergroupResponse - 121, // 326: rill.admin.v1.AdminService.ListOrganizationMemberUsergroups:output_type -> rill.admin.v1.ListOrganizationMemberUsergroupsResponse - 123, // 327: rill.admin.v1.AdminService.ListProjectMemberUsergroups:output_type -> rill.admin.v1.ListProjectMemberUsergroupsResponse - 125, // 328: rill.admin.v1.AdminService.DeleteUsergroup:output_type -> rill.admin.v1.DeleteUsergroupResponse - 127, // 329: rill.admin.v1.AdminService.AddOrganizationMemberUsergroup:output_type -> rill.admin.v1.AddOrganizationMemberUsergroupResponse - 129, // 330: rill.admin.v1.AdminService.SetOrganizationMemberUsergroupRole:output_type -> rill.admin.v1.SetOrganizationMemberUsergroupRoleResponse - 131, // 331: rill.admin.v1.AdminService.RemoveOrganizationMemberUsergroup:output_type -> rill.admin.v1.RemoveOrganizationMemberUsergroupResponse - 133, // 332: rill.admin.v1.AdminService.AddProjectMemberUsergroup:output_type -> rill.admin.v1.AddProjectMemberUsergroupResponse - 135, // 333: rill.admin.v1.AdminService.SetProjectMemberUsergroupRole:output_type -> rill.admin.v1.SetProjectMemberUsergroupRoleResponse - 137, // 334: rill.admin.v1.AdminService.RemoveProjectMemberUsergroup:output_type -> rill.admin.v1.RemoveProjectMemberUsergroupResponse - 139, // 335: rill.admin.v1.AdminService.AddUsergroupMemberUser:output_type -> rill.admin.v1.AddUsergroupMemberUserResponse - 141, // 336: rill.admin.v1.AdminService.ListUsergroupMemberUsers:output_type -> rill.admin.v1.ListUsergroupMemberUsersResponse - 143, // 337: rill.admin.v1.AdminService.RemoveUsergroupMemberUser:output_type -> rill.admin.v1.RemoveUsergroupMemberUserResponse - 145, // 338: rill.admin.v1.AdminService.GetCurrentUser:output_type -> rill.admin.v1.GetCurrentUserResponse - 152, // 339: rill.admin.v1.AdminService.DeleteUser:output_type -> rill.admin.v1.DeleteUserResponse - 168, // 340: rill.admin.v1.AdminService.IssueRepresentativeAuthToken:output_type -> rill.admin.v1.IssueRepresentativeAuthTokenResponse - 166, // 341: rill.admin.v1.AdminService.RevokeCurrentAuthToken:output_type -> rill.admin.v1.RevokeCurrentAuthTokenResponse - 184, // 342: rill.admin.v1.AdminService.GetGithubRepoStatus:output_type -> rill.admin.v1.GetGithubRepoStatusResponse - 186, // 343: rill.admin.v1.AdminService.GetGithubUserStatus:output_type -> rill.admin.v1.GetGithubUserStatusResponse - 188, // 344: rill.admin.v1.AdminService.ListGithubUserRepos:output_type -> rill.admin.v1.ListGithubUserReposResponse - 190, // 345: rill.admin.v1.AdminService.ConnectProjectToGithub:output_type -> rill.admin.v1.ConnectProjectToGithubResponse - 192, // 346: rill.admin.v1.AdminService.UploadProjectAssets:output_type -> rill.admin.v1.UploadProjectAssetsResponse - 194, // 347: rill.admin.v1.AdminService.GetCloneCredentials:output_type -> rill.admin.v1.GetCloneCredentialsResponse - 196, // 348: rill.admin.v1.AdminService.CreateWhitelistedDomain:output_type -> rill.admin.v1.CreateWhitelistedDomainResponse - 198, // 349: rill.admin.v1.AdminService.RemoveWhitelistedDomain:output_type -> rill.admin.v1.RemoveWhitelistedDomainResponse - 200, // 350: rill.admin.v1.AdminService.ListWhitelistedDomains:output_type -> rill.admin.v1.ListWhitelistedDomainsResponse - 147, // 351: rill.admin.v1.AdminService.GetUser:output_type -> rill.admin.v1.GetUserResponse - 164, // 352: rill.admin.v1.AdminService.SearchUsers:output_type -> rill.admin.v1.SearchUsersResponse - 33, // 353: rill.admin.v1.AdminService.SearchProjectUsers:output_type -> rill.admin.v1.SearchProjectUsersResponse - 79, // 354: rill.admin.v1.AdminService.ListSuperusers:output_type -> rill.admin.v1.ListSuperusersResponse - 35, // 355: rill.admin.v1.AdminService.GetDeploymentCredentials:output_type -> rill.admin.v1.GetDeploymentCredentialsResponse - 37, // 356: rill.admin.v1.AdminService.GetIFrame:output_type -> rill.admin.v1.GetIFrameResponse - 81, // 357: rill.admin.v1.AdminService.SetSuperuser:output_type -> rill.admin.v1.SetSuperuserResponse - 83, // 358: rill.admin.v1.AdminService.SudoGetResource:output_type -> rill.admin.v1.SudoGetResourceResponse - 93, // 359: rill.admin.v1.AdminService.SudoUpdateUserQuotas:output_type -> rill.admin.v1.SudoUpdateUserQuotasResponse - 85, // 360: rill.admin.v1.AdminService.SudoUpdateOrganizationQuotas:output_type -> rill.admin.v1.SudoUpdateOrganizationQuotasResponse - 87, // 361: rill.admin.v1.AdminService.SudoUpdateOrganizationBillingCustomer:output_type -> rill.admin.v1.SudoUpdateOrganizationBillingCustomerResponse - 89, // 362: rill.admin.v1.AdminService.SudoExtendTrial:output_type -> rill.admin.v1.SudoExtendTrialResponse - 91, // 363: rill.admin.v1.AdminService.SudoUpdateOrganizationCustomDomain:output_type -> rill.admin.v1.SudoUpdateOrganizationCustomDomainResponse - 95, // 364: rill.admin.v1.AdminService.SudoUpdateAnnotations:output_type -> rill.admin.v1.SudoUpdateAnnotationsResponse - 97, // 365: rill.admin.v1.AdminService.SudoIssueRuntimeManagerToken:output_type -> rill.admin.v1.SudoIssueRuntimeManagerTokenResponse - 99, // 366: rill.admin.v1.AdminService.SudoDeleteOrganizationBillingIssue:output_type -> rill.admin.v1.SudoDeleteOrganizationBillingIssueResponse - 101, // 367: rill.admin.v1.AdminService.SudoTriggerBillingRepair:output_type -> rill.admin.v1.SudoTriggerBillingRepairResponse - 202, // 368: rill.admin.v1.AdminService.CreateProjectWhitelistedDomain:output_type -> rill.admin.v1.CreateProjectWhitelistedDomainResponse - 204, // 369: rill.admin.v1.AdminService.RemoveProjectWhitelistedDomain:output_type -> rill.admin.v1.RemoveProjectWhitelistedDomainResponse - 206, // 370: rill.admin.v1.AdminService.ListProjectWhitelistedDomains:output_type -> rill.admin.v1.ListProjectWhitelistedDomainsResponse - 39, // 371: rill.admin.v1.AdminService.ListServices:output_type -> rill.admin.v1.ListServicesResponse - 41, // 372: rill.admin.v1.AdminService.CreateService:output_type -> rill.admin.v1.CreateServiceResponse - 43, // 373: rill.admin.v1.AdminService.UpdateService:output_type -> rill.admin.v1.UpdateServiceResponse - 45, // 374: rill.admin.v1.AdminService.DeleteService:output_type -> rill.admin.v1.DeleteServiceResponse - 174, // 375: rill.admin.v1.AdminService.ListServiceAuthTokens:output_type -> rill.admin.v1.ListServiceAuthTokensResponse - 172, // 376: rill.admin.v1.AdminService.IssueServiceAuthToken:output_type -> rill.admin.v1.IssueServiceAuthTokenResponse - 170, // 377: rill.admin.v1.AdminService.RevokeServiceAuthToken:output_type -> rill.admin.v1.RevokeServiceAuthTokenResponse - 176, // 378: rill.admin.v1.AdminService.IssueMagicAuthToken:output_type -> rill.admin.v1.IssueMagicAuthTokenResponse - 178, // 379: rill.admin.v1.AdminService.ListMagicAuthTokens:output_type -> rill.admin.v1.ListMagicAuthTokensResponse - 180, // 380: rill.admin.v1.AdminService.GetCurrentMagicAuthToken:output_type -> rill.admin.v1.GetCurrentMagicAuthTokenResponse - 182, // 381: rill.admin.v1.AdminService.RevokeMagicAuthToken:output_type -> rill.admin.v1.RevokeMagicAuthTokenResponse - 150, // 382: rill.admin.v1.AdminService.UpdateUserPreferences:output_type -> rill.admin.v1.UpdateUserPreferencesResponse - 154, // 383: rill.admin.v1.AdminService.ListBookmarks:output_type -> rill.admin.v1.ListBookmarksResponse - 156, // 384: rill.admin.v1.AdminService.GetBookmark:output_type -> rill.admin.v1.GetBookmarkResponse - 158, // 385: rill.admin.v1.AdminService.CreateBookmark:output_type -> rill.admin.v1.CreateBookmarkResponse - 160, // 386: rill.admin.v1.AdminService.UpdateBookmark:output_type -> rill.admin.v1.UpdateBookmarkResponse - 162, // 387: rill.admin.v1.AdminService.RemoveBookmark:output_type -> rill.admin.v1.RemoveBookmarkResponse - 208, // 388: rill.admin.v1.AdminService.GetRepoMeta:output_type -> rill.admin.v1.GetRepoMetaResponse - 210, // 389: rill.admin.v1.AdminService.PullVirtualRepo:output_type -> rill.admin.v1.PullVirtualRepoResponse - 212, // 390: rill.admin.v1.AdminService.GetReportMeta:output_type -> rill.admin.v1.GetReportMetaResponse - 214, // 391: rill.admin.v1.AdminService.GetAlertMeta:output_type -> rill.admin.v1.GetAlertMetaResponse - 216, // 392: rill.admin.v1.AdminService.CreateReport:output_type -> rill.admin.v1.CreateReportResponse - 218, // 393: rill.admin.v1.AdminService.EditReport:output_type -> rill.admin.v1.EditReportResponse - 220, // 394: rill.admin.v1.AdminService.UnsubscribeReport:output_type -> rill.admin.v1.UnsubscribeReportResponse - 222, // 395: rill.admin.v1.AdminService.DeleteReport:output_type -> rill.admin.v1.DeleteReportResponse - 224, // 396: rill.admin.v1.AdminService.TriggerReport:output_type -> rill.admin.v1.TriggerReportResponse - 226, // 397: rill.admin.v1.AdminService.GenerateReportYAML:output_type -> rill.admin.v1.GenerateReportYAMLResponse - 228, // 398: rill.admin.v1.AdminService.CreateAlert:output_type -> rill.admin.v1.CreateAlertResponse - 230, // 399: rill.admin.v1.AdminService.EditAlert:output_type -> rill.admin.v1.EditAlertResponse - 232, // 400: rill.admin.v1.AdminService.UnsubscribeAlert:output_type -> rill.admin.v1.UnsubscribeAlertResponse - 234, // 401: rill.admin.v1.AdminService.DeleteAlert:output_type -> rill.admin.v1.DeleteAlertResponse - 236, // 402: rill.admin.v1.AdminService.GenerateAlertYAML:output_type -> rill.admin.v1.GenerateAlertYAMLResponse - 238, // 403: rill.admin.v1.AdminService.GetAlertYAML:output_type -> rill.admin.v1.GetAlertYAMLResponse - 240, // 404: rill.admin.v1.AdminService.GetBillingSubscription:output_type -> rill.admin.v1.GetBillingSubscriptionResponse - 242, // 405: rill.admin.v1.AdminService.UpdateBillingSubscription:output_type -> rill.admin.v1.UpdateBillingSubscriptionResponse - 244, // 406: rill.admin.v1.AdminService.CancelBillingSubscription:output_type -> rill.admin.v1.CancelBillingSubscriptionResponse - 246, // 407: rill.admin.v1.AdminService.RenewBillingSubscription:output_type -> rill.admin.v1.RenewBillingSubscriptionResponse - 248, // 408: rill.admin.v1.AdminService.GetPaymentsPortalURL:output_type -> rill.admin.v1.GetPaymentsPortalURLResponse - 250, // 409: rill.admin.v1.AdminService.ListPublicBillingPlans:output_type -> rill.admin.v1.ListPublicBillingPlansResponse - 252, // 410: rill.admin.v1.AdminService.GetBillingProjectCredentials:output_type -> rill.admin.v1.GetBillingProjectCredentialsResponse - 256, // 411: rill.admin.v1.AdminService.RequestProjectAccess:output_type -> rill.admin.v1.RequestProjectAccessResponse - 258, // 412: rill.admin.v1.AdminService.GetProjectAccessRequest:output_type -> rill.admin.v1.GetProjectAccessRequestResponse - 260, // 413: rill.admin.v1.AdminService.ApproveProjectAccess:output_type -> rill.admin.v1.ApproveProjectAccessResponse - 262, // 414: rill.admin.v1.AdminService.DenyProjectAccess:output_type -> rill.admin.v1.DenyProjectAccessResponse - 264, // 415: rill.admin.v1.AdminService.ListOrganizationBillingIssues:output_type -> rill.admin.v1.ListOrganizationBillingIssuesResponse - 288, // [288:416] is the sub-list for method output_type - 160, // [160:288] is the sub-list for method input_type - 160, // [160:160] is the sub-list for extension type_name - 160, // [160:160] is the sub-list for extension extendee - 0, // [0:160] is the sub-list for field type_name + 2, // 101: rill.admin.v1.Organization.billing_plan_type:type_name -> rill.admin.v1.BillingPlanType + 311, // 102: rill.admin.v1.Organization.created_on:type_name -> google.protobuf.Timestamp + 311, // 103: rill.admin.v1.Organization.updated_on:type_name -> google.protobuf.Timestamp + 285, // 104: rill.admin.v1.Subscription.plan:type_name -> rill.admin.v1.BillingPlan + 311, // 105: rill.admin.v1.Subscription.start_date:type_name -> google.protobuf.Timestamp + 311, // 106: rill.admin.v1.Subscription.end_date:type_name -> google.protobuf.Timestamp + 311, // 107: rill.admin.v1.Subscription.current_billing_cycle_start_date:type_name -> google.protobuf.Timestamp + 311, // 108: rill.admin.v1.Subscription.current_billing_cycle_end_date:type_name -> google.protobuf.Timestamp + 311, // 109: rill.admin.v1.Subscription.trial_end_date:type_name -> google.protobuf.Timestamp + 310, // 110: rill.admin.v1.Project.annotations:type_name -> rill.admin.v1.Project.AnnotationsEntry + 311, // 111: rill.admin.v1.Project.created_on:type_name -> google.protobuf.Timestamp + 311, // 112: rill.admin.v1.Project.updated_on:type_name -> google.protobuf.Timestamp + 1, // 113: rill.admin.v1.Deployment.status:type_name -> rill.admin.v1.DeploymentStatus + 311, // 114: rill.admin.v1.Deployment.created_on:type_name -> google.protobuf.Timestamp + 311, // 115: rill.admin.v1.Deployment.updated_on:type_name -> google.protobuf.Timestamp + 312, // 116: rill.admin.v1.ProvisionerResource.args:type_name -> google.protobuf.Struct + 312, // 117: rill.admin.v1.ProvisionerResource.config:type_name -> google.protobuf.Struct + 311, // 118: rill.admin.v1.MemberUser.created_on:type_name -> google.protobuf.Timestamp + 311, // 119: rill.admin.v1.MemberUser.updated_on:type_name -> google.protobuf.Timestamp + 311, // 120: rill.admin.v1.Bookmark.created_on:type_name -> google.protobuf.Timestamp + 311, // 121: rill.admin.v1.Bookmark.updated_on:type_name -> google.protobuf.Timestamp + 311, // 122: rill.admin.v1.ServiceToken.created_on:type_name -> google.protobuf.Timestamp + 311, // 123: rill.admin.v1.ServiceToken.expires_on:type_name -> google.protobuf.Timestamp + 311, // 124: rill.admin.v1.MagicAuthToken.created_on:type_name -> google.protobuf.Timestamp + 311, // 125: rill.admin.v1.MagicAuthToken.expires_on:type_name -> google.protobuf.Timestamp + 311, // 126: rill.admin.v1.MagicAuthToken.used_on:type_name -> google.protobuf.Timestamp + 312, // 127: rill.admin.v1.MagicAuthToken.attributes:type_name -> google.protobuf.Struct + 313, // 128: rill.admin.v1.MagicAuthToken.filter:type_name -> rill.runtime.v1.Expression + 311, // 129: rill.admin.v1.VirtualFile.updated_on:type_name -> google.protobuf.Timestamp + 314, // 130: rill.admin.v1.ReportOptions.export_format:type_name -> rill.runtime.v1.ExportFormat + 312, // 131: rill.admin.v1.AlertOptions.resolver_properties:type_name -> google.protobuf.Struct + 2, // 132: rill.admin.v1.BillingPlan.plan_type:type_name -> rill.admin.v1.BillingPlanType + 286, // 133: rill.admin.v1.BillingPlan.quotas:type_name -> rill.admin.v1.Quotas + 311, // 134: rill.admin.v1.Usergroup.created_on:type_name -> google.protobuf.Timestamp + 311, // 135: rill.admin.v1.Usergroup.updated_on:type_name -> google.protobuf.Timestamp + 311, // 136: rill.admin.v1.MemberUsergroup.created_on:type_name -> google.protobuf.Timestamp + 311, // 137: rill.admin.v1.MemberUsergroup.updated_on:type_name -> google.protobuf.Timestamp + 3, // 138: rill.admin.v1.BillingIssue.type:type_name -> rill.admin.v1.BillingIssueType + 4, // 139: rill.admin.v1.BillingIssue.level:type_name -> rill.admin.v1.BillingIssueLevel + 290, // 140: rill.admin.v1.BillingIssue.metadata:type_name -> rill.admin.v1.BillingIssueMetadata + 311, // 141: rill.admin.v1.BillingIssue.event_time:type_name -> google.protobuf.Timestamp + 311, // 142: rill.admin.v1.BillingIssue.created_on:type_name -> google.protobuf.Timestamp + 291, // 143: rill.admin.v1.BillingIssueMetadata.on_trial:type_name -> rill.admin.v1.BillingIssueMetadataOnTrial + 292, // 144: rill.admin.v1.BillingIssueMetadata.trial_ended:type_name -> rill.admin.v1.BillingIssueMetadataTrialEnded + 293, // 145: rill.admin.v1.BillingIssueMetadata.no_payment_method:type_name -> rill.admin.v1.BillingIssueMetadataNoPaymentMethod + 294, // 146: rill.admin.v1.BillingIssueMetadata.no_billable_address:type_name -> rill.admin.v1.BillingIssueMetadataNoBillableAddress + 295, // 147: rill.admin.v1.BillingIssueMetadata.payment_failed:type_name -> rill.admin.v1.BillingIssueMetadataPaymentFailed + 297, // 148: rill.admin.v1.BillingIssueMetadata.subscription_cancelled:type_name -> rill.admin.v1.BillingIssueMetadataSubscriptionCancelled + 298, // 149: rill.admin.v1.BillingIssueMetadata.never_subscribed:type_name -> rill.admin.v1.BillingIssueMetadataNeverSubscribed + 311, // 150: rill.admin.v1.BillingIssueMetadataOnTrial.end_date:type_name -> google.protobuf.Timestamp + 311, // 151: rill.admin.v1.BillingIssueMetadataOnTrial.grace_period_end_date:type_name -> google.protobuf.Timestamp + 311, // 152: rill.admin.v1.BillingIssueMetadataTrialEnded.end_date:type_name -> google.protobuf.Timestamp + 311, // 153: rill.admin.v1.BillingIssueMetadataTrialEnded.grace_period_end_date:type_name -> google.protobuf.Timestamp + 296, // 154: rill.admin.v1.BillingIssueMetadataPaymentFailed.invoices:type_name -> rill.admin.v1.BillingIssueMetadataPaymentFailedMeta + 311, // 155: rill.admin.v1.BillingIssueMetadataPaymentFailedMeta.due_date:type_name -> google.protobuf.Timestamp + 311, // 156: rill.admin.v1.BillingIssueMetadataPaymentFailedMeta.failed_on:type_name -> google.protobuf.Timestamp + 311, // 157: rill.admin.v1.BillingIssueMetadataPaymentFailedMeta.grace_period_end_date:type_name -> google.protobuf.Timestamp + 311, // 158: rill.admin.v1.BillingIssueMetadataSubscriptionCancelled.end_date:type_name -> google.protobuf.Timestamp + 0, // 159: rill.admin.v1.GetGithubUserStatusResponse.OrganizationInstallationPermissionsEntry.value:type_name -> rill.admin.v1.GithubPermission + 307, // 160: rill.admin.v1.GetReportMetaResponse.RecipientUrlsEntry.value:type_name -> rill.admin.v1.GetReportMetaResponse.URLs + 5, // 161: rill.admin.v1.AdminService.Ping:input_type -> rill.admin.v1.PingRequest + 7, // 162: rill.admin.v1.AdminService.ListOrganizations:input_type -> rill.admin.v1.ListOrganizationsRequest + 9, // 163: rill.admin.v1.AdminService.GetOrganization:input_type -> rill.admin.v1.GetOrganizationRequest + 11, // 164: rill.admin.v1.AdminService.GetOrganizationNameForDomain:input_type -> rill.admin.v1.GetOrganizationNameForDomainRequest + 13, // 165: rill.admin.v1.AdminService.CreateOrganization:input_type -> rill.admin.v1.CreateOrganizationRequest + 15, // 166: rill.admin.v1.AdminService.DeleteOrganization:input_type -> rill.admin.v1.DeleteOrganizationRequest + 17, // 167: rill.admin.v1.AdminService.UpdateOrganization:input_type -> rill.admin.v1.UpdateOrganizationRequest + 19, // 168: rill.admin.v1.AdminService.ListProjectsForOrganization:input_type -> rill.admin.v1.ListProjectsForOrganizationRequest + 21, // 169: rill.admin.v1.AdminService.GetProject:input_type -> rill.admin.v1.GetProjectRequest + 23, // 170: rill.admin.v1.AdminService.GetProjectByID:input_type -> rill.admin.v1.GetProjectByIDRequest + 25, // 171: rill.admin.v1.AdminService.SearchProjectNames:input_type -> rill.admin.v1.SearchProjectNamesRequest + 46, // 172: rill.admin.v1.AdminService.CreateProject:input_type -> rill.admin.v1.CreateProjectRequest + 48, // 173: rill.admin.v1.AdminService.DeleteProject:input_type -> rill.admin.v1.DeleteProjectRequest + 50, // 174: rill.admin.v1.AdminService.UpdateProject:input_type -> rill.admin.v1.UpdateProjectRequest + 27, // 175: rill.admin.v1.AdminService.GetProjectVariables:input_type -> rill.admin.v1.GetProjectVariablesRequest + 30, // 176: rill.admin.v1.AdminService.UpdateProjectVariables:input_type -> rill.admin.v1.UpdateProjectVariablesRequest + 52, // 177: rill.admin.v1.AdminService.CreateAsset:input_type -> rill.admin.v1.CreateAssetRequest + 54, // 178: rill.admin.v1.AdminService.RedeployProject:input_type -> rill.admin.v1.RedeployProjectRequest + 56, // 179: rill.admin.v1.AdminService.HibernateProject:input_type -> rill.admin.v1.HibernateProjectRequest + 58, // 180: rill.admin.v1.AdminService.TriggerReconcile:input_type -> rill.admin.v1.TriggerReconcileRequest + 60, // 181: rill.admin.v1.AdminService.TriggerRefreshSources:input_type -> rill.admin.v1.TriggerRefreshSourcesRequest + 62, // 182: rill.admin.v1.AdminService.TriggerRedeploy:input_type -> rill.admin.v1.TriggerRedeployRequest + 64, // 183: rill.admin.v1.AdminService.Provision:input_type -> rill.admin.v1.ProvisionRequest + 66, // 184: rill.admin.v1.AdminService.ListOrganizationMemberUsers:input_type -> rill.admin.v1.ListOrganizationMemberUsersRequest + 68, // 185: rill.admin.v1.AdminService.ListOrganizationInvites:input_type -> rill.admin.v1.ListOrganizationInvitesRequest + 70, // 186: rill.admin.v1.AdminService.AddOrganizationMemberUser:input_type -> rill.admin.v1.AddOrganizationMemberUserRequest + 72, // 187: rill.admin.v1.AdminService.RemoveOrganizationMemberUser:input_type -> rill.admin.v1.RemoveOrganizationMemberUserRequest + 74, // 188: rill.admin.v1.AdminService.LeaveOrganization:input_type -> rill.admin.v1.LeaveOrganizationRequest + 76, // 189: rill.admin.v1.AdminService.SetOrganizationMemberUserRole:input_type -> rill.admin.v1.SetOrganizationMemberUserRoleRequest + 102, // 190: rill.admin.v1.AdminService.ListProjectMemberUsers:input_type -> rill.admin.v1.ListProjectMemberUsersRequest + 104, // 191: rill.admin.v1.AdminService.ListProjectInvites:input_type -> rill.admin.v1.ListProjectInvitesRequest + 106, // 192: rill.admin.v1.AdminService.AddProjectMemberUser:input_type -> rill.admin.v1.AddProjectMemberUserRequest + 108, // 193: rill.admin.v1.AdminService.RemoveProjectMemberUser:input_type -> rill.admin.v1.RemoveProjectMemberUserRequest + 110, // 194: rill.admin.v1.AdminService.SetProjectMemberUserRole:input_type -> rill.admin.v1.SetProjectMemberUserRoleRequest + 112, // 195: rill.admin.v1.AdminService.CreateUsergroup:input_type -> rill.admin.v1.CreateUsergroupRequest + 114, // 196: rill.admin.v1.AdminService.GetUsergroup:input_type -> rill.admin.v1.GetUsergroupRequest + 116, // 197: rill.admin.v1.AdminService.RenameUsergroup:input_type -> rill.admin.v1.RenameUsergroupRequest + 118, // 198: rill.admin.v1.AdminService.EditUsergroup:input_type -> rill.admin.v1.EditUsergroupRequest + 120, // 199: rill.admin.v1.AdminService.ListOrganizationMemberUsergroups:input_type -> rill.admin.v1.ListOrganizationMemberUsergroupsRequest + 122, // 200: rill.admin.v1.AdminService.ListProjectMemberUsergroups:input_type -> rill.admin.v1.ListProjectMemberUsergroupsRequest + 124, // 201: rill.admin.v1.AdminService.DeleteUsergroup:input_type -> rill.admin.v1.DeleteUsergroupRequest + 126, // 202: rill.admin.v1.AdminService.AddOrganizationMemberUsergroup:input_type -> rill.admin.v1.AddOrganizationMemberUsergroupRequest + 128, // 203: rill.admin.v1.AdminService.SetOrganizationMemberUsergroupRole:input_type -> rill.admin.v1.SetOrganizationMemberUsergroupRoleRequest + 130, // 204: rill.admin.v1.AdminService.RemoveOrganizationMemberUsergroup:input_type -> rill.admin.v1.RemoveOrganizationMemberUsergroupRequest + 132, // 205: rill.admin.v1.AdminService.AddProjectMemberUsergroup:input_type -> rill.admin.v1.AddProjectMemberUsergroupRequest + 134, // 206: rill.admin.v1.AdminService.SetProjectMemberUsergroupRole:input_type -> rill.admin.v1.SetProjectMemberUsergroupRoleRequest + 136, // 207: rill.admin.v1.AdminService.RemoveProjectMemberUsergroup:input_type -> rill.admin.v1.RemoveProjectMemberUsergroupRequest + 138, // 208: rill.admin.v1.AdminService.AddUsergroupMemberUser:input_type -> rill.admin.v1.AddUsergroupMemberUserRequest + 140, // 209: rill.admin.v1.AdminService.ListUsergroupMemberUsers:input_type -> rill.admin.v1.ListUsergroupMemberUsersRequest + 142, // 210: rill.admin.v1.AdminService.RemoveUsergroupMemberUser:input_type -> rill.admin.v1.RemoveUsergroupMemberUserRequest + 144, // 211: rill.admin.v1.AdminService.GetCurrentUser:input_type -> rill.admin.v1.GetCurrentUserRequest + 151, // 212: rill.admin.v1.AdminService.DeleteUser:input_type -> rill.admin.v1.DeleteUserRequest + 167, // 213: rill.admin.v1.AdminService.IssueRepresentativeAuthToken:input_type -> rill.admin.v1.IssueRepresentativeAuthTokenRequest + 165, // 214: rill.admin.v1.AdminService.RevokeCurrentAuthToken:input_type -> rill.admin.v1.RevokeCurrentAuthTokenRequest + 183, // 215: rill.admin.v1.AdminService.GetGithubRepoStatus:input_type -> rill.admin.v1.GetGithubRepoStatusRequest + 185, // 216: rill.admin.v1.AdminService.GetGithubUserStatus:input_type -> rill.admin.v1.GetGithubUserStatusRequest + 187, // 217: rill.admin.v1.AdminService.ListGithubUserRepos:input_type -> rill.admin.v1.ListGithubUserReposRequest + 189, // 218: rill.admin.v1.AdminService.ConnectProjectToGithub:input_type -> rill.admin.v1.ConnectProjectToGithubRequest + 191, // 219: rill.admin.v1.AdminService.UploadProjectAssets:input_type -> rill.admin.v1.UploadProjectAssetsRequest + 193, // 220: rill.admin.v1.AdminService.GetCloneCredentials:input_type -> rill.admin.v1.GetCloneCredentialsRequest + 195, // 221: rill.admin.v1.AdminService.CreateWhitelistedDomain:input_type -> rill.admin.v1.CreateWhitelistedDomainRequest + 197, // 222: rill.admin.v1.AdminService.RemoveWhitelistedDomain:input_type -> rill.admin.v1.RemoveWhitelistedDomainRequest + 199, // 223: rill.admin.v1.AdminService.ListWhitelistedDomains:input_type -> rill.admin.v1.ListWhitelistedDomainsRequest + 146, // 224: rill.admin.v1.AdminService.GetUser:input_type -> rill.admin.v1.GetUserRequest + 163, // 225: rill.admin.v1.AdminService.SearchUsers:input_type -> rill.admin.v1.SearchUsersRequest + 32, // 226: rill.admin.v1.AdminService.SearchProjectUsers:input_type -> rill.admin.v1.SearchProjectUsersRequest + 78, // 227: rill.admin.v1.AdminService.ListSuperusers:input_type -> rill.admin.v1.ListSuperusersRequest + 34, // 228: rill.admin.v1.AdminService.GetDeploymentCredentials:input_type -> rill.admin.v1.GetDeploymentCredentialsRequest + 36, // 229: rill.admin.v1.AdminService.GetIFrame:input_type -> rill.admin.v1.GetIFrameRequest + 80, // 230: rill.admin.v1.AdminService.SetSuperuser:input_type -> rill.admin.v1.SetSuperuserRequest + 82, // 231: rill.admin.v1.AdminService.SudoGetResource:input_type -> rill.admin.v1.SudoGetResourceRequest + 92, // 232: rill.admin.v1.AdminService.SudoUpdateUserQuotas:input_type -> rill.admin.v1.SudoUpdateUserQuotasRequest + 84, // 233: rill.admin.v1.AdminService.SudoUpdateOrganizationQuotas:input_type -> rill.admin.v1.SudoUpdateOrganizationQuotasRequest + 86, // 234: rill.admin.v1.AdminService.SudoUpdateOrganizationBillingCustomer:input_type -> rill.admin.v1.SudoUpdateOrganizationBillingCustomerRequest + 88, // 235: rill.admin.v1.AdminService.SudoExtendTrial:input_type -> rill.admin.v1.SudoExtendTrialRequest + 90, // 236: rill.admin.v1.AdminService.SudoUpdateOrganizationCustomDomain:input_type -> rill.admin.v1.SudoUpdateOrganizationCustomDomainRequest + 94, // 237: rill.admin.v1.AdminService.SudoUpdateAnnotations:input_type -> rill.admin.v1.SudoUpdateAnnotationsRequest + 96, // 238: rill.admin.v1.AdminService.SudoIssueRuntimeManagerToken:input_type -> rill.admin.v1.SudoIssueRuntimeManagerTokenRequest + 98, // 239: rill.admin.v1.AdminService.SudoDeleteOrganizationBillingIssue:input_type -> rill.admin.v1.SudoDeleteOrganizationBillingIssueRequest + 100, // 240: rill.admin.v1.AdminService.SudoTriggerBillingRepair:input_type -> rill.admin.v1.SudoTriggerBillingRepairRequest + 201, // 241: rill.admin.v1.AdminService.CreateProjectWhitelistedDomain:input_type -> rill.admin.v1.CreateProjectWhitelistedDomainRequest + 203, // 242: rill.admin.v1.AdminService.RemoveProjectWhitelistedDomain:input_type -> rill.admin.v1.RemoveProjectWhitelistedDomainRequest + 205, // 243: rill.admin.v1.AdminService.ListProjectWhitelistedDomains:input_type -> rill.admin.v1.ListProjectWhitelistedDomainsRequest + 38, // 244: rill.admin.v1.AdminService.ListServices:input_type -> rill.admin.v1.ListServicesRequest + 40, // 245: rill.admin.v1.AdminService.CreateService:input_type -> rill.admin.v1.CreateServiceRequest + 42, // 246: rill.admin.v1.AdminService.UpdateService:input_type -> rill.admin.v1.UpdateServiceRequest + 44, // 247: rill.admin.v1.AdminService.DeleteService:input_type -> rill.admin.v1.DeleteServiceRequest + 173, // 248: rill.admin.v1.AdminService.ListServiceAuthTokens:input_type -> rill.admin.v1.ListServiceAuthTokensRequest + 171, // 249: rill.admin.v1.AdminService.IssueServiceAuthToken:input_type -> rill.admin.v1.IssueServiceAuthTokenRequest + 169, // 250: rill.admin.v1.AdminService.RevokeServiceAuthToken:input_type -> rill.admin.v1.RevokeServiceAuthTokenRequest + 175, // 251: rill.admin.v1.AdminService.IssueMagicAuthToken:input_type -> rill.admin.v1.IssueMagicAuthTokenRequest + 177, // 252: rill.admin.v1.AdminService.ListMagicAuthTokens:input_type -> rill.admin.v1.ListMagicAuthTokensRequest + 179, // 253: rill.admin.v1.AdminService.GetCurrentMagicAuthToken:input_type -> rill.admin.v1.GetCurrentMagicAuthTokenRequest + 181, // 254: rill.admin.v1.AdminService.RevokeMagicAuthToken:input_type -> rill.admin.v1.RevokeMagicAuthTokenRequest + 149, // 255: rill.admin.v1.AdminService.UpdateUserPreferences:input_type -> rill.admin.v1.UpdateUserPreferencesRequest + 153, // 256: rill.admin.v1.AdminService.ListBookmarks:input_type -> rill.admin.v1.ListBookmarksRequest + 155, // 257: rill.admin.v1.AdminService.GetBookmark:input_type -> rill.admin.v1.GetBookmarkRequest + 157, // 258: rill.admin.v1.AdminService.CreateBookmark:input_type -> rill.admin.v1.CreateBookmarkRequest + 159, // 259: rill.admin.v1.AdminService.UpdateBookmark:input_type -> rill.admin.v1.UpdateBookmarkRequest + 161, // 260: rill.admin.v1.AdminService.RemoveBookmark:input_type -> rill.admin.v1.RemoveBookmarkRequest + 207, // 261: rill.admin.v1.AdminService.GetRepoMeta:input_type -> rill.admin.v1.GetRepoMetaRequest + 209, // 262: rill.admin.v1.AdminService.PullVirtualRepo:input_type -> rill.admin.v1.PullVirtualRepoRequest + 211, // 263: rill.admin.v1.AdminService.GetReportMeta:input_type -> rill.admin.v1.GetReportMetaRequest + 213, // 264: rill.admin.v1.AdminService.GetAlertMeta:input_type -> rill.admin.v1.GetAlertMetaRequest + 215, // 265: rill.admin.v1.AdminService.CreateReport:input_type -> rill.admin.v1.CreateReportRequest + 217, // 266: rill.admin.v1.AdminService.EditReport:input_type -> rill.admin.v1.EditReportRequest + 219, // 267: rill.admin.v1.AdminService.UnsubscribeReport:input_type -> rill.admin.v1.UnsubscribeReportRequest + 221, // 268: rill.admin.v1.AdminService.DeleteReport:input_type -> rill.admin.v1.DeleteReportRequest + 223, // 269: rill.admin.v1.AdminService.TriggerReport:input_type -> rill.admin.v1.TriggerReportRequest + 225, // 270: rill.admin.v1.AdminService.GenerateReportYAML:input_type -> rill.admin.v1.GenerateReportYAMLRequest + 227, // 271: rill.admin.v1.AdminService.CreateAlert:input_type -> rill.admin.v1.CreateAlertRequest + 229, // 272: rill.admin.v1.AdminService.EditAlert:input_type -> rill.admin.v1.EditAlertRequest + 231, // 273: rill.admin.v1.AdminService.UnsubscribeAlert:input_type -> rill.admin.v1.UnsubscribeAlertRequest + 233, // 274: rill.admin.v1.AdminService.DeleteAlert:input_type -> rill.admin.v1.DeleteAlertRequest + 235, // 275: rill.admin.v1.AdminService.GenerateAlertYAML:input_type -> rill.admin.v1.GenerateAlertYAMLRequest + 237, // 276: rill.admin.v1.AdminService.GetAlertYAML:input_type -> rill.admin.v1.GetAlertYAMLRequest + 239, // 277: rill.admin.v1.AdminService.GetBillingSubscription:input_type -> rill.admin.v1.GetBillingSubscriptionRequest + 241, // 278: rill.admin.v1.AdminService.UpdateBillingSubscription:input_type -> rill.admin.v1.UpdateBillingSubscriptionRequest + 243, // 279: rill.admin.v1.AdminService.CancelBillingSubscription:input_type -> rill.admin.v1.CancelBillingSubscriptionRequest + 245, // 280: rill.admin.v1.AdminService.RenewBillingSubscription:input_type -> rill.admin.v1.RenewBillingSubscriptionRequest + 247, // 281: rill.admin.v1.AdminService.GetPaymentsPortalURL:input_type -> rill.admin.v1.GetPaymentsPortalURLRequest + 249, // 282: rill.admin.v1.AdminService.ListPublicBillingPlans:input_type -> rill.admin.v1.ListPublicBillingPlansRequest + 251, // 283: rill.admin.v1.AdminService.GetBillingProjectCredentials:input_type -> rill.admin.v1.GetBillingProjectCredentialsRequest + 255, // 284: rill.admin.v1.AdminService.RequestProjectAccess:input_type -> rill.admin.v1.RequestProjectAccessRequest + 257, // 285: rill.admin.v1.AdminService.GetProjectAccessRequest:input_type -> rill.admin.v1.GetProjectAccessRequestRequest + 259, // 286: rill.admin.v1.AdminService.ApproveProjectAccess:input_type -> rill.admin.v1.ApproveProjectAccessRequest + 261, // 287: rill.admin.v1.AdminService.DenyProjectAccess:input_type -> rill.admin.v1.DenyProjectAccessRequest + 263, // 288: rill.admin.v1.AdminService.ListOrganizationBillingIssues:input_type -> rill.admin.v1.ListOrganizationBillingIssuesRequest + 6, // 289: rill.admin.v1.AdminService.Ping:output_type -> rill.admin.v1.PingResponse + 8, // 290: rill.admin.v1.AdminService.ListOrganizations:output_type -> rill.admin.v1.ListOrganizationsResponse + 10, // 291: rill.admin.v1.AdminService.GetOrganization:output_type -> rill.admin.v1.GetOrganizationResponse + 12, // 292: rill.admin.v1.AdminService.GetOrganizationNameForDomain:output_type -> rill.admin.v1.GetOrganizationNameForDomainResponse + 14, // 293: rill.admin.v1.AdminService.CreateOrganization:output_type -> rill.admin.v1.CreateOrganizationResponse + 16, // 294: rill.admin.v1.AdminService.DeleteOrganization:output_type -> rill.admin.v1.DeleteOrganizationResponse + 18, // 295: rill.admin.v1.AdminService.UpdateOrganization:output_type -> rill.admin.v1.UpdateOrganizationResponse + 20, // 296: rill.admin.v1.AdminService.ListProjectsForOrganization:output_type -> rill.admin.v1.ListProjectsForOrganizationResponse + 22, // 297: rill.admin.v1.AdminService.GetProject:output_type -> rill.admin.v1.GetProjectResponse + 24, // 298: rill.admin.v1.AdminService.GetProjectByID:output_type -> rill.admin.v1.GetProjectByIDResponse + 26, // 299: rill.admin.v1.AdminService.SearchProjectNames:output_type -> rill.admin.v1.SearchProjectNamesResponse + 47, // 300: rill.admin.v1.AdminService.CreateProject:output_type -> rill.admin.v1.CreateProjectResponse + 49, // 301: rill.admin.v1.AdminService.DeleteProject:output_type -> rill.admin.v1.DeleteProjectResponse + 51, // 302: rill.admin.v1.AdminService.UpdateProject:output_type -> rill.admin.v1.UpdateProjectResponse + 28, // 303: rill.admin.v1.AdminService.GetProjectVariables:output_type -> rill.admin.v1.GetProjectVariablesResponse + 31, // 304: rill.admin.v1.AdminService.UpdateProjectVariables:output_type -> rill.admin.v1.UpdateProjectVariablesResponse + 53, // 305: rill.admin.v1.AdminService.CreateAsset:output_type -> rill.admin.v1.CreateAssetResponse + 55, // 306: rill.admin.v1.AdminService.RedeployProject:output_type -> rill.admin.v1.RedeployProjectResponse + 57, // 307: rill.admin.v1.AdminService.HibernateProject:output_type -> rill.admin.v1.HibernateProjectResponse + 59, // 308: rill.admin.v1.AdminService.TriggerReconcile:output_type -> rill.admin.v1.TriggerReconcileResponse + 61, // 309: rill.admin.v1.AdminService.TriggerRefreshSources:output_type -> rill.admin.v1.TriggerRefreshSourcesResponse + 63, // 310: rill.admin.v1.AdminService.TriggerRedeploy:output_type -> rill.admin.v1.TriggerRedeployResponse + 65, // 311: rill.admin.v1.AdminService.Provision:output_type -> rill.admin.v1.ProvisionResponse + 67, // 312: rill.admin.v1.AdminService.ListOrganizationMemberUsers:output_type -> rill.admin.v1.ListOrganizationMemberUsersResponse + 69, // 313: rill.admin.v1.AdminService.ListOrganizationInvites:output_type -> rill.admin.v1.ListOrganizationInvitesResponse + 71, // 314: rill.admin.v1.AdminService.AddOrganizationMemberUser:output_type -> rill.admin.v1.AddOrganizationMemberUserResponse + 73, // 315: rill.admin.v1.AdminService.RemoveOrganizationMemberUser:output_type -> rill.admin.v1.RemoveOrganizationMemberUserResponse + 75, // 316: rill.admin.v1.AdminService.LeaveOrganization:output_type -> rill.admin.v1.LeaveOrganizationResponse + 77, // 317: rill.admin.v1.AdminService.SetOrganizationMemberUserRole:output_type -> rill.admin.v1.SetOrganizationMemberUserRoleResponse + 103, // 318: rill.admin.v1.AdminService.ListProjectMemberUsers:output_type -> rill.admin.v1.ListProjectMemberUsersResponse + 105, // 319: rill.admin.v1.AdminService.ListProjectInvites:output_type -> rill.admin.v1.ListProjectInvitesResponse + 107, // 320: rill.admin.v1.AdminService.AddProjectMemberUser:output_type -> rill.admin.v1.AddProjectMemberUserResponse + 109, // 321: rill.admin.v1.AdminService.RemoveProjectMemberUser:output_type -> rill.admin.v1.RemoveProjectMemberUserResponse + 111, // 322: rill.admin.v1.AdminService.SetProjectMemberUserRole:output_type -> rill.admin.v1.SetProjectMemberUserRoleResponse + 113, // 323: rill.admin.v1.AdminService.CreateUsergroup:output_type -> rill.admin.v1.CreateUsergroupResponse + 115, // 324: rill.admin.v1.AdminService.GetUsergroup:output_type -> rill.admin.v1.GetUsergroupResponse + 117, // 325: rill.admin.v1.AdminService.RenameUsergroup:output_type -> rill.admin.v1.RenameUsergroupResponse + 119, // 326: rill.admin.v1.AdminService.EditUsergroup:output_type -> rill.admin.v1.EditUsergroupResponse + 121, // 327: rill.admin.v1.AdminService.ListOrganizationMemberUsergroups:output_type -> rill.admin.v1.ListOrganizationMemberUsergroupsResponse + 123, // 328: rill.admin.v1.AdminService.ListProjectMemberUsergroups:output_type -> rill.admin.v1.ListProjectMemberUsergroupsResponse + 125, // 329: rill.admin.v1.AdminService.DeleteUsergroup:output_type -> rill.admin.v1.DeleteUsergroupResponse + 127, // 330: rill.admin.v1.AdminService.AddOrganizationMemberUsergroup:output_type -> rill.admin.v1.AddOrganizationMemberUsergroupResponse + 129, // 331: rill.admin.v1.AdminService.SetOrganizationMemberUsergroupRole:output_type -> rill.admin.v1.SetOrganizationMemberUsergroupRoleResponse + 131, // 332: rill.admin.v1.AdminService.RemoveOrganizationMemberUsergroup:output_type -> rill.admin.v1.RemoveOrganizationMemberUsergroupResponse + 133, // 333: rill.admin.v1.AdminService.AddProjectMemberUsergroup:output_type -> rill.admin.v1.AddProjectMemberUsergroupResponse + 135, // 334: rill.admin.v1.AdminService.SetProjectMemberUsergroupRole:output_type -> rill.admin.v1.SetProjectMemberUsergroupRoleResponse + 137, // 335: rill.admin.v1.AdminService.RemoveProjectMemberUsergroup:output_type -> rill.admin.v1.RemoveProjectMemberUsergroupResponse + 139, // 336: rill.admin.v1.AdminService.AddUsergroupMemberUser:output_type -> rill.admin.v1.AddUsergroupMemberUserResponse + 141, // 337: rill.admin.v1.AdminService.ListUsergroupMemberUsers:output_type -> rill.admin.v1.ListUsergroupMemberUsersResponse + 143, // 338: rill.admin.v1.AdminService.RemoveUsergroupMemberUser:output_type -> rill.admin.v1.RemoveUsergroupMemberUserResponse + 145, // 339: rill.admin.v1.AdminService.GetCurrentUser:output_type -> rill.admin.v1.GetCurrentUserResponse + 152, // 340: rill.admin.v1.AdminService.DeleteUser:output_type -> rill.admin.v1.DeleteUserResponse + 168, // 341: rill.admin.v1.AdminService.IssueRepresentativeAuthToken:output_type -> rill.admin.v1.IssueRepresentativeAuthTokenResponse + 166, // 342: rill.admin.v1.AdminService.RevokeCurrentAuthToken:output_type -> rill.admin.v1.RevokeCurrentAuthTokenResponse + 184, // 343: rill.admin.v1.AdminService.GetGithubRepoStatus:output_type -> rill.admin.v1.GetGithubRepoStatusResponse + 186, // 344: rill.admin.v1.AdminService.GetGithubUserStatus:output_type -> rill.admin.v1.GetGithubUserStatusResponse + 188, // 345: rill.admin.v1.AdminService.ListGithubUserRepos:output_type -> rill.admin.v1.ListGithubUserReposResponse + 190, // 346: rill.admin.v1.AdminService.ConnectProjectToGithub:output_type -> rill.admin.v1.ConnectProjectToGithubResponse + 192, // 347: rill.admin.v1.AdminService.UploadProjectAssets:output_type -> rill.admin.v1.UploadProjectAssetsResponse + 194, // 348: rill.admin.v1.AdminService.GetCloneCredentials:output_type -> rill.admin.v1.GetCloneCredentialsResponse + 196, // 349: rill.admin.v1.AdminService.CreateWhitelistedDomain:output_type -> rill.admin.v1.CreateWhitelistedDomainResponse + 198, // 350: rill.admin.v1.AdminService.RemoveWhitelistedDomain:output_type -> rill.admin.v1.RemoveWhitelistedDomainResponse + 200, // 351: rill.admin.v1.AdminService.ListWhitelistedDomains:output_type -> rill.admin.v1.ListWhitelistedDomainsResponse + 147, // 352: rill.admin.v1.AdminService.GetUser:output_type -> rill.admin.v1.GetUserResponse + 164, // 353: rill.admin.v1.AdminService.SearchUsers:output_type -> rill.admin.v1.SearchUsersResponse + 33, // 354: rill.admin.v1.AdminService.SearchProjectUsers:output_type -> rill.admin.v1.SearchProjectUsersResponse + 79, // 355: rill.admin.v1.AdminService.ListSuperusers:output_type -> rill.admin.v1.ListSuperusersResponse + 35, // 356: rill.admin.v1.AdminService.GetDeploymentCredentials:output_type -> rill.admin.v1.GetDeploymentCredentialsResponse + 37, // 357: rill.admin.v1.AdminService.GetIFrame:output_type -> rill.admin.v1.GetIFrameResponse + 81, // 358: rill.admin.v1.AdminService.SetSuperuser:output_type -> rill.admin.v1.SetSuperuserResponse + 83, // 359: rill.admin.v1.AdminService.SudoGetResource:output_type -> rill.admin.v1.SudoGetResourceResponse + 93, // 360: rill.admin.v1.AdminService.SudoUpdateUserQuotas:output_type -> rill.admin.v1.SudoUpdateUserQuotasResponse + 85, // 361: rill.admin.v1.AdminService.SudoUpdateOrganizationQuotas:output_type -> rill.admin.v1.SudoUpdateOrganizationQuotasResponse + 87, // 362: rill.admin.v1.AdminService.SudoUpdateOrganizationBillingCustomer:output_type -> rill.admin.v1.SudoUpdateOrganizationBillingCustomerResponse + 89, // 363: rill.admin.v1.AdminService.SudoExtendTrial:output_type -> rill.admin.v1.SudoExtendTrialResponse + 91, // 364: rill.admin.v1.AdminService.SudoUpdateOrganizationCustomDomain:output_type -> rill.admin.v1.SudoUpdateOrganizationCustomDomainResponse + 95, // 365: rill.admin.v1.AdminService.SudoUpdateAnnotations:output_type -> rill.admin.v1.SudoUpdateAnnotationsResponse + 97, // 366: rill.admin.v1.AdminService.SudoIssueRuntimeManagerToken:output_type -> rill.admin.v1.SudoIssueRuntimeManagerTokenResponse + 99, // 367: rill.admin.v1.AdminService.SudoDeleteOrganizationBillingIssue:output_type -> rill.admin.v1.SudoDeleteOrganizationBillingIssueResponse + 101, // 368: rill.admin.v1.AdminService.SudoTriggerBillingRepair:output_type -> rill.admin.v1.SudoTriggerBillingRepairResponse + 202, // 369: rill.admin.v1.AdminService.CreateProjectWhitelistedDomain:output_type -> rill.admin.v1.CreateProjectWhitelistedDomainResponse + 204, // 370: rill.admin.v1.AdminService.RemoveProjectWhitelistedDomain:output_type -> rill.admin.v1.RemoveProjectWhitelistedDomainResponse + 206, // 371: rill.admin.v1.AdminService.ListProjectWhitelistedDomains:output_type -> rill.admin.v1.ListProjectWhitelistedDomainsResponse + 39, // 372: rill.admin.v1.AdminService.ListServices:output_type -> rill.admin.v1.ListServicesResponse + 41, // 373: rill.admin.v1.AdminService.CreateService:output_type -> rill.admin.v1.CreateServiceResponse + 43, // 374: rill.admin.v1.AdminService.UpdateService:output_type -> rill.admin.v1.UpdateServiceResponse + 45, // 375: rill.admin.v1.AdminService.DeleteService:output_type -> rill.admin.v1.DeleteServiceResponse + 174, // 376: rill.admin.v1.AdminService.ListServiceAuthTokens:output_type -> rill.admin.v1.ListServiceAuthTokensResponse + 172, // 377: rill.admin.v1.AdminService.IssueServiceAuthToken:output_type -> rill.admin.v1.IssueServiceAuthTokenResponse + 170, // 378: rill.admin.v1.AdminService.RevokeServiceAuthToken:output_type -> rill.admin.v1.RevokeServiceAuthTokenResponse + 176, // 379: rill.admin.v1.AdminService.IssueMagicAuthToken:output_type -> rill.admin.v1.IssueMagicAuthTokenResponse + 178, // 380: rill.admin.v1.AdminService.ListMagicAuthTokens:output_type -> rill.admin.v1.ListMagicAuthTokensResponse + 180, // 381: rill.admin.v1.AdminService.GetCurrentMagicAuthToken:output_type -> rill.admin.v1.GetCurrentMagicAuthTokenResponse + 182, // 382: rill.admin.v1.AdminService.RevokeMagicAuthToken:output_type -> rill.admin.v1.RevokeMagicAuthTokenResponse + 150, // 383: rill.admin.v1.AdminService.UpdateUserPreferences:output_type -> rill.admin.v1.UpdateUserPreferencesResponse + 154, // 384: rill.admin.v1.AdminService.ListBookmarks:output_type -> rill.admin.v1.ListBookmarksResponse + 156, // 385: rill.admin.v1.AdminService.GetBookmark:output_type -> rill.admin.v1.GetBookmarkResponse + 158, // 386: rill.admin.v1.AdminService.CreateBookmark:output_type -> rill.admin.v1.CreateBookmarkResponse + 160, // 387: rill.admin.v1.AdminService.UpdateBookmark:output_type -> rill.admin.v1.UpdateBookmarkResponse + 162, // 388: rill.admin.v1.AdminService.RemoveBookmark:output_type -> rill.admin.v1.RemoveBookmarkResponse + 208, // 389: rill.admin.v1.AdminService.GetRepoMeta:output_type -> rill.admin.v1.GetRepoMetaResponse + 210, // 390: rill.admin.v1.AdminService.PullVirtualRepo:output_type -> rill.admin.v1.PullVirtualRepoResponse + 212, // 391: rill.admin.v1.AdminService.GetReportMeta:output_type -> rill.admin.v1.GetReportMetaResponse + 214, // 392: rill.admin.v1.AdminService.GetAlertMeta:output_type -> rill.admin.v1.GetAlertMetaResponse + 216, // 393: rill.admin.v1.AdminService.CreateReport:output_type -> rill.admin.v1.CreateReportResponse + 218, // 394: rill.admin.v1.AdminService.EditReport:output_type -> rill.admin.v1.EditReportResponse + 220, // 395: rill.admin.v1.AdminService.UnsubscribeReport:output_type -> rill.admin.v1.UnsubscribeReportResponse + 222, // 396: rill.admin.v1.AdminService.DeleteReport:output_type -> rill.admin.v1.DeleteReportResponse + 224, // 397: rill.admin.v1.AdminService.TriggerReport:output_type -> rill.admin.v1.TriggerReportResponse + 226, // 398: rill.admin.v1.AdminService.GenerateReportYAML:output_type -> rill.admin.v1.GenerateReportYAMLResponse + 228, // 399: rill.admin.v1.AdminService.CreateAlert:output_type -> rill.admin.v1.CreateAlertResponse + 230, // 400: rill.admin.v1.AdminService.EditAlert:output_type -> rill.admin.v1.EditAlertResponse + 232, // 401: rill.admin.v1.AdminService.UnsubscribeAlert:output_type -> rill.admin.v1.UnsubscribeAlertResponse + 234, // 402: rill.admin.v1.AdminService.DeleteAlert:output_type -> rill.admin.v1.DeleteAlertResponse + 236, // 403: rill.admin.v1.AdminService.GenerateAlertYAML:output_type -> rill.admin.v1.GenerateAlertYAMLResponse + 238, // 404: rill.admin.v1.AdminService.GetAlertYAML:output_type -> rill.admin.v1.GetAlertYAMLResponse + 240, // 405: rill.admin.v1.AdminService.GetBillingSubscription:output_type -> rill.admin.v1.GetBillingSubscriptionResponse + 242, // 406: rill.admin.v1.AdminService.UpdateBillingSubscription:output_type -> rill.admin.v1.UpdateBillingSubscriptionResponse + 244, // 407: rill.admin.v1.AdminService.CancelBillingSubscription:output_type -> rill.admin.v1.CancelBillingSubscriptionResponse + 246, // 408: rill.admin.v1.AdminService.RenewBillingSubscription:output_type -> rill.admin.v1.RenewBillingSubscriptionResponse + 248, // 409: rill.admin.v1.AdminService.GetPaymentsPortalURL:output_type -> rill.admin.v1.GetPaymentsPortalURLResponse + 250, // 410: rill.admin.v1.AdminService.ListPublicBillingPlans:output_type -> rill.admin.v1.ListPublicBillingPlansResponse + 252, // 411: rill.admin.v1.AdminService.GetBillingProjectCredentials:output_type -> rill.admin.v1.GetBillingProjectCredentialsResponse + 256, // 412: rill.admin.v1.AdminService.RequestProjectAccess:output_type -> rill.admin.v1.RequestProjectAccessResponse + 258, // 413: rill.admin.v1.AdminService.GetProjectAccessRequest:output_type -> rill.admin.v1.GetProjectAccessRequestResponse + 260, // 414: rill.admin.v1.AdminService.ApproveProjectAccess:output_type -> rill.admin.v1.ApproveProjectAccessResponse + 262, // 415: rill.admin.v1.AdminService.DenyProjectAccess:output_type -> rill.admin.v1.DenyProjectAccessResponse + 264, // 416: rill.admin.v1.AdminService.ListOrganizationBillingIssues:output_type -> rill.admin.v1.ListOrganizationBillingIssuesResponse + 289, // [289:417] is the sub-list for method output_type + 161, // [161:289] is the sub-list for method input_type + 161, // [161:161] is the sub-list for extension type_name + 161, // [161:161] is the sub-list for extension extendee + 0, // [0:161] is the sub-list for field type_name } func init() { file_rill_admin_v1_api_proto_init() } diff --git a/proto/gen/rill/admin/v1/api.pb.validate.go b/proto/gen/rill/admin/v1/api.pb.validate.go index 131a6334f62..8d547520086 100644 --- a/proto/gen/rill/admin/v1/api.pb.validate.go +++ b/proto/gen/rill/admin/v1/api.pb.validate.go @@ -33270,8 +33270,8 @@ func (m *Organization) validate(all bool) error { } } - if m.BillingPlanName != nil { - // no validation rules for BillingPlanName + if m.BillingPlanType != nil { + // no validation rules for BillingPlanType } if m.BillingPlanDisplayName != nil { diff --git a/proto/rill/admin/v1/api.proto b/proto/rill/admin/v1/api.proto index faa199256ea..28b8ca44444 100644 --- a/proto/rill/admin/v1/api.proto +++ b/proto/rill/admin/v1/api.proto @@ -2246,7 +2246,7 @@ message Organization { string billing_customer_id = 7; string payment_customer_id = 8; string billing_email = 9; - optional string billing_plan_name = 14; + optional BillingPlanType billing_plan_type = 14; optional string billing_plan_display_name = 15; google.protobuf.Timestamp created_on = 5; google.protobuf.Timestamp updated_on = 6; diff --git a/web-admin/src/client/gen/index.schemas.ts b/web-admin/src/client/gen/index.schemas.ts index f789b524816..a70850a958d 100644 --- a/web-admin/src/client/gen/index.schemas.ts +++ b/web-admin/src/client/gen/index.schemas.ts @@ -870,7 +870,7 @@ export interface V1Organization { billingCustomerId?: string; paymentCustomerId?: string; billingEmail?: string; - billingPlanName?: string; + billingPlanType?: V1BillingPlanType; billingPlanDisplayName?: string; createdOn?: string; updatedOn?: string; diff --git a/web-admin/src/features/billing/Payment.svelte b/web-admin/src/features/billing/Payment.svelte index f4eebca1ff8..dcabff173d2 100644 --- a/web-admin/src/features/billing/Payment.svelte +++ b/web-admin/src/features/billing/Payment.svelte @@ -20,8 +20,9 @@ $: neverSubscribed = $categorisedIssues.data?.neverSubscribed; $: onTrial = !!$categorisedIssues.data?.trial; $: onEnterprisePlan = - subscription?.plan && isEnterprisePlan(subscription.plan); - $: onManagedPlan = subscription?.plan && isManagedPlan(subscription.plan); + subscription?.plan && isEnterprisePlan(subscription.plan.planType); + $: onManagedPlan = + subscription?.plan && isManagedPlan(subscription.plan.planType); $: hidePaymentModule = neverSubscribed || onTrial || onEnterprisePlan || onManagedPlan; diff --git a/web-admin/src/features/billing/issues/useBillingIssueMessage.ts b/web-admin/src/features/billing/issues/useBillingIssueMessage.ts index 2178d43fe0d..47690f1305e 100644 --- a/web-admin/src/features/billing/issues/useBillingIssueMessage.ts +++ b/web-admin/src/features/billing/issues/useBillingIssueMessage.ts @@ -1,4 +1,7 @@ -import { createAdminServiceGetBillingSubscription } from "@rilldata/web-admin/client"; +import { + createAdminServiceGetBillingSubscription, + createAdminServiceGetOrganization, +} from "@rilldata/web-admin/client"; import { getMessageForPaymentIssues } from "@rilldata/web-admin/features/billing/issues/getMessageForPaymentIssues"; import { getMessageForCancelledIssue } from "@rilldata/web-admin/features/billing/issues/getMessageForCancelledIssue"; import { getMessageForTrialPlan } from "@rilldata/web-admin/features/billing/issues/getMessageForTrialPlan"; @@ -30,13 +33,13 @@ export function useBillingIssueMessage( ): CompoundQueryResult { return derived( [ - createAdminServiceGetBillingSubscription(organization), + createAdminServiceGetOrganization(organization), useCategorisedOrganizationBillingIssues(organization), areAllProjectsHibernating(organization), ], - ([subscriptionResp, categorisedIssuesResp, allProjectsHibernatingResp]) => { + ([orgResp, categorisedIssuesResp, allProjectsHibernatingResp]) => { if ( - subscriptionResp.isFetching || + orgResp.isFetching || categorisedIssuesResp.isFetching || allProjectsHibernatingResp.isFetching ) { @@ -46,14 +49,14 @@ export function useBillingIssueMessage( }; } if ( - subscriptionResp.error || + orgResp.error || categorisedIssuesResp.error || allProjectsHibernatingResp.error ) { return { isFetching: false, error: - subscriptionResp.error ?? + orgResp.error ?? categorisedIssuesResp.error ?? allProjectsHibernatingResp.error, }; @@ -79,11 +82,10 @@ export function useBillingIssueMessage( if ( categorisedIssuesResp.data?.payment.length && - subscriptionResp.data?.subscription + orgResp.data?.organization?.billingPlanType ) { const paymentIssue = getMessageForPaymentIssues( - !!subscriptionResp.data.subscription.plan && - !isTeamPlan(subscriptionResp.data.subscription.plan), + !isTeamPlan(orgResp.data.organization.billingPlanType), categorisedIssuesResp.data.payment, ); // if we do not have any payment related message to show, skip it diff --git a/web-admin/src/features/billing/plans/Plan.svelte b/web-admin/src/features/billing/plans/Plan.svelte index fe3b3638308..16e17a0e62c 100644 --- a/web-admin/src/features/billing/plans/Plan.svelte +++ b/web-admin/src/features/billing/plans/Plan.svelte @@ -27,8 +27,8 @@ $: isTrial = !!$categorisedIssues.data?.trial; // ended subscription will have a cancelled issue associated with it $: subHasEnded = !!$categorisedIssues.data?.cancelled; - $: subIsTeamPlan = plan && isTeamPlan(plan); - $: subIsManagedPlan = plan && isManagedPlan(plan); + $: subIsTeamPlan = plan && isTeamPlan(plan.planType); + $: subIsManagedPlan = plan && isManagedPlan(plan.planType); $: subIsEnterprisePlan = plan && !isTrial && !subIsTeamPlan && !subIsManagedPlan; diff --git a/web-admin/src/features/billing/plans/selectors.ts b/web-admin/src/features/billing/plans/selectors.ts index 4624e658dc2..fcdf69fbea5 100644 --- a/web-admin/src/features/billing/plans/selectors.ts +++ b/web-admin/src/features/billing/plans/selectors.ts @@ -21,7 +21,7 @@ export async function fetchTeamPlan() { queryFn: () => adminServiceListPublicBillingPlans(), }); - return plansResp.plans?.find(isTeamPlan); + return plansResp.plans?.find((p) => isTeamPlan(p.planType)); } /** diff --git a/web-admin/src/features/billing/plans/utils.ts b/web-admin/src/features/billing/plans/utils.ts index 79e11c2d193..0708854e8cd 100644 --- a/web-admin/src/features/billing/plans/utils.ts +++ b/web-admin/src/features/billing/plans/utils.ts @@ -1,7 +1,4 @@ -import { - type V1BillingPlan, - V1BillingPlanType, -} from "@rilldata/web-admin/client"; +import { V1BillingPlanType } from "@rilldata/web-admin/client"; import { formatMemorySize } from "@rilldata/web-common/lib/number-formatting/memory-size"; import { DateTime } from "luxon"; import { writable } from "svelte/store"; @@ -21,20 +18,22 @@ export function formatUsageVsQuota( return `${formattedUsage} of ${formattedQuota} (${percent}%)`; } -export function isTrialPlan(plan: V1BillingPlan) { - return plan.planType === V1BillingPlanType.BILLING_PLAN_TYPE_TRIAL; +export function isTrialPlan(planType: V1BillingPlanType) { + return planType === V1BillingPlanType.BILLING_PLAN_TYPE_TRIAL; } -export function isTeamPlan(plan: V1BillingPlan) { - return plan.planType === V1BillingPlanType.BILLING_PLAN_TYPE_TEAM; +export function isTeamPlan(planType: V1BillingPlanType) { + return planType === V1BillingPlanType.BILLING_PLAN_TYPE_TEAM; } -export function isManagedPlan(plan: V1BillingPlan) { - return plan.planType === V1BillingPlanType.BILLING_PLAN_TYPE_MANAGED; +export function isManagedPlan(planType: V1BillingPlanType) { + return planType === V1BillingPlanType.BILLING_PLAN_TYPE_MANAGED; } -export function isEnterprisePlan(plan: V1BillingPlan) { - return !isTrialPlan(plan) && !isTeamPlan(plan) && !isManagedPlan(plan); +export function isEnterprisePlan(planType: V1BillingPlanType) { + return ( + !isTrialPlan(planType) && !isTeamPlan(planType) && !isManagedPlan(planType) + ); } export function getSubscriptionResumedText(endDate: string) { diff --git a/web-admin/src/features/navigation/TopNavigationBar.svelte b/web-admin/src/features/navigation/TopNavigationBar.svelte index 30c311fef4e..9008e2c6e6e 100644 --- a/web-admin/src/features/navigation/TopNavigationBar.svelte +++ b/web-admin/src/features/navigation/TopNavigationBar.svelte @@ -11,7 +11,6 @@ import { useExplore } from "@rilldata/web-common/features/explores/selectors"; import { runtime } from "@rilldata/web-common/runtime-client/runtime-store"; import { - createAdminServiceGetBillingSubscription, createAdminServiceGetCurrentUser, createAdminServiceListOrganizations as listOrgs, createAdminServiceListProjectsForOrganization as listProjects, @@ -35,10 +34,10 @@ isPublicURLPage, } from "./nav-utils"; - export let manageOrganization: boolean; export let createMagicAuthTokens: boolean; export let manageProjectMembers: boolean; export let organizationLogoUrl: string | undefined = undefined; + export let planDisplayName: string | undefined; const user = createAdminServiceGetCurrentUser(); @@ -101,19 +100,11 @@ $: alerts = $alertsQuery.data?.resources ?? []; $: reports = $reportsQuery.data?.resources ?? []; - $: plan = createAdminServiceGetBillingSubscription(organization, { - query: { - enabled: Boolean( - !!organization && manageOrganization && !onPublicURLPage, - ), - select: (data) => data.subscription?.plan, - }, - }); $: organizationPaths = organizations.reduce( (map, { name, displayName }) => map.set(name.toLowerCase(), { label: displayName || name, - pill: $plan?.data?.displayName, + pill: planDisplayName, }), new Map(), ); diff --git a/web-admin/src/routes/+layout.svelte b/web-admin/src/routes/+layout.svelte index 49158949fd1..5671b6d25a8 100644 --- a/web-admin/src/routes/+layout.svelte +++ b/web-admin/src/routes/+layout.svelte @@ -33,6 +33,7 @@ organizationPermissions, organizationLogoUrl, organizationFaviconUrl, + planDisplayName, } = data); $: ({ params: { organization }, @@ -111,10 +112,10 @@ {/if} {#if !isEmbed && !hideTopBar} {#if withinOnlyOrg} diff --git a/web-admin/src/routes/+layout.ts b/web-admin/src/routes/+layout.ts index 6379ba21d8f..446c88a59f7 100644 --- a/web-admin/src/routes/+layout.ts +++ b/web-admin/src/routes/+layout.ts @@ -80,6 +80,7 @@ export const load = async ({ params, url, route, depends }) => { let organizationPermissions: V1OrganizationPermissions = {}; let organizationLogoUrl: string | undefined = undefined; let organizationFaviconUrl: string | undefined = undefined; + let planDisplayName: string | undefined = undefined; if (organization && !token) { try { const organizationResp = await queryClient.fetchQuery( @@ -88,6 +89,7 @@ export const load = async ({ params, url, route, depends }) => { organizationPermissions = organizationResp.permissions ?? {}; organizationLogoUrl = organizationResp.organization?.logoUrl; organizationFaviconUrl = organizationResp.organization?.faviconUrl; + planDisplayName = organizationResp.organization?.billingPlanDisplayName; } catch (e: unknown) { if (!isAxiosError(e) || !e.response) { throw error(500, "Error fetching organization"); @@ -110,6 +112,7 @@ export const load = async ({ params, url, route, depends }) => { organizationPermissions, organizationLogoUrl, organizationFaviconUrl, + planDisplayName, projectPermissions: {}, }; } @@ -134,6 +137,7 @@ export const load = async ({ params, url, route, depends }) => { organizationPermissions, organizationLogoUrl, organizationFaviconUrl, + planDisplayName, projectPermissions, project: proj, runtime: runtimeData, diff --git a/web-admin/src/routes/[organization]/-/settings/+layout.svelte b/web-admin/src/routes/[organization]/-/settings/+layout.svelte index ab3b85af99e..37e3587ca0b 100644 --- a/web-admin/src/routes/[organization]/-/settings/+layout.svelte +++ b/web-admin/src/routes/[organization]/-/settings/+layout.svelte @@ -14,7 +14,8 @@ $: organization = $page.params.organization; $: basePage = `/${organization}/-/settings`; $: onEnterprisePlan = - subscription?.plan && isEnterprisePlan(subscription?.plan); + subscription?.plan?.planType && + isEnterprisePlan(subscription.plan.planType); $: hideBillingSettings = neverSubscribed; $: hideUsageSettings = onEnterprisePlan || !billingPortalUrl; diff --git a/web-admin/src/routes/[organization]/-/settings/usage/+page.ts b/web-admin/src/routes/[organization]/-/settings/usage/+page.ts index 9922170407f..df216f1ce5b 100644 --- a/web-admin/src/routes/[organization]/-/settings/usage/+page.ts +++ b/web-admin/src/routes/[organization]/-/settings/usage/+page.ts @@ -10,7 +10,7 @@ export const load: PageLoad = async ({ params: { organization }, parent }) => { } // Orgs on an Enterprise Plan should not see this page - if (subscription?.plan && isEnterprisePlan(subscription.plan)) { + if (subscription?.plan && isEnterprisePlan(subscription.plan.planType)) { throw error(404, "Page not found"); } }; diff --git a/web-common/src/proto/gen/rill/admin/v1/api_pb.ts b/web-common/src/proto/gen/rill/admin/v1/api_pb.ts index daacb3efa15..18598831b14 100644 --- a/web-common/src/proto/gen/rill/admin/v1/api_pb.ts +++ b/web-common/src/proto/gen/rill/admin/v1/api_pb.ts @@ -11952,9 +11952,9 @@ export class Organization extends Message { billingEmail = ""; /** - * @generated from field: optional string billing_plan_name = 14; + * @generated from field: optional rill.admin.v1.BillingPlanType billing_plan_type = 14; */ - billingPlanName?: string; + billingPlanType?: BillingPlanType; /** * @generated from field: optional string billing_plan_display_name = 15; @@ -11990,7 +11990,7 @@ export class Organization extends Message { { no: 7, name: "billing_customer_id", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 8, name: "payment_customer_id", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 9, name: "billing_email", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { no: 14, name: "billing_plan_name", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, + { no: 14, name: "billing_plan_type", kind: "enum", T: proto3.getEnumType(BillingPlanType), opt: true }, { no: 15, name: "billing_plan_display_name", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, { no: 5, name: "created_on", kind: "message", T: Timestamp }, { no: 6, name: "updated_on", kind: "message", T: Timestamp }, From fe87de1d23c71a44ddbec0068eb9964dc4f9ad1c Mon Sep 17 00:00:00 2001 From: Aditya Hegde Date: Mon, 24 Feb 2025 11:40:42 +0530 Subject: [PATCH 2/4] Replicate plan type detection in frontend --- admin/billing/biller.go | 1 - admin/billing/noop.go | 4 - admin/billing/orb.go | 31 +- admin/server/organizations.go | 5 +- proto/gen/rill/admin/v1/admin.swagger.yaml | 4 +- proto/gen/rill/admin/v1/api.pb.go | 667 +++++++++--------- proto/gen/rill/admin/v1/api.pb.validate.go | 4 +- proto/rill/admin/v1/api.proto | 2 +- web-admin/src/client/gen/index.schemas.ts | 2 +- web-admin/src/features/billing/Payment.svelte | 4 +- .../billing/issues/useBillingIssueMessage.ts | 9 +- .../src/features/billing/plans/Plan.svelte | 4 +- .../src/features/billing/plans/selectors.ts | 2 +- web-admin/src/features/billing/plans/utils.ts | 21 +- .../[organization]/-/settings/+layout.svelte | 3 +- .../[organization]/-/settings/usage/+page.ts | 2 +- .../src/proto/gen/rill/admin/v1/api_pb.ts | 6 +- 17 files changed, 381 insertions(+), 390 deletions(-) diff --git a/admin/billing/biller.go b/admin/billing/biller.go index 60deeb0bed6..53cb59f0653 100644 --- a/admin/billing/biller.go +++ b/admin/billing/biller.go @@ -27,7 +27,6 @@ type Biller interface { GetPlan(ctx context.Context, id string) (*Plan, error) // GetPlanByName returns the plan with the given Rill plan name. GetPlanByName(ctx context.Context, name string) (*Plan, error) - GetPlanTypeForExternalId(externalID string) PlanType // CreateCustomer creates a customer for the given organization in the billing system and returns the external customer ID. CreateCustomer(ctx context.Context, organization *database.Organization, provider PaymentProvider) (*Customer, error) diff --git a/admin/billing/noop.go b/admin/billing/noop.go index 963deba77d7..a7ea744641f 100644 --- a/admin/billing/noop.go +++ b/admin/billing/noop.go @@ -37,10 +37,6 @@ func (n noop) GetPlanByName(ctx context.Context, name string) (*Plan, error) { return nil, nil } -func (n noop) GetPlanTypeForExternalId(externalID string) PlanType { - return TrailPlanType -} - func (n noop) GetPublicPlans(ctx context.Context) ([]*Plan, error) { return nil, nil } diff --git a/admin/billing/orb.go b/admin/billing/orb.go index f53ef0344e4..edd7fa6db30 100644 --- a/admin/billing/orb.go +++ b/admin/billing/orb.go @@ -110,19 +110,6 @@ func (o *Orb) GetPlanByName(ctx context.Context, name string) (*Plan, error) { return nil, ErrNotFound } -func (o *Orb) GetPlanTypeForExternalId(externalID string) PlanType { - switch externalID { - case "free_trial": - return TrailPlanType - case "team": - return TeamPlanType - case "managed": - return ManagedPlanType - default: - return EnterprisePlanType - } -} - func (o *Orb) CreateCustomer(ctx context.Context, organization *database.Organization, provider PaymentProvider) (*Customer, error) { var paymentProviderType orb.CustomerNewParamsPaymentProvider switch provider { @@ -581,7 +568,7 @@ func (o *Orb) getBillingPlanFromOrbPlan(ctx context.Context, p *orb.Plan) (*Plan billingPlan := &Plan{ ID: p.ID, Name: p.ExternalPlanID, - PlanType: o.GetPlanTypeForExternalId(p.ExternalPlanID), + PlanType: getPlanType(p.ExternalPlanID), DisplayName: getPlanDisplayName(p.ExternalPlanID), Description: p.Description, TrialPeriodDays: trialPeriodDays, @@ -635,6 +622,22 @@ func getBillingInvoiceFromOrbInvoice(i *orb.Invoice) *Invoice { } } +// Mapping of externalID/planName to a type. +// Used in deciding email body in backend. +// Make sure to update web-admin/src/features/billing/plans/utils.ts if this is updated +func getPlanType(externalID string) PlanType { + switch externalID { + case "free_trial": + return TrailPlanType + case "team": + return TeamPlanType + case "managed": + return ManagedPlanType + default: + return EnterprisePlanType + } +} + func getPlanDisplayName(externalID string) string { switch externalID { case "free_trial": diff --git a/admin/server/organizations.go b/admin/server/organizations.go index fbba3262668..03f8d37f9ed 100644 --- a/admin/server/organizations.go +++ b/admin/server/organizations.go @@ -1002,10 +1002,7 @@ func (s *Server) organizationToDTO(o *database.Organization, privileged bool) *a res.BillingCustomerId = o.BillingCustomerID res.PaymentCustomerId = o.PaymentCustomerID res.BillingEmail = o.BillingEmail - if o.BillingPlanName != nil { - planType := planTypeToDTO(s.admin.Biller.GetPlanTypeForExternalId(*o.BillingPlanName)) - res.BillingPlanType = &planType - } + res.BillingPlanName = o.BillingPlanName res.BillingPlanDisplayName = o.BillingPlanDisplayName } diff --git a/proto/gen/rill/admin/v1/admin.swagger.yaml b/proto/gen/rill/admin/v1/admin.swagger.yaml index e5778cb7e2d..5aafbbd163d 100644 --- a/proto/gen/rill/admin/v1/admin.swagger.yaml +++ b/proto/gen/rill/admin/v1/admin.swagger.yaml @@ -4684,8 +4684,8 @@ definitions: type: string billingEmail: type: string - billingPlanType: - $ref: '#/definitions/v1BillingPlanType' + billingPlanName: + type: string billingPlanDisplayName: type: string createdOn: diff --git a/proto/gen/rill/admin/v1/api.pb.go b/proto/gen/rill/admin/v1/api.pb.go index 959f01f216d..eef286a6954 100644 --- a/proto/gen/rill/admin/v1/api.pb.go +++ b/proto/gen/rill/admin/v1/api.pb.go @@ -15120,7 +15120,7 @@ type Organization struct { BillingCustomerId string `protobuf:"bytes,7,opt,name=billing_customer_id,json=billingCustomerId,proto3" json:"billing_customer_id,omitempty"` PaymentCustomerId string `protobuf:"bytes,8,opt,name=payment_customer_id,json=paymentCustomerId,proto3" json:"payment_customer_id,omitempty"` BillingEmail string `protobuf:"bytes,9,opt,name=billing_email,json=billingEmail,proto3" json:"billing_email,omitempty"` - BillingPlanType *BillingPlanType `protobuf:"varint,14,opt,name=billing_plan_type,json=billingPlanType,proto3,enum=rill.admin.v1.BillingPlanType,oneof" json:"billing_plan_type,omitempty"` + BillingPlanName *string `protobuf:"bytes,14,opt,name=billing_plan_name,json=billingPlanName,proto3,oneof" json:"billing_plan_name,omitempty"` BillingPlanDisplayName *string `protobuf:"bytes,15,opt,name=billing_plan_display_name,json=billingPlanDisplayName,proto3,oneof" json:"billing_plan_display_name,omitempty"` CreatedOn *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=created_on,json=createdOn,proto3" json:"created_on,omitempty"` UpdatedOn *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=updated_on,json=updatedOn,proto3" json:"updated_on,omitempty"` @@ -15235,11 +15235,11 @@ func (x *Organization) GetBillingEmail() string { return "" } -func (x *Organization) GetBillingPlanType() BillingPlanType { - if x != nil && x.BillingPlanType != nil { - return *x.BillingPlanType +func (x *Organization) GetBillingPlanName() string { + if x != nil && x.BillingPlanName != nil { + return *x.BillingPlanName } - return BillingPlanType_BILLING_PLAN_TYPE_UNSPECIFIED + return "" } func (x *Organization) GetBillingPlanDisplayName() string { @@ -20295,7 +20295,7 @@ var file_rill_admin_v1_api_proto_rawDesc = []byte{ 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 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, 0x4f, 0x6e, 0x22, 0xd3, 0x05, 0x0a, 0x0c, 0x4f, + 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x22, 0xb3, 0x05, 0x0a, 0x0c, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 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, @@ -20321,12 +20321,10 @@ var file_rill_admin_v1_api_proto_rawDesc = []byte{ 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, - 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x4f, 0x0a, 0x11, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, - 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x1e, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, - 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x6e, 0x54, 0x79, 0x70, 0x65, - 0x48, 0x00, 0x52, 0x0f, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x6e, 0x54, - 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x19, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, + 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x2f, 0x0a, 0x11, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, + 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x0f, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x6e, 0x4e, + 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x19, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x16, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x6e, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, @@ -20338,8 +20336,8 @@ var file_rill_admin_v1_api_proto_rawDesc = []byte{ 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, 0x4f, 0x6e, 0x42, 0x14, 0x0a, 0x12, - 0x5f, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x70, + 0x5f, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xc6, 0x03, 0x0a, 0x0c, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, @@ -22807,327 +22805,326 @@ var file_rill_admin_v1_api_proto_depIdxs = []int32{ 311, // 98: rill.admin.v1.Service.created_on:type_name -> google.protobuf.Timestamp 311, // 99: rill.admin.v1.Service.updated_on:type_name -> google.protobuf.Timestamp 270, // 100: rill.admin.v1.Organization.quotas:type_name -> rill.admin.v1.OrganizationQuotas - 2, // 101: rill.admin.v1.Organization.billing_plan_type:type_name -> rill.admin.v1.BillingPlanType - 311, // 102: rill.admin.v1.Organization.created_on:type_name -> google.protobuf.Timestamp - 311, // 103: rill.admin.v1.Organization.updated_on:type_name -> google.protobuf.Timestamp - 285, // 104: rill.admin.v1.Subscription.plan:type_name -> rill.admin.v1.BillingPlan - 311, // 105: rill.admin.v1.Subscription.start_date:type_name -> google.protobuf.Timestamp - 311, // 106: rill.admin.v1.Subscription.end_date:type_name -> google.protobuf.Timestamp - 311, // 107: rill.admin.v1.Subscription.current_billing_cycle_start_date:type_name -> google.protobuf.Timestamp - 311, // 108: rill.admin.v1.Subscription.current_billing_cycle_end_date:type_name -> google.protobuf.Timestamp - 311, // 109: rill.admin.v1.Subscription.trial_end_date:type_name -> google.protobuf.Timestamp - 310, // 110: rill.admin.v1.Project.annotations:type_name -> rill.admin.v1.Project.AnnotationsEntry - 311, // 111: rill.admin.v1.Project.created_on:type_name -> google.protobuf.Timestamp - 311, // 112: rill.admin.v1.Project.updated_on:type_name -> google.protobuf.Timestamp - 1, // 113: rill.admin.v1.Deployment.status:type_name -> rill.admin.v1.DeploymentStatus - 311, // 114: rill.admin.v1.Deployment.created_on:type_name -> google.protobuf.Timestamp - 311, // 115: rill.admin.v1.Deployment.updated_on:type_name -> google.protobuf.Timestamp - 312, // 116: rill.admin.v1.ProvisionerResource.args:type_name -> google.protobuf.Struct - 312, // 117: rill.admin.v1.ProvisionerResource.config:type_name -> google.protobuf.Struct - 311, // 118: rill.admin.v1.MemberUser.created_on:type_name -> google.protobuf.Timestamp - 311, // 119: rill.admin.v1.MemberUser.updated_on:type_name -> google.protobuf.Timestamp - 311, // 120: rill.admin.v1.Bookmark.created_on:type_name -> google.protobuf.Timestamp - 311, // 121: rill.admin.v1.Bookmark.updated_on:type_name -> google.protobuf.Timestamp - 311, // 122: rill.admin.v1.ServiceToken.created_on:type_name -> google.protobuf.Timestamp - 311, // 123: rill.admin.v1.ServiceToken.expires_on:type_name -> google.protobuf.Timestamp - 311, // 124: rill.admin.v1.MagicAuthToken.created_on:type_name -> google.protobuf.Timestamp - 311, // 125: rill.admin.v1.MagicAuthToken.expires_on:type_name -> google.protobuf.Timestamp - 311, // 126: rill.admin.v1.MagicAuthToken.used_on:type_name -> google.protobuf.Timestamp - 312, // 127: rill.admin.v1.MagicAuthToken.attributes:type_name -> google.protobuf.Struct - 313, // 128: rill.admin.v1.MagicAuthToken.filter:type_name -> rill.runtime.v1.Expression - 311, // 129: rill.admin.v1.VirtualFile.updated_on:type_name -> google.protobuf.Timestamp - 314, // 130: rill.admin.v1.ReportOptions.export_format:type_name -> rill.runtime.v1.ExportFormat - 312, // 131: rill.admin.v1.AlertOptions.resolver_properties:type_name -> google.protobuf.Struct - 2, // 132: rill.admin.v1.BillingPlan.plan_type:type_name -> rill.admin.v1.BillingPlanType - 286, // 133: rill.admin.v1.BillingPlan.quotas:type_name -> rill.admin.v1.Quotas - 311, // 134: rill.admin.v1.Usergroup.created_on:type_name -> google.protobuf.Timestamp - 311, // 135: rill.admin.v1.Usergroup.updated_on:type_name -> google.protobuf.Timestamp - 311, // 136: rill.admin.v1.MemberUsergroup.created_on:type_name -> google.protobuf.Timestamp - 311, // 137: rill.admin.v1.MemberUsergroup.updated_on:type_name -> google.protobuf.Timestamp - 3, // 138: rill.admin.v1.BillingIssue.type:type_name -> rill.admin.v1.BillingIssueType - 4, // 139: rill.admin.v1.BillingIssue.level:type_name -> rill.admin.v1.BillingIssueLevel - 290, // 140: rill.admin.v1.BillingIssue.metadata:type_name -> rill.admin.v1.BillingIssueMetadata - 311, // 141: rill.admin.v1.BillingIssue.event_time:type_name -> google.protobuf.Timestamp - 311, // 142: rill.admin.v1.BillingIssue.created_on:type_name -> google.protobuf.Timestamp - 291, // 143: rill.admin.v1.BillingIssueMetadata.on_trial:type_name -> rill.admin.v1.BillingIssueMetadataOnTrial - 292, // 144: rill.admin.v1.BillingIssueMetadata.trial_ended:type_name -> rill.admin.v1.BillingIssueMetadataTrialEnded - 293, // 145: rill.admin.v1.BillingIssueMetadata.no_payment_method:type_name -> rill.admin.v1.BillingIssueMetadataNoPaymentMethod - 294, // 146: rill.admin.v1.BillingIssueMetadata.no_billable_address:type_name -> rill.admin.v1.BillingIssueMetadataNoBillableAddress - 295, // 147: rill.admin.v1.BillingIssueMetadata.payment_failed:type_name -> rill.admin.v1.BillingIssueMetadataPaymentFailed - 297, // 148: rill.admin.v1.BillingIssueMetadata.subscription_cancelled:type_name -> rill.admin.v1.BillingIssueMetadataSubscriptionCancelled - 298, // 149: rill.admin.v1.BillingIssueMetadata.never_subscribed:type_name -> rill.admin.v1.BillingIssueMetadataNeverSubscribed - 311, // 150: rill.admin.v1.BillingIssueMetadataOnTrial.end_date:type_name -> google.protobuf.Timestamp - 311, // 151: rill.admin.v1.BillingIssueMetadataOnTrial.grace_period_end_date:type_name -> google.protobuf.Timestamp - 311, // 152: rill.admin.v1.BillingIssueMetadataTrialEnded.end_date:type_name -> google.protobuf.Timestamp - 311, // 153: rill.admin.v1.BillingIssueMetadataTrialEnded.grace_period_end_date:type_name -> google.protobuf.Timestamp - 296, // 154: rill.admin.v1.BillingIssueMetadataPaymentFailed.invoices:type_name -> rill.admin.v1.BillingIssueMetadataPaymentFailedMeta - 311, // 155: rill.admin.v1.BillingIssueMetadataPaymentFailedMeta.due_date:type_name -> google.protobuf.Timestamp - 311, // 156: rill.admin.v1.BillingIssueMetadataPaymentFailedMeta.failed_on:type_name -> google.protobuf.Timestamp - 311, // 157: rill.admin.v1.BillingIssueMetadataPaymentFailedMeta.grace_period_end_date:type_name -> google.protobuf.Timestamp - 311, // 158: rill.admin.v1.BillingIssueMetadataSubscriptionCancelled.end_date:type_name -> google.protobuf.Timestamp - 0, // 159: rill.admin.v1.GetGithubUserStatusResponse.OrganizationInstallationPermissionsEntry.value:type_name -> rill.admin.v1.GithubPermission - 307, // 160: rill.admin.v1.GetReportMetaResponse.RecipientUrlsEntry.value:type_name -> rill.admin.v1.GetReportMetaResponse.URLs - 5, // 161: rill.admin.v1.AdminService.Ping:input_type -> rill.admin.v1.PingRequest - 7, // 162: rill.admin.v1.AdminService.ListOrganizations:input_type -> rill.admin.v1.ListOrganizationsRequest - 9, // 163: rill.admin.v1.AdminService.GetOrganization:input_type -> rill.admin.v1.GetOrganizationRequest - 11, // 164: rill.admin.v1.AdminService.GetOrganizationNameForDomain:input_type -> rill.admin.v1.GetOrganizationNameForDomainRequest - 13, // 165: rill.admin.v1.AdminService.CreateOrganization:input_type -> rill.admin.v1.CreateOrganizationRequest - 15, // 166: rill.admin.v1.AdminService.DeleteOrganization:input_type -> rill.admin.v1.DeleteOrganizationRequest - 17, // 167: rill.admin.v1.AdminService.UpdateOrganization:input_type -> rill.admin.v1.UpdateOrganizationRequest - 19, // 168: rill.admin.v1.AdminService.ListProjectsForOrganization:input_type -> rill.admin.v1.ListProjectsForOrganizationRequest - 21, // 169: rill.admin.v1.AdminService.GetProject:input_type -> rill.admin.v1.GetProjectRequest - 23, // 170: rill.admin.v1.AdminService.GetProjectByID:input_type -> rill.admin.v1.GetProjectByIDRequest - 25, // 171: rill.admin.v1.AdminService.SearchProjectNames:input_type -> rill.admin.v1.SearchProjectNamesRequest - 46, // 172: rill.admin.v1.AdminService.CreateProject:input_type -> rill.admin.v1.CreateProjectRequest - 48, // 173: rill.admin.v1.AdminService.DeleteProject:input_type -> rill.admin.v1.DeleteProjectRequest - 50, // 174: rill.admin.v1.AdminService.UpdateProject:input_type -> rill.admin.v1.UpdateProjectRequest - 27, // 175: rill.admin.v1.AdminService.GetProjectVariables:input_type -> rill.admin.v1.GetProjectVariablesRequest - 30, // 176: rill.admin.v1.AdminService.UpdateProjectVariables:input_type -> rill.admin.v1.UpdateProjectVariablesRequest - 52, // 177: rill.admin.v1.AdminService.CreateAsset:input_type -> rill.admin.v1.CreateAssetRequest - 54, // 178: rill.admin.v1.AdminService.RedeployProject:input_type -> rill.admin.v1.RedeployProjectRequest - 56, // 179: rill.admin.v1.AdminService.HibernateProject:input_type -> rill.admin.v1.HibernateProjectRequest - 58, // 180: rill.admin.v1.AdminService.TriggerReconcile:input_type -> rill.admin.v1.TriggerReconcileRequest - 60, // 181: rill.admin.v1.AdminService.TriggerRefreshSources:input_type -> rill.admin.v1.TriggerRefreshSourcesRequest - 62, // 182: rill.admin.v1.AdminService.TriggerRedeploy:input_type -> rill.admin.v1.TriggerRedeployRequest - 64, // 183: rill.admin.v1.AdminService.Provision:input_type -> rill.admin.v1.ProvisionRequest - 66, // 184: rill.admin.v1.AdminService.ListOrganizationMemberUsers:input_type -> rill.admin.v1.ListOrganizationMemberUsersRequest - 68, // 185: rill.admin.v1.AdminService.ListOrganizationInvites:input_type -> rill.admin.v1.ListOrganizationInvitesRequest - 70, // 186: rill.admin.v1.AdminService.AddOrganizationMemberUser:input_type -> rill.admin.v1.AddOrganizationMemberUserRequest - 72, // 187: rill.admin.v1.AdminService.RemoveOrganizationMemberUser:input_type -> rill.admin.v1.RemoveOrganizationMemberUserRequest - 74, // 188: rill.admin.v1.AdminService.LeaveOrganization:input_type -> rill.admin.v1.LeaveOrganizationRequest - 76, // 189: rill.admin.v1.AdminService.SetOrganizationMemberUserRole:input_type -> rill.admin.v1.SetOrganizationMemberUserRoleRequest - 102, // 190: rill.admin.v1.AdminService.ListProjectMemberUsers:input_type -> rill.admin.v1.ListProjectMemberUsersRequest - 104, // 191: rill.admin.v1.AdminService.ListProjectInvites:input_type -> rill.admin.v1.ListProjectInvitesRequest - 106, // 192: rill.admin.v1.AdminService.AddProjectMemberUser:input_type -> rill.admin.v1.AddProjectMemberUserRequest - 108, // 193: rill.admin.v1.AdminService.RemoveProjectMemberUser:input_type -> rill.admin.v1.RemoveProjectMemberUserRequest - 110, // 194: rill.admin.v1.AdminService.SetProjectMemberUserRole:input_type -> rill.admin.v1.SetProjectMemberUserRoleRequest - 112, // 195: rill.admin.v1.AdminService.CreateUsergroup:input_type -> rill.admin.v1.CreateUsergroupRequest - 114, // 196: rill.admin.v1.AdminService.GetUsergroup:input_type -> rill.admin.v1.GetUsergroupRequest - 116, // 197: rill.admin.v1.AdminService.RenameUsergroup:input_type -> rill.admin.v1.RenameUsergroupRequest - 118, // 198: rill.admin.v1.AdminService.EditUsergroup:input_type -> rill.admin.v1.EditUsergroupRequest - 120, // 199: rill.admin.v1.AdminService.ListOrganizationMemberUsergroups:input_type -> rill.admin.v1.ListOrganizationMemberUsergroupsRequest - 122, // 200: rill.admin.v1.AdminService.ListProjectMemberUsergroups:input_type -> rill.admin.v1.ListProjectMemberUsergroupsRequest - 124, // 201: rill.admin.v1.AdminService.DeleteUsergroup:input_type -> rill.admin.v1.DeleteUsergroupRequest - 126, // 202: rill.admin.v1.AdminService.AddOrganizationMemberUsergroup:input_type -> rill.admin.v1.AddOrganizationMemberUsergroupRequest - 128, // 203: rill.admin.v1.AdminService.SetOrganizationMemberUsergroupRole:input_type -> rill.admin.v1.SetOrganizationMemberUsergroupRoleRequest - 130, // 204: rill.admin.v1.AdminService.RemoveOrganizationMemberUsergroup:input_type -> rill.admin.v1.RemoveOrganizationMemberUsergroupRequest - 132, // 205: rill.admin.v1.AdminService.AddProjectMemberUsergroup:input_type -> rill.admin.v1.AddProjectMemberUsergroupRequest - 134, // 206: rill.admin.v1.AdminService.SetProjectMemberUsergroupRole:input_type -> rill.admin.v1.SetProjectMemberUsergroupRoleRequest - 136, // 207: rill.admin.v1.AdminService.RemoveProjectMemberUsergroup:input_type -> rill.admin.v1.RemoveProjectMemberUsergroupRequest - 138, // 208: rill.admin.v1.AdminService.AddUsergroupMemberUser:input_type -> rill.admin.v1.AddUsergroupMemberUserRequest - 140, // 209: rill.admin.v1.AdminService.ListUsergroupMemberUsers:input_type -> rill.admin.v1.ListUsergroupMemberUsersRequest - 142, // 210: rill.admin.v1.AdminService.RemoveUsergroupMemberUser:input_type -> rill.admin.v1.RemoveUsergroupMemberUserRequest - 144, // 211: rill.admin.v1.AdminService.GetCurrentUser:input_type -> rill.admin.v1.GetCurrentUserRequest - 151, // 212: rill.admin.v1.AdminService.DeleteUser:input_type -> rill.admin.v1.DeleteUserRequest - 167, // 213: rill.admin.v1.AdminService.IssueRepresentativeAuthToken:input_type -> rill.admin.v1.IssueRepresentativeAuthTokenRequest - 165, // 214: rill.admin.v1.AdminService.RevokeCurrentAuthToken:input_type -> rill.admin.v1.RevokeCurrentAuthTokenRequest - 183, // 215: rill.admin.v1.AdminService.GetGithubRepoStatus:input_type -> rill.admin.v1.GetGithubRepoStatusRequest - 185, // 216: rill.admin.v1.AdminService.GetGithubUserStatus:input_type -> rill.admin.v1.GetGithubUserStatusRequest - 187, // 217: rill.admin.v1.AdminService.ListGithubUserRepos:input_type -> rill.admin.v1.ListGithubUserReposRequest - 189, // 218: rill.admin.v1.AdminService.ConnectProjectToGithub:input_type -> rill.admin.v1.ConnectProjectToGithubRequest - 191, // 219: rill.admin.v1.AdminService.UploadProjectAssets:input_type -> rill.admin.v1.UploadProjectAssetsRequest - 193, // 220: rill.admin.v1.AdminService.GetCloneCredentials:input_type -> rill.admin.v1.GetCloneCredentialsRequest - 195, // 221: rill.admin.v1.AdminService.CreateWhitelistedDomain:input_type -> rill.admin.v1.CreateWhitelistedDomainRequest - 197, // 222: rill.admin.v1.AdminService.RemoveWhitelistedDomain:input_type -> rill.admin.v1.RemoveWhitelistedDomainRequest - 199, // 223: rill.admin.v1.AdminService.ListWhitelistedDomains:input_type -> rill.admin.v1.ListWhitelistedDomainsRequest - 146, // 224: rill.admin.v1.AdminService.GetUser:input_type -> rill.admin.v1.GetUserRequest - 163, // 225: rill.admin.v1.AdminService.SearchUsers:input_type -> rill.admin.v1.SearchUsersRequest - 32, // 226: rill.admin.v1.AdminService.SearchProjectUsers:input_type -> rill.admin.v1.SearchProjectUsersRequest - 78, // 227: rill.admin.v1.AdminService.ListSuperusers:input_type -> rill.admin.v1.ListSuperusersRequest - 34, // 228: rill.admin.v1.AdminService.GetDeploymentCredentials:input_type -> rill.admin.v1.GetDeploymentCredentialsRequest - 36, // 229: rill.admin.v1.AdminService.GetIFrame:input_type -> rill.admin.v1.GetIFrameRequest - 80, // 230: rill.admin.v1.AdminService.SetSuperuser:input_type -> rill.admin.v1.SetSuperuserRequest - 82, // 231: rill.admin.v1.AdminService.SudoGetResource:input_type -> rill.admin.v1.SudoGetResourceRequest - 92, // 232: rill.admin.v1.AdminService.SudoUpdateUserQuotas:input_type -> rill.admin.v1.SudoUpdateUserQuotasRequest - 84, // 233: rill.admin.v1.AdminService.SudoUpdateOrganizationQuotas:input_type -> rill.admin.v1.SudoUpdateOrganizationQuotasRequest - 86, // 234: rill.admin.v1.AdminService.SudoUpdateOrganizationBillingCustomer:input_type -> rill.admin.v1.SudoUpdateOrganizationBillingCustomerRequest - 88, // 235: rill.admin.v1.AdminService.SudoExtendTrial:input_type -> rill.admin.v1.SudoExtendTrialRequest - 90, // 236: rill.admin.v1.AdminService.SudoUpdateOrganizationCustomDomain:input_type -> rill.admin.v1.SudoUpdateOrganizationCustomDomainRequest - 94, // 237: rill.admin.v1.AdminService.SudoUpdateAnnotations:input_type -> rill.admin.v1.SudoUpdateAnnotationsRequest - 96, // 238: rill.admin.v1.AdminService.SudoIssueRuntimeManagerToken:input_type -> rill.admin.v1.SudoIssueRuntimeManagerTokenRequest - 98, // 239: rill.admin.v1.AdminService.SudoDeleteOrganizationBillingIssue:input_type -> rill.admin.v1.SudoDeleteOrganizationBillingIssueRequest - 100, // 240: rill.admin.v1.AdminService.SudoTriggerBillingRepair:input_type -> rill.admin.v1.SudoTriggerBillingRepairRequest - 201, // 241: rill.admin.v1.AdminService.CreateProjectWhitelistedDomain:input_type -> rill.admin.v1.CreateProjectWhitelistedDomainRequest - 203, // 242: rill.admin.v1.AdminService.RemoveProjectWhitelistedDomain:input_type -> rill.admin.v1.RemoveProjectWhitelistedDomainRequest - 205, // 243: rill.admin.v1.AdminService.ListProjectWhitelistedDomains:input_type -> rill.admin.v1.ListProjectWhitelistedDomainsRequest - 38, // 244: rill.admin.v1.AdminService.ListServices:input_type -> rill.admin.v1.ListServicesRequest - 40, // 245: rill.admin.v1.AdminService.CreateService:input_type -> rill.admin.v1.CreateServiceRequest - 42, // 246: rill.admin.v1.AdminService.UpdateService:input_type -> rill.admin.v1.UpdateServiceRequest - 44, // 247: rill.admin.v1.AdminService.DeleteService:input_type -> rill.admin.v1.DeleteServiceRequest - 173, // 248: rill.admin.v1.AdminService.ListServiceAuthTokens:input_type -> rill.admin.v1.ListServiceAuthTokensRequest - 171, // 249: rill.admin.v1.AdminService.IssueServiceAuthToken:input_type -> rill.admin.v1.IssueServiceAuthTokenRequest - 169, // 250: rill.admin.v1.AdminService.RevokeServiceAuthToken:input_type -> rill.admin.v1.RevokeServiceAuthTokenRequest - 175, // 251: rill.admin.v1.AdminService.IssueMagicAuthToken:input_type -> rill.admin.v1.IssueMagicAuthTokenRequest - 177, // 252: rill.admin.v1.AdminService.ListMagicAuthTokens:input_type -> rill.admin.v1.ListMagicAuthTokensRequest - 179, // 253: rill.admin.v1.AdminService.GetCurrentMagicAuthToken:input_type -> rill.admin.v1.GetCurrentMagicAuthTokenRequest - 181, // 254: rill.admin.v1.AdminService.RevokeMagicAuthToken:input_type -> rill.admin.v1.RevokeMagicAuthTokenRequest - 149, // 255: rill.admin.v1.AdminService.UpdateUserPreferences:input_type -> rill.admin.v1.UpdateUserPreferencesRequest - 153, // 256: rill.admin.v1.AdminService.ListBookmarks:input_type -> rill.admin.v1.ListBookmarksRequest - 155, // 257: rill.admin.v1.AdminService.GetBookmark:input_type -> rill.admin.v1.GetBookmarkRequest - 157, // 258: rill.admin.v1.AdminService.CreateBookmark:input_type -> rill.admin.v1.CreateBookmarkRequest - 159, // 259: rill.admin.v1.AdminService.UpdateBookmark:input_type -> rill.admin.v1.UpdateBookmarkRequest - 161, // 260: rill.admin.v1.AdminService.RemoveBookmark:input_type -> rill.admin.v1.RemoveBookmarkRequest - 207, // 261: rill.admin.v1.AdminService.GetRepoMeta:input_type -> rill.admin.v1.GetRepoMetaRequest - 209, // 262: rill.admin.v1.AdminService.PullVirtualRepo:input_type -> rill.admin.v1.PullVirtualRepoRequest - 211, // 263: rill.admin.v1.AdminService.GetReportMeta:input_type -> rill.admin.v1.GetReportMetaRequest - 213, // 264: rill.admin.v1.AdminService.GetAlertMeta:input_type -> rill.admin.v1.GetAlertMetaRequest - 215, // 265: rill.admin.v1.AdminService.CreateReport:input_type -> rill.admin.v1.CreateReportRequest - 217, // 266: rill.admin.v1.AdminService.EditReport:input_type -> rill.admin.v1.EditReportRequest - 219, // 267: rill.admin.v1.AdminService.UnsubscribeReport:input_type -> rill.admin.v1.UnsubscribeReportRequest - 221, // 268: rill.admin.v1.AdminService.DeleteReport:input_type -> rill.admin.v1.DeleteReportRequest - 223, // 269: rill.admin.v1.AdminService.TriggerReport:input_type -> rill.admin.v1.TriggerReportRequest - 225, // 270: rill.admin.v1.AdminService.GenerateReportYAML:input_type -> rill.admin.v1.GenerateReportYAMLRequest - 227, // 271: rill.admin.v1.AdminService.CreateAlert:input_type -> rill.admin.v1.CreateAlertRequest - 229, // 272: rill.admin.v1.AdminService.EditAlert:input_type -> rill.admin.v1.EditAlertRequest - 231, // 273: rill.admin.v1.AdminService.UnsubscribeAlert:input_type -> rill.admin.v1.UnsubscribeAlertRequest - 233, // 274: rill.admin.v1.AdminService.DeleteAlert:input_type -> rill.admin.v1.DeleteAlertRequest - 235, // 275: rill.admin.v1.AdminService.GenerateAlertYAML:input_type -> rill.admin.v1.GenerateAlertYAMLRequest - 237, // 276: rill.admin.v1.AdminService.GetAlertYAML:input_type -> rill.admin.v1.GetAlertYAMLRequest - 239, // 277: rill.admin.v1.AdminService.GetBillingSubscription:input_type -> rill.admin.v1.GetBillingSubscriptionRequest - 241, // 278: rill.admin.v1.AdminService.UpdateBillingSubscription:input_type -> rill.admin.v1.UpdateBillingSubscriptionRequest - 243, // 279: rill.admin.v1.AdminService.CancelBillingSubscription:input_type -> rill.admin.v1.CancelBillingSubscriptionRequest - 245, // 280: rill.admin.v1.AdminService.RenewBillingSubscription:input_type -> rill.admin.v1.RenewBillingSubscriptionRequest - 247, // 281: rill.admin.v1.AdminService.GetPaymentsPortalURL:input_type -> rill.admin.v1.GetPaymentsPortalURLRequest - 249, // 282: rill.admin.v1.AdminService.ListPublicBillingPlans:input_type -> rill.admin.v1.ListPublicBillingPlansRequest - 251, // 283: rill.admin.v1.AdminService.GetBillingProjectCredentials:input_type -> rill.admin.v1.GetBillingProjectCredentialsRequest - 255, // 284: rill.admin.v1.AdminService.RequestProjectAccess:input_type -> rill.admin.v1.RequestProjectAccessRequest - 257, // 285: rill.admin.v1.AdminService.GetProjectAccessRequest:input_type -> rill.admin.v1.GetProjectAccessRequestRequest - 259, // 286: rill.admin.v1.AdminService.ApproveProjectAccess:input_type -> rill.admin.v1.ApproveProjectAccessRequest - 261, // 287: rill.admin.v1.AdminService.DenyProjectAccess:input_type -> rill.admin.v1.DenyProjectAccessRequest - 263, // 288: rill.admin.v1.AdminService.ListOrganizationBillingIssues:input_type -> rill.admin.v1.ListOrganizationBillingIssuesRequest - 6, // 289: rill.admin.v1.AdminService.Ping:output_type -> rill.admin.v1.PingResponse - 8, // 290: rill.admin.v1.AdminService.ListOrganizations:output_type -> rill.admin.v1.ListOrganizationsResponse - 10, // 291: rill.admin.v1.AdminService.GetOrganization:output_type -> rill.admin.v1.GetOrganizationResponse - 12, // 292: rill.admin.v1.AdminService.GetOrganizationNameForDomain:output_type -> rill.admin.v1.GetOrganizationNameForDomainResponse - 14, // 293: rill.admin.v1.AdminService.CreateOrganization:output_type -> rill.admin.v1.CreateOrganizationResponse - 16, // 294: rill.admin.v1.AdminService.DeleteOrganization:output_type -> rill.admin.v1.DeleteOrganizationResponse - 18, // 295: rill.admin.v1.AdminService.UpdateOrganization:output_type -> rill.admin.v1.UpdateOrganizationResponse - 20, // 296: rill.admin.v1.AdminService.ListProjectsForOrganization:output_type -> rill.admin.v1.ListProjectsForOrganizationResponse - 22, // 297: rill.admin.v1.AdminService.GetProject:output_type -> rill.admin.v1.GetProjectResponse - 24, // 298: rill.admin.v1.AdminService.GetProjectByID:output_type -> rill.admin.v1.GetProjectByIDResponse - 26, // 299: rill.admin.v1.AdminService.SearchProjectNames:output_type -> rill.admin.v1.SearchProjectNamesResponse - 47, // 300: rill.admin.v1.AdminService.CreateProject:output_type -> rill.admin.v1.CreateProjectResponse - 49, // 301: rill.admin.v1.AdminService.DeleteProject:output_type -> rill.admin.v1.DeleteProjectResponse - 51, // 302: rill.admin.v1.AdminService.UpdateProject:output_type -> rill.admin.v1.UpdateProjectResponse - 28, // 303: rill.admin.v1.AdminService.GetProjectVariables:output_type -> rill.admin.v1.GetProjectVariablesResponse - 31, // 304: rill.admin.v1.AdminService.UpdateProjectVariables:output_type -> rill.admin.v1.UpdateProjectVariablesResponse - 53, // 305: rill.admin.v1.AdminService.CreateAsset:output_type -> rill.admin.v1.CreateAssetResponse - 55, // 306: rill.admin.v1.AdminService.RedeployProject:output_type -> rill.admin.v1.RedeployProjectResponse - 57, // 307: rill.admin.v1.AdminService.HibernateProject:output_type -> rill.admin.v1.HibernateProjectResponse - 59, // 308: rill.admin.v1.AdminService.TriggerReconcile:output_type -> rill.admin.v1.TriggerReconcileResponse - 61, // 309: rill.admin.v1.AdminService.TriggerRefreshSources:output_type -> rill.admin.v1.TriggerRefreshSourcesResponse - 63, // 310: rill.admin.v1.AdminService.TriggerRedeploy:output_type -> rill.admin.v1.TriggerRedeployResponse - 65, // 311: rill.admin.v1.AdminService.Provision:output_type -> rill.admin.v1.ProvisionResponse - 67, // 312: rill.admin.v1.AdminService.ListOrganizationMemberUsers:output_type -> rill.admin.v1.ListOrganizationMemberUsersResponse - 69, // 313: rill.admin.v1.AdminService.ListOrganizationInvites:output_type -> rill.admin.v1.ListOrganizationInvitesResponse - 71, // 314: rill.admin.v1.AdminService.AddOrganizationMemberUser:output_type -> rill.admin.v1.AddOrganizationMemberUserResponse - 73, // 315: rill.admin.v1.AdminService.RemoveOrganizationMemberUser:output_type -> rill.admin.v1.RemoveOrganizationMemberUserResponse - 75, // 316: rill.admin.v1.AdminService.LeaveOrganization:output_type -> rill.admin.v1.LeaveOrganizationResponse - 77, // 317: rill.admin.v1.AdminService.SetOrganizationMemberUserRole:output_type -> rill.admin.v1.SetOrganizationMemberUserRoleResponse - 103, // 318: rill.admin.v1.AdminService.ListProjectMemberUsers:output_type -> rill.admin.v1.ListProjectMemberUsersResponse - 105, // 319: rill.admin.v1.AdminService.ListProjectInvites:output_type -> rill.admin.v1.ListProjectInvitesResponse - 107, // 320: rill.admin.v1.AdminService.AddProjectMemberUser:output_type -> rill.admin.v1.AddProjectMemberUserResponse - 109, // 321: rill.admin.v1.AdminService.RemoveProjectMemberUser:output_type -> rill.admin.v1.RemoveProjectMemberUserResponse - 111, // 322: rill.admin.v1.AdminService.SetProjectMemberUserRole:output_type -> rill.admin.v1.SetProjectMemberUserRoleResponse - 113, // 323: rill.admin.v1.AdminService.CreateUsergroup:output_type -> rill.admin.v1.CreateUsergroupResponse - 115, // 324: rill.admin.v1.AdminService.GetUsergroup:output_type -> rill.admin.v1.GetUsergroupResponse - 117, // 325: rill.admin.v1.AdminService.RenameUsergroup:output_type -> rill.admin.v1.RenameUsergroupResponse - 119, // 326: rill.admin.v1.AdminService.EditUsergroup:output_type -> rill.admin.v1.EditUsergroupResponse - 121, // 327: rill.admin.v1.AdminService.ListOrganizationMemberUsergroups:output_type -> rill.admin.v1.ListOrganizationMemberUsergroupsResponse - 123, // 328: rill.admin.v1.AdminService.ListProjectMemberUsergroups:output_type -> rill.admin.v1.ListProjectMemberUsergroupsResponse - 125, // 329: rill.admin.v1.AdminService.DeleteUsergroup:output_type -> rill.admin.v1.DeleteUsergroupResponse - 127, // 330: rill.admin.v1.AdminService.AddOrganizationMemberUsergroup:output_type -> rill.admin.v1.AddOrganizationMemberUsergroupResponse - 129, // 331: rill.admin.v1.AdminService.SetOrganizationMemberUsergroupRole:output_type -> rill.admin.v1.SetOrganizationMemberUsergroupRoleResponse - 131, // 332: rill.admin.v1.AdminService.RemoveOrganizationMemberUsergroup:output_type -> rill.admin.v1.RemoveOrganizationMemberUsergroupResponse - 133, // 333: rill.admin.v1.AdminService.AddProjectMemberUsergroup:output_type -> rill.admin.v1.AddProjectMemberUsergroupResponse - 135, // 334: rill.admin.v1.AdminService.SetProjectMemberUsergroupRole:output_type -> rill.admin.v1.SetProjectMemberUsergroupRoleResponse - 137, // 335: rill.admin.v1.AdminService.RemoveProjectMemberUsergroup:output_type -> rill.admin.v1.RemoveProjectMemberUsergroupResponse - 139, // 336: rill.admin.v1.AdminService.AddUsergroupMemberUser:output_type -> rill.admin.v1.AddUsergroupMemberUserResponse - 141, // 337: rill.admin.v1.AdminService.ListUsergroupMemberUsers:output_type -> rill.admin.v1.ListUsergroupMemberUsersResponse - 143, // 338: rill.admin.v1.AdminService.RemoveUsergroupMemberUser:output_type -> rill.admin.v1.RemoveUsergroupMemberUserResponse - 145, // 339: rill.admin.v1.AdminService.GetCurrentUser:output_type -> rill.admin.v1.GetCurrentUserResponse - 152, // 340: rill.admin.v1.AdminService.DeleteUser:output_type -> rill.admin.v1.DeleteUserResponse - 168, // 341: rill.admin.v1.AdminService.IssueRepresentativeAuthToken:output_type -> rill.admin.v1.IssueRepresentativeAuthTokenResponse - 166, // 342: rill.admin.v1.AdminService.RevokeCurrentAuthToken:output_type -> rill.admin.v1.RevokeCurrentAuthTokenResponse - 184, // 343: rill.admin.v1.AdminService.GetGithubRepoStatus:output_type -> rill.admin.v1.GetGithubRepoStatusResponse - 186, // 344: rill.admin.v1.AdminService.GetGithubUserStatus:output_type -> rill.admin.v1.GetGithubUserStatusResponse - 188, // 345: rill.admin.v1.AdminService.ListGithubUserRepos:output_type -> rill.admin.v1.ListGithubUserReposResponse - 190, // 346: rill.admin.v1.AdminService.ConnectProjectToGithub:output_type -> rill.admin.v1.ConnectProjectToGithubResponse - 192, // 347: rill.admin.v1.AdminService.UploadProjectAssets:output_type -> rill.admin.v1.UploadProjectAssetsResponse - 194, // 348: rill.admin.v1.AdminService.GetCloneCredentials:output_type -> rill.admin.v1.GetCloneCredentialsResponse - 196, // 349: rill.admin.v1.AdminService.CreateWhitelistedDomain:output_type -> rill.admin.v1.CreateWhitelistedDomainResponse - 198, // 350: rill.admin.v1.AdminService.RemoveWhitelistedDomain:output_type -> rill.admin.v1.RemoveWhitelistedDomainResponse - 200, // 351: rill.admin.v1.AdminService.ListWhitelistedDomains:output_type -> rill.admin.v1.ListWhitelistedDomainsResponse - 147, // 352: rill.admin.v1.AdminService.GetUser:output_type -> rill.admin.v1.GetUserResponse - 164, // 353: rill.admin.v1.AdminService.SearchUsers:output_type -> rill.admin.v1.SearchUsersResponse - 33, // 354: rill.admin.v1.AdminService.SearchProjectUsers:output_type -> rill.admin.v1.SearchProjectUsersResponse - 79, // 355: rill.admin.v1.AdminService.ListSuperusers:output_type -> rill.admin.v1.ListSuperusersResponse - 35, // 356: rill.admin.v1.AdminService.GetDeploymentCredentials:output_type -> rill.admin.v1.GetDeploymentCredentialsResponse - 37, // 357: rill.admin.v1.AdminService.GetIFrame:output_type -> rill.admin.v1.GetIFrameResponse - 81, // 358: rill.admin.v1.AdminService.SetSuperuser:output_type -> rill.admin.v1.SetSuperuserResponse - 83, // 359: rill.admin.v1.AdminService.SudoGetResource:output_type -> rill.admin.v1.SudoGetResourceResponse - 93, // 360: rill.admin.v1.AdminService.SudoUpdateUserQuotas:output_type -> rill.admin.v1.SudoUpdateUserQuotasResponse - 85, // 361: rill.admin.v1.AdminService.SudoUpdateOrganizationQuotas:output_type -> rill.admin.v1.SudoUpdateOrganizationQuotasResponse - 87, // 362: rill.admin.v1.AdminService.SudoUpdateOrganizationBillingCustomer:output_type -> rill.admin.v1.SudoUpdateOrganizationBillingCustomerResponse - 89, // 363: rill.admin.v1.AdminService.SudoExtendTrial:output_type -> rill.admin.v1.SudoExtendTrialResponse - 91, // 364: rill.admin.v1.AdminService.SudoUpdateOrganizationCustomDomain:output_type -> rill.admin.v1.SudoUpdateOrganizationCustomDomainResponse - 95, // 365: rill.admin.v1.AdminService.SudoUpdateAnnotations:output_type -> rill.admin.v1.SudoUpdateAnnotationsResponse - 97, // 366: rill.admin.v1.AdminService.SudoIssueRuntimeManagerToken:output_type -> rill.admin.v1.SudoIssueRuntimeManagerTokenResponse - 99, // 367: rill.admin.v1.AdminService.SudoDeleteOrganizationBillingIssue:output_type -> rill.admin.v1.SudoDeleteOrganizationBillingIssueResponse - 101, // 368: rill.admin.v1.AdminService.SudoTriggerBillingRepair:output_type -> rill.admin.v1.SudoTriggerBillingRepairResponse - 202, // 369: rill.admin.v1.AdminService.CreateProjectWhitelistedDomain:output_type -> rill.admin.v1.CreateProjectWhitelistedDomainResponse - 204, // 370: rill.admin.v1.AdminService.RemoveProjectWhitelistedDomain:output_type -> rill.admin.v1.RemoveProjectWhitelistedDomainResponse - 206, // 371: rill.admin.v1.AdminService.ListProjectWhitelistedDomains:output_type -> rill.admin.v1.ListProjectWhitelistedDomainsResponse - 39, // 372: rill.admin.v1.AdminService.ListServices:output_type -> rill.admin.v1.ListServicesResponse - 41, // 373: rill.admin.v1.AdminService.CreateService:output_type -> rill.admin.v1.CreateServiceResponse - 43, // 374: rill.admin.v1.AdminService.UpdateService:output_type -> rill.admin.v1.UpdateServiceResponse - 45, // 375: rill.admin.v1.AdminService.DeleteService:output_type -> rill.admin.v1.DeleteServiceResponse - 174, // 376: rill.admin.v1.AdminService.ListServiceAuthTokens:output_type -> rill.admin.v1.ListServiceAuthTokensResponse - 172, // 377: rill.admin.v1.AdminService.IssueServiceAuthToken:output_type -> rill.admin.v1.IssueServiceAuthTokenResponse - 170, // 378: rill.admin.v1.AdminService.RevokeServiceAuthToken:output_type -> rill.admin.v1.RevokeServiceAuthTokenResponse - 176, // 379: rill.admin.v1.AdminService.IssueMagicAuthToken:output_type -> rill.admin.v1.IssueMagicAuthTokenResponse - 178, // 380: rill.admin.v1.AdminService.ListMagicAuthTokens:output_type -> rill.admin.v1.ListMagicAuthTokensResponse - 180, // 381: rill.admin.v1.AdminService.GetCurrentMagicAuthToken:output_type -> rill.admin.v1.GetCurrentMagicAuthTokenResponse - 182, // 382: rill.admin.v1.AdminService.RevokeMagicAuthToken:output_type -> rill.admin.v1.RevokeMagicAuthTokenResponse - 150, // 383: rill.admin.v1.AdminService.UpdateUserPreferences:output_type -> rill.admin.v1.UpdateUserPreferencesResponse - 154, // 384: rill.admin.v1.AdminService.ListBookmarks:output_type -> rill.admin.v1.ListBookmarksResponse - 156, // 385: rill.admin.v1.AdminService.GetBookmark:output_type -> rill.admin.v1.GetBookmarkResponse - 158, // 386: rill.admin.v1.AdminService.CreateBookmark:output_type -> rill.admin.v1.CreateBookmarkResponse - 160, // 387: rill.admin.v1.AdminService.UpdateBookmark:output_type -> rill.admin.v1.UpdateBookmarkResponse - 162, // 388: rill.admin.v1.AdminService.RemoveBookmark:output_type -> rill.admin.v1.RemoveBookmarkResponse - 208, // 389: rill.admin.v1.AdminService.GetRepoMeta:output_type -> rill.admin.v1.GetRepoMetaResponse - 210, // 390: rill.admin.v1.AdminService.PullVirtualRepo:output_type -> rill.admin.v1.PullVirtualRepoResponse - 212, // 391: rill.admin.v1.AdminService.GetReportMeta:output_type -> rill.admin.v1.GetReportMetaResponse - 214, // 392: rill.admin.v1.AdminService.GetAlertMeta:output_type -> rill.admin.v1.GetAlertMetaResponse - 216, // 393: rill.admin.v1.AdminService.CreateReport:output_type -> rill.admin.v1.CreateReportResponse - 218, // 394: rill.admin.v1.AdminService.EditReport:output_type -> rill.admin.v1.EditReportResponse - 220, // 395: rill.admin.v1.AdminService.UnsubscribeReport:output_type -> rill.admin.v1.UnsubscribeReportResponse - 222, // 396: rill.admin.v1.AdminService.DeleteReport:output_type -> rill.admin.v1.DeleteReportResponse - 224, // 397: rill.admin.v1.AdminService.TriggerReport:output_type -> rill.admin.v1.TriggerReportResponse - 226, // 398: rill.admin.v1.AdminService.GenerateReportYAML:output_type -> rill.admin.v1.GenerateReportYAMLResponse - 228, // 399: rill.admin.v1.AdminService.CreateAlert:output_type -> rill.admin.v1.CreateAlertResponse - 230, // 400: rill.admin.v1.AdminService.EditAlert:output_type -> rill.admin.v1.EditAlertResponse - 232, // 401: rill.admin.v1.AdminService.UnsubscribeAlert:output_type -> rill.admin.v1.UnsubscribeAlertResponse - 234, // 402: rill.admin.v1.AdminService.DeleteAlert:output_type -> rill.admin.v1.DeleteAlertResponse - 236, // 403: rill.admin.v1.AdminService.GenerateAlertYAML:output_type -> rill.admin.v1.GenerateAlertYAMLResponse - 238, // 404: rill.admin.v1.AdminService.GetAlertYAML:output_type -> rill.admin.v1.GetAlertYAMLResponse - 240, // 405: rill.admin.v1.AdminService.GetBillingSubscription:output_type -> rill.admin.v1.GetBillingSubscriptionResponse - 242, // 406: rill.admin.v1.AdminService.UpdateBillingSubscription:output_type -> rill.admin.v1.UpdateBillingSubscriptionResponse - 244, // 407: rill.admin.v1.AdminService.CancelBillingSubscription:output_type -> rill.admin.v1.CancelBillingSubscriptionResponse - 246, // 408: rill.admin.v1.AdminService.RenewBillingSubscription:output_type -> rill.admin.v1.RenewBillingSubscriptionResponse - 248, // 409: rill.admin.v1.AdminService.GetPaymentsPortalURL:output_type -> rill.admin.v1.GetPaymentsPortalURLResponse - 250, // 410: rill.admin.v1.AdminService.ListPublicBillingPlans:output_type -> rill.admin.v1.ListPublicBillingPlansResponse - 252, // 411: rill.admin.v1.AdminService.GetBillingProjectCredentials:output_type -> rill.admin.v1.GetBillingProjectCredentialsResponse - 256, // 412: rill.admin.v1.AdminService.RequestProjectAccess:output_type -> rill.admin.v1.RequestProjectAccessResponse - 258, // 413: rill.admin.v1.AdminService.GetProjectAccessRequest:output_type -> rill.admin.v1.GetProjectAccessRequestResponse - 260, // 414: rill.admin.v1.AdminService.ApproveProjectAccess:output_type -> rill.admin.v1.ApproveProjectAccessResponse - 262, // 415: rill.admin.v1.AdminService.DenyProjectAccess:output_type -> rill.admin.v1.DenyProjectAccessResponse - 264, // 416: rill.admin.v1.AdminService.ListOrganizationBillingIssues:output_type -> rill.admin.v1.ListOrganizationBillingIssuesResponse - 289, // [289:417] is the sub-list for method output_type - 161, // [161:289] is the sub-list for method input_type - 161, // [161:161] is the sub-list for extension type_name - 161, // [161:161] is the sub-list for extension extendee - 0, // [0:161] is the sub-list for field type_name + 311, // 101: rill.admin.v1.Organization.created_on:type_name -> google.protobuf.Timestamp + 311, // 102: rill.admin.v1.Organization.updated_on:type_name -> google.protobuf.Timestamp + 285, // 103: rill.admin.v1.Subscription.plan:type_name -> rill.admin.v1.BillingPlan + 311, // 104: rill.admin.v1.Subscription.start_date:type_name -> google.protobuf.Timestamp + 311, // 105: rill.admin.v1.Subscription.end_date:type_name -> google.protobuf.Timestamp + 311, // 106: rill.admin.v1.Subscription.current_billing_cycle_start_date:type_name -> google.protobuf.Timestamp + 311, // 107: rill.admin.v1.Subscription.current_billing_cycle_end_date:type_name -> google.protobuf.Timestamp + 311, // 108: rill.admin.v1.Subscription.trial_end_date:type_name -> google.protobuf.Timestamp + 310, // 109: rill.admin.v1.Project.annotations:type_name -> rill.admin.v1.Project.AnnotationsEntry + 311, // 110: rill.admin.v1.Project.created_on:type_name -> google.protobuf.Timestamp + 311, // 111: rill.admin.v1.Project.updated_on:type_name -> google.protobuf.Timestamp + 1, // 112: rill.admin.v1.Deployment.status:type_name -> rill.admin.v1.DeploymentStatus + 311, // 113: rill.admin.v1.Deployment.created_on:type_name -> google.protobuf.Timestamp + 311, // 114: rill.admin.v1.Deployment.updated_on:type_name -> google.protobuf.Timestamp + 312, // 115: rill.admin.v1.ProvisionerResource.args:type_name -> google.protobuf.Struct + 312, // 116: rill.admin.v1.ProvisionerResource.config:type_name -> google.protobuf.Struct + 311, // 117: rill.admin.v1.MemberUser.created_on:type_name -> google.protobuf.Timestamp + 311, // 118: rill.admin.v1.MemberUser.updated_on:type_name -> google.protobuf.Timestamp + 311, // 119: rill.admin.v1.Bookmark.created_on:type_name -> google.protobuf.Timestamp + 311, // 120: rill.admin.v1.Bookmark.updated_on:type_name -> google.protobuf.Timestamp + 311, // 121: rill.admin.v1.ServiceToken.created_on:type_name -> google.protobuf.Timestamp + 311, // 122: rill.admin.v1.ServiceToken.expires_on:type_name -> google.protobuf.Timestamp + 311, // 123: rill.admin.v1.MagicAuthToken.created_on:type_name -> google.protobuf.Timestamp + 311, // 124: rill.admin.v1.MagicAuthToken.expires_on:type_name -> google.protobuf.Timestamp + 311, // 125: rill.admin.v1.MagicAuthToken.used_on:type_name -> google.protobuf.Timestamp + 312, // 126: rill.admin.v1.MagicAuthToken.attributes:type_name -> google.protobuf.Struct + 313, // 127: rill.admin.v1.MagicAuthToken.filter:type_name -> rill.runtime.v1.Expression + 311, // 128: rill.admin.v1.VirtualFile.updated_on:type_name -> google.protobuf.Timestamp + 314, // 129: rill.admin.v1.ReportOptions.export_format:type_name -> rill.runtime.v1.ExportFormat + 312, // 130: rill.admin.v1.AlertOptions.resolver_properties:type_name -> google.protobuf.Struct + 2, // 131: rill.admin.v1.BillingPlan.plan_type:type_name -> rill.admin.v1.BillingPlanType + 286, // 132: rill.admin.v1.BillingPlan.quotas:type_name -> rill.admin.v1.Quotas + 311, // 133: rill.admin.v1.Usergroup.created_on:type_name -> google.protobuf.Timestamp + 311, // 134: rill.admin.v1.Usergroup.updated_on:type_name -> google.protobuf.Timestamp + 311, // 135: rill.admin.v1.MemberUsergroup.created_on:type_name -> google.protobuf.Timestamp + 311, // 136: rill.admin.v1.MemberUsergroup.updated_on:type_name -> google.protobuf.Timestamp + 3, // 137: rill.admin.v1.BillingIssue.type:type_name -> rill.admin.v1.BillingIssueType + 4, // 138: rill.admin.v1.BillingIssue.level:type_name -> rill.admin.v1.BillingIssueLevel + 290, // 139: rill.admin.v1.BillingIssue.metadata:type_name -> rill.admin.v1.BillingIssueMetadata + 311, // 140: rill.admin.v1.BillingIssue.event_time:type_name -> google.protobuf.Timestamp + 311, // 141: rill.admin.v1.BillingIssue.created_on:type_name -> google.protobuf.Timestamp + 291, // 142: rill.admin.v1.BillingIssueMetadata.on_trial:type_name -> rill.admin.v1.BillingIssueMetadataOnTrial + 292, // 143: rill.admin.v1.BillingIssueMetadata.trial_ended:type_name -> rill.admin.v1.BillingIssueMetadataTrialEnded + 293, // 144: rill.admin.v1.BillingIssueMetadata.no_payment_method:type_name -> rill.admin.v1.BillingIssueMetadataNoPaymentMethod + 294, // 145: rill.admin.v1.BillingIssueMetadata.no_billable_address:type_name -> rill.admin.v1.BillingIssueMetadataNoBillableAddress + 295, // 146: rill.admin.v1.BillingIssueMetadata.payment_failed:type_name -> rill.admin.v1.BillingIssueMetadataPaymentFailed + 297, // 147: rill.admin.v1.BillingIssueMetadata.subscription_cancelled:type_name -> rill.admin.v1.BillingIssueMetadataSubscriptionCancelled + 298, // 148: rill.admin.v1.BillingIssueMetadata.never_subscribed:type_name -> rill.admin.v1.BillingIssueMetadataNeverSubscribed + 311, // 149: rill.admin.v1.BillingIssueMetadataOnTrial.end_date:type_name -> google.protobuf.Timestamp + 311, // 150: rill.admin.v1.BillingIssueMetadataOnTrial.grace_period_end_date:type_name -> google.protobuf.Timestamp + 311, // 151: rill.admin.v1.BillingIssueMetadataTrialEnded.end_date:type_name -> google.protobuf.Timestamp + 311, // 152: rill.admin.v1.BillingIssueMetadataTrialEnded.grace_period_end_date:type_name -> google.protobuf.Timestamp + 296, // 153: rill.admin.v1.BillingIssueMetadataPaymentFailed.invoices:type_name -> rill.admin.v1.BillingIssueMetadataPaymentFailedMeta + 311, // 154: rill.admin.v1.BillingIssueMetadataPaymentFailedMeta.due_date:type_name -> google.protobuf.Timestamp + 311, // 155: rill.admin.v1.BillingIssueMetadataPaymentFailedMeta.failed_on:type_name -> google.protobuf.Timestamp + 311, // 156: rill.admin.v1.BillingIssueMetadataPaymentFailedMeta.grace_period_end_date:type_name -> google.protobuf.Timestamp + 311, // 157: rill.admin.v1.BillingIssueMetadataSubscriptionCancelled.end_date:type_name -> google.protobuf.Timestamp + 0, // 158: rill.admin.v1.GetGithubUserStatusResponse.OrganizationInstallationPermissionsEntry.value:type_name -> rill.admin.v1.GithubPermission + 307, // 159: rill.admin.v1.GetReportMetaResponse.RecipientUrlsEntry.value:type_name -> rill.admin.v1.GetReportMetaResponse.URLs + 5, // 160: rill.admin.v1.AdminService.Ping:input_type -> rill.admin.v1.PingRequest + 7, // 161: rill.admin.v1.AdminService.ListOrganizations:input_type -> rill.admin.v1.ListOrganizationsRequest + 9, // 162: rill.admin.v1.AdminService.GetOrganization:input_type -> rill.admin.v1.GetOrganizationRequest + 11, // 163: rill.admin.v1.AdminService.GetOrganizationNameForDomain:input_type -> rill.admin.v1.GetOrganizationNameForDomainRequest + 13, // 164: rill.admin.v1.AdminService.CreateOrganization:input_type -> rill.admin.v1.CreateOrganizationRequest + 15, // 165: rill.admin.v1.AdminService.DeleteOrganization:input_type -> rill.admin.v1.DeleteOrganizationRequest + 17, // 166: rill.admin.v1.AdminService.UpdateOrganization:input_type -> rill.admin.v1.UpdateOrganizationRequest + 19, // 167: rill.admin.v1.AdminService.ListProjectsForOrganization:input_type -> rill.admin.v1.ListProjectsForOrganizationRequest + 21, // 168: rill.admin.v1.AdminService.GetProject:input_type -> rill.admin.v1.GetProjectRequest + 23, // 169: rill.admin.v1.AdminService.GetProjectByID:input_type -> rill.admin.v1.GetProjectByIDRequest + 25, // 170: rill.admin.v1.AdminService.SearchProjectNames:input_type -> rill.admin.v1.SearchProjectNamesRequest + 46, // 171: rill.admin.v1.AdminService.CreateProject:input_type -> rill.admin.v1.CreateProjectRequest + 48, // 172: rill.admin.v1.AdminService.DeleteProject:input_type -> rill.admin.v1.DeleteProjectRequest + 50, // 173: rill.admin.v1.AdminService.UpdateProject:input_type -> rill.admin.v1.UpdateProjectRequest + 27, // 174: rill.admin.v1.AdminService.GetProjectVariables:input_type -> rill.admin.v1.GetProjectVariablesRequest + 30, // 175: rill.admin.v1.AdminService.UpdateProjectVariables:input_type -> rill.admin.v1.UpdateProjectVariablesRequest + 52, // 176: rill.admin.v1.AdminService.CreateAsset:input_type -> rill.admin.v1.CreateAssetRequest + 54, // 177: rill.admin.v1.AdminService.RedeployProject:input_type -> rill.admin.v1.RedeployProjectRequest + 56, // 178: rill.admin.v1.AdminService.HibernateProject:input_type -> rill.admin.v1.HibernateProjectRequest + 58, // 179: rill.admin.v1.AdminService.TriggerReconcile:input_type -> rill.admin.v1.TriggerReconcileRequest + 60, // 180: rill.admin.v1.AdminService.TriggerRefreshSources:input_type -> rill.admin.v1.TriggerRefreshSourcesRequest + 62, // 181: rill.admin.v1.AdminService.TriggerRedeploy:input_type -> rill.admin.v1.TriggerRedeployRequest + 64, // 182: rill.admin.v1.AdminService.Provision:input_type -> rill.admin.v1.ProvisionRequest + 66, // 183: rill.admin.v1.AdminService.ListOrganizationMemberUsers:input_type -> rill.admin.v1.ListOrganizationMemberUsersRequest + 68, // 184: rill.admin.v1.AdminService.ListOrganizationInvites:input_type -> rill.admin.v1.ListOrganizationInvitesRequest + 70, // 185: rill.admin.v1.AdminService.AddOrganizationMemberUser:input_type -> rill.admin.v1.AddOrganizationMemberUserRequest + 72, // 186: rill.admin.v1.AdminService.RemoveOrganizationMemberUser:input_type -> rill.admin.v1.RemoveOrganizationMemberUserRequest + 74, // 187: rill.admin.v1.AdminService.LeaveOrganization:input_type -> rill.admin.v1.LeaveOrganizationRequest + 76, // 188: rill.admin.v1.AdminService.SetOrganizationMemberUserRole:input_type -> rill.admin.v1.SetOrganizationMemberUserRoleRequest + 102, // 189: rill.admin.v1.AdminService.ListProjectMemberUsers:input_type -> rill.admin.v1.ListProjectMemberUsersRequest + 104, // 190: rill.admin.v1.AdminService.ListProjectInvites:input_type -> rill.admin.v1.ListProjectInvitesRequest + 106, // 191: rill.admin.v1.AdminService.AddProjectMemberUser:input_type -> rill.admin.v1.AddProjectMemberUserRequest + 108, // 192: rill.admin.v1.AdminService.RemoveProjectMemberUser:input_type -> rill.admin.v1.RemoveProjectMemberUserRequest + 110, // 193: rill.admin.v1.AdminService.SetProjectMemberUserRole:input_type -> rill.admin.v1.SetProjectMemberUserRoleRequest + 112, // 194: rill.admin.v1.AdminService.CreateUsergroup:input_type -> rill.admin.v1.CreateUsergroupRequest + 114, // 195: rill.admin.v1.AdminService.GetUsergroup:input_type -> rill.admin.v1.GetUsergroupRequest + 116, // 196: rill.admin.v1.AdminService.RenameUsergroup:input_type -> rill.admin.v1.RenameUsergroupRequest + 118, // 197: rill.admin.v1.AdminService.EditUsergroup:input_type -> rill.admin.v1.EditUsergroupRequest + 120, // 198: rill.admin.v1.AdminService.ListOrganizationMemberUsergroups:input_type -> rill.admin.v1.ListOrganizationMemberUsergroupsRequest + 122, // 199: rill.admin.v1.AdminService.ListProjectMemberUsergroups:input_type -> rill.admin.v1.ListProjectMemberUsergroupsRequest + 124, // 200: rill.admin.v1.AdminService.DeleteUsergroup:input_type -> rill.admin.v1.DeleteUsergroupRequest + 126, // 201: rill.admin.v1.AdminService.AddOrganizationMemberUsergroup:input_type -> rill.admin.v1.AddOrganizationMemberUsergroupRequest + 128, // 202: rill.admin.v1.AdminService.SetOrganizationMemberUsergroupRole:input_type -> rill.admin.v1.SetOrganizationMemberUsergroupRoleRequest + 130, // 203: rill.admin.v1.AdminService.RemoveOrganizationMemberUsergroup:input_type -> rill.admin.v1.RemoveOrganizationMemberUsergroupRequest + 132, // 204: rill.admin.v1.AdminService.AddProjectMemberUsergroup:input_type -> rill.admin.v1.AddProjectMemberUsergroupRequest + 134, // 205: rill.admin.v1.AdminService.SetProjectMemberUsergroupRole:input_type -> rill.admin.v1.SetProjectMemberUsergroupRoleRequest + 136, // 206: rill.admin.v1.AdminService.RemoveProjectMemberUsergroup:input_type -> rill.admin.v1.RemoveProjectMemberUsergroupRequest + 138, // 207: rill.admin.v1.AdminService.AddUsergroupMemberUser:input_type -> rill.admin.v1.AddUsergroupMemberUserRequest + 140, // 208: rill.admin.v1.AdminService.ListUsergroupMemberUsers:input_type -> rill.admin.v1.ListUsergroupMemberUsersRequest + 142, // 209: rill.admin.v1.AdminService.RemoveUsergroupMemberUser:input_type -> rill.admin.v1.RemoveUsergroupMemberUserRequest + 144, // 210: rill.admin.v1.AdminService.GetCurrentUser:input_type -> rill.admin.v1.GetCurrentUserRequest + 151, // 211: rill.admin.v1.AdminService.DeleteUser:input_type -> rill.admin.v1.DeleteUserRequest + 167, // 212: rill.admin.v1.AdminService.IssueRepresentativeAuthToken:input_type -> rill.admin.v1.IssueRepresentativeAuthTokenRequest + 165, // 213: rill.admin.v1.AdminService.RevokeCurrentAuthToken:input_type -> rill.admin.v1.RevokeCurrentAuthTokenRequest + 183, // 214: rill.admin.v1.AdminService.GetGithubRepoStatus:input_type -> rill.admin.v1.GetGithubRepoStatusRequest + 185, // 215: rill.admin.v1.AdminService.GetGithubUserStatus:input_type -> rill.admin.v1.GetGithubUserStatusRequest + 187, // 216: rill.admin.v1.AdminService.ListGithubUserRepos:input_type -> rill.admin.v1.ListGithubUserReposRequest + 189, // 217: rill.admin.v1.AdminService.ConnectProjectToGithub:input_type -> rill.admin.v1.ConnectProjectToGithubRequest + 191, // 218: rill.admin.v1.AdminService.UploadProjectAssets:input_type -> rill.admin.v1.UploadProjectAssetsRequest + 193, // 219: rill.admin.v1.AdminService.GetCloneCredentials:input_type -> rill.admin.v1.GetCloneCredentialsRequest + 195, // 220: rill.admin.v1.AdminService.CreateWhitelistedDomain:input_type -> rill.admin.v1.CreateWhitelistedDomainRequest + 197, // 221: rill.admin.v1.AdminService.RemoveWhitelistedDomain:input_type -> rill.admin.v1.RemoveWhitelistedDomainRequest + 199, // 222: rill.admin.v1.AdminService.ListWhitelistedDomains:input_type -> rill.admin.v1.ListWhitelistedDomainsRequest + 146, // 223: rill.admin.v1.AdminService.GetUser:input_type -> rill.admin.v1.GetUserRequest + 163, // 224: rill.admin.v1.AdminService.SearchUsers:input_type -> rill.admin.v1.SearchUsersRequest + 32, // 225: rill.admin.v1.AdminService.SearchProjectUsers:input_type -> rill.admin.v1.SearchProjectUsersRequest + 78, // 226: rill.admin.v1.AdminService.ListSuperusers:input_type -> rill.admin.v1.ListSuperusersRequest + 34, // 227: rill.admin.v1.AdminService.GetDeploymentCredentials:input_type -> rill.admin.v1.GetDeploymentCredentialsRequest + 36, // 228: rill.admin.v1.AdminService.GetIFrame:input_type -> rill.admin.v1.GetIFrameRequest + 80, // 229: rill.admin.v1.AdminService.SetSuperuser:input_type -> rill.admin.v1.SetSuperuserRequest + 82, // 230: rill.admin.v1.AdminService.SudoGetResource:input_type -> rill.admin.v1.SudoGetResourceRequest + 92, // 231: rill.admin.v1.AdminService.SudoUpdateUserQuotas:input_type -> rill.admin.v1.SudoUpdateUserQuotasRequest + 84, // 232: rill.admin.v1.AdminService.SudoUpdateOrganizationQuotas:input_type -> rill.admin.v1.SudoUpdateOrganizationQuotasRequest + 86, // 233: rill.admin.v1.AdminService.SudoUpdateOrganizationBillingCustomer:input_type -> rill.admin.v1.SudoUpdateOrganizationBillingCustomerRequest + 88, // 234: rill.admin.v1.AdminService.SudoExtendTrial:input_type -> rill.admin.v1.SudoExtendTrialRequest + 90, // 235: rill.admin.v1.AdminService.SudoUpdateOrganizationCustomDomain:input_type -> rill.admin.v1.SudoUpdateOrganizationCustomDomainRequest + 94, // 236: rill.admin.v1.AdminService.SudoUpdateAnnotations:input_type -> rill.admin.v1.SudoUpdateAnnotationsRequest + 96, // 237: rill.admin.v1.AdminService.SudoIssueRuntimeManagerToken:input_type -> rill.admin.v1.SudoIssueRuntimeManagerTokenRequest + 98, // 238: rill.admin.v1.AdminService.SudoDeleteOrganizationBillingIssue:input_type -> rill.admin.v1.SudoDeleteOrganizationBillingIssueRequest + 100, // 239: rill.admin.v1.AdminService.SudoTriggerBillingRepair:input_type -> rill.admin.v1.SudoTriggerBillingRepairRequest + 201, // 240: rill.admin.v1.AdminService.CreateProjectWhitelistedDomain:input_type -> rill.admin.v1.CreateProjectWhitelistedDomainRequest + 203, // 241: rill.admin.v1.AdminService.RemoveProjectWhitelistedDomain:input_type -> rill.admin.v1.RemoveProjectWhitelistedDomainRequest + 205, // 242: rill.admin.v1.AdminService.ListProjectWhitelistedDomains:input_type -> rill.admin.v1.ListProjectWhitelistedDomainsRequest + 38, // 243: rill.admin.v1.AdminService.ListServices:input_type -> rill.admin.v1.ListServicesRequest + 40, // 244: rill.admin.v1.AdminService.CreateService:input_type -> rill.admin.v1.CreateServiceRequest + 42, // 245: rill.admin.v1.AdminService.UpdateService:input_type -> rill.admin.v1.UpdateServiceRequest + 44, // 246: rill.admin.v1.AdminService.DeleteService:input_type -> rill.admin.v1.DeleteServiceRequest + 173, // 247: rill.admin.v1.AdminService.ListServiceAuthTokens:input_type -> rill.admin.v1.ListServiceAuthTokensRequest + 171, // 248: rill.admin.v1.AdminService.IssueServiceAuthToken:input_type -> rill.admin.v1.IssueServiceAuthTokenRequest + 169, // 249: rill.admin.v1.AdminService.RevokeServiceAuthToken:input_type -> rill.admin.v1.RevokeServiceAuthTokenRequest + 175, // 250: rill.admin.v1.AdminService.IssueMagicAuthToken:input_type -> rill.admin.v1.IssueMagicAuthTokenRequest + 177, // 251: rill.admin.v1.AdminService.ListMagicAuthTokens:input_type -> rill.admin.v1.ListMagicAuthTokensRequest + 179, // 252: rill.admin.v1.AdminService.GetCurrentMagicAuthToken:input_type -> rill.admin.v1.GetCurrentMagicAuthTokenRequest + 181, // 253: rill.admin.v1.AdminService.RevokeMagicAuthToken:input_type -> rill.admin.v1.RevokeMagicAuthTokenRequest + 149, // 254: rill.admin.v1.AdminService.UpdateUserPreferences:input_type -> rill.admin.v1.UpdateUserPreferencesRequest + 153, // 255: rill.admin.v1.AdminService.ListBookmarks:input_type -> rill.admin.v1.ListBookmarksRequest + 155, // 256: rill.admin.v1.AdminService.GetBookmark:input_type -> rill.admin.v1.GetBookmarkRequest + 157, // 257: rill.admin.v1.AdminService.CreateBookmark:input_type -> rill.admin.v1.CreateBookmarkRequest + 159, // 258: rill.admin.v1.AdminService.UpdateBookmark:input_type -> rill.admin.v1.UpdateBookmarkRequest + 161, // 259: rill.admin.v1.AdminService.RemoveBookmark:input_type -> rill.admin.v1.RemoveBookmarkRequest + 207, // 260: rill.admin.v1.AdminService.GetRepoMeta:input_type -> rill.admin.v1.GetRepoMetaRequest + 209, // 261: rill.admin.v1.AdminService.PullVirtualRepo:input_type -> rill.admin.v1.PullVirtualRepoRequest + 211, // 262: rill.admin.v1.AdminService.GetReportMeta:input_type -> rill.admin.v1.GetReportMetaRequest + 213, // 263: rill.admin.v1.AdminService.GetAlertMeta:input_type -> rill.admin.v1.GetAlertMetaRequest + 215, // 264: rill.admin.v1.AdminService.CreateReport:input_type -> rill.admin.v1.CreateReportRequest + 217, // 265: rill.admin.v1.AdminService.EditReport:input_type -> rill.admin.v1.EditReportRequest + 219, // 266: rill.admin.v1.AdminService.UnsubscribeReport:input_type -> rill.admin.v1.UnsubscribeReportRequest + 221, // 267: rill.admin.v1.AdminService.DeleteReport:input_type -> rill.admin.v1.DeleteReportRequest + 223, // 268: rill.admin.v1.AdminService.TriggerReport:input_type -> rill.admin.v1.TriggerReportRequest + 225, // 269: rill.admin.v1.AdminService.GenerateReportYAML:input_type -> rill.admin.v1.GenerateReportYAMLRequest + 227, // 270: rill.admin.v1.AdminService.CreateAlert:input_type -> rill.admin.v1.CreateAlertRequest + 229, // 271: rill.admin.v1.AdminService.EditAlert:input_type -> rill.admin.v1.EditAlertRequest + 231, // 272: rill.admin.v1.AdminService.UnsubscribeAlert:input_type -> rill.admin.v1.UnsubscribeAlertRequest + 233, // 273: rill.admin.v1.AdminService.DeleteAlert:input_type -> rill.admin.v1.DeleteAlertRequest + 235, // 274: rill.admin.v1.AdminService.GenerateAlertYAML:input_type -> rill.admin.v1.GenerateAlertYAMLRequest + 237, // 275: rill.admin.v1.AdminService.GetAlertYAML:input_type -> rill.admin.v1.GetAlertYAMLRequest + 239, // 276: rill.admin.v1.AdminService.GetBillingSubscription:input_type -> rill.admin.v1.GetBillingSubscriptionRequest + 241, // 277: rill.admin.v1.AdminService.UpdateBillingSubscription:input_type -> rill.admin.v1.UpdateBillingSubscriptionRequest + 243, // 278: rill.admin.v1.AdminService.CancelBillingSubscription:input_type -> rill.admin.v1.CancelBillingSubscriptionRequest + 245, // 279: rill.admin.v1.AdminService.RenewBillingSubscription:input_type -> rill.admin.v1.RenewBillingSubscriptionRequest + 247, // 280: rill.admin.v1.AdminService.GetPaymentsPortalURL:input_type -> rill.admin.v1.GetPaymentsPortalURLRequest + 249, // 281: rill.admin.v1.AdminService.ListPublicBillingPlans:input_type -> rill.admin.v1.ListPublicBillingPlansRequest + 251, // 282: rill.admin.v1.AdminService.GetBillingProjectCredentials:input_type -> rill.admin.v1.GetBillingProjectCredentialsRequest + 255, // 283: rill.admin.v1.AdminService.RequestProjectAccess:input_type -> rill.admin.v1.RequestProjectAccessRequest + 257, // 284: rill.admin.v1.AdminService.GetProjectAccessRequest:input_type -> rill.admin.v1.GetProjectAccessRequestRequest + 259, // 285: rill.admin.v1.AdminService.ApproveProjectAccess:input_type -> rill.admin.v1.ApproveProjectAccessRequest + 261, // 286: rill.admin.v1.AdminService.DenyProjectAccess:input_type -> rill.admin.v1.DenyProjectAccessRequest + 263, // 287: rill.admin.v1.AdminService.ListOrganizationBillingIssues:input_type -> rill.admin.v1.ListOrganizationBillingIssuesRequest + 6, // 288: rill.admin.v1.AdminService.Ping:output_type -> rill.admin.v1.PingResponse + 8, // 289: rill.admin.v1.AdminService.ListOrganizations:output_type -> rill.admin.v1.ListOrganizationsResponse + 10, // 290: rill.admin.v1.AdminService.GetOrganization:output_type -> rill.admin.v1.GetOrganizationResponse + 12, // 291: rill.admin.v1.AdminService.GetOrganizationNameForDomain:output_type -> rill.admin.v1.GetOrganizationNameForDomainResponse + 14, // 292: rill.admin.v1.AdminService.CreateOrganization:output_type -> rill.admin.v1.CreateOrganizationResponse + 16, // 293: rill.admin.v1.AdminService.DeleteOrganization:output_type -> rill.admin.v1.DeleteOrganizationResponse + 18, // 294: rill.admin.v1.AdminService.UpdateOrganization:output_type -> rill.admin.v1.UpdateOrganizationResponse + 20, // 295: rill.admin.v1.AdminService.ListProjectsForOrganization:output_type -> rill.admin.v1.ListProjectsForOrganizationResponse + 22, // 296: rill.admin.v1.AdminService.GetProject:output_type -> rill.admin.v1.GetProjectResponse + 24, // 297: rill.admin.v1.AdminService.GetProjectByID:output_type -> rill.admin.v1.GetProjectByIDResponse + 26, // 298: rill.admin.v1.AdminService.SearchProjectNames:output_type -> rill.admin.v1.SearchProjectNamesResponse + 47, // 299: rill.admin.v1.AdminService.CreateProject:output_type -> rill.admin.v1.CreateProjectResponse + 49, // 300: rill.admin.v1.AdminService.DeleteProject:output_type -> rill.admin.v1.DeleteProjectResponse + 51, // 301: rill.admin.v1.AdminService.UpdateProject:output_type -> rill.admin.v1.UpdateProjectResponse + 28, // 302: rill.admin.v1.AdminService.GetProjectVariables:output_type -> rill.admin.v1.GetProjectVariablesResponse + 31, // 303: rill.admin.v1.AdminService.UpdateProjectVariables:output_type -> rill.admin.v1.UpdateProjectVariablesResponse + 53, // 304: rill.admin.v1.AdminService.CreateAsset:output_type -> rill.admin.v1.CreateAssetResponse + 55, // 305: rill.admin.v1.AdminService.RedeployProject:output_type -> rill.admin.v1.RedeployProjectResponse + 57, // 306: rill.admin.v1.AdminService.HibernateProject:output_type -> rill.admin.v1.HibernateProjectResponse + 59, // 307: rill.admin.v1.AdminService.TriggerReconcile:output_type -> rill.admin.v1.TriggerReconcileResponse + 61, // 308: rill.admin.v1.AdminService.TriggerRefreshSources:output_type -> rill.admin.v1.TriggerRefreshSourcesResponse + 63, // 309: rill.admin.v1.AdminService.TriggerRedeploy:output_type -> rill.admin.v1.TriggerRedeployResponse + 65, // 310: rill.admin.v1.AdminService.Provision:output_type -> rill.admin.v1.ProvisionResponse + 67, // 311: rill.admin.v1.AdminService.ListOrganizationMemberUsers:output_type -> rill.admin.v1.ListOrganizationMemberUsersResponse + 69, // 312: rill.admin.v1.AdminService.ListOrganizationInvites:output_type -> rill.admin.v1.ListOrganizationInvitesResponse + 71, // 313: rill.admin.v1.AdminService.AddOrganizationMemberUser:output_type -> rill.admin.v1.AddOrganizationMemberUserResponse + 73, // 314: rill.admin.v1.AdminService.RemoveOrganizationMemberUser:output_type -> rill.admin.v1.RemoveOrganizationMemberUserResponse + 75, // 315: rill.admin.v1.AdminService.LeaveOrganization:output_type -> rill.admin.v1.LeaveOrganizationResponse + 77, // 316: rill.admin.v1.AdminService.SetOrganizationMemberUserRole:output_type -> rill.admin.v1.SetOrganizationMemberUserRoleResponse + 103, // 317: rill.admin.v1.AdminService.ListProjectMemberUsers:output_type -> rill.admin.v1.ListProjectMemberUsersResponse + 105, // 318: rill.admin.v1.AdminService.ListProjectInvites:output_type -> rill.admin.v1.ListProjectInvitesResponse + 107, // 319: rill.admin.v1.AdminService.AddProjectMemberUser:output_type -> rill.admin.v1.AddProjectMemberUserResponse + 109, // 320: rill.admin.v1.AdminService.RemoveProjectMemberUser:output_type -> rill.admin.v1.RemoveProjectMemberUserResponse + 111, // 321: rill.admin.v1.AdminService.SetProjectMemberUserRole:output_type -> rill.admin.v1.SetProjectMemberUserRoleResponse + 113, // 322: rill.admin.v1.AdminService.CreateUsergroup:output_type -> rill.admin.v1.CreateUsergroupResponse + 115, // 323: rill.admin.v1.AdminService.GetUsergroup:output_type -> rill.admin.v1.GetUsergroupResponse + 117, // 324: rill.admin.v1.AdminService.RenameUsergroup:output_type -> rill.admin.v1.RenameUsergroupResponse + 119, // 325: rill.admin.v1.AdminService.EditUsergroup:output_type -> rill.admin.v1.EditUsergroupResponse + 121, // 326: rill.admin.v1.AdminService.ListOrganizationMemberUsergroups:output_type -> rill.admin.v1.ListOrganizationMemberUsergroupsResponse + 123, // 327: rill.admin.v1.AdminService.ListProjectMemberUsergroups:output_type -> rill.admin.v1.ListProjectMemberUsergroupsResponse + 125, // 328: rill.admin.v1.AdminService.DeleteUsergroup:output_type -> rill.admin.v1.DeleteUsergroupResponse + 127, // 329: rill.admin.v1.AdminService.AddOrganizationMemberUsergroup:output_type -> rill.admin.v1.AddOrganizationMemberUsergroupResponse + 129, // 330: rill.admin.v1.AdminService.SetOrganizationMemberUsergroupRole:output_type -> rill.admin.v1.SetOrganizationMemberUsergroupRoleResponse + 131, // 331: rill.admin.v1.AdminService.RemoveOrganizationMemberUsergroup:output_type -> rill.admin.v1.RemoveOrganizationMemberUsergroupResponse + 133, // 332: rill.admin.v1.AdminService.AddProjectMemberUsergroup:output_type -> rill.admin.v1.AddProjectMemberUsergroupResponse + 135, // 333: rill.admin.v1.AdminService.SetProjectMemberUsergroupRole:output_type -> rill.admin.v1.SetProjectMemberUsergroupRoleResponse + 137, // 334: rill.admin.v1.AdminService.RemoveProjectMemberUsergroup:output_type -> rill.admin.v1.RemoveProjectMemberUsergroupResponse + 139, // 335: rill.admin.v1.AdminService.AddUsergroupMemberUser:output_type -> rill.admin.v1.AddUsergroupMemberUserResponse + 141, // 336: rill.admin.v1.AdminService.ListUsergroupMemberUsers:output_type -> rill.admin.v1.ListUsergroupMemberUsersResponse + 143, // 337: rill.admin.v1.AdminService.RemoveUsergroupMemberUser:output_type -> rill.admin.v1.RemoveUsergroupMemberUserResponse + 145, // 338: rill.admin.v1.AdminService.GetCurrentUser:output_type -> rill.admin.v1.GetCurrentUserResponse + 152, // 339: rill.admin.v1.AdminService.DeleteUser:output_type -> rill.admin.v1.DeleteUserResponse + 168, // 340: rill.admin.v1.AdminService.IssueRepresentativeAuthToken:output_type -> rill.admin.v1.IssueRepresentativeAuthTokenResponse + 166, // 341: rill.admin.v1.AdminService.RevokeCurrentAuthToken:output_type -> rill.admin.v1.RevokeCurrentAuthTokenResponse + 184, // 342: rill.admin.v1.AdminService.GetGithubRepoStatus:output_type -> rill.admin.v1.GetGithubRepoStatusResponse + 186, // 343: rill.admin.v1.AdminService.GetGithubUserStatus:output_type -> rill.admin.v1.GetGithubUserStatusResponse + 188, // 344: rill.admin.v1.AdminService.ListGithubUserRepos:output_type -> rill.admin.v1.ListGithubUserReposResponse + 190, // 345: rill.admin.v1.AdminService.ConnectProjectToGithub:output_type -> rill.admin.v1.ConnectProjectToGithubResponse + 192, // 346: rill.admin.v1.AdminService.UploadProjectAssets:output_type -> rill.admin.v1.UploadProjectAssetsResponse + 194, // 347: rill.admin.v1.AdminService.GetCloneCredentials:output_type -> rill.admin.v1.GetCloneCredentialsResponse + 196, // 348: rill.admin.v1.AdminService.CreateWhitelistedDomain:output_type -> rill.admin.v1.CreateWhitelistedDomainResponse + 198, // 349: rill.admin.v1.AdminService.RemoveWhitelistedDomain:output_type -> rill.admin.v1.RemoveWhitelistedDomainResponse + 200, // 350: rill.admin.v1.AdminService.ListWhitelistedDomains:output_type -> rill.admin.v1.ListWhitelistedDomainsResponse + 147, // 351: rill.admin.v1.AdminService.GetUser:output_type -> rill.admin.v1.GetUserResponse + 164, // 352: rill.admin.v1.AdminService.SearchUsers:output_type -> rill.admin.v1.SearchUsersResponse + 33, // 353: rill.admin.v1.AdminService.SearchProjectUsers:output_type -> rill.admin.v1.SearchProjectUsersResponse + 79, // 354: rill.admin.v1.AdminService.ListSuperusers:output_type -> rill.admin.v1.ListSuperusersResponse + 35, // 355: rill.admin.v1.AdminService.GetDeploymentCredentials:output_type -> rill.admin.v1.GetDeploymentCredentialsResponse + 37, // 356: rill.admin.v1.AdminService.GetIFrame:output_type -> rill.admin.v1.GetIFrameResponse + 81, // 357: rill.admin.v1.AdminService.SetSuperuser:output_type -> rill.admin.v1.SetSuperuserResponse + 83, // 358: rill.admin.v1.AdminService.SudoGetResource:output_type -> rill.admin.v1.SudoGetResourceResponse + 93, // 359: rill.admin.v1.AdminService.SudoUpdateUserQuotas:output_type -> rill.admin.v1.SudoUpdateUserQuotasResponse + 85, // 360: rill.admin.v1.AdminService.SudoUpdateOrganizationQuotas:output_type -> rill.admin.v1.SudoUpdateOrganizationQuotasResponse + 87, // 361: rill.admin.v1.AdminService.SudoUpdateOrganizationBillingCustomer:output_type -> rill.admin.v1.SudoUpdateOrganizationBillingCustomerResponse + 89, // 362: rill.admin.v1.AdminService.SudoExtendTrial:output_type -> rill.admin.v1.SudoExtendTrialResponse + 91, // 363: rill.admin.v1.AdminService.SudoUpdateOrganizationCustomDomain:output_type -> rill.admin.v1.SudoUpdateOrganizationCustomDomainResponse + 95, // 364: rill.admin.v1.AdminService.SudoUpdateAnnotations:output_type -> rill.admin.v1.SudoUpdateAnnotationsResponse + 97, // 365: rill.admin.v1.AdminService.SudoIssueRuntimeManagerToken:output_type -> rill.admin.v1.SudoIssueRuntimeManagerTokenResponse + 99, // 366: rill.admin.v1.AdminService.SudoDeleteOrganizationBillingIssue:output_type -> rill.admin.v1.SudoDeleteOrganizationBillingIssueResponse + 101, // 367: rill.admin.v1.AdminService.SudoTriggerBillingRepair:output_type -> rill.admin.v1.SudoTriggerBillingRepairResponse + 202, // 368: rill.admin.v1.AdminService.CreateProjectWhitelistedDomain:output_type -> rill.admin.v1.CreateProjectWhitelistedDomainResponse + 204, // 369: rill.admin.v1.AdminService.RemoveProjectWhitelistedDomain:output_type -> rill.admin.v1.RemoveProjectWhitelistedDomainResponse + 206, // 370: rill.admin.v1.AdminService.ListProjectWhitelistedDomains:output_type -> rill.admin.v1.ListProjectWhitelistedDomainsResponse + 39, // 371: rill.admin.v1.AdminService.ListServices:output_type -> rill.admin.v1.ListServicesResponse + 41, // 372: rill.admin.v1.AdminService.CreateService:output_type -> rill.admin.v1.CreateServiceResponse + 43, // 373: rill.admin.v1.AdminService.UpdateService:output_type -> rill.admin.v1.UpdateServiceResponse + 45, // 374: rill.admin.v1.AdminService.DeleteService:output_type -> rill.admin.v1.DeleteServiceResponse + 174, // 375: rill.admin.v1.AdminService.ListServiceAuthTokens:output_type -> rill.admin.v1.ListServiceAuthTokensResponse + 172, // 376: rill.admin.v1.AdminService.IssueServiceAuthToken:output_type -> rill.admin.v1.IssueServiceAuthTokenResponse + 170, // 377: rill.admin.v1.AdminService.RevokeServiceAuthToken:output_type -> rill.admin.v1.RevokeServiceAuthTokenResponse + 176, // 378: rill.admin.v1.AdminService.IssueMagicAuthToken:output_type -> rill.admin.v1.IssueMagicAuthTokenResponse + 178, // 379: rill.admin.v1.AdminService.ListMagicAuthTokens:output_type -> rill.admin.v1.ListMagicAuthTokensResponse + 180, // 380: rill.admin.v1.AdminService.GetCurrentMagicAuthToken:output_type -> rill.admin.v1.GetCurrentMagicAuthTokenResponse + 182, // 381: rill.admin.v1.AdminService.RevokeMagicAuthToken:output_type -> rill.admin.v1.RevokeMagicAuthTokenResponse + 150, // 382: rill.admin.v1.AdminService.UpdateUserPreferences:output_type -> rill.admin.v1.UpdateUserPreferencesResponse + 154, // 383: rill.admin.v1.AdminService.ListBookmarks:output_type -> rill.admin.v1.ListBookmarksResponse + 156, // 384: rill.admin.v1.AdminService.GetBookmark:output_type -> rill.admin.v1.GetBookmarkResponse + 158, // 385: rill.admin.v1.AdminService.CreateBookmark:output_type -> rill.admin.v1.CreateBookmarkResponse + 160, // 386: rill.admin.v1.AdminService.UpdateBookmark:output_type -> rill.admin.v1.UpdateBookmarkResponse + 162, // 387: rill.admin.v1.AdminService.RemoveBookmark:output_type -> rill.admin.v1.RemoveBookmarkResponse + 208, // 388: rill.admin.v1.AdminService.GetRepoMeta:output_type -> rill.admin.v1.GetRepoMetaResponse + 210, // 389: rill.admin.v1.AdminService.PullVirtualRepo:output_type -> rill.admin.v1.PullVirtualRepoResponse + 212, // 390: rill.admin.v1.AdminService.GetReportMeta:output_type -> rill.admin.v1.GetReportMetaResponse + 214, // 391: rill.admin.v1.AdminService.GetAlertMeta:output_type -> rill.admin.v1.GetAlertMetaResponse + 216, // 392: rill.admin.v1.AdminService.CreateReport:output_type -> rill.admin.v1.CreateReportResponse + 218, // 393: rill.admin.v1.AdminService.EditReport:output_type -> rill.admin.v1.EditReportResponse + 220, // 394: rill.admin.v1.AdminService.UnsubscribeReport:output_type -> rill.admin.v1.UnsubscribeReportResponse + 222, // 395: rill.admin.v1.AdminService.DeleteReport:output_type -> rill.admin.v1.DeleteReportResponse + 224, // 396: rill.admin.v1.AdminService.TriggerReport:output_type -> rill.admin.v1.TriggerReportResponse + 226, // 397: rill.admin.v1.AdminService.GenerateReportYAML:output_type -> rill.admin.v1.GenerateReportYAMLResponse + 228, // 398: rill.admin.v1.AdminService.CreateAlert:output_type -> rill.admin.v1.CreateAlertResponse + 230, // 399: rill.admin.v1.AdminService.EditAlert:output_type -> rill.admin.v1.EditAlertResponse + 232, // 400: rill.admin.v1.AdminService.UnsubscribeAlert:output_type -> rill.admin.v1.UnsubscribeAlertResponse + 234, // 401: rill.admin.v1.AdminService.DeleteAlert:output_type -> rill.admin.v1.DeleteAlertResponse + 236, // 402: rill.admin.v1.AdminService.GenerateAlertYAML:output_type -> rill.admin.v1.GenerateAlertYAMLResponse + 238, // 403: rill.admin.v1.AdminService.GetAlertYAML:output_type -> rill.admin.v1.GetAlertYAMLResponse + 240, // 404: rill.admin.v1.AdminService.GetBillingSubscription:output_type -> rill.admin.v1.GetBillingSubscriptionResponse + 242, // 405: rill.admin.v1.AdminService.UpdateBillingSubscription:output_type -> rill.admin.v1.UpdateBillingSubscriptionResponse + 244, // 406: rill.admin.v1.AdminService.CancelBillingSubscription:output_type -> rill.admin.v1.CancelBillingSubscriptionResponse + 246, // 407: rill.admin.v1.AdminService.RenewBillingSubscription:output_type -> rill.admin.v1.RenewBillingSubscriptionResponse + 248, // 408: rill.admin.v1.AdminService.GetPaymentsPortalURL:output_type -> rill.admin.v1.GetPaymentsPortalURLResponse + 250, // 409: rill.admin.v1.AdminService.ListPublicBillingPlans:output_type -> rill.admin.v1.ListPublicBillingPlansResponse + 252, // 410: rill.admin.v1.AdminService.GetBillingProjectCredentials:output_type -> rill.admin.v1.GetBillingProjectCredentialsResponse + 256, // 411: rill.admin.v1.AdminService.RequestProjectAccess:output_type -> rill.admin.v1.RequestProjectAccessResponse + 258, // 412: rill.admin.v1.AdminService.GetProjectAccessRequest:output_type -> rill.admin.v1.GetProjectAccessRequestResponse + 260, // 413: rill.admin.v1.AdminService.ApproveProjectAccess:output_type -> rill.admin.v1.ApproveProjectAccessResponse + 262, // 414: rill.admin.v1.AdminService.DenyProjectAccess:output_type -> rill.admin.v1.DenyProjectAccessResponse + 264, // 415: rill.admin.v1.AdminService.ListOrganizationBillingIssues:output_type -> rill.admin.v1.ListOrganizationBillingIssuesResponse + 288, // [288:416] is the sub-list for method output_type + 160, // [160:288] is the sub-list for method input_type + 160, // [160:160] is the sub-list for extension type_name + 160, // [160:160] is the sub-list for extension extendee + 0, // [0:160] is the sub-list for field type_name } func init() { file_rill_admin_v1_api_proto_init() } diff --git a/proto/gen/rill/admin/v1/api.pb.validate.go b/proto/gen/rill/admin/v1/api.pb.validate.go index 8d547520086..131a6334f62 100644 --- a/proto/gen/rill/admin/v1/api.pb.validate.go +++ b/proto/gen/rill/admin/v1/api.pb.validate.go @@ -33270,8 +33270,8 @@ func (m *Organization) validate(all bool) error { } } - if m.BillingPlanType != nil { - // no validation rules for BillingPlanType + if m.BillingPlanName != nil { + // no validation rules for BillingPlanName } if m.BillingPlanDisplayName != nil { diff --git a/proto/rill/admin/v1/api.proto b/proto/rill/admin/v1/api.proto index 28b8ca44444..faa199256ea 100644 --- a/proto/rill/admin/v1/api.proto +++ b/proto/rill/admin/v1/api.proto @@ -2246,7 +2246,7 @@ message Organization { string billing_customer_id = 7; string payment_customer_id = 8; string billing_email = 9; - optional BillingPlanType billing_plan_type = 14; + optional string billing_plan_name = 14; optional string billing_plan_display_name = 15; google.protobuf.Timestamp created_on = 5; google.protobuf.Timestamp updated_on = 6; diff --git a/web-admin/src/client/gen/index.schemas.ts b/web-admin/src/client/gen/index.schemas.ts index a70850a958d..f789b524816 100644 --- a/web-admin/src/client/gen/index.schemas.ts +++ b/web-admin/src/client/gen/index.schemas.ts @@ -870,7 +870,7 @@ export interface V1Organization { billingCustomerId?: string; paymentCustomerId?: string; billingEmail?: string; - billingPlanType?: V1BillingPlanType; + billingPlanName?: string; billingPlanDisplayName?: string; createdOn?: string; updatedOn?: string; diff --git a/web-admin/src/features/billing/Payment.svelte b/web-admin/src/features/billing/Payment.svelte index dcabff173d2..55af532f607 100644 --- a/web-admin/src/features/billing/Payment.svelte +++ b/web-admin/src/features/billing/Payment.svelte @@ -20,9 +20,9 @@ $: neverSubscribed = $categorisedIssues.data?.neverSubscribed; $: onTrial = !!$categorisedIssues.data?.trial; $: onEnterprisePlan = - subscription?.plan && isEnterprisePlan(subscription.plan.planType); + subscription?.plan && isEnterprisePlan(subscription.plan.name); $: onManagedPlan = - subscription?.plan && isManagedPlan(subscription.plan.planType); + subscription?.plan && isManagedPlan(subscription.plan.name); $: hidePaymentModule = neverSubscribed || onTrial || onEnterprisePlan || onManagedPlan; diff --git a/web-admin/src/features/billing/issues/useBillingIssueMessage.ts b/web-admin/src/features/billing/issues/useBillingIssueMessage.ts index 47690f1305e..c08abccf3fe 100644 --- a/web-admin/src/features/billing/issues/useBillingIssueMessage.ts +++ b/web-admin/src/features/billing/issues/useBillingIssueMessage.ts @@ -1,7 +1,4 @@ -import { - createAdminServiceGetBillingSubscription, - createAdminServiceGetOrganization, -} from "@rilldata/web-admin/client"; +import { createAdminServiceGetOrganization } from "@rilldata/web-admin/client"; import { getMessageForPaymentIssues } from "@rilldata/web-admin/features/billing/issues/getMessageForPaymentIssues"; import { getMessageForCancelledIssue } from "@rilldata/web-admin/features/billing/issues/getMessageForCancelledIssue"; import { getMessageForTrialPlan } from "@rilldata/web-admin/features/billing/issues/getMessageForTrialPlan"; @@ -82,10 +79,10 @@ export function useBillingIssueMessage( if ( categorisedIssuesResp.data?.payment.length && - orgResp.data?.organization?.billingPlanType + orgResp.data?.organization?.billingPlanName ) { const paymentIssue = getMessageForPaymentIssues( - !isTeamPlan(orgResp.data.organization.billingPlanType), + !isTeamPlan(orgResp.data.organization.billingPlanName), categorisedIssuesResp.data.payment, ); // if we do not have any payment related message to show, skip it diff --git a/web-admin/src/features/billing/plans/Plan.svelte b/web-admin/src/features/billing/plans/Plan.svelte index 16e17a0e62c..ce9c2192e3c 100644 --- a/web-admin/src/features/billing/plans/Plan.svelte +++ b/web-admin/src/features/billing/plans/Plan.svelte @@ -27,8 +27,8 @@ $: isTrial = !!$categorisedIssues.data?.trial; // ended subscription will have a cancelled issue associated with it $: subHasEnded = !!$categorisedIssues.data?.cancelled; - $: subIsTeamPlan = plan && isTeamPlan(plan.planType); - $: subIsManagedPlan = plan && isManagedPlan(plan.planType); + $: subIsTeamPlan = plan && isTeamPlan(plan.name); + $: subIsManagedPlan = plan && isManagedPlan(plan.name); $: subIsEnterprisePlan = plan && !isTrial && !subIsTeamPlan && !subIsManagedPlan; diff --git a/web-admin/src/features/billing/plans/selectors.ts b/web-admin/src/features/billing/plans/selectors.ts index fcdf69fbea5..8f330a03382 100644 --- a/web-admin/src/features/billing/plans/selectors.ts +++ b/web-admin/src/features/billing/plans/selectors.ts @@ -21,7 +21,7 @@ export async function fetchTeamPlan() { queryFn: () => adminServiceListPublicBillingPlans(), }); - return plansResp.plans?.find((p) => isTeamPlan(p.planType)); + return plansResp.plans?.find((p) => isTeamPlan(p.name)); } /** diff --git a/web-admin/src/features/billing/plans/utils.ts b/web-admin/src/features/billing/plans/utils.ts index 0708854e8cd..8cad4b1d396 100644 --- a/web-admin/src/features/billing/plans/utils.ts +++ b/web-admin/src/features/billing/plans/utils.ts @@ -1,4 +1,3 @@ -import { V1BillingPlanType } from "@rilldata/web-admin/client"; import { formatMemorySize } from "@rilldata/web-common/lib/number-formatting/memory-size"; import { DateTime } from "luxon"; import { writable } from "svelte/store"; @@ -18,21 +17,25 @@ export function formatUsageVsQuota( return `${formattedUsage} of ${formattedQuota} (${percent}%)`; } -export function isTrialPlan(planType: V1BillingPlanType) { - return planType === V1BillingPlanType.BILLING_PLAN_TYPE_TRIAL; +// Mapping of externalID/planName to a type. +// Used in deciding banner message and to show different billing module in frontend. +// Make sure to update admin/billing/orb.go::getPlanType if this is updated + +export function isTrialPlan(planName: string) { + return planName === "free_trial"; } -export function isTeamPlan(planType: V1BillingPlanType) { - return planType === V1BillingPlanType.BILLING_PLAN_TYPE_TEAM; +export function isTeamPlan(planName: string) { + return planName === "team"; } -export function isManagedPlan(planType: V1BillingPlanType) { - return planType === V1BillingPlanType.BILLING_PLAN_TYPE_MANAGED; +export function isManagedPlan(planName: string) { + return planName === "managed"; } -export function isEnterprisePlan(planType: V1BillingPlanType) { +export function isEnterprisePlan(planName: string) { return ( - !isTrialPlan(planType) && !isTeamPlan(planType) && !isManagedPlan(planType) + !isTrialPlan(planName) && !isTeamPlan(planName) && !isManagedPlan(planName) ); } diff --git a/web-admin/src/routes/[organization]/-/settings/+layout.svelte b/web-admin/src/routes/[organization]/-/settings/+layout.svelte index 37e3587ca0b..fbbe02b1957 100644 --- a/web-admin/src/routes/[organization]/-/settings/+layout.svelte +++ b/web-admin/src/routes/[organization]/-/settings/+layout.svelte @@ -14,8 +14,7 @@ $: organization = $page.params.organization; $: basePage = `/${organization}/-/settings`; $: onEnterprisePlan = - subscription?.plan?.planType && - isEnterprisePlan(subscription.plan.planType); + subscription?.plan?.name && isEnterprisePlan(subscription.plan.name); $: hideBillingSettings = neverSubscribed; $: hideUsageSettings = onEnterprisePlan || !billingPortalUrl; diff --git a/web-admin/src/routes/[organization]/-/settings/usage/+page.ts b/web-admin/src/routes/[organization]/-/settings/usage/+page.ts index df216f1ce5b..92aedd23461 100644 --- a/web-admin/src/routes/[organization]/-/settings/usage/+page.ts +++ b/web-admin/src/routes/[organization]/-/settings/usage/+page.ts @@ -10,7 +10,7 @@ export const load: PageLoad = async ({ params: { organization }, parent }) => { } // Orgs on an Enterprise Plan should not see this page - if (subscription?.plan && isEnterprisePlan(subscription.plan.planType)) { + if (subscription?.plan && isEnterprisePlan(subscription.plan.name)) { throw error(404, "Page not found"); } }; diff --git a/web-common/src/proto/gen/rill/admin/v1/api_pb.ts b/web-common/src/proto/gen/rill/admin/v1/api_pb.ts index 18598831b14..daacb3efa15 100644 --- a/web-common/src/proto/gen/rill/admin/v1/api_pb.ts +++ b/web-common/src/proto/gen/rill/admin/v1/api_pb.ts @@ -11952,9 +11952,9 @@ export class Organization extends Message { billingEmail = ""; /** - * @generated from field: optional rill.admin.v1.BillingPlanType billing_plan_type = 14; + * @generated from field: optional string billing_plan_name = 14; */ - billingPlanType?: BillingPlanType; + billingPlanName?: string; /** * @generated from field: optional string billing_plan_display_name = 15; @@ -11990,7 +11990,7 @@ export class Organization extends Message { { no: 7, name: "billing_customer_id", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 8, name: "payment_customer_id", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 9, name: "billing_email", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { no: 14, name: "billing_plan_type", kind: "enum", T: proto3.getEnumType(BillingPlanType), opt: true }, + { no: 14, name: "billing_plan_name", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, { no: 15, name: "billing_plan_display_name", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, { no: 5, name: "created_on", kind: "message", T: Timestamp }, { no: 6, name: "updated_on", kind: "message", T: Timestamp }, From b40932f22312cfc22de520537ba8e38ffc7a590c Mon Sep 17 00:00:00 2001 From: Aditya Hegde Date: Mon, 24 Feb 2025 11:58:13 +0530 Subject: [PATCH 3/4] Fix lint --- web-admin/src/features/billing/plans/selectors.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web-admin/src/features/billing/plans/selectors.ts b/web-admin/src/features/billing/plans/selectors.ts index 8f330a03382..82ef843df63 100644 --- a/web-admin/src/features/billing/plans/selectors.ts +++ b/web-admin/src/features/billing/plans/selectors.ts @@ -21,7 +21,7 @@ export async function fetchTeamPlan() { queryFn: () => adminServiceListPublicBillingPlans(), }); - return plansResp.plans?.find((p) => isTeamPlan(p.name)); + return plansResp.plans?.find((p) => isTeamPlan(p.name ?? "")); } /** From 49f0c8a11d3a556b8bc1762853c6cc10ad86b44b Mon Sep 17 00:00:00 2001 From: Aditya Hegde Date: Tue, 25 Feb 2025 16:37:11 +0530 Subject: [PATCH 4/4] Fix race condition in showing billing banner --- .../banner/BillingBannerManagerForAdmins.svelte | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/web-admin/src/features/billing/banner/BillingBannerManagerForAdmins.svelte b/web-admin/src/features/billing/banner/BillingBannerManagerForAdmins.svelte index 0ceaff23e6d..3297bedb982 100644 --- a/web-admin/src/features/billing/banner/BillingBannerManagerForAdmins.svelte +++ b/web-admin/src/features/billing/banner/BillingBannerManagerForAdmins.svelte @@ -6,6 +6,7 @@ } from "@rilldata/web-admin/features/billing/issues/useBillingIssueMessage"; import StartTeamPlanDialog from "@rilldata/web-admin/features/billing/plans/StartTeamPlanDialog.svelte"; import { eventBus } from "@rilldata/web-common/lib/event-bus/event-bus"; + import { onMount } from "svelte"; export let organization: string; @@ -14,7 +15,9 @@ $: ({ showStartTeamPlanDialog, startTeamPlanType, teamPlanEndDate } = billingCTAHandler); - function showBillingIssueBanner(message: BillingIssueMessage) { + function showBillingIssueBanner(message: BillingIssueMessage | undefined) { + if (!message) return; + eventBus.emit("banner", { type: message.type, message: message.title + " " + message.description, @@ -33,9 +36,13 @@ }); } - $: if ($billingIssueMessage.data) { + $: showBillingIssueBanner($billingIssueMessage.data); + onMount(() => { + // There is a race condition where BannerCenter is mounted after the above statement is run. + // So call showBillingIssueBanner again to make sure banner is shown. + // TODO: we should probably save the last event args and re-fire them when a listener added showBillingIssueBanner($billingIssueMessage.data); - } + });