Documentation
¶
Index ¶
- func FormatJSONResponse(data interface{}) (string, error)
- func FormatListResponse(items interface{}, itemType string) (string, error)
- func GetBoolArgument(args map[string]interface{}, key string, required bool) (bool, error)
- func GetIntArgument(args map[string]interface{}, key string, required bool) (int, error)
- func GetStringArgument(args map[string]interface{}, key string, required bool) (string, error)
- func GetStringSliceArgument(args map[string]interface{}, key string, required bool) ([]string, error)
- type BaseToolset
- type ComputerInventoryToolset
- type ComputersToolset
- type Factory
- type JamfProClient
- type MobileDevicesToolset
- type MockJamfProClient
- type PoliciesToolset
- type ScriptsToolset
- type Toolset
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func FormatJSONResponse ¶
FormatJSONResponse formats a response as pretty-printed JSON
func FormatListResponse ¶
FormatListResponse formats a list response with count information - FIXED: Better type handling
func GetBoolArgument ¶
GetBoolArgument safely gets a boolean argument
func GetIntArgument ¶
GetIntArgument safely gets an integer argument
func GetStringArgument ¶
GetStringArgument safely gets a string argument
Types ¶
type BaseToolset ¶
type BaseToolset struct {
// contains filtered or unexported fields
}
BaseToolset provides common functionality for all toolsets
func NewBaseToolset ¶
func NewBaseToolset(name, description string, client JamfProClient, logger *zap.Logger) *BaseToolset
NewBaseToolset creates a new base toolset
func (*BaseToolset) AddTool ¶
func (b *BaseToolset) AddTool(tool mcp.Tool)
AddTool adds a tool to the toolset
func (*BaseToolset) GetClient ¶
func (b *BaseToolset) GetClient() JamfProClient
GetClient returns the Jamf Pro client
func (*BaseToolset) GetDescription ¶
func (b *BaseToolset) GetDescription() string
GetDescription returns the description of the toolset
func (*BaseToolset) GetLogger ¶
func (b *BaseToolset) GetLogger() *zap.Logger
GetLogger returns the logger
func (*BaseToolset) GetName ¶
func (b *BaseToolset) GetName() string
GetName returns the name of the toolset
func (*BaseToolset) GetTools ¶
func (b *BaseToolset) GetTools() []mcp.Tool
GetTools returns the list of tools
type ComputerInventoryToolset ¶
type ComputerInventoryToolset struct {
*BaseToolset
}
ComputerInventoryToolset handles computer inventory operations using Jamf Pro API
func NewComputerInventoryToolset ¶
func NewComputerInventoryToolset(client JamfProClient, logger *zap.Logger) *ComputerInventoryToolset
NewComputerInventoryToolset creates a new computer inventory toolset
func (*ComputerInventoryToolset) ExecuteTool ¶
func (c *ComputerInventoryToolset) ExecuteTool(ctx context.Context, toolName string, arguments map[string]interface{}) (string, error)
ExecuteTool executes a computer inventory-related tool
type ComputersToolset ¶
type ComputersToolset struct {
*BaseToolset
}
ComputersToolset handles computer-related operations using Jamf Pro Classic API
func NewComputersToolset ¶
func NewComputersToolset(client JamfProClient, logger *zap.Logger) *ComputersToolset
NewComputersToolset creates a new computers toolset
func (*ComputersToolset) ExecuteTool ¶
func (c *ComputersToolset) ExecuteTool(ctx context.Context, toolName string, arguments map[string]interface{}) (string, error)
ExecuteTool executes a computer-related tool
func (*ComputersToolset) GetComputerTemplate ¶
func (c *ComputersToolset) GetComputerTemplate() *jamfpro.ResponseComputer
GetComputerTemplate returns an example template of a computer resource
type Factory ¶
type Factory struct {
// contains filtered or unexported fields
}
Factory creates toolsets
func NewFactory ¶
func NewFactory(client JamfProClient, logger *zap.Logger) *Factory
NewFactory creates a new toolset factory
type JamfProClient ¶
type JamfProClient interface { // Common methods GetJamfProInformation() (*jamfpro.ResponseJamfProInformation, error) // Computer methods (Classic API) GetComputers() (*jamfpro.ResponseComputersList, error) GetComputerByID(id string) (*jamfpro.ResponseComputer, error) GetComputerByName(name string) (*jamfpro.ResponseComputer, error) GetComputerGroups() (*jamfpro.ResponseComputerGroupsList, error) GetComputerGroupByID(id string) (*jamfpro.ResourceComputerGroup, error) CreateComputer(computer jamfpro.ResponseComputer) (*jamfpro.ResponseComputer, error) UpdateComputerByID(id string, computer jamfpro.ResponseComputer) (*jamfpro.ResponseComputer, error) UpdateComputerByName(name string, computer jamfpro.ResponseComputer) (*jamfpro.ResponseComputer, error) DeleteComputerByID(id string) error DeleteComputerByName(name string) error // Computer Inventory methods (Pro API) GetComputersInventory(params url.Values) (*jamfpro.ResponseComputerInventoryList, error) GetComputerInventoryByID(id string) (*jamfpro.ResourceComputerInventory, error) GetComputerInventoryByName(name string) (*jamfpro.ResourceComputerInventory, error) UpdateComputerInventoryByID(id string, inventory *jamfpro.ResourceComputerInventory) (*jamfpro.ResourceComputerInventory, error) DeleteComputerInventoryByID(id string) error // FileVault methods GetComputersFileVaultInventory(params url.Values) (*jamfpro.FileVaultInventoryList, error) GetComputerFileVaultInventoryByID(id string) (*jamfpro.FileVaultInventory, error) GetComputerRecoveryLockPasswordByID(id string) (*jamfpro.ResponseRecoveryLockPassword, error) // Device management methods RemoveComputerMDMProfile(id string) (*jamfpro.ResponseRemoveMDMProfile, error) EraseComputerByID(id string, request jamfpro.RequestEraseDeviceComputer) error // Attachment methods UploadAttachmentAndAssignToComputerByID(computerID string, filePaths []string) (*jamfpro.ResponseUploadAttachment, error) DeleteAttachmentByIDAndComputerID(computerID, attachmentID string) error // Mobile Device methods (Classic API) GetMobileDevices() (*jamfpro.ResponseMobileDeviceList, error) GetMobileDeviceByID(id string) (*jamfpro.ResourceMobileDevice, error) GetMobileDeviceByName(name string) (*jamfpro.ResourceMobileDevice, error) GetMobileDeviceGroups() (*jamfpro.ResponseMobileDeviceGroupsList, error) GetMobileDeviceGroupByID(id string) (*jamfpro.ResourceMobileDeviceGroup, error) GetMobileDeviceApplications() (*jamfpro.ResponseMobileDeviceApplicationsList, error) GetMobileDeviceConfigurationProfiles() (*jamfpro.ResponseMobileDeviceConfigurationProfilesList, error) CreateMobileDevice(device *jamfpro.ResourceMobileDevice) (*jamfpro.ResourceMobileDevice, error) UpdateMobileDeviceByID(id string, device *jamfpro.ResourceMobileDevice) (*jamfpro.ResourceMobileDevice, error) DeleteMobileDeviceByID(id string) error // Policies methods (Classic API) - FIXED: Corrected return types GetPolicies() (*jamfpro.ResponsePoliciesList, error) GetPolicyByID(id string) (*jamfpro.ResourcePolicy, error) GetPolicyByName(name string) (*jamfpro.ResourcePolicy, error) GetPolicyByCategory(category string) (*jamfpro.ResponsePoliciesList, error) GetPoliciesByType(createdBy string) (*jamfpro.ResponsePoliciesList, error) CreatePolicy(policy *jamfpro.ResourcePolicy) (*jamfpro.ResponsePolicyCreateAndUpdate, error) UpdatePolicyByID(id string, policy *jamfpro.ResourcePolicy) (*jamfpro.ResponsePolicyCreateAndUpdate, error) UpdatePolicyByName(name string, policy *jamfpro.ResourcePolicy) (*jamfpro.ResponsePolicyCreateAndUpdate, error) DeletePolicyByID(id string) error DeletePolicyByName(name string) error // Scripts methods (Pro API) GetScripts(params url.Values) (*jamfpro.ResponseScriptsList, error) GetScriptByID(id string) (*jamfpro.ResourceScript, error) GetScriptByName(name string) (*jamfpro.ResourceScript, error) CreateScript(script *jamfpro.ResourceScript) (*jamfpro.ResponseScriptCreate, error) UpdateScriptByID(id string, script *jamfpro.ResourceScript) (*jamfpro.ResourceScript, error) UpdateScriptByName(name string, script *jamfpro.ResourceScript) (*jamfpro.ResourceScript, error) DeleteScriptByID(id string) error DeleteScriptByName(name string) error }
JamfProClient defines the interface for Jamf Pro API client This allows for dependency injection and easier testing
type MobileDevicesToolset ¶
type MobileDevicesToolset struct {
*BaseToolset
}
MobileDevicesToolset handles mobile device-related operations
func NewMobileDevicesToolset ¶
func NewMobileDevicesToolset(client JamfProClient, logger *zap.Logger) *MobileDevicesToolset
NewMobileDevicesToolset creates a new mobile devices toolset
func (*MobileDevicesToolset) ExecuteTool ¶
func (*MobileDevicesToolset) GetMobileDeviceTemplate ¶
func (m *MobileDevicesToolset) GetMobileDeviceTemplate() *jamfpro.ResourceMobileDevice
GetMobileDeviceTemplate returns an example template of a mobile device resource
type MockJamfProClient ¶
type MockJamfProClient struct { mock.Mock *jamfpro.Client // Embed the real client to satisfy interface requirements }
MockJamfProClient implements the jamfpro.Client interface for testing
type PoliciesToolset ¶
type PoliciesToolset struct {
*BaseToolset
}
PoliciesToolset handles policy-related operations using Jamf Pro Classic API
func NewPoliciesToolset ¶
func NewPoliciesToolset(client JamfProClient, logger *zap.Logger) *PoliciesToolset
NewPoliciesToolset creates a new policies toolset
func (*PoliciesToolset) ExecuteTool ¶
func (p *PoliciesToolset) ExecuteTool(ctx context.Context, toolName string, arguments map[string]interface{}) (string, error)
ExecuteTool executes a policy-related tool
type ScriptsToolset ¶
type ScriptsToolset struct {
*BaseToolset
}
ScriptsToolset handles script-related operations using Jamf Pro API
func NewScriptsToolset ¶
func NewScriptsToolset(client JamfProClient, logger *zap.Logger) *ScriptsToolset
NewScriptsToolset creates a new scripts toolset
func (*ScriptsToolset) ExecuteTool ¶
func (s *ScriptsToolset) ExecuteTool(ctx context.Context, toolName string, arguments map[string]interface{}) (string, error)
ExecuteTool executes a script-related tool
func (*ScriptsToolset) GetScriptTemplate ¶
func (s *ScriptsToolset) GetScriptTemplate() *jamfpro.ResourceScript
GetScriptTemplate returns an example template of a script resource
type Toolset ¶
type Toolset interface { // GetName returns the name of the toolset GetName() string // GetDescription returns the description of the toolset GetDescription() string // GetTools returns the list of tools provided by this toolset GetTools() []mcp.Tool // ExecuteTool executes a specific tool with the given arguments ExecuteTool(ctx context.Context, toolName string, arguments map[string]interface{}) (string, error) }
Toolset represents a collection of related tools