@jupiterone/jupiterone-mcp
Version:
Model Context Protocol server for JupiterOne account rules and rule details
753 lines • 19.6 kB
TypeScript
export type AlertStatus = 'ACTIVE' | 'INACTIVE' | 'DISMISSED';
export type AlertLevel = 'INFO' | 'LOW' | 'MEDIUM' | 'HIGH' | 'CRITICAL';
export type PollingInterval = 'DISABLED' | 'THIRTY_MINUTES' | 'ONE_HOUR' | 'FOUR_HOURS' | 'EIGHT_HOURS' | 'TWELVE_HOURS' | 'ONE_DAY' | 'ONE_WEEK';
export interface Query {
query: string;
name: string;
version?: string;
}
export interface Question {
queries: Query[];
}
export interface FilterCondition {
type: 'FILTER';
version?: number;
condition: any[];
}
export type Action = {
type: string;
targetProperty?: string;
targetValue?: any;
[key: string]: any;
};
export interface Operation {
when: FilterCondition;
actions: Action[];
}
export interface AlertRuleInstance {
accountId: string;
resourceGroupId: string | null;
createdOn: string;
dismissedOn: string | null;
endReason: string | null;
id: string;
lastEvaluationBeginOn: string | null;
lastEvaluationEndOn: string | null;
lastEvaluationResult: {
answerText: string | null;
evaluationEndOn: string | null;
outputs: {
name: string;
value: any;
__typename: string;
}[];
rawDataDescriptors: {
name: string;
recordCount: number;
__typename: string;
}[];
__typename: string;
} | null;
lastUpdatedOn: string;
level: AlertLevel;
questionRuleInstance: {
id: string;
name: string;
description: string;
tags: string[];
pollingInterval: PollingInterval;
labels: {
labelName: string;
labelValue: string;
__typename: string;
}[];
__typename: string;
} | null;
reportRuleInstance: {
name: string;
description: string;
__typename: string;
} | null;
ruleId: string;
ruleVersion: string;
status: AlertStatus;
users: string[];
__typename: string;
}
export interface InlineQuestionRuleInstance {
id: string;
resourceGroupId: string | null;
accountId: string;
name: string;
description: string;
version: string;
lastEvaluationStartOn: string | null;
lastEvaluationEndOn: string | null;
evaluationStep: string | null;
specVersion: string | null;
notifyOnFailure: boolean | null;
triggerActionsOnNewEntitiesOnly: boolean | null;
ignorePreviousResults: boolean | null;
pollingInterval: PollingInterval;
templates: any[] | null;
outputs: string[];
labels: RuleInstanceLabel[] | null;
question: EnhancedQuestion;
questionId: string | null;
latest: boolean | null;
deleted: boolean | null;
type: string | null;
operations: RuleInstanceOperation[] | null;
latestAlertId: string | null;
latestAlertIsActive: boolean | null;
state: RuleInstanceState | null;
tags: string[] | null;
remediationSteps: string | null;
}
export interface ReferencedQuestionRuleInstance {
id: string;
name: string;
description: string;
version: string;
pollingInterval: PollingInterval;
questionId?: string;
questionName?: string;
operations: Operation[];
outputs: string[];
}
export interface PageInfo {
endCursor: string | null;
hasNextPage: boolean;
}
export interface ListAlertInstancesResponse {
listAlertInstances: {
instances: AlertRuleInstance[];
pageInfo: PageInfo;
__typename: string;
};
}
export interface CreateInlineQuestionRuleInstanceInput {
name: string;
description: string;
notifyOnFailure?: boolean;
triggerActionsOnNewEntitiesOnly?: boolean;
ignorePreviousResults?: boolean;
operations: Operation[];
outputs: string[];
pollingInterval: PollingInterval;
question: {
queries: {
query: string;
name: string;
version?: string;
includeDeleted?: boolean;
}[];
};
specVersion?: number;
tags?: string[];
templates?: Record<string, any>;
}
export interface UpdateInlineQuestionRuleInstanceInput extends CreateInlineQuestionRuleInstanceInput {
id: string;
}
export interface CreateReferencedQuestionRuleInstanceInput {
name: string;
description: string;
version: string;
pollingInterval: PollingInterval;
outputs: string[];
operations: Operation[];
questionId?: string;
questionName?: string;
}
export interface UpdateReferencedQuestionRuleInstanceInput extends CreateReferencedQuestionRuleInstanceInput {
id: string;
}
export interface JupiterOneConfig {
apiKey?: string;
accountId?: string;
oauthToken?: string;
baseUrl?: string;
}
export interface RuleInstanceLabel {
labelName: string;
labelValue: string;
}
export interface RuleInstanceOperation {
when: FilterCondition;
actions: Action[];
}
export interface RuleInstanceState {
actions: Action[];
}
export interface EnhancedQuery extends Query {
includeDeleted?: boolean;
}
export interface EnhancedQuestion {
queries: EnhancedQuery[];
}
export interface QuestionRuleInstance {
id: string;
resourceGroupId: string | null;
accountId: string;
name: string;
description: string;
version: string;
lastEvaluationStartOn: string | null;
lastEvaluationEndOn: string | null;
evaluationStep: string | null;
specVersion: string | null;
notifyOnFailure: boolean | null;
triggerActionsOnNewEntitiesOnly: boolean | null;
ignorePreviousResults: boolean | null;
pollingInterval: PollingInterval | null;
templates: any[] | null;
outputs: string[];
labels: RuleInstanceLabel[] | null;
question: EnhancedQuestion;
questionId: string | null;
latest: boolean | null;
deleted: boolean | null;
type: string | null;
operations: RuleInstanceOperation[] | null;
latestAlertId: string | null;
latestAlertIsActive: boolean | null;
state: RuleInstanceState | null;
tags: string[] | null;
remediationSteps: string | null;
}
export interface ListRuleInstancesResponse {
listRuleInstances: {
questionInstances: QuestionRuleInstance[];
pageInfo: PageInfo;
};
}
export interface ListRuleInstancesFilters {
}
export interface Dashboard {
id: string;
name: string;
userId: string;
category: string;
supportedUseCase: string;
prerequisites: {
prerequisitesMet: boolean;
preRequisitesGroupsFulfilled: boolean;
preRequisitesGroupsRequired: boolean;
__typename: string;
};
isJ1ManagedBoard: boolean;
resourceGroupId: string;
starred: boolean;
_timeUpdated: string;
_createdAt: string;
__typename: string;
}
export interface DashboardResponse {
getDashboards: Dashboard[];
}
export interface CreateDashboardInput {
name: string;
type: string;
}
export interface CreateDashboardResponse {
createDashboard: {
id: string;
__typename: string;
};
}
export interface DashboardParameter {
dashboardId: string;
accountId: string;
id: string;
label: string;
name: string;
options: any;
valueType: string;
type: string;
default: any;
disableCustomInput: boolean;
requireValue: boolean;
__typename: string;
}
export interface DashboardWidgetQuery {
id: string;
name: string;
query: string;
__typename: string;
}
export interface DashboardWidgetConfig {
queries: DashboardWidgetQuery[];
settings: any;
postQueryFilters: any;
disableQueryPolicyFilters: boolean;
__typename: string;
}
export interface DashboardWidget {
id: string;
title: string;
description: string;
type: string;
questionId: string;
noResultMessage: string;
includeDeleted: boolean;
config: DashboardWidgetConfig;
__typename: string;
}
export interface DashboardLayoutItem {
static: boolean;
moved: boolean;
w: number;
h: number;
x: number;
y: number;
i: string;
__typename: string;
}
export interface DashboardLayout {
xs: DashboardLayoutItem[];
sm: DashboardLayoutItem[];
md: DashboardLayoutItem[];
lg: DashboardLayoutItem[];
xl: DashboardLayoutItem[];
__typename: string;
}
export interface DashboardDetails extends Dashboard {
published: boolean;
publishedToUserIds: string[];
publishedToGroupIds: string[];
groupIds: string[];
userIds: string[];
scopeFilters: any;
parameters: DashboardParameter[];
widgets: DashboardWidget[];
layouts: DashboardLayout;
}
export interface GetDashboardResponse {
getDashboard: DashboardDetails;
}
export interface IntegrationDefinition {
id: string;
name: string;
type: string;
title: string;
displayMode: string;
oAuth?: {
oAuthUrlGeneratorPath: string;
};
offsiteUrl?: string;
offsiteButtonTitle?: string;
offsiteStatusQuery?: string;
integrationType: string;
integrationClass: string;
integrationCategory: string;
beta: boolean;
docsWebLink?: string;
repoWebLink?: string;
invocationPaused: boolean;
managedExecutionDisabled: boolean;
managedCreateDisabled: boolean;
managedDeleteDisabled: boolean;
integrationPlatformFeatures?: {
supportsChildInstances: boolean;
supportsCollectors: boolean;
supportsIngestionSourcesConfig: boolean;
supportsAgentConfigurations: boolean;
};
ingestionSourcesConfig?: {
id: string;
title: string;
description: string;
defaultsToDisabled: boolean;
childIngestionSourcesMetadata?: {
id: string;
name: string;
}[];
cannotBeDisabled: boolean;
}[];
ingestionSourcesOverrides?: {
enabled: boolean;
ingestionSourceId: string;
}[];
totalInstanceCount: number;
integrationJobStatusMetrics?: {
count: number;
status: string;
}[];
icon?: string;
provisioningType?: string;
description?: string;
customDefinitionType?: string;
configFields?: ConfigField[];
authSections?: {
id: string;
description: string;
displayName: string;
configFields: ConfigField[];
verificationDisabled: boolean;
}[];
configSections?: {
displayName: string;
configFields: ConfigField[];
}[];
}
export interface ConfigField {
key: string;
displayName: string;
description?: string;
type: string;
format?: string;
defaultValue?: any;
helperText?: string;
inputAdornment?: string;
mask?: boolean;
optional?: boolean;
immutable?: boolean;
readonly?: boolean;
computed?: boolean;
options?: {
value: string;
description?: string;
label?: string;
webLink?: string;
default?: boolean;
}[];
configFields?: ConfigField[];
}
export interface IntegrationDefinitionsResponse {
integrationDefinitions: {
definitions: IntegrationDefinition[];
pageInfo: {
endCursor: string;
};
};
}
export interface IntegrationInstanceLite {
id: string;
name: string;
accountId: string;
sourceIntegrationInstanceId?: string;
pollingInterval?: string;
pollingIntervalCronExpression?: {
hour: number;
dayOfWeek: number;
};
integrationDefinitionId: string;
description?: string;
config: Record<string, any>;
instanceRelationship?: string;
resourceGroupId?: string;
createdOn: string;
createdBy: string;
updatedOn: string;
updatedBy: string;
mostRecentJob?: {
status: string;
hasSkippedSteps: boolean;
createDate: string;
};
}
export interface IntegrationInstancesResponse {
integrationInstancesV2: {
instances: IntegrationInstanceLite[];
pageInfo: {
endCursor: string;
};
};
}
export interface ListIntegrationInstancesSearchFilter {
}
export type IntegrationJobStatus = 'PENDING' | 'RUNNING' | 'COMPLETED' | 'FAILED' | 'CANCELLED';
export interface IntegrationJob {
id: string;
status: IntegrationJobStatus;
integrationInstanceId: string;
createDate: string;
endDate?: string;
hasSkippedSteps: boolean;
integrationInstance: {
id: string;
name: string;
};
integrationDefinition: {
id: string;
title: string;
integrationType: string;
};
}
export interface IntegrationJobsResponse {
integrationJobs: {
jobs: IntegrationJob[];
pageInfo: {
endCursor: string;
};
};
}
export interface IntegrationEvent {
id: string;
name: string;
description: string;
createDate: string;
jobId: string;
level: string;
eventCode: string;
}
export interface IntegrationEventsResponse {
integrationEvents: {
events: IntegrationEvent[];
pageInfo: {
endCursor: string;
hasNextPage: boolean;
};
};
}
export interface IntegrationInstanceResponse {
integrationInstance: {
id: string;
name: string;
accountId: string;
sourceIntegrationInstanceId?: string;
pollingInterval?: string;
pollingIntervalCronExpression?: {
hour: number;
dayOfWeek: number;
};
integrationDefinition: {
name: string;
integrationType: string;
};
integrationDefinitionId: string;
description?: string;
config: Record<string, any>;
offsiteComplete?: boolean;
jobs: {
jobs: IntegrationJob[];
};
instanceRelationship?: string;
ingestionSourcesOverrides?: {
ingestionSourceId: string;
enabled: boolean;
}[];
collectorPoolId?: string;
resourceGroupId?: string;
createdOn: string;
createdBy: string;
updatedOn: string;
updatedBy: string;
};
}
export interface IntegrationJobResponse {
integrationJob: IntegrationJob;
}
export interface RuleEvaluationOutput {
name: string;
value: any;
__typename: string;
}
export interface RuleEvaluationRawDataDescriptor {
name: string;
persistedResultType: string;
rawDataKey: string;
recordCount: number;
recordCreateCount: number;
recordDeleteCount: number;
recordUpdateCount: number;
__typename: string;
}
export interface RuleEvaluation {
accountId: string;
collectionOwnerId: string;
collectionOwnerVersion: string;
collectionType: string;
outputs: RuleEvaluationOutput[];
rawDataDescriptors: RuleEvaluationRawDataDescriptor[];
tag: string;
timestamp: number;
__typename: string;
}
export interface ListRuleEvaluationsResponse {
listCollectionResults: {
results: RuleEvaluation[];
pageInfo: PageInfo;
__typename: string;
};
}
export interface ListRuleEvaluationsFilters {
collectionType: 'RULE_EVALUATION';
collectionOwnerId: string;
beginTimestamp: number;
endTimestamp: number;
limit?: number;
cursor?: string;
tag?: string;
[key: string]: any;
}
export interface QueryEvaluationDetails {
name: string;
duration: number;
status: string;
error?: string;
rawDataKey?: string;
}
export interface QueryEvaluation {
status: string;
queryEvaluationDetails: QueryEvaluationDetails[];
rawDataDescriptors?: RuleEvaluationRawDataDescriptor[];
__typename: string;
}
export interface QuestionEvaluation {
totalDuration: number;
queries: QueryEvaluation[];
__typename: string;
}
export interface ConditionEvaluation {
status: string;
condition: string;
__typename: string;
}
export interface ActionEvaluationDetails {
actionId: string;
action: string;
status: string;
duration: number;
finishedOn: string;
logs: string[];
__typename: string;
}
export interface ActionEvaluation {
status: string;
actionEvaluationDetails: ActionEvaluationDetails[];
__typename: string;
}
export interface RuleEvaluationDetails {
accountRuleId: string;
startedOn: string;
question: QuestionEvaluation;
conditions: ConditionEvaluation[];
actions: ActionEvaluation[];
ruleEvaluationOrigin: string;
rawDataDescriptors?: RuleEvaluationRawDataDescriptor[];
__typename: string;
}
export interface RuleEvaluationDetailsResponse {
ruleEvaluationDetails: RuleEvaluationDetails;
}
export interface RuleEvaluationDetailsInput {
ruleInstanceId: string;
timestamp: number;
}
export interface RawDataDownloadUrlResponse {
getRawDataDownloadUrl: string;
}
export interface CreateJ1qlFromNaturalLanguageResponse {
createJ1qlFromNaturalLanguage: {
uuid: string;
question: string;
query: string;
__typename: string;
};
}
export interface InsightsDashboard {
id: string;
name: string;
type?: string;
category?: string;
userId?: string;
supportedUseCase?: string;
isJ1ManagedBoard?: boolean;
published?: boolean;
publishedToUserIds?: string[];
publishedToGroupIds?: string[];
groupIds?: string[];
userIds?: string[];
scopeFilters?: any;
resourceGroupId?: string;
starred?: boolean;
_timeUpdated?: string;
_createdAt?: string;
prerequisites?: {
prerequisitesMet?: boolean;
preRequisitesGroupsFulfilled?: boolean;
preRequisitesGroupsRequired?: boolean;
};
parameters?: Array<{
dashboardId: string;
accountId: string;
id: string;
label: string;
name: string;
options: any;
valueType: string;
type: string;
default?: any;
disableCustomInput?: boolean;
requireValue?: boolean;
}>;
widgets?: Array<{
id: string;
title: string;
description?: string;
type: string;
questionId?: string;
noResultMessage?: string;
includeDeleted?: boolean;
config?: {
queries?: Array<{
id: string;
name: string;
query: string;
}>;
settings?: any;
postQueryFilters?: any;
disableQueryPolicyFilters?: boolean;
};
}>;
layouts?: {
xs?: Array<{
w: number;
h: number;
x: number;
y: number;
i: string;
moved: boolean;
static: boolean;
}>;
sm?: Array<{
w: number;
h: number;
x: number;
y: number;
i: string;
moved: boolean;
static: boolean;
}>;
md?: Array<{
w: number;
h: number;
x: number;
y: number;
i: string;
moved: boolean;
static: boolean;
}>;
lg?: Array<{
w: number;
h: number;
x: number;
y: number;
i: string;
moved: boolean;
static: boolean;
}>;
xl?: Array<{
w: number;
h: number;
x: number;
y: number;
i: string;
moved: boolean;
static: boolean;
}>;
};
}
//# sourceMappingURL=jupiterone.d.ts.map