@jupiterone/jupiterone-mcp
Version:
Model Context Protocol server for JupiterOne account rules and rule details
118 lines • 4.32 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.IntegrationService = void 0;
const queries_js_1 = require("../graphql/queries.js");
class IntegrationService {
client;
constructor(client) {
this.client = client;
}
/**
* Get integration definitions
* @param cursor Optional cursor for pagination
* @param includeConfig Whether to include configuration fields
*/
async getIntegrationDefinitions(cursor, includeConfig = false) {
try {
const response = await this.client.request(queries_js_1.GET_INTEGRATION_DEFINITIONS, {
cursor,
includeConfig,
});
return response.integrationDefinitions;
}
catch (error) {
console.error('Error getting integration definitions:', error);
throw error;
}
}
/**
* Get integration instances
* @param definitionId Optional ID to filter instances by definition
* @param cursor Optional cursor for pagination
* @param limit Optional limit for number of instances to return
* @param filter Optional search filter
*/
async getIntegrationInstances(definitionId, cursor, limit, filter) {
try {
const response = await this.client.request(queries_js_1.GET_INTEGRATION_INSTANCES, {
definitionId,
cursor,
limit,
filter,
});
return response.integrationInstancesV2;
}
catch (error) {
console.error('Error getting integration instances:', error);
throw error;
}
}
/**
* Get integration jobs
* @param status Optional status to filter jobs
* @param integrationInstanceId Optional ID to filter jobs by instance
* @param integrationDefinitionId Optional ID to filter jobs by definition
* @param integrationInstanceIds Optional array of instance IDs to filter jobs
* @param cursor Optional cursor for pagination
* @param size Optional size limit for number of jobs to return
*/
async getIntegrationJobs(status, integrationInstanceId, integrationDefinitionId, integrationInstanceIds, cursor, size) {
try {
const response = await this.client.request(queries_js_1.GET_INTEGRATION_JOBS, {
status,
integrationInstanceId,
integrationDefinitionId,
integrationInstanceIds,
cursor,
size,
});
return response.integrationJobs;
}
catch (error) {
console.error('Error getting integration jobs:', error);
throw error;
}
}
/**
* Get details for a specific integration job
* @param integrationJobId ID of the job to get
* @param integrationInstanceId ID of the instance the job belongs to
*/
async getIntegrationJob(integrationJobId, integrationInstanceId) {
try {
const response = await this.client.request(queries_js_1.GET_INTEGRATION_JOB, {
integrationJobId,
integrationInstanceId,
});
return response.integrationJob;
}
catch (error) {
console.error('Error getting integration job:', error);
throw error;
}
}
/**
* Get events for a specific integration job
* @param jobId ID of the job to get events for
* @param integrationInstanceId ID of the instance the job belongs to
* @param cursor Optional cursor for pagination
* @param size Optional size limit for number of events to return
*/
async getIntegrationEvents(jobId, integrationInstanceId, cursor, size) {
try {
const response = await this.client.request(queries_js_1.GET_INTEGRATION_EVENTS, {
jobId,
integrationInstanceId,
cursor,
size,
});
return response.integrationEvents;
}
catch (error) {
console.error('Error getting integration events:', error);
throw error;
}
}
}
exports.IntegrationService = IntegrationService;
//# sourceMappingURL=integration-service.js.map