proto/wg/cosmo/platform/v1/platform.proto (2,435 lines of code) (raw):

// https://protobuf.dev/programming-guides/style/ syntax = "proto3"; package wg.cosmo.platform.v1; import "wg/cosmo/common/common.proto"; import "wg/cosmo/notifications/events.proto"; message Label { string key = 1; string value = 2; } message Response { wg.cosmo.common.EnumStatusCode code = 1; // details is an optional field which can be used to provide more details about the error. optional string details = 2; } message ResponseStatus { int32 code = 1; string message = 2; } message PublishMonographRequest { string name = 1; string namespace = 2; string schema = 3; } message PublishMonographResponse { Response response = 1; repeated CompositionError compositionErrors = 2; repeated DeploymentError deploymentErrors = 3; repeated CompositionWarning compositionWarnings = 4; } message PublishFederatedSubgraphRequest { // The FQDN of the subgraph to be published e.g. "wg.team1.orders" string name = 1; // The string representation of the schema, the content of the file string schema = 2; // The routing_url is the URL of the service which will be used to route the requests to the subgraph. optional string routing_url = 3; // The labels are the labels of the services which will form the federated graph. If the proposed is not valid, the service will be rejected. repeated Label labels = 4; // The subscription protocol to use when subscribing to this subgraph optional wg.cosmo.common.GraphQLSubscriptionProtocol subscription_protocol = 6; // The url used for subscriptions optional string subscription_url = 7; // The namespace of the subgraph string namespace = 8; // The subscription subprotocol to use when subscribing to this subgraph optional wg.cosmo.common.GraphQLWebsocketSubprotocol websocket_subprotocol = 9; optional bool is_feature_subgraph = 10; optional string base_subgraph_name = 11; } message PublishFederatedSubgraphResponse { Response response = 1; repeated CompositionError compositionErrors = 2; repeated DeploymentError deploymentErrors = 3; optional bool hasChanged = 4; repeated CompositionWarning compositionWarnings = 5; } message GitInfo { string commit_sha = 1; string account_id = 2; string owner_slug = 3; string repository_slug = 4; } message VCSContext { string author = 1; string commit_sha = 2; string branch = 3; } message CheckSubgraphSchemaRequest { // The FQDN of the subgraph to be checked e.g. "wg.team1.orders" string subgraph_name = 1; // The binary representation of the schema, the content of the file bytes schema = 2; GitInfo gitInfo = 3; // Check breaking changes and composition when this subgraph is deleted optional bool delete = 4; string namespace = 5; optional bool skip_traffic_check = 6; optional VCSContext vcsContext = 7; } message FixSubgraphSchemaRequest { // The FQDN of the subgraph to be checked e.g. "wg.team1.orders" string subgraph_name = 1; // The string representation of the schema, the content of the file string schema = 2; string namespace = 3; } message CreateMonographRequest { string name = 1; string namespace = 2; string routing_url = 3; string graph_url = 4; optional string subscription_url = 5; optional wg.cosmo.common.GraphQLSubscriptionProtocol subscription_protocol = 6; optional string readme = 7; string admissionWebhookURL = 8; // The subscription protocol to use when subscribing to this subgraph optional wg.cosmo.common.GraphQLWebsocketSubprotocol websocket_subprotocol = 9; optional string admissionWebhookSecret = 10; } message CreateMonographResponse { Response response = 1; } message CreateFederatedGraphRequest { // name is the FQDN of the federated graph e.g. "wg.main" string name = 1; // routing_url is the URL of the service which will be used to route the requests to the subgraph. string routing_url = 2; // label_matchers match the labels of the services which will form the federated graph. If the proposed schema composition is invalid, it will be rejected. repeated string label_matchers = 3; // readme of the fed graph optional string readme = 4; string namespace = 5; string admissionWebhookURL = 6; optional string admissionWebhookSecret = 7; } message CreateFederatedSubgraphRequest { // The FQDN of the subgraph to be published e.g. "wg.team1.orders" string name = 1; // routing_url is the URL of the service which will be used to route the requests to the subgraph. optional string routing_url = 2; // labels are the labels of the services which will form the federated graph. If the proposed is not valid, the service will be rejected. repeated Label labels = 3; // subscription protocol to use when subscribing to this subgraph optional wg.cosmo.common.GraphQLSubscriptionProtocol subscription_protocol = 5; // url used for subscriptions optional string subscription_url = 6; // readme of the subgraph optional string readme = 7; string namespace = 8; optional wg.cosmo.common.GraphQLWebsocketSubprotocol websocket_subprotocol = 9; optional bool is_event_driven_graph = 10; optional bool is_feature_subgraph = 11; optional string base_subgraph_name = 12; } message DeleteFederatedGraphRequest { string name = 1; string namespace = 2; } message DeleteMonographRequest { string name = 1; string namespace = 2; } message DeleteMonographResponse { Response response = 1; } message DeleteFederatedSubgraphRequest { // The FQDN of the subgraph to be checked e.g. "wg.team1.orders" string subgraph_name = 1; string namespace = 2; } message SchemaChange{ string message = 1; string changeType = 2; optional string path = 3; bool isBreaking = 4; optional bool hasOverride = 5; } message CompositionError { string message = 1; string federatedGraphName = 2; string namespace = 3; string featureFlag = 4; } message CompositionWarning { string message = 1; string federatedGraphName = 2; string namespace = 3; string featureFlag = 4; } message DeploymentError { string message = 1; string federatedGraphName = 2; string namespace = 3; } message CheckOperationUsageStats { uint32 totalOperations = 1; string firstSeenAt = 2; string lastSeenAt = 3; uint32 safeOperations = 4; } message CheckedFederatedGraphs { string id = 1; string name = 2; string namespace = 3; string organization_slug = 4; } enum LintSeverity { warn = 0; error = 1; } message LintLocation{ uint32 line = 1; uint32 column = 2; optional uint32 endLine = 3; optional uint32 endColumn = 4; } message LintIssue{ optional string lintRuleType = 1; LintSeverity severity = 2; string message = 3; LintLocation issueLocation = 4; } message GraphPruningIssue{ string graphPruningRuleType = 1; LintSeverity severity = 2; string fieldPath = 3; string message = 4; LintLocation issueLocation = 5; string federatedGraphName = 6; } message CheckSubgraphSchemaResponse { Response response = 1; repeated SchemaChange breakingChanges = 2; repeated SchemaChange nonBreakingChanges = 3; repeated CompositionError compositionErrors = 4; // Contains the operation usage stats for the operations that are impacted by the schema changes. CheckOperationUsageStats operationUsageStats = 5; string check_id = 6; repeated CheckedFederatedGraphs checked_federated_graphs = 7; repeated LintIssue lintWarnings = 8; repeated LintIssue lintErrors = 9; repeated GraphPruningIssue graphPruneWarnings = 10; repeated GraphPruningIssue graphPruneErrors = 11; optional bool client_traffic_check_skipped = 12; repeated CompositionWarning compositionWarnings = 13; } message FixSubgraphSchemaResponse { Response response = 1; bool modified = 2; string schema = 3; } message CreateFederatedGraphResponse { Response response = 1; repeated CompositionError compositionErrors = 2; repeated DeploymentError deploymentErrors = 3; repeated CompositionWarning compositionWarnings = 4; } message CreateFederatedSubgraphResponse { Response response = 1; } message DeleteFederatedSubgraphResponse { Response response = 1; repeated CompositionError compositionErrors = 2; repeated DeploymentError deploymentErrors = 3; repeated CompositionWarning compositionWarnings = 4; } message DeleteFederatedGraphResponse { Response response = 1; } message GetFederatedGraphsRequest { int32 limit = 1; int32 offset = 2; bool includeMetrics = 3; string namespace = 4; optional bool supports_federation = 5; } message Contract { string id = 1; string source_federated_graph_id = 2; repeated string exclude_tags = 3; repeated string include_tags = 4; } message FederatedGraph { string id = 1; string name = 2; string routingURL = 3; repeated string label_matchers = 4; string lastUpdatedAt = 5; bool isComposable = 6; string compositionErrors = 7; int32 connectedSubgraphs = 8; repeated RequestSeriesItem requestSeries = 9; optional string readme = 10; string target_id = 11; string namespace = 12; optional string compositionId = 13; bool supports_federation = 14; optional Contract contract = 15; optional string admission_webhook_url = 16; string router_compatibility_version = 17; } message GetFederatedGraphsResponse { Response response = 1; repeated FederatedGraph graphs = 2; } message GetFederatedGraphsBySubgraphLabelsRequest { string subgraphName = 1; string namespace = 2; } message GetFederatedGraphsBySubgraphLabelsResponse { Response response = 1; repeated FederatedGraph graphs = 2; } message GetSubgraphsRequest { int32 limit = 1; int32 offset = 2; string namespace = 3; optional string query = 4; bool exclude_feature_subgraphs = 5; } message Subgraph { string id = 1; string name = 2; string routingURL = 3; string lastUpdatedAt = 4; repeated Label labels = 5; optional string creatorUserId = 6; optional string readme = 7; string subscriptionUrl = 8; string target_id = 9; string namespace = 10; string subscriptionProtocol = 11; optional bool isV2Graph = 12; bool isEventDrivenGraph = 13; string websocketSubprotocol = 14; bool isFeatureSubgraph = 15; optional string baseSubgraphName = 16; optional string baseSubgraphId = 17; } message GetSubgraphsResponse { Response response = 1; repeated Subgraph graphs = 2; int32 count = 3; } message GetFederatedGraphByNameRequest { string name = 1; bool includeMetrics = 2; string namespace = 3; } message GetFederatedGraphByNameResponse { Response response = 1; FederatedGraph graph = 2; repeated Subgraph subgraphs = 3; string graphRequestToken = 4; repeated FeatureFlag featureFlagsInLatestValidComposition = 5; // includes all the feature subgraphs that are part of the federated graph; // even the ones that are not part of the latest composition repeated Subgraph featureSubgraphs = 6; } message GetFederatedGraphSDLByNameRequest { string name = 1; string namespace = 2; optional string feature_flag_name = 3; } message GetFederatedGraphSDLByNameResponse { Response response = 1; optional string sdl = 2; optional string version_id = 3; optional string client_schema = 4; } message GetSubgraphByNameRequest { string name = 1; string namespace = 2; } message GetSubgraphByNameResponse { Response response = 1; Subgraph graph = 2; repeated SubgraphMember members = 3; } message GetSubgraphSDLFromLatestCompositionRequest { string name = 1; string fedGraphName = 2; string namespace = 3; } message GetSubgraphSDLFromLatestCompositionResponse { Response response = 1; optional string sdl = 2; optional string version_id = 3; } message GetLatestSubgraphSDLRequest { string name = 1; string namespace = 2; } message GetLatestSubgraphSDLResponse { Response response = 1; optional string sdl = 2; optional string version_id = 3; } message GetChecksByFederatedGraphNameRequest { string name = 1; int32 limit = 2; int32 offset = 3; string startDate = 4; string endDate = 5; string namespace = 6; } message SchemaCheck { message GhDetails { string commitSha = 1; string ownerSlug = 2; string repositorySlug = 3; } string id = 1; string targetID = 2; string subgraphName = 3; string timestamp = 4; bool isComposable = 5; bool isBreaking = 6; bool hasClientTraffic = 7; bool isForcedSuccess = 8; bool isDeleted = 9; optional GhDetails ghDetails = 10; bool hasLintErrors = 11; bool hasGraphPruningErrors = 12; bool client_traffic_check_skipped = 13; bool lint_skipped = 14; bool graph_pruning_skipped = 15; optional VCSContext vcsContext = 16; } message GetChecksByFederatedGraphNameResponse { Response response = 1; repeated SchemaCheck checks = 2; int32 checksCountBasedOnDateRange = 3; int32 totalChecksCount = 4; } message GetCheckSummaryRequest { string check_id = 1; string graph_name = 2; string namespace = 3; } message ChangeCounts { int32 additions = 1; int32 deletions = 2; } message GetCheckSummaryResponse { message AffectedGraph { string id = 1; int32 traffic_check_days = 2; } Response response = 1; SchemaCheck check = 2; repeated AffectedGraph affected_graphs = 3; optional string proposedSubgraphSchemaSDL = 4; repeated SchemaChange changes = 6; repeated string compositionErrors = 7; int32 traffic_check_days = 8; repeated LintIssue lintIssues = 9; repeated GraphPruningIssue graphPruningIssues = 10; repeated string compositionWarnings = 11; } message GetCheckOperationsRequest { string check_id = 1; string graph_name = 2; string namespace = 3; int32 limit = 4; int32 offset = 5; } message GetCheckOperationsResponse { message CheckOperation { string hash = 1; string name = 2; string type = 3; string first_seen_at = 4; string last_seen_at = 5; repeated SchemaChange impacting_changes = 6; bool is_safe = 7; bool hasIgnoreAllOverride = 8; } Response response = 1; repeated CheckOperation operations = 2; int32 traffic_check_days = 3; string created_at = 4; bool client_traffic_check_skipped = 5; int32 totalOperationsCount = 6; } message GetOperationContentRequest { string hash = 1; } message GetOperationContentResponse { Response response = 1; string operation_content = 2; } message GetFederatedGraphChangelogRequest { string name = 1; Pagination pagination = 2; DateRange dateRange = 3; string namespace = 4; } message FederatedGraphChangelog{ string id = 1; string path = 2; string changeType = 3; string changeMessage = 4; string createdAt = 5; } message FederatedGraphChangelogOutput{ string createdAt = 1; string schemaVersionId = 2; repeated FederatedGraphChangelog changelogs = 3; string compositionId = 4; } message GetFederatedGraphChangelogResponse { Response response = 1; repeated FederatedGraphChangelogOutput federatedGraphChangelogOutput = 2; bool hasNextPage = 3; } message GetFederatedResponse { Response response = 1; string FederatedSchemaSDL = 2; } message UpdateSubgraphRequest { string name = 1; optional string routing_url = 2; repeated Label labels = 3; repeated string headers = 4; // subscription protocol to use when subscribing to this subgraph optional wg.cosmo.common.GraphQLSubscriptionProtocol subscription_protocol = 5; // url used for subscriptions optional string subscription_url = 6; optional string readme = 7; string namespace = 8; optional bool unset_labels = 9; optional wg.cosmo.common.GraphQLWebsocketSubprotocol websocket_subprotocol = 10; } message UpdateSubgraphResponse { Response response = 1; repeated CompositionError compositionErrors = 2; repeated DeploymentError deploymentErrors = 3; repeated CompositionWarning compositionWarnings = 4; } message UpdateFederatedGraphRequest { string name = 1; string routing_url = 2; repeated string label_matchers = 3; optional string readme = 4; string namespace = 5; optional bool unset_label_matchers = 6; optional string admissionWebhookURL = 7; optional string admissionWebhookSecret = 8; } message UpdateFederatedGraphResponse { Response response = 1; repeated CompositionError compositionErrors = 2; repeated DeploymentError deploymentErrors = 3; repeated CompositionWarning compositionWarnings = 4; } message UpdateMonographRequest { string name = 1; string namespace = 2; string routing_url = 3; string graph_url = 4; optional wg.cosmo.common.GraphQLSubscriptionProtocol subscription_protocol = 5; optional string subscription_url = 6; optional string readme = 7; optional wg.cosmo.common.GraphQLWebsocketSubprotocol websocket_subprotocol = 8; optional string admissionWebhookURL = 9; optional string admissionWebhookSecret = 10; } message UpdateMonographResponse { Response response = 1; } message CheckFederatedGraphRequest { string name = 1; repeated string label_matchers = 2; string namespace = 3; } message CheckFederatedGraphResponse { Response response = 1; repeated CompositionError compositionErrors = 2; repeated Subgraph subgraphs = 3; repeated CompositionWarning compositionWarnings = 4; } message Pagination { int32 limit = 1; int32 offset = 2; } message Sort { string id = 1; bool desc = 2; } message AnalyticsConfig { DateRange dateRange = 1; optional int32 range = 2; repeated AnalyticsFilter filters = 3; Pagination pagination = 4; optional Sort sort = 5; } message AnalyticsFilter { // The name of the column / attribute to filter on. string field = 1; // The value to filter on. string value = 2; // The operator to use for the filter. AnalyticsViewFilterOperator operator = 3; } message DateRange { // The start date of the date range in ISO 8601 format. string start = 1; // The end date of the date range in ISO 8601 format. string end = 2; } enum AnalyticsViewGroupName { None = 0; OperationName = 1; Client = 2; HttpStatusCode = 3; } message GetAnalyticsViewRequest { string federatedGraphName = 1; AnalyticsViewGroupName name = 2; AnalyticsConfig config = 3; string namespace = 4; } message AnalyticsViewResult { repeated AnalyticsViewColumn columns = 1; repeated AnalyticsViewRow rows = 2; repeated AnalyticsViewResultFilter filters = 3; int32 pages = 4; } message AnalyticsViewColumn { string name = 1; string title = 2; string type = 3; optional Unit unit = 4; optional bool is_hidden = 5; optional bool is_cta = 6; } enum CustomOptions { Text = 0; Range = 1; } message AnalyticsViewResultFilter { string columnName = 1; string title = 2; repeated AnalyticsViewResultFilterOption options = 3; optional CustomOptions custom_options = 4; } message AnalyticsViewResultFilterOption { string label = 1; optional string value = 2; AnalyticsViewFilterOperator operator = 3; } enum Unit { Unspecified = 0; Nanoseconds = 1; UnixTimestamp = 2; Bytes = 3; CodeBlock = 4; StatusCode = 5; TraceID = 6; SpanID = 7; Percentage = 8; } enum AnalyticsViewFilterOperator { EQUALS = 0; NOT_EQUALS = 1; GREATER_THAN = 2; LESS_THAN = 3; GREATER_THAN_OR_EQUAL = 4; LESS_THAN_OR_EQUAL = 5; CONTAINS = 6; NOT_CONTAINS = 7; IN = 8; NOT_IN = 9; BETWEEN = 10; NOT_BETWEEN = 11; IS_NULL = 12; IS_NOT_NULL = 13; } message AnalyticsViewRow { map<string, AnalyticsViewRowValue> value = 1; } message AnalyticsViewRowValue { // The kind of value. oneof kind { // Represents a double value. double number_value = 1; // Represents a string value. string string_value = 2; // Represents a boolean value. bool bool_value = 3; } } message GetAnalyticsViewResponse { Response response = 1; AnalyticsViewResult view = 2; } message GetDashboardAnalyticsViewRequest { string federatedGraphName = 1; string startDate = 2; string endDate = 3; int32 range = 4; string namespace = 5; } message RequestSeriesItem { string timestamp = 1; int32 totalRequests = 2; int32 erroredRequests = 3; } message OperationRequestCount { string operationHash = 1; string operationName = 2; int32 totalRequests = 3; } message FederatedGraphMetrics { string federatedGraphID = 1; float requestRate = 2; float errorRate = 3; float latency = 4; } message SubgraphMetrics { string subgraphID = 1; float requestRate = 2; float errorRate = 3; float latency = 4; } message GetDashboardAnalyticsViewResponse { Response response = 1; repeated RequestSeriesItem requestSeries = 2; repeated OperationRequestCount mostRequestedOperations = 3; repeated SubgraphMetrics subgraphMetrics = 4; FederatedGraphMetrics federatedGraphMetrics = 5; } message CreateFederatedGraphTokenRequest { string graphName = 1; string tokenName = 2; string namespace = 3; } message CreateFederatedGraphTokenResponse { Response response = 1; string token = 2; } message OrgMember{ string userID = 1; string email = 2; repeated string roles = 3; string orgMemberID = 4; bool active = 5; } message PendingOrgInvitation{ string userID = 1; string email = 2; } message GetPendingOrganizationMembersRequest { Pagination pagination = 1; optional string search = 2; } message GetPendingOrganizationMembersResponse { Response response = 1; repeated PendingOrgInvitation pendingInvitations = 2; int32 total_count = 3; } message GetOrganizationMembersRequest { Pagination pagination = 1; optional string search = 2; } message GetOrganizationMembersResponse { Response response = 1; repeated OrgMember members = 2; int32 total_count = 3; } message InviteUserRequest { string email = 1; } message InviteUserResponse { Response response = 1; } message APIKey{ string id = 1; string name = 2; string createdBy = 3; string createdAt = 4; string lastUsedAt = 5; string expiresAt = 6; } message GetAPIKeysRequest {} message GetAPIKeysResponse { Response response = 1; repeated APIKey apiKeys = 2; } enum ExpiresAt { NEVER = 0; THIRTY_DAYS = 1; SIX_MONTHS = 2; ONE_YEAR = 3; } message CreateAPIKeyRequest { string name = 1; string userID = 2; ExpiresAt expires = 3; repeated string federatedGraphTargetIds = 4; repeated string subgraphTargetIds = 5; repeated string permissions = 6; bool allowAllResources = 7; } message CreateAPIKeyResponse { Response response = 1; string apiKey = 2; } message DeleteAPIKeyRequest { string name = 1; } message DeleteAPIKeyResponse { Response response = 1; } message RemoveOrganizationMemberRequest { string email = 1; } message RemoveOrganizationMemberResponse { Response response = 1; } message RemoveInvitationRequest { string email = 1; } message RemoveInvitationResponse { Response response = 1; } message MigrateFromApolloRequest { string apiKey = 1; string variantName = 2; string namespace = 3; } message MigrateFromApolloResponse { Response response = 1; string token = 2; } message Span { int64 timestamp = 1; string scopeName = 2; string traceID = 3; string spanID = 4; string parentSpanID = 5; string spanName = 6; string spanKind = 7; int64 duration = 8; string serviceName = 9; string statusCode = 10; string statusMessage = 11; map<string, string> attributes = 12; } message GetTraceRequest { string id = 1; string span_id = 2; string federated_graph_id = 3; } message GetTraceResponse { Response response = 1; repeated Span spans = 2; } message WhoAmIRequest {} message WhoAmIResponse { Response response = 1; string organizationName = 2; optional string userEmail = 3; string organizationSlug = 4; } message RouterToken { string id = 1; string name = 2; string createdAt = 3; string creatorEmail = 5; } message GenerateRouterTokenRequest { string fedGraphName = 1; string namespace = 2; } message GenerateRouterTokenResponse { Response response = 1; string token = 2; } message GetRouterTokensRequest { string fedGraphName = 1; string namespace = 2; } message GetRouterTokensResponse { Response response = 1; repeated RouterToken tokens = 2; } message DeleteRouterTokenRequest { string tokenName = 1; string fedGraphName = 2; string namespace = 3; } message DeleteRouterTokenResponse { Response response = 1; } message PersistedOperation { string id = 1; string contents = 2; } message PublishPersistedOperationsRequest { string fedGraphName = 1; string clientName = 2; repeated PersistedOperation operations = 3; string namespace = 4; } enum PublishedOperationStatus { UP_TO_DATE = 0; CREATED = 1; CONFLICT = 2; } message PublishedOperation { string id = 1; string hash = 2; PublishedOperationStatus status = 3; repeated string operationNames = 4; } message PublishPersistedOperationsResponse { Response response = 1; repeated PublishedOperation operations = 2; } message GetPersistedOperationsRequest { string federated_graph_name = 1; string client_id = 2; string namespace = 3; } message GetPersistedOperationsResponse { message Operation { string id = 1; string contents = 2; string created_at = 3; string last_updated_at = 4; repeated string operation_names = 5; } Response response = 1; repeated Operation operations = 2; } message Header{ string key = 1; string value = 2; } message CreateOrganizationWebhookConfigRequest { string endpoint = 1; string key = 2; repeated string events = 3; repeated wg.cosmo.notifications.EventMeta events_meta = 4; } message CreateOrganizationWebhookConfigResponse { Response response = 1; string webhook_config_id = 2; } message GetOrganizationWebhookConfigsRequest {} message GetOrganizationWebhookConfigsResponse { message Config { string id = 1; string endpoint = 2; repeated string events = 3; } Response response = 1; repeated Config configs = 2; } message GetOrganizationWebhookMetaRequest { string id = 1; } message GetOrganizationWebhookMetaResponse { Response response = 1; repeated wg.cosmo.notifications.EventMeta events_meta = 2; } message UpdateOrganizationWebhookConfigRequest { string id = 1; string endpoint = 2; string key = 3; repeated string events = 4; repeated wg.cosmo.notifications.EventMeta events_meta = 5; bool should_update_key = 6; } message UpdateOrganizationWebhookConfigResponse { Response response = 1; } message DeleteOrganizationWebhookConfigRequest { string id = 1; } message DeleteOrganizationWebhookConfigResponse { Response response = 1; } message CreateIntegrationRequest { string type = 1; string name = 2; string code = 3; repeated string events = 4; repeated wg.cosmo.notifications.EventMeta eventsMeta = 5; } message CreateIntegrationResponse { Response response = 1; } message GetOrganizationIntegrationsRequest {} enum IntegrationType { SLACK = 0; } message SlackIntegrationConfig { string endpoint = 1; } message IntegrationConfig{ IntegrationType type = 1; oneof config{ SlackIntegrationConfig slackIntegrationConfig = 2; } } message Integration { string id = 1; string name = 2; string type = 3; repeated string events = 4; IntegrationConfig integrationConfig = 5; repeated wg.cosmo.notifications.EventMeta eventsMeta = 6; } message GetOrganizationIntegrationsResponse { Response response = 1; repeated Integration integrations = 2; } message UpdateIntegrationConfigRequest { string id = 1; string endpoint = 2; repeated string events = 3; repeated wg.cosmo.notifications.EventMeta events_meta = 4; } message UpdateIntegrationConfigResponse { Response response = 1; } message DeleteIntegrationRequest { string id = 1; } message DeleteIntegrationResponse { Response response = 1; } message DeleteOrganizationRequest { string userID = 1; } message DeleteOrganizationResponse { Response response = 1; } message LeaveOrganizationRequest { string userID = 1; } message LeaveOrganizationResponse { Response response = 1; } message UpdateOrganizationDetailsRequest { string userID = 1; string organizationName = 2; string organizationSlug = 3; } message UpdateOrganizationDetailsResponse { Response response = 1; } message UpdateOrgMemberRoleRequest { string userID = 1; string orgMemberUserID = 2; string role = 3; } message UpdateOrgMemberRoleResponse { Response response = 1; } message CreateOrganizationRequest { string name = 1; string slug = 2; string plan = 3; } message CreateOrganizationResponse { Response response = 1; optional Organization organization = 2; optional string stripeSessionId = 3; } message Organization { string id = 1; string name = 2; string slug = 3; optional string creatorUserId = 4; string createdAt = 5; } message GetOrganizationBySlugRequest { string slug = 1; } message GetOrganizationBySlugResponse { Response response = 1; optional Organization organization = 2; } /** * Billing */ message GetBillingPlansRequest { } message GetBillingPlansResponse { message BillingPlanFeature { string id = 1; string description = 3; optional int32 limit = 4; } message BillingPlan { string id = 1; string name = 2; int32 price = 3; repeated BillingPlanFeature features = 4; } Response response = 1; repeated BillingPlan plans = 2; } message CreateCheckoutSessionRequest { string plan = 1; } message CreateCheckoutSessionResponse { Response response = 1; string sessionId = 2; } message CreateBillingPortalSessionRequest { } message CreateBillingPortalSessionResponse { Response response = 1; string sessionId = 2; string url = 3; } message UpgradePlanRequest { string plan = 1; } message UpgradePlanResponse { Response response = 1; } /** * MetricsDashboard */ message GetGraphMetricsRequest { string federatedGraphName = 1; int32 range = 2; DateRange dateRange = 3; repeated AnalyticsFilter filters = 4; string namespace = 5; } message GetGraphMetricsResponse { Response response = 1; MetricsDashboardMetric requests = 2; MetricsDashboardMetric latency = 3; MetricsDashboardMetric errors = 4; repeated AnalyticsViewResultFilter filters = 5; optional string resolution = 6; } message MetricsDashboardMetric { string value = 1; optional string previousValue = 2; repeated MetricsTopItem top = 3; repeated MetricsSeriesItem series = 4; } message MetricsTopItem { string hash = 1; string name = 2; string value = 3; bool isPersisted = 4; } message MetricsSeriesItem { string timestamp = 1; string value = 2; optional string previousValue = 3; } message MetricsDashboard { string name = 1; string title = 2; string type = 3; optional Unit unit = 4; optional bool is_hidden = 5; optional bool is_cta = 6; } message GetMetricsErrorRateRequest { string federatedGraphName = 1; int32 range = 2; DateRange dateRange = 3; repeated AnalyticsFilter filters = 4; string namespace = 5; } message GetMetricsErrorRateResponse { Response response = 1; repeated MetricsErrorRateSeriesItem series = 2; optional string resolution = 3; } message MetricsErrorRateSeriesItem { string timestamp = 1; float requestRate = 2; float errorRate = 3; } message GetSubgraphMetricsRequest { string subgraphName = 1; string namespace = 2; int32 range = 4; DateRange dateRange = 5; repeated AnalyticsFilter filters = 6; } message GetSubgraphMetricsResponse { Response response = 1; MetricsDashboardMetric requests = 2; MetricsDashboardMetric latency = 3; MetricsDashboardMetric errors = 4; repeated AnalyticsViewResultFilter filters = 5; optional string resolution = 6; } message GetSubgraphMetricsErrorRateRequest { string subgraphName = 1; string namespace = 2; int32 range = 4; DateRange dateRange = 5; repeated AnalyticsFilter filters = 6; } message GetSubgraphMetricsErrorRateResponse { Response response = 1; repeated MetricsErrorRateSeriesItem series = 2; optional string resolution = 3; } message ForceCheckSuccessRequest { string check_id = 1; string graph_name = 2; string namespace = 3; } message ForceCheckSuccessResponse { Response response = 1; } message ToggleChangeOverridesForAllOperationsRequest { string check_id = 1; bool is_safe = 2; string graph_name = 3; string namespace = 4; } message ToggleChangeOverridesForAllOperationsResponse { Response response = 1; } message CreateIgnoreOverridesForAllOperationsRequest { string check_id = 1; string graph_name = 2; string namespace = 3; } message CreateIgnoreOverridesForAllOperationsResponse { Response response = 1; } message OverrideChange { string changeType = 1; optional string path = 2; } message CreateOperationOverridesRequest { string graph_name = 1; string namespace = 2; string operation_hash = 3; string operation_name = 4; repeated OverrideChange changes = 5; } message CreateOperationOverridesResponse { Response response = 1; } message CreateOperationIgnoreAllOverrideRequest { string graph_name = 1; string namespace = 2; string operation_hash = 3; string operation_name = 4; } message CreateOperationIgnoreAllOverrideResponse { Response response = 1; } message RemoveOperationOverridesRequest { string graph_name = 1; string namespace = 2; string operation_hash = 3; repeated OverrideChange changes = 4; } message RemoveOperationOverridesResponse { Response response = 1; } message RemoveOperationIgnoreAllOverrideRequest { string graph_name = 1; string namespace = 2; string operation_hash = 3; } message RemoveOperationIgnoreAllOverrideResponse { Response response = 1; } message GetOperationOverridesRequest { string graph_name = 1; string namespace = 2; string operation_hash = 3; } message GetOperationOverridesResponse { Response response = 1; repeated OverrideChange changes = 2; bool ignore_all = 3; } message GetAllOverridesRequest { string graph_name = 1; string namespace = 2; } message GetAllOverridesResponse { message Override { string hash = 1; string name = 2; uint32 changesOverrideCount = 3; bool hasIgnoreAllOverride = 4; string updated_at = 5; } Response response = 1; repeated Override overrides = 2; } message IsGitHubAppInstalledRequest { GitInfo git_info = 1; } message IsGitHubAppInstalledResponse { Response response = 1; bool is_installed = 2; } message GroupMapper { string role = 1; string ssoGroup = 2; } message CreateOIDCProviderRequest { string name = 1; string discoveryEndpoint = 2; string clientID = 3; string clientSecrect = 4; repeated GroupMapper mappers = 5; } message CreateOIDCProviderResponse { Response response = 1; string signInURL = 2; string signOutURL = 3; string loginURL = 4; } message GetOIDCProviderRequest {} message GetOIDCProviderResponse { Response response = 1; string name = 2; string endpoint = 3; string loginURL = 4; string signInRedirectURL = 5; string signOutRedirectURL = 6; repeated GroupMapper mappers = 7; } message DeleteOIDCProviderRequest {} message DeleteOIDCProviderResponse { Response response = 1; } message UpdateIDPMappersRequest { repeated GroupMapper mappers = 1; } message UpdateIDPMappersResponse { Response response = 1; } message GetOrganizationRequestsCountRequest {} message GetOrganizationRequestsCountResponse { Response response = 1; int64 count = 2; } message OrganizationInvite{ string id = 1; string name = 2; string slug = 3; optional string creatorUserId = 4; string createdAt = 5; optional string invitedBy = 6; } message GetAuditLogsRequest { int32 limit = 1; int32 offset = 2; string startDate = 3; string endDate = 4; } message AuditLog { string id = 1; string actorDisplayName = 2; string action = 3; string actorType = 4; string auditAction = 5; string auditableDisplayName = 6; string targetDisplayName = 7; string targetType = 8; string createdAt = 9; string targetNamespaceId = 10; string targetNamespaceDisplayName = 11; string apiKeyName = 12; } message GetAuditLogsResponse { Response response = 1; repeated AuditLog logs = 2; int32 count = 3; } message GetInvitationsRequest {} message GetInvitationsResponse { Response response = 1; repeated OrganizationInvite invitations = 2; } message AcceptOrDeclineInvitationRequest { string organizationId = 1; bool accept = 2; } message AcceptOrDeclineInvitationResponse { Response response = 1; } message GraphComposition { string id = 1; string schemaVersionId = 2; string createdAt = 3; bool isComposable = 4; optional string compositionErrors = 5; optional string createdBy = 6; bool isLatestValid = 7; optional string routerConfigSignature = 8; optional string admissionError = 9; optional string deploymentError = 10; optional bool hasMultipleChangedSubgraphs = 11; optional string triggeredBySubgraphName = 12; optional string compositionWarnings = 13; string router_compatibility_version = 14; } message GraphCompositionSubgraph { string id = 1; string schemaVersionId = 2; string name = 3; string target_id = 4; bool isFeatureSubgraph = 5; string changeType = 6; } message GetCompositionsRequest { string fedGraphName = 1; int32 limit = 2; int32 offset = 3; string startDate = 4; string endDate = 5; string namespace = 6; bool excludeFeatureFlagCompositions = 7; } message GetCompositionsResponse { Response response = 1; repeated GraphComposition compositions = 2; int32 count = 3; } message GetCompositionDetailsRequest { string compositionId = 1; string namespace = 2; } message FeatureFlagComposition { string id = 1; string schemaVersionId = 2; string createdAt = 3; bool isComposable = 4; optional string compositionErrors = 5; optional string createdBy = 6; optional string routerConfigSignature = 7; optional string admissionError = 8; optional string deploymentError = 9; string featureFlagName = 10; optional string compositionWarnings = 11; } message GetCompositionDetailsResponse { Response response = 1; GraphComposition composition = 2; repeated GraphCompositionSubgraph compositionSubgraphs = 3; ChangeCounts changeCounts = 4; repeated FeatureFlagComposition featureFlagCompositions = 5; } message GetSdlBySchemaVersionRequest { string schemaVersionId = 1; string target_id = 2; } message GetSdlBySchemaVersionResponse { Response response = 1; string sdl = 2; string client_schema = 3; } message GetChangelogBySchemaVersionRequest { string schemaVersionId = 1; } message GetChangelogBySchemaVersionResponse { Response response = 1; FederatedGraphChangelogOutput changelog = 2; } message GetUserAccessibleResourcesRequest {} message GetUserAccessibleResourcesResponse { message Graph { string targetId = 1; string name = 2; string namespace = 3; } Response response = 1; repeated Graph federatedGraphs = 2; repeated Graph subgraphs = 3; } enum Feature { rbac = 0; ai = 1; scim = 2; } message UpdateFeatureSettingsRequest { bool enable = 1; Feature featureId = 2; } message UpdateFeatureSettingsResponse { Response response = 1; } message AddSubgraphMemberRequest { string subgraphName = 1; string userEmail = 2; string namespace = 3; } message AddSubgraphMemberResponse { Response response = 1; } message RemoveSubgraphMemberRequest { string subgraphName = 1; string subgraphMemberId = 2; string namespace = 3; } message RemoveSubgraphMemberResponse { Response response = 1; } message GetSubgraphMembersRequest { string subgraphName = 1; string namespace = 2; } message SubgraphMember{ string userId = 1; string email = 2; string subgraphMemberId = 4; } message GetSubgraphMembersResponse { Response response = 1; repeated SubgraphMember members = 2; } message AddReadmeRequest { string targetName = 1; string readme = 2; string namespace = 3; } message AddReadmeResponse { Response response = 1; } message Router { string hostname = 1; string clusterName = 2; string serviceName = 3; string serviceVersion = 4; string serviceInstanceId = 5; string uptimeSeconds = 6; string serverUptimeSeconds = 7; string compositionId = 8; bool onLatestComposition = 9; string processId = 10; float memoryUsageMb = 11; float memoryUsageChangePercent = 12; float cpuUsagePercent = 13; float cpuUsageChangePercent = 14; } message GetRoutersRequest { string fedGraphName = 1; string namespace = 2; } message GetRoutersResponse { Response response = 1; repeated Router routers = 2; } message ClientInfo{ string name = 1; string id = 2; string createdAt = 3; string lastUpdatedAt = 4; string createdBy = 5; string lastUpdatedBy = 6; } message GetClientsRequest { string fedGraphName = 1; string namespace = 2; } message GetClientsResponse { Response response = 1; repeated ClientInfo clients = 2; } message GetFieldUsageRequest { string graph_name = 1; optional string namedType = 2; optional string typename = 3; optional string field = 4; optional int32 range = 5; DateRange dateRange = 6; string namespace = 7; optional string feature_flag_name = 8; } message ClientWithOperations { message Operation { string hash = 1; string name = 2; int32 count = 3; } string name = 1; string version = 2; repeated Operation operations = 3; } message FieldUsageMeta { repeated string subgraph_ids = 1; string firstSeenTimestamp = 2; string latestSeenTimestamp = 3; } message GetFieldUsageResponse { Response response = 1; repeated RequestSeriesItem request_series = 2; repeated ClientWithOperations clients = 3; FieldUsageMeta meta = 4; } message CreateDiscussionRequest { string target_id = 1; string content_markdown = 2; string content_json = 3; string schema_version_id = 4; int32 reference_line = 5; } message CreateDiscussionResponse { Response response = 1; } message UpdateDiscussionCommentRequest { string discussion_id = 1; string comment_id = 2; string content_markdown = 3; string content_json = 4; } message UpdateDiscussionCommentResponse { Response response = 1; } message DeleteDiscussionCommentRequest { string discussion_id = 1; string comment_id = 2; } message DeleteDiscussionCommentResponse { Response response = 1; } message ReplyToDiscussionRequest { string discussion_id = 2; string content_markdown = 3; string content_json = 4; } message ReplyToDiscussionResponse { Response response = 1; } message GetAllDiscussionsRequest { string target_id = 1; optional string schema_version_id = 2; } message Discussion { string id = 1; string schema_version_id = 2; string target_id = 3; int32 reference_line = 4; DiscussionComment openingComment = 5; bool is_resolved = 6; } message DiscussionComment { string id = 1; string content_json = 2; optional string created_by = 3; string created_at = 4; optional string updated_at = 5; bool is_deleted = 6; } message GetAllDiscussionsResponse { Response response = 1; repeated Discussion discussions = 2; } message GetDiscussionRequest { string discussion_id = 1; } message GetDiscussionResponse { Response response = 1; Discussion discussion = 2; repeated DiscussionComment comments = 3; } message GetDiscussionSchemasRequest { string discussion_id = 1; } message GetDiscussionSchemasResponse { message Schemas { string reference = 1; string latest = 2; } Response response = 1; Schemas schemas = 4; } message SetDiscussionResolutionRequest { string discussion_id = 1; bool is_resolved = 2; } message SetDiscussionResolutionResponse { Response response = 1; } message CreateNamespaceRequest { string name = 1; } message CreateNamespaceResponse { Response response = 1; } message DeleteNamespaceRequest { string name = 1; } message DeleteNamespaceResponse { Response response = 1; } message RenameNamespaceRequest { string name = 1; string new_name = 2; } message RenameNamespaceResponse { Response response = 1; } message Namespace { string id = 1; string name = 2; } message GetNamespacesRequest {} message GetNamespacesResponse { Response response = 1; repeated Namespace namespaces = 2; } message MoveGraphRequest { string name = 1; string namespace = 2; string new_namespace = 3; } message MoveGraphResponse { Response response = 1; repeated CompositionError compositionErrors = 2; repeated DeploymentError deploymentErrors = 3; repeated CompositionWarning compositionWarnings = 4; } message GetNamespaceLintConfigRequest { string namespace = 1; } message GetNamespaceLintConfigResponse { Response response = 1; bool linterEnabled = 2; repeated LintConfig configs = 3; } message EnableLintingForTheNamespaceRequest { string namespace = 1; bool enableLinting = 2; } message EnableLintingForTheNamespaceResponse { Response response = 1; } message LintConfig { string ruleName = 1; LintSeverity severityLevel = 2; } message ConfigureNamespaceLintConfigRequest { string namespace = 1; repeated LintConfig configs = 2; } message ConfigureNamespaceLintConfigResponse { Response response = 1; } message EnableGraphPruningRequest { string namespace = 1; bool enableGraphPruning = 2; } message EnableGraphPruningResponse { Response response = 1; } message GraphPruningConfig { string ruleName = 1; LintSeverity severityLevel = 2; int32 gracePeriodInDays = 3; optional int32 schemaUsageCheckPeriodInDays = 4; } message ConfigureNamespaceGraphPruningConfigRequest { string namespace = 1; repeated GraphPruningConfig configs = 2; } message ConfigureNamespaceGraphPruningConfigResponse { Response response = 1; } message GetNamespaceGraphPruningConfigRequest { string namespace = 1; } message GetNamespaceGraphPruningConfigResponse { Response response = 1; bool graphPrunerEnabled = 2; repeated GraphPruningConfig configs = 3; } message MigrateMonographRequest { string name = 1; string namespace = 2; } message MigrateMonographResponse { Response response = 1; } message GetUserAccessiblePermissionsRequest {} message Permission { string displayName = 1; string value = 2; } message GetUserAccessiblePermissionsResponse { Response response = 1; repeated Permission permissions = 2; } message CreateContractRequest { string name = 1; string namespace = 2; string source_graph_name = 3; string routing_url = 4; string admission_webhook_url = 5; repeated string exclude_tags = 6; optional string readme = 7; optional string admission_webhook_secret = 8; repeated string include_tags = 9; } message CreateContractResponse { Response response = 1; repeated CompositionError compositionErrors = 2; repeated DeploymentError deploymentErrors = 3; repeated CompositionWarning compositionWarnings = 4; } message UpdateContractRequest { string name = 1; string namespace = 2; repeated string exclude_tags = 3; repeated string include_tags = 4; optional string routing_url = 5; optional string admission_webhook_url = 6; optional string admission_webhook_secret = 7; optional string readme = 8; } message UpdateContractResponse { Response response = 1; repeated CompositionError compositionErrors = 2; repeated DeploymentError deploymentErrors = 3; repeated CompositionWarning compositionWarnings = 4; } message IsMemberLimitReachedRequest {} message IsMemberLimitReachedResponse { Response response = 1; bool limit_reached = 2; int32 member_count = 3; } message DeleteUserRequest {} message DeleteUserResponse { Response response = 1; } message CreateFeatureFlagRequest { string name = 1; string namespace = 2; repeated Label labels = 3; repeated string feature_subgraph_names = 4; bool is_enabled = 5; } message CreateFeatureFlagResponse { Response response = 1; repeated CompositionError composition_errors = 2; repeated DeploymentError deployment_errors = 3; repeated CompositionWarning compositionWarnings = 4; } message UpdateFeatureFlagRequest { string name = 1; string namespace = 2; repeated Label labels = 3; repeated string feature_subgraph_names = 4; bool unset_labels = 5; } message UpdateFeatureFlagResponse { Response response = 1; repeated CompositionError composition_errors = 2; repeated DeploymentError deployment_errors = 3; repeated CompositionWarning compositionWarnings = 4; } message EnableFeatureFlagRequest { string name = 1; string namespace = 2; bool enabled = 3; } message EnableFeatureFlagResponse { Response response = 1; repeated CompositionError composition_errors = 2; repeated DeploymentError deployment_errors = 3; optional bool has_changed = 4; repeated CompositionWarning compositionWarnings = 5; } message DeleteFeatureFlagRequest { string name = 1; string namespace = 2; } message DeleteFeatureFlagResponse { Response response = 1; repeated CompositionError composition_errors = 2; repeated DeploymentError deployment_errors = 3; repeated CompositionWarning compositionWarnings = 4; } message FeatureFlag { string id = 1; string name = 2; string namespace = 3; repeated Label labels = 4; bool is_enabled = 5; string created_by = 6; string created_at = 7; string updated_at = 8; } message GetFeatureFlagsRequest { int32 limit = 1; int32 offset = 2; string namespace = 3; optional string query = 4; } message GetFeatureFlagsResponse { Response response = 1; repeated FeatureFlag feature_flags = 2; int32 total_count = 3; } message GetFeatureFlagByNameRequest { string name = 1; string namespace = 2; } message GetFeatureFlagByNameResponse { message FfFederatedGraph{ FederatedGraph federated_graph = 1; bool is_connected = 2; } Response response = 1; FeatureFlag feature_flag = 2; repeated FfFederatedGraph federated_graphs = 3; repeated Subgraph feature_subgraphs = 4; } message GetFeatureSubgraphsByFeatureFlagRequest { string feature_flag_name = 1; string namespace = 2; } message GetFeatureSubgraphsByFeatureFlagResponse { Response response = 1; repeated Subgraph feature_subgraphs = 2; } message GetFeatureSubgraphsRequest { int32 limit = 1; int32 offset = 2; string namespace = 3; optional string query = 4; } message GetFeatureSubgraphsResponse { Response response = 1; repeated Subgraph feature_subgraphs = 2; int32 count = 3; } message GetFeatureFlagsByFederatedGraphRequest { string federated_graph_name = 1; int32 limit = 2; int32 offset = 3; string namespace = 4; optional string query = 5; } message GetFeatureFlagsByFederatedGraphResponse { Response response = 1; repeated FeatureFlag feature_flags = 2; int32 total_count = 3; } message GetOrganizationWebhookHistoryRequest { Pagination pagination = 1; DateRange date_range = 2; optional string filter_by_type = 3; } message WebhookDelivery { string id = 1; string created_at = 2; optional string created_by = 3; string type = 4; string endpoint = 5; string event_name = 6; string payload = 7; string request_headers = 8; optional string response_headers = 9; optional int32 response_status_code = 10; optional string response_error_code = 11; optional string error_message = 12; optional string response_body = 13; int32 retry_count = 14; float duration = 15; bool is_redelivery = 16; } message GetOrganizationWebhookHistoryResponse { Response response = 1; repeated WebhookDelivery deliveries = 2; int32 total_count = 3; } message RedeliverWebhookRequest { string id = 1; } message RedeliverWebhookResponse { Response response = 1; } message GetWebhookDeliveryDetailsRequest { string id = 1; } message GetWebhookDeliveryDetailsResponse { Response response = 1; WebhookDelivery delivery = 2; } message CreatePlaygroundScriptRequest { string title = 1; string type = 2; string content = 3; } message CreatePlaygroundScriptResponse { Response response = 1; } message DeletePlaygroundScriptRequest { string id = 1; } message DeletePlaygroundScriptResponse { Response response = 1; } message UpdatePlaygroundScriptRequest { string id = 1; string title = 2; string content = 3; } message UpdatePlaygroundScriptResponse { Response response = 1; } message GetPlaygroundScriptsRequest { string type = 1; } message PlaygroundScript { string id = 1; string type = 2; string title = 3; string content = 4; } message GetPlaygroundScriptsResponse { Response response = 1; repeated PlaygroundScript scripts = 2; } message GetFederatedGraphByIdRequest { string id = 1; bool includeMetrics = 2; } message GetFederatedGraphByIdResponse { Response response = 1; FederatedGraph graph = 2; repeated Subgraph subgraphs = 3; string graphRequestToken = 4; repeated FeatureFlag featureFlagsInLatestValidComposition = 5; // includes all the feature subgraphs that are part of the federated graph; // even the ones that are not part of the latest composition repeated Subgraph featureSubgraphs = 6; } message GetSubgraphByIdRequest { string id = 1; } message GetSubgraphByIdResponse { Response response = 1; Subgraph graph = 2; repeated SubgraphMember members = 3; } message GetNamespaceRequest { string name = 1; string id = 2; } message GetNamespaceResponse { Response response = 1; Namespace namespace = 2; } message PushCacheWarmerOperationRequest { string federatedGraphName = 1; string operationContent = 2; string operationName = 3; string operationPersistedId = 4; string namespace = 5; } message PushCacheWarmerOperationResponse { Response response = 1; } message GetCacheWarmerOperationsRequest { string federatedGraphName = 1; string namespace = 2; int32 limit = 3; int32 offset = 4; } message CacheWarmerOperation { string id = 1; string operationContent = 2; string operationName = 3; string operationPersistedId = 4; string operationHash = 5; string clientName = 6; string clientVersion = 7; float planningTime = 8; bool isManuallyAdded = 9; string createdAt = 10; string createdBy = 11; } message GetCacheWarmerOperationsResponse { Response response = 1; repeated CacheWarmerOperation operations = 2; int32 total_count = 3; bool isCacheWarmerEnabled = 4; } message ComputeCacheWarmerOperationsRequest { string federatedGraphName = 1; string namespace = 2; } message ComputeCacheWarmerOperationsResponse { Response response = 1; } message ConfigureCacheWarmerRequest { string namespace = 1; bool enableCacheWarmer = 2; int32 maxOperationsCount = 3; } message ConfigureCacheWarmerResponse { Response response = 1; } message GetCacheWarmerConfigRequest { string namespace = 1; } message GetCacheWarmerConfigResponse { Response response = 1; bool isCacheWarmerEnabled = 2; int32 maxOperationsCount = 3; } message DeleteCacheWarmerOperationRequest { string id = 1; string federatedGraphName = 2; string namespace = 3; } message DeleteCacheWarmerOperationResponse { Response response = 1; } message ListRouterCompatibilityVersionsRequest { } message ListRouterCompatibilityVersionsResponse { Response response = 1; repeated string versions = 2; } message SetGraphRouterCompatibilityVersionRequest { string name = 1; string namespace = 2; string version = 3; } message SetGraphRouterCompatibilityVersionResponse { Response response = 1; string previous_version = 2; string new_version = 3; repeated CompositionError compositionErrors = 4; repeated DeploymentError deploymentErrors = 5; repeated CompositionWarning compositionWarnings = 6; } service PlatformService { // PlaygroundScripts rpc CreatePlaygroundScript(CreatePlaygroundScriptRequest) returns (CreatePlaygroundScriptResponse) {} rpc DeletePlaygroundScript(DeletePlaygroundScriptRequest) returns (DeletePlaygroundScriptResponse) {} rpc UpdatePlaygroundScript(UpdatePlaygroundScriptRequest) returns (UpdatePlaygroundScriptResponse) {} rpc GetPlaygroundScripts(GetPlaygroundScriptsRequest) returns (GetPlaygroundScriptsResponse) {} // Namespaces rpc CreateNamespace(CreateNamespaceRequest) returns (CreateNamespaceResponse) {} rpc DeleteNamespace(DeleteNamespaceRequest) returns (DeleteNamespaceResponse) {} rpc RenameNamespace(RenameNamespaceRequest) returns (RenameNamespaceResponse) {} rpc GetNamespaces(GetNamespacesRequest) returns (GetNamespacesResponse) {} rpc GetNamespace(GetNamespaceRequest) returns (GetNamespaceResponse) {} // Contracts rpc CreateContract(CreateContractRequest) returns (CreateContractResponse) {} rpc UpdateContract(UpdateContractRequest) returns (UpdateContractResponse) {} rpc MoveFederatedGraph(MoveGraphRequest) returns (MoveGraphResponse) {} rpc MoveSubgraph(MoveGraphRequest) returns (MoveGraphResponse) {} rpc MoveMonograph(MoveGraphRequest) returns (MoveGraphResponse) {} // CreateMonograph creates a monograph on the control plane. rpc CreateMonograph(CreateMonographRequest) returns (CreateMonographResponse) {} // PublishMonograph pushes the schema of the monograph to the control plane. rpc PublishMonograph(PublishMonographRequest) returns (PublishMonographResponse) {} // DeleteMonograph deletes a monograph from the control plane. rpc DeleteMonograph(DeleteMonographRequest) returns (DeleteMonographResponse) {} // UpdateMonograph updates a monograph with new urls, subscription config and readme rpc UpdateMonograph(UpdateMonographRequest) returns (UpdateMonographResponse) {} // MigrateMonograph converts a monograph into a federated graph. rpc MigrateMonograph(MigrateMonographRequest) returns (MigrateMonographResponse) {} // CreateFederatedSubgraph creates a federated subgraph on the control plane. rpc CreateFederatedSubgraph(CreateFederatedSubgraphRequest) returns (CreateFederatedSubgraphResponse) {} // PublishFederatedSubgraph pushes the schema of the subgraph to the control plane. rpc PublishFederatedSubgraph(PublishFederatedSubgraphRequest) returns (PublishFederatedSubgraphResponse) {} // CreateFederatedGraph creates a federated graph on the control plane. rpc CreateFederatedGraph(CreateFederatedGraphRequest) returns (CreateFederatedGraphResponse) {} // DeleteFederatedGraph deletes a federated graph from the control plane. rpc DeleteFederatedGraph(DeleteFederatedGraphRequest) returns (DeleteFederatedGraphResponse) {} // DeleteFederatedSubgraph deletes a federated subgraph from the control plane. rpc DeleteFederatedSubgraph(DeleteFederatedSubgraphRequest) returns (DeleteFederatedSubgraphResponse) {} // CheckSubgraphSchema checks if the schema is valid and if it can be composed without conflicts with the provided new subgraph schema. rpc CheckSubgraphSchema(CheckSubgraphSchemaRequest) returns (CheckSubgraphSchemaResponse) {} rpc FixSubgraphSchema(FixSubgraphSchemaRequest) returns (FixSubgraphSchemaResponse) {} // UpdateFederatedGraph updates a federated graph with new labels and routing url rpc UpdateFederatedGraph(UpdateFederatedGraphRequest) returns (UpdateFederatedGraphResponse) {} // UpdateSubgraph updates a subgraph with new labels and routing url rpc UpdateSubgraph(UpdateSubgraphRequest) returns (UpdateSubgraphResponse) {} // CheckFederatedGraph checks if the federated graph can be composed with the new labels provided. rpc CheckFederatedGraph(CheckFederatedGraphRequest) returns (CheckFederatedGraphResponse) {} // WhoAmI returns the identity of the user currently logged in. rpc WhoAmI(WhoAmIRequest) returns (WhoAmIResponse) {} // GenerateRouterToken generates a temporary router token to fetch the router config. rpc GenerateRouterToken(GenerateRouterTokenRequest) returns (GenerateRouterTokenResponse) {} // GetRouterTokens returns the router tokens of a federated graph. rpc GetRouterTokens(GetRouterTokensRequest) returns (GetRouterTokensResponse) {} // DeleteRouterToken deletes the router token of a federated graph. rpc DeleteRouterToken(DeleteRouterTokenRequest) returns (DeleteRouterTokenResponse) {} // Add persisted operations rpc PublishPersistedOperations(PublishPersistedOperationsRequest) returns (PublishPersistedOperationsResponse) {} // GetPersistedOperations returns operations for the registered client id rpc GetPersistedOperations(GetPersistedOperationsRequest) returns (GetPersistedOperationsResponse) {} // GetAuditLogs returns the audit logs of the organization rpc GetAuditLogs(GetAuditLogsRequest) returns (GetAuditLogsResponse) {} // For Studio and CLI // GetFederatedGraphs returns the list of federated graphs. rpc GetFederatedGraphs(GetFederatedGraphsRequest) returns (GetFederatedGraphsResponse) {} // GetFederatedGraphsBySubgraphLabels returns the list of federated graphs based on the subgraph labels rpc GetFederatedGraphsBySubgraphLabels(GetFederatedGraphsBySubgraphLabelsRequest) returns (GetFederatedGraphsBySubgraphLabelsResponse) {} // GetFederatedGraphByName returns the federated graph by name. rpc GetFederatedGraphByName(GetFederatedGraphByNameRequest) returns (GetFederatedGraphByNameResponse) {} // GetFederatedGraphSDLByName returns the latest valid SDL of the federated graph by name. rpc GetFederatedGraphSDLByName(GetFederatedGraphSDLByNameRequest) returns (GetFederatedGraphSDLByNameResponse) {} // GetSubgraphs returns the list of subgraphs. rpc GetSubgraphs(GetSubgraphsRequest) returns (GetSubgraphsResponse) {} // GetSubgraphByName returns the subgraph by name. rpc GetSubgraphByName(GetSubgraphByNameRequest) returns (GetSubgraphByNameResponse) {} // GetSubgraphSDLFromLatestComposition returns the latest valid SDL of the subgraph composed with the federated graph. rpc GetSubgraphSDLFromLatestComposition(GetSubgraphSDLFromLatestCompositionRequest) returns (GetSubgraphSDLFromLatestCompositionResponse) {} // GetLatestSubgraphSDL returns the latest SDL of the subgraph by name. rpc GetLatestSubgraphSDL(GetLatestSubgraphSDLRequest) returns (GetLatestSubgraphSDLResponse) {} // GetChecksByFederatedGraphName return schema and composition checks that concern a federated graph rpc GetChecksByFederatedGraphName(GetChecksByFederatedGraphNameRequest) returns (GetChecksByFederatedGraphNameResponse) {} // GetCheckSummary returns top level information about a schema check rpc GetCheckSummary(GetCheckSummaryRequest) returns (GetCheckSummaryResponse) {} // GetCheckOperations returns affected operations for a check rpc GetCheckOperations(GetCheckOperationsRequest) returns (GetCheckOperationsResponse) {} // ForceCheckSuccess forces a failed check to be marked as successful rpc ForceCheckSuccess(ForceCheckSuccessRequest) returns (ForceCheckSuccessResponse) {} // CreateOperationOverrides marks if the given set of changes as safe for an operation rpc CreateOperationOverrides(CreateOperationOverridesRequest) returns (CreateOperationOverridesResponse) {} // RemoveOperationOverride removes a change from the safe-list for an operation rpc RemoveOperationOverrides(RemoveOperationOverridesRequest) returns (RemoveOperationOverridesResponse) {} // CreateOperationIgnoreAllOverride adds an ignore all override for the operation rpc CreateOperationIgnoreAllOverride(CreateOperationIgnoreAllOverrideRequest) returns (CreateOperationIgnoreAllOverrideResponse) {} // RemoveOperationIgnoreAllOverride removes the ignore all override for the operation rpc RemoveOperationIgnoreAllOverride(RemoveOperationIgnoreAllOverrideRequest) returns (RemoveOperationIgnoreAllOverrideResponse) {} // GetOperationOverrides retrieves all overrides for an operation hash rpc GetOperationOverrides(GetOperationOverridesRequest) returns (GetOperationOverridesResponse) {} // GetAllOverrides returns all overrides for operations within a namespace rpc GetAllOverrides(GetAllOverridesRequest) returns (GetAllOverridesResponse) {} // ToggleChangeOverridesForAllOperations marks all impacting changes of a given check either safe or unsafe rpc ToggleChangeOverridesForAllOperations(ToggleChangeOverridesForAllOperationsRequest) returns (ToggleChangeOverridesForAllOperationsResponse) {} // CreateIgnoreOverridesForAllOperations creates ignore override for all operations of a given check rpc CreateIgnoreOverridesForAllOperations(CreateIgnoreOverridesForAllOperationsRequest) returns (CreateIgnoreOverridesForAllOperationsResponse) {} // GetOperationContent returns the operation body by searching using the hash rpc GetOperationContent(GetOperationContentRequest) returns (GetOperationContentResponse) {} // GetFederatedGraphChangelog returns the changelog of the federated graph. rpc GetFederatedGraphChangelog(GetFederatedGraphChangelogRequest) returns (GetFederatedGraphChangelogResponse) {} // CreateFederatedGraphToken creates a federated graph token that is consumed by the router to authenticate requests. rpc CreateFederatedGraphToken(CreateFederatedGraphTokenRequest) returns (CreateFederatedGraphTokenResponse) {} // GetOrganizationBySlug returns a specific organization by its slug rpc GetOrganizationBySlug(GetOrganizationBySlugRequest) returns (GetOrganizationBySlugResponse){} // GetOrganizationMembers returns the list of organization members rpc GetOrganizationMembers(GetOrganizationMembersRequest) returns (GetOrganizationMembersResponse){} // GetOrganizationMembers returns the list of pending organization invites rpc GetPendingOrganizationMembers(GetPendingOrganizationMembersRequest) returns (GetPendingOrganizationMembersResponse){} // IsMemberLimitReached returns whether the organization has reached the member limit rpc IsMemberLimitReached(IsMemberLimitReachedRequest) returns (IsMemberLimitReachedResponse){} // InviteUser invites an user to join the organization rpc InviteUser(InviteUserRequest) returns (InviteUserResponse){} // GetAPIKeys returns a list of API keys of the organization rpc GetAPIKeys(GetAPIKeysRequest) returns (GetAPIKeysResponse){} // CreateAPIKey creates an API key for the organization rpc CreateAPIKey(CreateAPIKeyRequest) returns (CreateAPIKeyResponse){} // DeleteAPIKey deletes an API key for the organization rpc DeleteAPIKey(DeleteAPIKeyRequest) returns (DeleteAPIKeyResponse){} // RemoveOrganizationMember removes the user from the organization rpc RemoveOrganizationMember(RemoveOrganizationMemberRequest) returns (RemoveOrganizationMemberResponse){} // RemoveInvitation removes the org invitation of the user rpc RemoveInvitation(RemoveInvitationRequest) returns (RemoveInvitationResponse){} // MigrateFromApollo migrates the graphs from apollo to cosmo rpc MigrateFromApollo(MigrateFromApolloRequest) returns (MigrateFromApolloResponse) {} // CreateOrganizationWebhookConfig create a new webhook config for the organization rpc CreateOrganizationWebhookConfig(CreateOrganizationWebhookConfigRequest) returns (CreateOrganizationWebhookConfigResponse) {} // GetOrganizationWebhookConfigs returns all webhooks for the organization rpc GetOrganizationWebhookConfigs(GetOrganizationWebhookConfigsRequest) returns (GetOrganizationWebhookConfigsResponse) {} // GetOrganizationWebhookMeta returns the meta data for a particular webhook rpc GetOrganizationWebhookMeta(GetOrganizationWebhookMetaRequest) returns (GetOrganizationWebhookMetaResponse) {} // UpdateOrganizationWebhookConfig updates an existing webhook for the organization rpc UpdateOrganizationWebhookConfig(UpdateOrganizationWebhookConfigRequest) returns (UpdateOrganizationWebhookConfigResponse) {} // DeleteOrganizationWebhookConfig deletes an organization webhook rpc DeleteOrganizationWebhookConfig(DeleteOrganizationWebhookConfigRequest) returns (DeleteOrganizationWebhookConfigResponse) {} // GetOrganizationWebhookHistory retrieves all webhook deliveries for the organization rpc GetOrganizationWebhookHistory(GetOrganizationWebhookHistoryRequest) returns (GetOrganizationWebhookHistoryResponse) {} // GetWebhookDeliveryDetails retrieves details for a particular webhook rpc GetWebhookDeliveryDetails(GetWebhookDeliveryDetailsRequest) returns (GetWebhookDeliveryDetailsResponse) {} // RedeliverWebhook triggers the delivery of the given webhook once again rpc RedeliverWebhook(RedeliverWebhookRequest) returns (RedeliverWebhookResponse) {} // CreateIntegration create a new integration for the organization rpc CreateIntegration(CreateIntegrationRequest) returns (CreateIntegrationResponse) {} // GetOrganizationIntegrations returns all integrations of the organization rpc GetOrganizationIntegrations(GetOrganizationIntegrationsRequest) returns (GetOrganizationIntegrationsResponse) {} // UpdateIntegrationConfig updates an existing integration of the organization rpc UpdateIntegrationConfig(UpdateIntegrationConfigRequest) returns (UpdateIntegrationConfigResponse) {} // DeleteIntegration deletes an organization web integration hook rpc DeleteIntegration(DeleteIntegrationRequest) returns (DeleteIntegrationResponse) {} // DeleteUser deletes the user rpc DeleteUser(DeleteUserRequest) returns (DeleteUserResponse) {} // DeleteOrganization deletes an organization rpc DeleteOrganization(DeleteOrganizationRequest) returns (DeleteOrganizationResponse) {} // LeaveOrganization removes a member from the organization rpc LeaveOrganization(LeaveOrganizationRequest) returns (LeaveOrganizationResponse) {} // UpdateOrganizationDetails updates the name and slug of the organization rpc UpdateOrganizationDetails(UpdateOrganizationDetailsRequest) returns (UpdateOrganizationDetailsResponse) {} // UpdateOrgMemberRole updates the role of an org member rpc UpdateOrgMemberRole(UpdateOrgMemberRoleRequest) returns (UpdateOrgMemberRoleResponse) {} // IsGitHubAppInstalled checks if the cosmo github app is installed to a repository rpc IsGitHubAppInstalled(IsGitHubAppInstalledRequest) returns (IsGitHubAppInstalledResponse) {} // CreateOIDCProvider adds an oidc provider to the organization rpc CreateOIDCProvider(CreateOIDCProviderRequest) returns (CreateOIDCProviderResponse) {} // GetOIDCProvider gets the oidc provider connected the organization rpc GetOIDCProvider(GetOIDCProviderRequest) returns (GetOIDCProviderResponse) {} // DeleteOIDCProvider deletes the oidc provider connected the organization rpc DeleteOIDCProvider(DeleteOIDCProviderRequest) returns (DeleteOIDCProviderResponse) {} // UpdateIDPMappers updates the mappings of the oidc provider rpc UpdateIDPMappers(UpdateIDPMappersRequest) returns (UpdateIDPMappersResponse) {} // GetClients returns all the clients of the federated graph rpc GetClients(GetClientsRequest) returns (GetClientsResponse) {} // GetRouters returns all active routers of the federated graph rpc GetRouters(GetRoutersRequest) returns (GetRoutersResponse) {} // GetInvitations returns all the invitations a user has received rpc GetInvitations(GetInvitationsRequest) returns (GetInvitationsResponse) {} // AcceptOrDeclineInvitation accepts or declines the invitation rpc AcceptOrDeclineInvitation(AcceptOrDeclineInvitationRequest) returns (AcceptOrDeclineInvitationResponse) {} // GetCompositions returns all the compositions of the federated graph rpc GetCompositions(GetCompositionsRequest) returns (GetCompositionsResponse) {} // GetCompositionDetails returns the details of that composition rpc GetCompositionDetails(GetCompositionDetailsRequest) returns (GetCompositionDetailsResponse) {} // GetSdlBySchemaVersion returns the sdl based on the schema version rpc GetSdlBySchemaVersion(GetSdlBySchemaVersionRequest) returns (GetSdlBySchemaVersionResponse) {} // GetChangelogBySchemaVersion returns the changelog based on the schema version rpc GetChangelogBySchemaVersion(GetChangelogBySchemaVersionRequest) returns (GetChangelogBySchemaVersionResponse) {} // GetUserAccessibleResources returns all the federated and subgraphs where the user has write permissions rpc GetUserAccessibleResources(GetUserAccessibleResourcesRequest) returns (GetUserAccessibleResourcesResponse) {} // UpdateFeatureSettings updates the setinngs of features(ai, rbac, scim) of the organization rpc UpdateFeatureSettings(UpdateFeatureSettingsRequest) returns (UpdateFeatureSettingsResponse) {} // AddSubgraphMember adds a user to the subgraph rpc AddSubgraphMember(AddSubgraphMemberRequest) returns (AddSubgraphMemberResponse) {} // RemoveSubgraphMember removes a member from the subgraph rpc RemoveSubgraphMember(RemoveSubgraphMemberRequest) returns (RemoveSubgraphMemberResponse) {} // GetSubgraphMembers gets all the members of the subgraph rpc GetSubgraphMembers(GetSubgraphMembersRequest) returns (GetSubgraphMembersResponse) {} // CreateDiscussion creates a new discussion with an opening comment rpc CreateDiscussion(CreateDiscussionRequest) returns (CreateDiscussionResponse) {} // ReplyToDiscussion creates a new comment in the discussion rpc ReplyToDiscussion(ReplyToDiscussionRequest) returns (ReplyToDiscussionResponse) {} // GetAllDiscussions fetches all discussions which may be scoped to a schema version if passed rpc GetAllDiscussions(GetAllDiscussionsRequest) returns (GetAllDiscussionsResponse) {} // UpdateDiscussionComment edits the comment in the discussion rpc UpdateDiscussionComment(UpdateDiscussionCommentRequest) returns (UpdateDiscussionCommentResponse) {} // DeleteDiscussionComment deletes the comment or the discussion if it is an opening comment rpc DeleteDiscussionComment(DeleteDiscussionCommentRequest) returns (DeleteDiscussionCommentResponse) {} // GetDiscussion gets the entire discussion thread rpc GetDiscussion(GetDiscussionRequest) returns (GetDiscussionResponse) {} // GetDiscussionSchemas gets the reference and latest schema of the target graph in which the discussion was created rpc GetDiscussionSchemas(GetDiscussionSchemasRequest) returns (GetDiscussionSchemasResponse) {} // SetDiscussionResolutionRequest marks the discussion as resolved or not rpc SetDiscussionResolution(SetDiscussionResolutionRequest) returns (SetDiscussionResolutionResponse) {} // AddReadme adds a readme of a target, can be a subgraph or a federated graph rpc AddReadme(AddReadmeRequest) returns (AddReadmeResponse) {} // GetUserAccessiblePermissions returns all the federated and subgraphs where the user has write permissions rpc GetUserAccessiblePermissions(GetUserAccessiblePermissionsRequest) returns (GetUserAccessiblePermissionsResponse) {} // CreateFeatureFlag creates a new feature flag for the selected feature graphs rpc CreateFeatureFlag(CreateFeatureFlagRequest) returns (CreateFeatureFlagResponse) {} // DeleteFeatureFlag deletes an existing feature flag rpc DeleteFeatureFlag(DeleteFeatureFlagRequest) returns (DeleteFeatureFlagResponse) {} // UpdateFeatureFlag updates a new feature flag for the selected feature graphs rpc UpdateFeatureFlag(UpdateFeatureFlagRequest) returns (UpdateFeatureFlagResponse) {} // EnableFeatureFlag enables/disables a feature flag rpc EnableFeatureFlag(EnableFeatureFlagRequest) returns (EnableFeatureFlagResponse) {} // Analytics rpc GetAnalyticsView(GetAnalyticsViewRequest) returns (GetAnalyticsViewResponse) { option idempotency_level = NO_SIDE_EFFECTS; } rpc GetDashboardAnalyticsView(GetDashboardAnalyticsViewRequest) returns (GetDashboardAnalyticsViewResponse){ option idempotency_level = NO_SIDE_EFFECTS; } rpc GetTrace(GetTraceRequest) returns (GetTraceResponse) {} rpc GetGraphMetrics(GetGraphMetricsRequest) returns (GetGraphMetricsResponse) { option idempotency_level = NO_SIDE_EFFECTS; } rpc GetMetricsErrorRate(GetMetricsErrorRateRequest) returns (GetMetricsErrorRateResponse) { option idempotency_level = NO_SIDE_EFFECTS; } rpc GetSubgraphMetrics(GetSubgraphMetricsRequest) returns (GetSubgraphMetricsResponse) { option idempotency_level = NO_SIDE_EFFECTS; } rpc GetSubgraphMetricsErrorRate(GetSubgraphMetricsErrorRateRequest) returns (GetSubgraphMetricsErrorRateResponse) { option idempotency_level = NO_SIDE_EFFECTS; } rpc GetFieldUsage(GetFieldUsageRequest) returns (GetFieldUsageResponse) { option idempotency_level = NO_SIDE_EFFECTS; } rpc GetOrganizationRequestsCount(GetOrganizationRequestsCountRequest) returns (GetOrganizationRequestsCountResponse) {} rpc CreateOrganization(CreateOrganizationRequest) returns (CreateOrganizationResponse) {} // EnableLintingForTheNamespace enables the lint check for the namespace passed. rpc EnableLintingForTheNamespace(EnableLintingForTheNamespaceRequest) returns (EnableLintingForTheNamespaceResponse) {} // ConfigureNamespaceLintConfig configures the lint config of the organization. rpc ConfigureNamespaceLintConfig(ConfigureNamespaceLintConfigRequest) returns (ConfigureNamespaceLintConfigResponse) {} // GetNamespaceLintConfig returns the lint config of the namespace. rpc GetNamespaceLintConfig(GetNamespaceLintConfigRequest) returns (GetNamespaceLintConfigResponse) {} // EnablePruningForTheNamespace enables the graph pruning check for the namespace passed. rpc EnableGraphPruning(EnableGraphPruningRequest) returns (EnableGraphPruningResponse) {} // ConfigureNamespaceGraphPruningConfig configures the graph pruning config of the organization. rpc ConfigureNamespaceGraphPruningConfig(ConfigureNamespaceGraphPruningConfigRequest) returns (ConfigureNamespaceGraphPruningConfigResponse) {} // GetNamespaceGraphPruningConfig returns the graph pruning config of the namespace. rpc GetNamespaceGraphPruningConfig(GetNamespaceGraphPruningConfigRequest) returns (GetNamespaceGraphPruningConfigResponse) {} // GetFeatureFlags returns the feature flags of the namespace rpc GetFeatureFlags(GetFeatureFlagsRequest) returns (GetFeatureFlagsResponse) {} // GetFeatureFlagByName returns the feature flag of the namespace rpc GetFeatureFlagByName(GetFeatureFlagByNameRequest) returns (GetFeatureFlagByNameResponse) {} // GetFeatureSubgraphsByFeatureFlag returns the feature subgraphs of a feature flag rpc GetFeatureSubgraphsByFeatureFlag(GetFeatureSubgraphsByFeatureFlagRequest) returns (GetFeatureSubgraphsByFeatureFlagResponse) {} // GetFeatureSubgraphs returns the list of feature subgraphs. rpc GetFeatureSubgraphs(GetFeatureSubgraphsRequest) returns (GetFeatureSubgraphsResponse) {} // GetFeatureFlagsByFederatedGraph returns the list of feature flags which match the label matchers of the federated graph. rpc GetFeatureFlagsByFederatedGraph(GetFeatureFlagsByFederatedGraphRequest) returns (GetFeatureFlagsByFederatedGraphResponse) {} // GetFederatedGraphById returns the federated graph by id. rpc GetFederatedGraphById(GetFederatedGraphByIdRequest) returns (GetFederatedGraphByIdResponse) {} // GetSubgraphById returns the subgraph by id. rpc GetSubgraphById(GetSubgraphByIdRequest) returns (GetSubgraphByIdResponse) {} // PushCacheWarmerOperation adds a operation to the list of cache warmer operations. rpc PushCacheWarmerOperation(PushCacheWarmerOperationRequest) returns (PushCacheWarmerOperationResponse) {} // GetCacheWarmerOperations returns the list of cache warmer operations. rpc GetCacheWarmerOperations(GetCacheWarmerOperationsRequest) returns (GetCacheWarmerOperationsResponse) {} // ComputeCacheWarmerOperations computes the list of cache warmer operations. rpc ComputeCacheWarmerOperations(ComputeCacheWarmerOperationsRequest) returns (ComputeCacheWarmerOperationsResponse) {} // ConfigureCacheWarmer enables cache warmer for the namespace passed. rpc ConfigureCacheWarmer(ConfigureCacheWarmerRequest) returns (ConfigureCacheWarmerResponse) {} // GetCacheWarmerConfig gets the config of cache warming for that namespace. rpc GetCacheWarmerConfig(GetCacheWarmerConfigRequest) returns (GetCacheWarmerConfigResponse) {} // DeleteCacheWarmerOperation deletes a cache warmer operation. rpc DeleteCacheWarmerOperation(DeleteCacheWarmerOperationRequest) returns (DeleteCacheWarmerOperationResponse) {} // // Billing //----------------------------------------------------------------------------------------------------------------------------- // Return the available billing plans rpc GetBillingPlans(GetBillingPlansRequest) returns (GetBillingPlansResponse) { } // Create a Stripe checkout session rpc CreateCheckoutSession(CreateCheckoutSessionRequest) returns (CreateCheckoutSessionResponse) { } // Create a Stripe billing portal session rpc CreateBillingPortalSession(CreateBillingPortalSessionRequest) returns (CreateBillingPortalSessionResponse) { } // Upgrade the current plan rpc UpgradePlan(UpgradePlanRequest) returns (UpgradePlanResponse) { } // Router Compatibility Versions rpc ListRouterCompatibilityVersions(ListRouterCompatibilityVersionsRequest) returns (ListRouterCompatibilityVersionsResponse) { } // Graph rpc SetGraphRouterCompatibilityVersion(SetGraphRouterCompatibilityVersionRequest) returns (SetGraphRouterCompatibilityVersionResponse) { } }