syntax = "proto3";

package devvit.dev_portal.internal.data_api.v1alpha.admin;

import "devvit/dev_portal/data_api/admin/auth/auth.proto";
import "devvit/dev_portal/data_api/admin/organization/organization.proto";
import "devvit/dev_portal/data_api/admin/subscription/subscription.proto";
import "devvit/dev_portal/internal/data_api/v1alpha/admin/firehose_monitor.proto";

option go_package = "github.snooguts.net/reddit/reddit-devplatform-monorepo/go-common/generated/protos/types/devvit/devportal/int/data_api/admin";

// This is an internal service used for managing data tokens and subscriptions
service InternalDataApiAdmin {
  // Data Token
  rpc GetDataTokenById(devvit.dev_portal.data_api.admin.auth.GetDataTokenByIdRequest) returns (devvit.dev_portal.data_api.admin.auth.GetDataTokenByIdResponse);
  rpc GetDataTokensByOrganizationName(devvit.dev_portal.data_api.admin.auth.GetDataTokensByOrganizationNameRequest) returns (devvit.dev_portal.data_api.admin.auth.GetDataTokensByOrganizationNameResponse);

  // Subscriptions
  rpc GetDataSubscriptionById(devvit.dev_portal.data_api.admin.subscription.GetDataSubscriptionByIdRequest) returns (devvit.dev_portal.data_api.admin.subscription.GetDataSubscriptionByIdResponse);

  // Firehose monitor utils
  rpc CreateFirehoseMonitorDataToken(CreateFirehoseMonitorDataTokenRequest) returns (devvit.dev_portal.data_api.admin.auth.CreateDataTokenResponse);
  rpc GetFirehoseMonitorSubscriptionByName(GetFirehoseMonitorSubscriptionByNameRequest) returns (GetFirehoseMonitorSubscriptionByNameResponse);

  rpc GetOrganizationByName(devvit.dev_portal.data_api.admin.organization.GetOrganizationByNameRequest) returns (devvit.dev_portal.data_api.admin.organization.GetOrganizationByNameResponse);
}
