Skip to main content
Glama
cloud-compliance.ts6.01 kB
import { z } from "zod"; import { RadSecurityClient } from "../client.js"; // Schema for list_compliance_frameworks export const ListComplianceFrameworksSchema = z.object({ datasource_ids: z.string().optional().describe("Comma-separated datasource IDs (e.g. AWS Account IDs)"), page: z.number().optional().describe("Page number starting from 1"), page_size: z.number().optional().describe("Page size"), }); // Schema for list_framework_requirements export const ListFrameworkRequirementsSchema = z.object({ framework_name: z.string().describe("Name of the compliance framework"), datasource_ids: z.string().describe("Comma-separated datasource IDs (e.g. AWS Account IDs)"), page: z.number().optional().describe("Page number starting from 1"), page_size: z.number().optional().describe("Page size"), }); // Schema for list_requirement_controls export const ListRequirementControlsSchema = z.object({ framework_name: z.string().describe("Name of the compliance framework"), requirement_id: z.string().describe("ID of the requirement within the framework"), datasource_ids: z.string().describe("Comma-separated datasource IDs (e.g. AWS Account IDs)"), page: z.number().optional().default(1).describe("Page number starting from 1"), page_size: z.number().optional().default(10).describe("Page size"), }); // Schema for list_compliance_controls export const ListComplianceControlsSchema = z.object({ status: z.enum(["failing", "passing"]).optional().describe("Filter by failure status: failing or passing"), providers: z.string().optional().describe("Comma-separated list of cloud providers (aws, azure, gcp, linode)"), page: z.number().optional().describe("Page number starting from 1"), page_size: z.number().optional().describe("Page size"), }); // Schema for get_compliance_control export const GetComplianceControlSchema = z.object({ control_name: z.string().describe("Name of the compliance control"), datasource_ids: z.string().describe("Comma-separated datasource IDs (e.g. AWS Account IDs)"), }); // Schema for list_control_resources export const ListControlResourcesSchema = z.object({ control_name: z.string().describe("Name of the compliance control"), datasource_ids: z.string().describe("Comma-separated datasource IDs (e.g. AWS Account IDs)"), page: z.number().optional().describe("Page number starting from 1"), page_size: z.number().optional().describe("Page size"), }); /** * List all compliance frameworks available for cloud resources. */ export async function listComplianceFrameworks( client: RadSecurityClient, datasourceIds?: string, page?: number, pageSize?: number ): Promise<any> { const params: Record<string, any> = {}; if (datasourceIds) { params.datasource_ids = datasourceIds; } if (page !== undefined) { params.page = page; } if (pageSize !== undefined) { params.page_size = pageSize; } return client.makeRequest( `/accounts/${client.getAccountId()}/compliance/cloud/frameworks`, params ); } /** * List all requirements for a specific compliance framework. */ export async function listFrameworkRequirements( client: RadSecurityClient, frameworkName: string, datasourceIds: string, page?: number, pageSize?: number ): Promise<any> { const params: Record<string, any> = { datasource_ids: datasourceIds }; if (page !== undefined) { params.page = page; } if (pageSize !== undefined) { params.page_size = pageSize; } return client.makeRequest( `/accounts/${client.getAccountId()}/compliance/cloud/frameworks/${encodeURIComponent(frameworkName)}/requirements`, params ); } /** * List controls associated with a specific requirement within a compliance framework. */ export async function listRequirementControls( client: RadSecurityClient, frameworkName: string, requirementId: string, datasourceIds: string, page?: number, pageSize?: number ): Promise<any> { const params: Record<string, any> = { datasource_ids: datasourceIds }; if (page !== undefined) { params.page = page; } if (pageSize !== undefined) { params.page_size = pageSize; } return client.makeRequest( `/accounts/${client.getAccountId()}/compliance/cloud/frameworks/${encodeURIComponent(frameworkName)}/requirements/${encodeURIComponent(requirementId)}/controls`, params ); } /** * List all compliance control summaries for the account. */ export async function listComplianceControls( client: RadSecurityClient, status?: string, providers?: string, page?: number, pageSize?: number ): Promise<any> { const params: Record<string, any> = {}; if (status) { params.status = status; } if (providers) { params.providers = providers; } if (page !== undefined) { params.page = page; } if (pageSize !== undefined) { params.page_size = pageSize; } return client.makeRequest( `/accounts/${client.getAccountId()}/compliance/cloud/controls`, params ); } /** * Get details for a specific compliance control. */ export async function getComplianceControl( client: RadSecurityClient, controlName: string, datasourceIds: string ): Promise<any> { const params: Record<string, any> = { datasource_ids: datasourceIds }; return client.makeRequest( `/accounts/${client.getAccountId()}/compliance/cloud/controls/${encodeURIComponent(controlName)}`, params ); } /** * List resources associated with a specific compliance control. */ export async function listControlResources( client: RadSecurityClient, controlName: string, datasourceIds: string, page?: number, pageSize?: number ): Promise<any> { const params: Record<string, any> = { datasource_ids: datasourceIds }; if (page !== undefined) { params.page = page; } if (pageSize !== undefined) { params.page_size = pageSize; } return client.makeRequest( `/accounts/${client.getAccountId()}/compliance/cloud/controls/${encodeURIComponent(controlName)}/resources`, params ); }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/rad-security/mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server