Add control mapping tools
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
This commit is contained in:
@@ -1162,3 +1162,107 @@ func (r *Resolver) UpdateControlTool(ctx context.Context, req *mcp.CallToolReque
|
|||||||
Control: types.NewControl(control),
|
Control: types.NewControl(control),
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (r *Resolver) LinkControlMeasureTool(ctx context.Context, req *mcp.CallToolRequest, input *types.LinkControlMeasureInput) (*mcp.CallToolResult, types.LinkControlMeasureOutput, error) {
|
||||||
|
r.MustBeAuthorized(ctx, input.ControlID, authz.ActionCreateControlMeasureMapping)
|
||||||
|
|
||||||
|
svc := r.ProboService(ctx, input.ControlID)
|
||||||
|
|
||||||
|
_, _, err := svc.Controls.CreateMeasureMapping(ctx, input.ControlID, input.MeasureID)
|
||||||
|
if err != nil {
|
||||||
|
return nil, types.LinkControlMeasureOutput{}, fmt.Errorf("failed to link control measure: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil, types.LinkControlMeasureOutput{}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r *Resolver) UnlinkControlMeasureTool(ctx context.Context, req *mcp.CallToolRequest, input *types.UnlinkControlMeasureInput) (*mcp.CallToolResult, types.UnlinkControlMeasureOutput, error) {
|
||||||
|
r.MustBeAuthorized(ctx, input.ControlID, authz.ActionDeleteControlMeasureMapping)
|
||||||
|
|
||||||
|
svc := r.ProboService(ctx, input.ControlID)
|
||||||
|
|
||||||
|
_, _, err := svc.Controls.DeleteMeasureMapping(ctx, input.ControlID, input.MeasureID)
|
||||||
|
if err != nil {
|
||||||
|
return nil, types.UnlinkControlMeasureOutput{}, fmt.Errorf("failed to unlink control measure: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil, types.UnlinkControlMeasureOutput{}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r *Resolver) LinkControlDocumentTool(ctx context.Context, req *mcp.CallToolRequest, input *types.LinkControlDocumentInput) (*mcp.CallToolResult, types.LinkControlDocumentOutput, error) {
|
||||||
|
r.MustBeAuthorized(ctx, input.ControlID, authz.ActionCreateControlDocumentMapping)
|
||||||
|
|
||||||
|
svc := r.ProboService(ctx, input.ControlID)
|
||||||
|
|
||||||
|
_, _, err := svc.Controls.CreateDocumentMapping(ctx, input.ControlID, input.DocumentID)
|
||||||
|
if err != nil {
|
||||||
|
return nil, types.LinkControlDocumentOutput{}, fmt.Errorf("failed to link control document: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil, types.LinkControlDocumentOutput{}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r *Resolver) UnlinkControlDocumentTool(ctx context.Context, req *mcp.CallToolRequest, input *types.UnlinkControlDocumentInput) (*mcp.CallToolResult, types.UnlinkControlDocumentOutput, error) {
|
||||||
|
r.MustBeAuthorized(ctx, input.ControlID, authz.ActionDeleteControlDocumentMapping)
|
||||||
|
|
||||||
|
svc := r.ProboService(ctx, input.ControlID)
|
||||||
|
|
||||||
|
_, _, err := svc.Controls.DeleteDocumentMapping(ctx, input.ControlID, input.DocumentID)
|
||||||
|
if err != nil {
|
||||||
|
return nil, types.UnlinkControlDocumentOutput{}, fmt.Errorf("failed to unlink control document: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil, types.UnlinkControlDocumentOutput{}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r *Resolver) LinkControlAuditTool(ctx context.Context, req *mcp.CallToolRequest, input *types.LinkControlAuditInput) (*mcp.CallToolResult, types.LinkControlAuditOutput, error) {
|
||||||
|
r.MustBeAuthorized(ctx, input.ControlID, authz.ActionCreateControlAuditMapping)
|
||||||
|
|
||||||
|
svc := r.ProboService(ctx, input.ControlID)
|
||||||
|
|
||||||
|
_, _, err := svc.Controls.CreateAuditMapping(ctx, input.ControlID, input.AuditID)
|
||||||
|
if err != nil {
|
||||||
|
return nil, types.LinkControlAuditOutput{}, fmt.Errorf("failed to link control audit: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil, types.LinkControlAuditOutput{}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r *Resolver) UnlinkControlAuditTool(ctx context.Context, req *mcp.CallToolRequest, input *types.UnlinkControlAuditInput) (*mcp.CallToolResult, types.UnlinkControlAuditOutput, error) {
|
||||||
|
r.MustBeAuthorized(ctx, input.ControlID, authz.ActionDeleteControlAuditMapping)
|
||||||
|
|
||||||
|
svc := r.ProboService(ctx, input.ControlID)
|
||||||
|
|
||||||
|
_, _, err := svc.Controls.DeleteAuditMapping(ctx, input.ControlID, input.AuditID)
|
||||||
|
if err != nil {
|
||||||
|
return nil, types.UnlinkControlAuditOutput{}, fmt.Errorf("failed to unlink control audit: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil, types.UnlinkControlAuditOutput{}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r *Resolver) LinkControlSnapshotTool(ctx context.Context, req *mcp.CallToolRequest, input *types.LinkControlSnapshotInput) (*mcp.CallToolResult, types.LinkControlSnapshotOutput, error) {
|
||||||
|
r.MustBeAuthorized(ctx, input.ControlID, authz.ActionCreateControlSnapshotMapping)
|
||||||
|
|
||||||
|
svc := r.ProboService(ctx, input.ControlID)
|
||||||
|
|
||||||
|
_, _, err := svc.Controls.CreateSnapshotMapping(ctx, input.ControlID, input.SnapshotID)
|
||||||
|
if err != nil {
|
||||||
|
return nil, types.LinkControlSnapshotOutput{}, fmt.Errorf("failed to link control snapshot: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil, types.LinkControlSnapshotOutput{}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r *Resolver) UnlinkControlSnapshotTool(ctx context.Context, req *mcp.CallToolRequest, input *types.UnlinkControlSnapshotInput) (*mcp.CallToolResult, types.UnlinkControlSnapshotOutput, error) {
|
||||||
|
r.MustBeAuthorized(ctx, input.ControlID, authz.ActionDeleteControlSnapshotMapping)
|
||||||
|
|
||||||
|
svc := r.ProboService(ctx, input.ControlID)
|
||||||
|
|
||||||
|
_, _, err := svc.Controls.DeleteSnapshotMapping(ctx, input.ControlID, input.SnapshotID)
|
||||||
|
if err != nil {
|
||||||
|
return nil, types.UnlinkControlSnapshotOutput{}, fmt.Errorf("failed to unlink control snapshot: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil, types.UnlinkControlSnapshotOutput{}, nil
|
||||||
|
}
|
||||||
|
|||||||
@@ -57,6 +57,14 @@ type ResolverInterface interface {
|
|||||||
GetControlTool(ctx context.Context, req *mcp.CallToolRequest, input *types.GetControlInput) (*mcp.CallToolResult, types.GetControlOutput, error)
|
GetControlTool(ctx context.Context, req *mcp.CallToolRequest, input *types.GetControlInput) (*mcp.CallToolResult, types.GetControlOutput, error)
|
||||||
AddControlTool(ctx context.Context, req *mcp.CallToolRequest, input *types.AddControlInput) (*mcp.CallToolResult, types.AddControlOutput, error)
|
AddControlTool(ctx context.Context, req *mcp.CallToolRequest, input *types.AddControlInput) (*mcp.CallToolResult, types.AddControlOutput, error)
|
||||||
UpdateControlTool(ctx context.Context, req *mcp.CallToolRequest, input *types.UpdateControlInput) (*mcp.CallToolResult, types.UpdateControlOutput, error)
|
UpdateControlTool(ctx context.Context, req *mcp.CallToolRequest, input *types.UpdateControlInput) (*mcp.CallToolResult, types.UpdateControlOutput, error)
|
||||||
|
LinkControlMeasureTool(ctx context.Context, req *mcp.CallToolRequest, input *types.LinkControlMeasureInput) (*mcp.CallToolResult, types.LinkControlMeasureOutput, error)
|
||||||
|
UnlinkControlMeasureTool(ctx context.Context, req *mcp.CallToolRequest, input *types.UnlinkControlMeasureInput) (*mcp.CallToolResult, types.UnlinkControlMeasureOutput, error)
|
||||||
|
LinkControlDocumentTool(ctx context.Context, req *mcp.CallToolRequest, input *types.LinkControlDocumentInput) (*mcp.CallToolResult, types.LinkControlDocumentOutput, error)
|
||||||
|
UnlinkControlDocumentTool(ctx context.Context, req *mcp.CallToolRequest, input *types.UnlinkControlDocumentInput) (*mcp.CallToolResult, types.UnlinkControlDocumentOutput, error)
|
||||||
|
LinkControlAuditTool(ctx context.Context, req *mcp.CallToolRequest, input *types.LinkControlAuditInput) (*mcp.CallToolResult, types.LinkControlAuditOutput, error)
|
||||||
|
UnlinkControlAuditTool(ctx context.Context, req *mcp.CallToolRequest, input *types.UnlinkControlAuditInput) (*mcp.CallToolResult, types.UnlinkControlAuditOutput, error)
|
||||||
|
LinkControlSnapshotTool(ctx context.Context, req *mcp.CallToolRequest, input *types.LinkControlSnapshotInput) (*mcp.CallToolResult, types.LinkControlSnapshotOutput, error)
|
||||||
|
UnlinkControlSnapshotTool(ctx context.Context, req *mcp.CallToolRequest, input *types.UnlinkControlSnapshotInput) (*mcp.CallToolResult, types.UnlinkControlSnapshotOutput, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
// New creates a new MCP server instance with all handlers registered.
|
// New creates a new MCP server instance with all handlers registered.
|
||||||
@@ -546,4 +554,84 @@ func registerToolHandlers(server *mcp.Server, resolver ResolverInterface) {
|
|||||||
},
|
},
|
||||||
resolver.UpdateControlTool,
|
resolver.UpdateControlTool,
|
||||||
)
|
)
|
||||||
|
mcp.AddTool(
|
||||||
|
server,
|
||||||
|
&mcp.Tool{
|
||||||
|
Name: "linkControlMeasure",
|
||||||
|
Description: "Link a measure to a control",
|
||||||
|
InputSchema: types.LinkControlMeasureToolInputSchema,
|
||||||
|
OutputSchema: types.LinkControlMeasureToolOutputSchema,
|
||||||
|
},
|
||||||
|
resolver.LinkControlMeasureTool,
|
||||||
|
)
|
||||||
|
mcp.AddTool(
|
||||||
|
server,
|
||||||
|
&mcp.Tool{
|
||||||
|
Name: "unlinkControlMeasure",
|
||||||
|
Description: "Unlink a measure from a control",
|
||||||
|
InputSchema: types.UnlinkControlMeasureToolInputSchema,
|
||||||
|
OutputSchema: types.UnlinkControlMeasureToolOutputSchema,
|
||||||
|
},
|
||||||
|
resolver.UnlinkControlMeasureTool,
|
||||||
|
)
|
||||||
|
mcp.AddTool(
|
||||||
|
server,
|
||||||
|
&mcp.Tool{
|
||||||
|
Name: "linkControlDocument",
|
||||||
|
Description: "Link a document to a control",
|
||||||
|
InputSchema: types.LinkControlDocumentToolInputSchema,
|
||||||
|
OutputSchema: types.LinkControlDocumentToolOutputSchema,
|
||||||
|
},
|
||||||
|
resolver.LinkControlDocumentTool,
|
||||||
|
)
|
||||||
|
mcp.AddTool(
|
||||||
|
server,
|
||||||
|
&mcp.Tool{
|
||||||
|
Name: "unlinkControlDocument",
|
||||||
|
Description: "Unlink a document from a control",
|
||||||
|
InputSchema: types.UnlinkControlDocumentToolInputSchema,
|
||||||
|
OutputSchema: types.UnlinkControlDocumentToolOutputSchema,
|
||||||
|
},
|
||||||
|
resolver.UnlinkControlDocumentTool,
|
||||||
|
)
|
||||||
|
mcp.AddTool(
|
||||||
|
server,
|
||||||
|
&mcp.Tool{
|
||||||
|
Name: "linkControlAudit",
|
||||||
|
Description: "Link an audit to a control",
|
||||||
|
InputSchema: types.LinkControlAuditToolInputSchema,
|
||||||
|
OutputSchema: types.LinkControlAuditToolOutputSchema,
|
||||||
|
},
|
||||||
|
resolver.LinkControlAuditTool,
|
||||||
|
)
|
||||||
|
mcp.AddTool(
|
||||||
|
server,
|
||||||
|
&mcp.Tool{
|
||||||
|
Name: "unlinkControlAudit",
|
||||||
|
Description: "Unlink an audit from a control",
|
||||||
|
InputSchema: types.UnlinkControlAuditToolInputSchema,
|
||||||
|
OutputSchema: types.UnlinkControlAuditToolOutputSchema,
|
||||||
|
},
|
||||||
|
resolver.UnlinkControlAuditTool,
|
||||||
|
)
|
||||||
|
mcp.AddTool(
|
||||||
|
server,
|
||||||
|
&mcp.Tool{
|
||||||
|
Name: "linkControlSnapshot",
|
||||||
|
Description: "Link a snapshot to a control",
|
||||||
|
InputSchema: types.LinkControlSnapshotToolInputSchema,
|
||||||
|
OutputSchema: types.LinkControlSnapshotToolOutputSchema,
|
||||||
|
},
|
||||||
|
resolver.LinkControlSnapshotTool,
|
||||||
|
)
|
||||||
|
mcp.AddTool(
|
||||||
|
server,
|
||||||
|
&mcp.Tool{
|
||||||
|
Name: "unlinkControlSnapshot",
|
||||||
|
Description: "Unlink a snapshot from a control",
|
||||||
|
InputSchema: types.UnlinkControlSnapshotToolInputSchema,
|
||||||
|
OutputSchema: types.UnlinkControlSnapshotToolOutputSchema,
|
||||||
|
},
|
||||||
|
resolver.UnlinkControlSnapshotTool,
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2654,6 +2654,134 @@ components:
|
|||||||
control:
|
control:
|
||||||
$ref: "#/components/schemas/Control"
|
$ref: "#/components/schemas/Control"
|
||||||
|
|
||||||
|
LinkControlMeasureInput:
|
||||||
|
type: object
|
||||||
|
required:
|
||||||
|
- control_id
|
||||||
|
- measure_id
|
||||||
|
properties:
|
||||||
|
control_id:
|
||||||
|
$ref: "#/components/schemas/GID"
|
||||||
|
description: Control ID
|
||||||
|
measure_id:
|
||||||
|
$ref: "#/components/schemas/GID"
|
||||||
|
description: Measure ID
|
||||||
|
|
||||||
|
LinkControlMeasureOutput:
|
||||||
|
type: object
|
||||||
|
|
||||||
|
UnlinkControlMeasureInput:
|
||||||
|
type: object
|
||||||
|
required:
|
||||||
|
- control_id
|
||||||
|
- measure_id
|
||||||
|
properties:
|
||||||
|
control_id:
|
||||||
|
$ref: "#/components/schemas/GID"
|
||||||
|
description: Control ID
|
||||||
|
measure_id:
|
||||||
|
$ref: "#/components/schemas/GID"
|
||||||
|
description: Measure ID
|
||||||
|
|
||||||
|
UnlinkControlMeasureOutput:
|
||||||
|
type: object
|
||||||
|
|
||||||
|
LinkControlDocumentInput:
|
||||||
|
type: object
|
||||||
|
required:
|
||||||
|
- control_id
|
||||||
|
- document_id
|
||||||
|
properties:
|
||||||
|
control_id:
|
||||||
|
$ref: "#/components/schemas/GID"
|
||||||
|
description: Control ID
|
||||||
|
document_id:
|
||||||
|
$ref: "#/components/schemas/GID"
|
||||||
|
description: Document ID
|
||||||
|
|
||||||
|
LinkControlDocumentOutput:
|
||||||
|
type: object
|
||||||
|
|
||||||
|
UnlinkControlDocumentInput:
|
||||||
|
type: object
|
||||||
|
required:
|
||||||
|
- control_id
|
||||||
|
- document_id
|
||||||
|
properties:
|
||||||
|
control_id:
|
||||||
|
$ref: "#/components/schemas/GID"
|
||||||
|
description: Control ID
|
||||||
|
document_id:
|
||||||
|
$ref: "#/components/schemas/GID"
|
||||||
|
description: Document ID
|
||||||
|
|
||||||
|
UnlinkControlDocumentOutput:
|
||||||
|
type: object
|
||||||
|
|
||||||
|
LinkControlAuditInput:
|
||||||
|
type: object
|
||||||
|
required:
|
||||||
|
- control_id
|
||||||
|
- audit_id
|
||||||
|
properties:
|
||||||
|
control_id:
|
||||||
|
$ref: "#/components/schemas/GID"
|
||||||
|
description: Control ID
|
||||||
|
audit_id:
|
||||||
|
$ref: "#/components/schemas/GID"
|
||||||
|
description: Audit ID
|
||||||
|
|
||||||
|
LinkControlAuditOutput:
|
||||||
|
type: object
|
||||||
|
|
||||||
|
UnlinkControlAuditInput:
|
||||||
|
type: object
|
||||||
|
required:
|
||||||
|
- control_id
|
||||||
|
- audit_id
|
||||||
|
properties:
|
||||||
|
control_id:
|
||||||
|
$ref: "#/components/schemas/GID"
|
||||||
|
description: Control ID
|
||||||
|
audit_id:
|
||||||
|
$ref: "#/components/schemas/GID"
|
||||||
|
description: Audit ID
|
||||||
|
|
||||||
|
UnlinkControlAuditOutput:
|
||||||
|
type: object
|
||||||
|
|
||||||
|
LinkControlSnapshotInput:
|
||||||
|
type: object
|
||||||
|
required:
|
||||||
|
- control_id
|
||||||
|
- snapshot_id
|
||||||
|
properties:
|
||||||
|
control_id:
|
||||||
|
$ref: "#/components/schemas/GID"
|
||||||
|
description: Control ID
|
||||||
|
snapshot_id:
|
||||||
|
$ref: "#/components/schemas/GID"
|
||||||
|
description: Snapshot ID
|
||||||
|
|
||||||
|
LinkControlSnapshotOutput:
|
||||||
|
type: object
|
||||||
|
|
||||||
|
UnlinkControlSnapshotInput:
|
||||||
|
type: object
|
||||||
|
required:
|
||||||
|
- control_id
|
||||||
|
- snapshot_id
|
||||||
|
properties:
|
||||||
|
control_id:
|
||||||
|
$ref: "#/components/schemas/GID"
|
||||||
|
description: Control ID
|
||||||
|
snapshot_id:
|
||||||
|
$ref: "#/components/schemas/GID"
|
||||||
|
description: Snapshot ID
|
||||||
|
|
||||||
|
UnlinkControlSnapshotOutput:
|
||||||
|
type: object
|
||||||
|
|
||||||
tools:
|
tools:
|
||||||
- name: listOrganizations
|
- name: listOrganizations
|
||||||
description: List all organizations the user has access to
|
description: List all organizations the user has access to
|
||||||
@@ -2984,3 +3112,59 @@ tools:
|
|||||||
$ref: "#/components/schemas/UpdateControlInput"
|
$ref: "#/components/schemas/UpdateControlInput"
|
||||||
outputSchema:
|
outputSchema:
|
||||||
$ref: "#/components/schemas/UpdateControlOutput"
|
$ref: "#/components/schemas/UpdateControlOutput"
|
||||||
|
- name: linkControlMeasure
|
||||||
|
description: Link a measure to a control
|
||||||
|
readonly: false
|
||||||
|
inputSchema:
|
||||||
|
$ref: "#/components/schemas/LinkControlMeasureInput"
|
||||||
|
outputSchema:
|
||||||
|
$ref: "#/components/schemas/LinkControlMeasureOutput"
|
||||||
|
- name: unlinkControlMeasure
|
||||||
|
description: Unlink a measure from a control
|
||||||
|
readonly: false
|
||||||
|
inputSchema:
|
||||||
|
$ref: "#/components/schemas/UnlinkControlMeasureInput"
|
||||||
|
outputSchema:
|
||||||
|
$ref: "#/components/schemas/UnlinkControlMeasureOutput"
|
||||||
|
- name: linkControlDocument
|
||||||
|
description: Link a document to a control
|
||||||
|
readonly: false
|
||||||
|
inputSchema:
|
||||||
|
$ref: "#/components/schemas/LinkControlDocumentInput"
|
||||||
|
outputSchema:
|
||||||
|
$ref: "#/components/schemas/LinkControlDocumentOutput"
|
||||||
|
- name: unlinkControlDocument
|
||||||
|
description: Unlink a document from a control
|
||||||
|
readonly: false
|
||||||
|
inputSchema:
|
||||||
|
$ref: "#/components/schemas/UnlinkControlDocumentInput"
|
||||||
|
outputSchema:
|
||||||
|
$ref: "#/components/schemas/UnlinkControlDocumentOutput"
|
||||||
|
- name: linkControlAudit
|
||||||
|
description: Link an audit to a control
|
||||||
|
readonly: false
|
||||||
|
inputSchema:
|
||||||
|
$ref: "#/components/schemas/LinkControlAuditInput"
|
||||||
|
outputSchema:
|
||||||
|
$ref: "#/components/schemas/LinkControlAuditOutput"
|
||||||
|
- name: unlinkControlAudit
|
||||||
|
description: Unlink an audit from a control
|
||||||
|
readonly: false
|
||||||
|
inputSchema:
|
||||||
|
$ref: "#/components/schemas/UnlinkControlAuditInput"
|
||||||
|
outputSchema:
|
||||||
|
$ref: "#/components/schemas/UnlinkControlAuditOutput"
|
||||||
|
- name: linkControlSnapshot
|
||||||
|
description: Link a snapshot to a control
|
||||||
|
readonly: false
|
||||||
|
inputSchema:
|
||||||
|
$ref: "#/components/schemas/LinkControlSnapshotInput"
|
||||||
|
outputSchema:
|
||||||
|
$ref: "#/components/schemas/LinkControlSnapshotOutput"
|
||||||
|
- name: unlinkControlSnapshot
|
||||||
|
description: Unlink a snapshot from a control
|
||||||
|
readonly: false
|
||||||
|
inputSchema:
|
||||||
|
$ref: "#/components/schemas/UnlinkControlSnapshotInput"
|
||||||
|
outputSchema:
|
||||||
|
$ref: "#/components/schemas/UnlinkControlSnapshotOutput"
|
||||||
|
|||||||
@@ -58,6 +58,14 @@ var (
|
|||||||
GetPeopleToolOutputSchema = mcp.MustUnmarshalSchema(`{"type":"object","required":["people"],"properties":{"people":{"type":"object","required":["id","organization_id","full_name","primary_email_address","additional_email_addresses","kind","created_at","updated_at"],"properties":{"additional_email_addresses":{"type":"array","description":"Additional email addresses","items":{"type":"string"}},"contract_end_date":{"description":"Contract end date","format":"date-time"},"contract_start_date":{"description":"Contract start date","format":"date-time"},"created_at":{"type":"string","description":"Creation timestamp","format":"date-time"},"full_name":{"type":"string","description":"Full name"},"id":{"type":"string","format":"string"},"kind":{"type":"string","enum":["EMPLOYEE","CONTRACTOR","SERVICE_ACCOUNT"]},"organization_id":{"type":"string","format":"string"},"position":{"description":"Position"},"primary_email_address":{"type":"string","description":"Primary email address"},"updated_at":{"type":"string","description":"Update timestamp","format":"date-time"}}}}}`)
|
GetPeopleToolOutputSchema = mcp.MustUnmarshalSchema(`{"type":"object","required":["people"],"properties":{"people":{"type":"object","required":["id","organization_id","full_name","primary_email_address","additional_email_addresses","kind","created_at","updated_at"],"properties":{"additional_email_addresses":{"type":"array","description":"Additional email addresses","items":{"type":"string"}},"contract_end_date":{"description":"Contract end date","format":"date-time"},"contract_start_date":{"description":"Contract start date","format":"date-time"},"created_at":{"type":"string","description":"Creation timestamp","format":"date-time"},"full_name":{"type":"string","description":"Full name"},"id":{"type":"string","format":"string"},"kind":{"type":"string","enum":["EMPLOYEE","CONTRACTOR","SERVICE_ACCOUNT"]},"organization_id":{"type":"string","format":"string"},"position":{"description":"Position"},"primary_email_address":{"type":"string","description":"Primary email address"},"updated_at":{"type":"string","description":"Update timestamp","format":"date-time"}}}}}`)
|
||||||
GetRiskToolInputSchema = mcp.MustUnmarshalSchema(`{"type":"object","required":["id"],"properties":{"id":{"type":"string","format":"string"}}}`)
|
GetRiskToolInputSchema = mcp.MustUnmarshalSchema(`{"type":"object","required":["id"],"properties":{"id":{"type":"string","format":"string"}}}`)
|
||||||
GetRiskToolOutputSchema = mcp.MustUnmarshalSchema(`{"type":"object","required":["risk"],"properties":{"risk":{"type":"object","required":["id","organization_id","name","category","treatment","inherent_likelihood","inherent_impact","inherent_risk_score","residual_likelihood","residual_impact","residual_risk_score","note","created_at","updated_at"],"properties":{"category":{"type":"string","description":"Risk category"},"created_at":{"type":"string","description":"Creation timestamp","format":"date-time"},"description":{"description":"Risk description"},"id":{"type":"string","format":"string"},"inherent_impact":{"type":"integer","description":"Inherent impact"},"inherent_likelihood":{"type":"integer","description":"Inherent likelihood"},"inherent_risk_score":{"type":"integer","description":"Inherent risk score"},"name":{"type":"string","description":"Risk name"},"note":{"type":"string","description":"Risk note"},"organization_id":{"type":"string","format":"string"},"owner_id":{"anyOf":[{"type":"string","format":"string"},{"type":"null","description":"No owner"}]},"residual_impact":{"type":"integer","description":"Residual impact"},"residual_likelihood":{"type":"integer","description":"Residual likelihood"},"residual_risk_score":{"type":"integer","description":"Residual risk score"},"snapshot_id":{"description":"Snapshot ID","anyOf":[{"type":"string","format":"string"},{"type":"null","description":"No snapshot"}]},"treatment":{"type":"string","enum":["MITIGATED","ACCEPTED","AVOIDED","TRANSFERRED"]},"updated_at":{"type":"string","description":"Update timestamp","format":"date-time"}}}}}`)
|
GetRiskToolOutputSchema = mcp.MustUnmarshalSchema(`{"type":"object","required":["risk"],"properties":{"risk":{"type":"object","required":["id","organization_id","name","category","treatment","inherent_likelihood","inherent_impact","inherent_risk_score","residual_likelihood","residual_impact","residual_risk_score","note","created_at","updated_at"],"properties":{"category":{"type":"string","description":"Risk category"},"created_at":{"type":"string","description":"Creation timestamp","format":"date-time"},"description":{"description":"Risk description"},"id":{"type":"string","format":"string"},"inherent_impact":{"type":"integer","description":"Inherent impact"},"inherent_likelihood":{"type":"integer","description":"Inherent likelihood"},"inherent_risk_score":{"type":"integer","description":"Inherent risk score"},"name":{"type":"string","description":"Risk name"},"note":{"type":"string","description":"Risk note"},"organization_id":{"type":"string","format":"string"},"owner_id":{"anyOf":[{"type":"string","format":"string"},{"type":"null","description":"No owner"}]},"residual_impact":{"type":"integer","description":"Residual impact"},"residual_likelihood":{"type":"integer","description":"Residual likelihood"},"residual_risk_score":{"type":"integer","description":"Residual risk score"},"snapshot_id":{"description":"Snapshot ID","anyOf":[{"type":"string","format":"string"},{"type":"null","description":"No snapshot"}]},"treatment":{"type":"string","enum":["MITIGATED","ACCEPTED","AVOIDED","TRANSFERRED"]},"updated_at":{"type":"string","description":"Update timestamp","format":"date-time"}}}}}`)
|
||||||
|
LinkControlAuditToolInputSchema = mcp.MustUnmarshalSchema(`{"type":"object","required":["control_id","audit_id"],"properties":{"audit_id":{"type":"string","format":"string"},"control_id":{"type":"string","format":"string"}}}`)
|
||||||
|
LinkControlAuditToolOutputSchema = mcp.MustUnmarshalSchema(`{"type":"object"}`)
|
||||||
|
LinkControlDocumentToolInputSchema = mcp.MustUnmarshalSchema(`{"type":"object","required":["control_id","document_id"],"properties":{"control_id":{"type":"string","format":"string"},"document_id":{"type":"string","format":"string"}}}`)
|
||||||
|
LinkControlDocumentToolOutputSchema = mcp.MustUnmarshalSchema(`{"type":"object"}`)
|
||||||
|
LinkControlMeasureToolInputSchema = mcp.MustUnmarshalSchema(`{"type":"object","required":["control_id","measure_id"],"properties":{"control_id":{"type":"string","format":"string"},"measure_id":{"type":"string","format":"string"}}}`)
|
||||||
|
LinkControlMeasureToolOutputSchema = mcp.MustUnmarshalSchema(`{"type":"object"}`)
|
||||||
|
LinkControlSnapshotToolInputSchema = mcp.MustUnmarshalSchema(`{"type":"object","required":["control_id","snapshot_id"],"properties":{"control_id":{"type":"string","format":"string"},"snapshot_id":{"type":"string","format":"string"}}}`)
|
||||||
|
LinkControlSnapshotToolOutputSchema = mcp.MustUnmarshalSchema(`{"type":"object"}`)
|
||||||
ListAssetsToolInputSchema = mcp.MustUnmarshalSchema(`{"type":"object","required":["organization_id"],"properties":{"cursor":{"type":"string","format":"string"},"filter":{"type":"object","properties":{"snapshot_id":{"type":"string","format":"string"}}},"order_by":{"type":"object","required":["field","direction"],"properties":{"direction":{"type":"string","enum":["ASC","DESC"]},"field":{"type":"string","enum":["CREATED_AT","AMOUNT"]}}},"organization_id":{"type":"string","format":"string"},"size":{"type":"integer","description":"Page size"}}}`)
|
ListAssetsToolInputSchema = mcp.MustUnmarshalSchema(`{"type":"object","required":["organization_id"],"properties":{"cursor":{"type":"string","format":"string"},"filter":{"type":"object","properties":{"snapshot_id":{"type":"string","format":"string"}}},"order_by":{"type":"object","required":["field","direction"],"properties":{"direction":{"type":"string","enum":["ASC","DESC"]},"field":{"type":"string","enum":["CREATED_AT","AMOUNT"]}}},"organization_id":{"type":"string","format":"string"},"size":{"type":"integer","description":"Page size"}}}`)
|
||||||
ListAssetsToolOutputSchema = mcp.MustUnmarshalSchema(`{"type":"object","required":["assets"],"properties":{"assets":{"type":"array","items":{"type":"object","required":["id","organization_id","name","amount","owner_id","asset_type","data_types_stored","created_at","updated_at"],"properties":{"amount":{"type":"integer","description":"Asset amount"},"asset_type":{"type":"string","enum":["PHYSICAL","VIRTUAL"]},"created_at":{"type":"string","description":"Creation timestamp","format":"date-time"},"data_types_stored":{"type":"string","description":"Data types stored"},"id":{"type":"string","format":"string"},"name":{"type":"string","description":"Asset name"},"organization_id":{"type":"string","format":"string"},"owner_id":{"type":"string","format":"string"},"snapshot_id":{"description":"Snapshot ID"},"updated_at":{"type":"string","description":"Update timestamp","format":"date-time"}}}},"next_cursor":{"type":"string","format":"string"}}}`)
|
ListAssetsToolOutputSchema = mcp.MustUnmarshalSchema(`{"type":"object","required":["assets"],"properties":{"assets":{"type":"array","items":{"type":"object","required":["id","organization_id","name","amount","owner_id","asset_type","data_types_stored","created_at","updated_at"],"properties":{"amount":{"type":"integer","description":"Asset amount"},"asset_type":{"type":"string","enum":["PHYSICAL","VIRTUAL"]},"created_at":{"type":"string","description":"Creation timestamp","format":"date-time"},"data_types_stored":{"type":"string","description":"Data types stored"},"id":{"type":"string","format":"string"},"name":{"type":"string","description":"Asset name"},"organization_id":{"type":"string","format":"string"},"owner_id":{"type":"string","format":"string"},"snapshot_id":{"description":"Snapshot ID"},"updated_at":{"type":"string","description":"Update timestamp","format":"date-time"}}}},"next_cursor":{"type":"string","format":"string"}}}`)
|
||||||
ListAuditsToolInputSchema = mcp.MustUnmarshalSchema(`{"type":"object","required":["organization_id"],"properties":{"cursor":{"type":"string","format":"string"},"order_by":{"type":"object","required":["field","direction"],"properties":{"direction":{"type":"string","enum":["ASC","DESC"]},"field":{"type":"string","enum":["CREATED_AT","VALID_FROM","VALID_UNTIL","STATE"]}}},"organization_id":{"type":"string","format":"string"},"size":{"type":"integer","description":"Page size"}}}`)
|
ListAuditsToolInputSchema = mcp.MustUnmarshalSchema(`{"type":"object","required":["organization_id"],"properties":{"cursor":{"type":"string","format":"string"},"order_by":{"type":"object","required":["field","direction"],"properties":{"direction":{"type":"string","enum":["ASC","DESC"]},"field":{"type":"string","enum":["CREATED_AT","VALID_FROM","VALID_UNTIL","STATE"]}}},"organization_id":{"type":"string","format":"string"},"size":{"type":"integer","description":"Page size"}}}`)
|
||||||
@@ -84,6 +92,14 @@ var (
|
|||||||
ListRisksToolOutputSchema = mcp.MustUnmarshalSchema(`{"type":"object","required":["risks"],"properties":{"next_cursor":{"type":"string","format":"string"},"risks":{"type":"array","items":{"type":"object","required":["id","organization_id","name","category","treatment","inherent_likelihood","inherent_impact","inherent_risk_score","residual_likelihood","residual_impact","residual_risk_score","note","created_at","updated_at"],"properties":{"category":{"type":"string","description":"Risk category"},"created_at":{"type":"string","description":"Creation timestamp","format":"date-time"},"description":{"description":"Risk description"},"id":{"type":"string","format":"string"},"inherent_impact":{"type":"integer","description":"Inherent impact"},"inherent_likelihood":{"type":"integer","description":"Inherent likelihood"},"inherent_risk_score":{"type":"integer","description":"Inherent risk score"},"name":{"type":"string","description":"Risk name"},"note":{"type":"string","description":"Risk note"},"organization_id":{"type":"string","format":"string"},"owner_id":{"anyOf":[{"type":"string","format":"string"},{"type":"null","description":"No owner"}]},"residual_impact":{"type":"integer","description":"Residual impact"},"residual_likelihood":{"type":"integer","description":"Residual likelihood"},"residual_risk_score":{"type":"integer","description":"Residual risk score"},"snapshot_id":{"description":"Snapshot ID","anyOf":[{"type":"string","format":"string"},{"type":"null","description":"No snapshot"}]},"treatment":{"type":"string","enum":["MITIGATED","ACCEPTED","AVOIDED","TRANSFERRED"]},"updated_at":{"type":"string","description":"Update timestamp","format":"date-time"}}}}}}`)
|
ListRisksToolOutputSchema = mcp.MustUnmarshalSchema(`{"type":"object","required":["risks"],"properties":{"next_cursor":{"type":"string","format":"string"},"risks":{"type":"array","items":{"type":"object","required":["id","organization_id","name","category","treatment","inherent_likelihood","inherent_impact","inherent_risk_score","residual_likelihood","residual_impact","residual_risk_score","note","created_at","updated_at"],"properties":{"category":{"type":"string","description":"Risk category"},"created_at":{"type":"string","description":"Creation timestamp","format":"date-time"},"description":{"description":"Risk description"},"id":{"type":"string","format":"string"},"inherent_impact":{"type":"integer","description":"Inherent impact"},"inherent_likelihood":{"type":"integer","description":"Inherent likelihood"},"inherent_risk_score":{"type":"integer","description":"Inherent risk score"},"name":{"type":"string","description":"Risk name"},"note":{"type":"string","description":"Risk note"},"organization_id":{"type":"string","format":"string"},"owner_id":{"anyOf":[{"type":"string","format":"string"},{"type":"null","description":"No owner"}]},"residual_impact":{"type":"integer","description":"Residual impact"},"residual_likelihood":{"type":"integer","description":"Residual likelihood"},"residual_risk_score":{"type":"integer","description":"Residual risk score"},"snapshot_id":{"description":"Snapshot ID","anyOf":[{"type":"string","format":"string"},{"type":"null","description":"No snapshot"}]},"treatment":{"type":"string","enum":["MITIGATED","ACCEPTED","AVOIDED","TRANSFERRED"]},"updated_at":{"type":"string","description":"Update timestamp","format":"date-time"}}}}}}`)
|
||||||
ListVendorsToolInputSchema = mcp.MustUnmarshalSchema(`{"type":"object","required":["organization_id"],"properties":{"cursor":{"type":"string","format":"string"},"filter":{"type":"object","properties":{"snapshot_id":{"type":"string","format":"string"}}},"order_by":{"type":"object","required":["field","direction"],"properties":{"direction":{"type":"string","enum":["ASC","DESC"]},"field":{"type":"string","enum":["CREATED_AT","UPDATED_AT","NAME"]}}},"organization_id":{"type":"string","format":"string"},"size":{"type":"integer","description":"Page size"}}}`)
|
ListVendorsToolInputSchema = mcp.MustUnmarshalSchema(`{"type":"object","required":["organization_id"],"properties":{"cursor":{"type":"string","format":"string"},"filter":{"type":"object","properties":{"snapshot_id":{"type":"string","format":"string"}}},"order_by":{"type":"object","required":["field","direction"],"properties":{"direction":{"type":"string","enum":["ASC","DESC"]},"field":{"type":"string","enum":["CREATED_AT","UPDATED_AT","NAME"]}}},"organization_id":{"type":"string","format":"string"},"size":{"type":"integer","description":"Page size"}}}`)
|
||||||
ListVendorsToolOutputSchema = mcp.MustUnmarshalSchema(`{"type":"object","required":["vendors"],"properties":{"next_cursor":{"type":"string","format":"string"},"vendors":{"type":"array","items":{"type":"object","required":["id","name","organization_id","created_at","updated_at"],"properties":{"created_at":{"type":"string","description":"Creation timestamp","format":"date-time"},"description":{"description":"Vendor description"},"id":{"type":"string","format":"string"},"name":{"type":"string","description":"Vendor name"},"organization_id":{"type":"string","format":"string"},"updated_at":{"type":"string","description":"Update timestamp","format":"date-time"}}}}}}`)
|
ListVendorsToolOutputSchema = mcp.MustUnmarshalSchema(`{"type":"object","required":["vendors"],"properties":{"next_cursor":{"type":"string","format":"string"},"vendors":{"type":"array","items":{"type":"object","required":["id","name","organization_id","created_at","updated_at"],"properties":{"created_at":{"type":"string","description":"Creation timestamp","format":"date-time"},"description":{"description":"Vendor description"},"id":{"type":"string","format":"string"},"name":{"type":"string","description":"Vendor name"},"organization_id":{"type":"string","format":"string"},"updated_at":{"type":"string","description":"Update timestamp","format":"date-time"}}}}}}`)
|
||||||
|
UnlinkControlAuditToolInputSchema = mcp.MustUnmarshalSchema(`{"type":"object","required":["control_id","audit_id"],"properties":{"audit_id":{"type":"string","format":"string"},"control_id":{"type":"string","format":"string"}}}`)
|
||||||
|
UnlinkControlAuditToolOutputSchema = mcp.MustUnmarshalSchema(`{"type":"object"}`)
|
||||||
|
UnlinkControlDocumentToolInputSchema = mcp.MustUnmarshalSchema(`{"type":"object","required":["control_id","document_id"],"properties":{"control_id":{"type":"string","format":"string"},"document_id":{"type":"string","format":"string"}}}`)
|
||||||
|
UnlinkControlDocumentToolOutputSchema = mcp.MustUnmarshalSchema(`{"type":"object"}`)
|
||||||
|
UnlinkControlMeasureToolInputSchema = mcp.MustUnmarshalSchema(`{"type":"object","required":["control_id","measure_id"],"properties":{"control_id":{"type":"string","format":"string"},"measure_id":{"type":"string","format":"string"}}}`)
|
||||||
|
UnlinkControlMeasureToolOutputSchema = mcp.MustUnmarshalSchema(`{"type":"object"}`)
|
||||||
|
UnlinkControlSnapshotToolInputSchema = mcp.MustUnmarshalSchema(`{"type":"object","required":["control_id","snapshot_id"],"properties":{"control_id":{"type":"string","format":"string"},"snapshot_id":{"type":"string","format":"string"}}}`)
|
||||||
|
UnlinkControlSnapshotToolOutputSchema = mcp.MustUnmarshalSchema(`{"type":"object"}`)
|
||||||
UpdateAssetToolInputSchema = mcp.MustUnmarshalSchema(`{"type":"object","required":["id"],"properties":{"amount":{"type":"integer","description":"Asset amount"},"asset_type":{"type":"string","enum":["PHYSICAL","VIRTUAL"]},"data_types_stored":{"type":"string","description":"Data types stored"},"id":{"type":"string","format":"string"},"name":{"type":"string","description":"Asset name"},"owner_id":{"description":"Owner ID","anyOf":[{"type":"string","format":"string"},{"type":"null"}]},"vendor_ids":{"type":"array","description":"Vendor IDs","items":{"type":"string","format":"string"}}}}`)
|
UpdateAssetToolInputSchema = mcp.MustUnmarshalSchema(`{"type":"object","required":["id"],"properties":{"amount":{"type":"integer","description":"Asset amount"},"asset_type":{"type":"string","enum":["PHYSICAL","VIRTUAL"]},"data_types_stored":{"type":"string","description":"Data types stored"},"id":{"type":"string","format":"string"},"name":{"type":"string","description":"Asset name"},"owner_id":{"description":"Owner ID","anyOf":[{"type":"string","format":"string"},{"type":"null"}]},"vendor_ids":{"type":"array","description":"Vendor IDs","items":{"type":"string","format":"string"}}}}`)
|
||||||
UpdateAssetToolOutputSchema = mcp.MustUnmarshalSchema(`{"type":"object","required":["asset"],"properties":{"asset":{"type":"object","required":["id","organization_id","name","amount","owner_id","asset_type","data_types_stored","created_at","updated_at"],"properties":{"amount":{"type":"integer","description":"Asset amount"},"asset_type":{"type":"string","enum":["PHYSICAL","VIRTUAL"]},"created_at":{"type":"string","description":"Creation timestamp","format":"date-time"},"data_types_stored":{"type":"string","description":"Data types stored"},"id":{"type":"string","format":"string"},"name":{"type":"string","description":"Asset name"},"organization_id":{"type":"string","format":"string"},"owner_id":{"type":"string","format":"string"},"snapshot_id":{"description":"Snapshot ID"},"updated_at":{"type":"string","description":"Update timestamp","format":"date-time"}}}}}`)
|
UpdateAssetToolOutputSchema = mcp.MustUnmarshalSchema(`{"type":"object","required":["asset"],"properties":{"asset":{"type":"object","required":["id","organization_id","name","amount","owner_id","asset_type","data_types_stored","created_at","updated_at"],"properties":{"amount":{"type":"integer","description":"Asset amount"},"asset_type":{"type":"string","enum":["PHYSICAL","VIRTUAL"]},"created_at":{"type":"string","description":"Creation timestamp","format":"date-time"},"data_types_stored":{"type":"string","description":"Data types stored"},"id":{"type":"string","format":"string"},"name":{"type":"string","description":"Asset name"},"organization_id":{"type":"string","format":"string"},"owner_id":{"type":"string","format":"string"},"snapshot_id":{"description":"Snapshot ID"},"updated_at":{"type":"string","description":"Update timestamp","format":"date-time"}}}}}`)
|
||||||
UpdateAuditToolInputSchema = mcp.MustUnmarshalSchema(`{"type":"object","required":["id"],"properties":{"id":{"type":"string","format":"string"},"name":{"description":"Audit name"},"state":{"description":"Audit state","anyOf":[{"type":"string","enum":["NOT_STARTED","IN_PROGRESS","COMPLETED","REJECTED","OUTDATED"]},{"type":"null","description":"No state"}]},"trust_center_visibility":{"description":"Trust center visibility","anyOf":[{"type":"string","enum":["NONE","PRIVATE","PUBLIC"]},{"type":"null","description":"No trust center visibility"}]},"valid_from":{"description":"Valid from date","format":"date-time"},"valid_until":{"description":"Valid until date","format":"date-time"}}}`)
|
UpdateAuditToolInputSchema = mcp.MustUnmarshalSchema(`{"type":"object","required":["id"],"properties":{"id":{"type":"string","format":"string"},"name":{"description":"Audit name"},"state":{"description":"Audit state","anyOf":[{"type":"string","enum":["NOT_STARTED","IN_PROGRESS","COMPLETED","REJECTED","OUTDATED"]},{"type":"null","description":"No state"}]},"trust_center_visibility":{"description":"Trust center visibility","anyOf":[{"type":"string","enum":["NONE","PRIVATE","PUBLIC"]},{"type":"null","description":"No trust center visibility"}]},"valid_from":{"description":"Valid from date","format":"date-time"},"valid_until":{"description":"Valid until date","format":"date-time"}}}`)
|
||||||
@@ -693,6 +709,54 @@ type GetRiskOutput struct {
|
|||||||
Risk *Risk `json:"risk"`
|
Risk *Risk `json:"risk"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// LinkControlAuditInput represents the schema
|
||||||
|
type LinkControlAuditInput struct {
|
||||||
|
// Audit ID
|
||||||
|
AuditID gid.GID `json:"audit_id"`
|
||||||
|
// Control ID
|
||||||
|
ControlID gid.GID `json:"control_id"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// LinkControlAuditOutput represents the schema
|
||||||
|
type LinkControlAuditOutput struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
// LinkControlDocumentInput represents the schema
|
||||||
|
type LinkControlDocumentInput struct {
|
||||||
|
// Control ID
|
||||||
|
ControlID gid.GID `json:"control_id"`
|
||||||
|
// Document ID
|
||||||
|
DocumentID gid.GID `json:"document_id"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// LinkControlDocumentOutput represents the schema
|
||||||
|
type LinkControlDocumentOutput struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
// LinkControlMeasureInput represents the schema
|
||||||
|
type LinkControlMeasureInput struct {
|
||||||
|
// Control ID
|
||||||
|
ControlID gid.GID `json:"control_id"`
|
||||||
|
// Measure ID
|
||||||
|
MeasureID gid.GID `json:"measure_id"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// LinkControlMeasureOutput represents the schema
|
||||||
|
type LinkControlMeasureOutput struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
// LinkControlSnapshotInput represents the schema
|
||||||
|
type LinkControlSnapshotInput struct {
|
||||||
|
// Control ID
|
||||||
|
ControlID gid.GID `json:"control_id"`
|
||||||
|
// Snapshot ID
|
||||||
|
SnapshotID gid.GID `json:"snapshot_id"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// LinkControlSnapshotOutput represents the schema
|
||||||
|
type LinkControlSnapshotOutput struct {
|
||||||
|
}
|
||||||
|
|
||||||
// ListAssetsInput represents the schema
|
// ListAssetsInput represents the schema
|
||||||
type ListAssetsInput struct {
|
type ListAssetsInput struct {
|
||||||
// Page cursor
|
// Page cursor
|
||||||
@@ -1147,6 +1211,54 @@ type RiskOrderBy struct {
|
|||||||
Field coredata.RiskOrderField `json:"field"`
|
Field coredata.RiskOrderField `json:"field"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// UnlinkControlAuditInput represents the schema
|
||||||
|
type UnlinkControlAuditInput struct {
|
||||||
|
// Audit ID
|
||||||
|
AuditID gid.GID `json:"audit_id"`
|
||||||
|
// Control ID
|
||||||
|
ControlID gid.GID `json:"control_id"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnlinkControlAuditOutput represents the schema
|
||||||
|
type UnlinkControlAuditOutput struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnlinkControlDocumentInput represents the schema
|
||||||
|
type UnlinkControlDocumentInput struct {
|
||||||
|
// Control ID
|
||||||
|
ControlID gid.GID `json:"control_id"`
|
||||||
|
// Document ID
|
||||||
|
DocumentID gid.GID `json:"document_id"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnlinkControlDocumentOutput represents the schema
|
||||||
|
type UnlinkControlDocumentOutput struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnlinkControlMeasureInput represents the schema
|
||||||
|
type UnlinkControlMeasureInput struct {
|
||||||
|
// Control ID
|
||||||
|
ControlID gid.GID `json:"control_id"`
|
||||||
|
// Measure ID
|
||||||
|
MeasureID gid.GID `json:"measure_id"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnlinkControlMeasureOutput represents the schema
|
||||||
|
type UnlinkControlMeasureOutput struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnlinkControlSnapshotInput represents the schema
|
||||||
|
type UnlinkControlSnapshotInput struct {
|
||||||
|
// Control ID
|
||||||
|
ControlID gid.GID `json:"control_id"`
|
||||||
|
// Snapshot ID
|
||||||
|
SnapshotID gid.GID `json:"snapshot_id"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnlinkControlSnapshotOutput represents the schema
|
||||||
|
type UnlinkControlSnapshotOutput struct {
|
||||||
|
}
|
||||||
|
|
||||||
// UpdateAssetInput represents the schema
|
// UpdateAssetInput represents the schema
|
||||||
type UpdateAssetInput struct {
|
type UpdateAssetInput struct {
|
||||||
// Asset amount
|
// Asset amount
|
||||||
|
|||||||
Reference in New Issue
Block a user