Skip to content

SOAResource

API reference for the Statement of Applicability resource.

Methods

list

List all SOA controls.

typescript
async list(options?: ListOptions): Promise<ListResponse<SOAControl>>

get

Get a specific SOA control.

typescript
async get(id: string): Promise<SOAControl>

update

Update an SOA control.

typescript
async update(id: string, data: UpdateSOAControlInput): Promise<SOAControl>

Parameters:

typescript
interface UpdateSOAControlInput {
  applicable?: boolean;
  implemented?: boolean;
  justification?: string;
  evidence?: string[];
  owner?: string;
  status?: 'not_started' | 'in_progress' | 'implemented' | 'not_applicable';
}

bulkUpdate

Bulk update multiple SOA controls.

typescript
async bulkUpdate(updates: Array<{ id: string } & UpdateSOAControlInput>): Promise<SOAControl[]>

getControls

Alias for list().

typescript
async getControls(): Promise<ListResponse<SOAControl>>

getFrameworks

Get available frameworks.

typescript
async getFrameworks(): Promise<Array<{ id: string; name: string; description: string; controlCount: number }>>

getSummary

Get SOA implementation summary.

typescript
async getSummary(): Promise<SOASummary>

Returns:

typescript
interface SOASummary {
  totalControls: number;
  implemented: number;
  notImplemented: number;
  notApplicable: number;
  inProgress: number;
  implementationPercentage: number;
  byFramework: Array<{
    framework: string;
    total: number;
    implemented: number;
    percentage: number;
  }>;
  byStatus: Record<string, number>;
}

getVersionHistory

Get SOA version history.

typescript
async getVersionHistory(): Promise<Array<{
  versionKey: string;
  versionNumber: string;
  dateUpdated: string;
  updatedBy: string;
  updateComments: string;
}>>

Types

SOAControl

typescript
interface SOAControl {
  id: string;
  type: 'soa_control';
  controlId: string;
  applicable: boolean;
  implemented: boolean;
  justification?: string;
  evidence?: string[];
  owner?: string;
  status: 'not_started' | 'in_progress' | 'implemented' | 'not_applicable';
}

Released under the MIT License.