Documentation ¶
Index ¶
- func CreateJSONLogger() *logrus.Logger
- func CreateTextLogger() *logrus.Logger
- func EndpointBuilder(endpoint string, context string, identifier interface{}) (string, error)
- func JSONPrettyPrint(input []byte) string
- func ValidateComputerExtensionAttribute(ce *ComputerExtensionAttribute) error
- type Account
- type AccountDetails
- type ApplicationInformation
- type AuthToken
- type BasicComputerGroupInfo
- type BasicComputerInfo
- type BasicMobileDeviceInfo
- type BasicPolicyInformation
- type BasicScriptInfo
- type Building
- type CertificateInformation
- type Class
- type ClassDetails
- type Classes
- type Client
- func (j *Client) AuthToken() *AuthToken
- func (j *Client) ClassDetails(identifier interface{}) (*ClassDetails, error)
- func (j *Client) Classes() ([]Class, error)
- func (j *Client) ComputerDetails(identifier interface{}) (*Computer, error)
- func (j *Client) ComputerExtensionAttrExists(identifier interface{}) bool
- func (j *Client) ComputerExtensionAttributeDetails(identifier interface{}) (*ComputerExtensionAttributeDetails, error)
- func (j *Client) ComputerExtensionAttributes() ([]ComputerExtensionAttribute, error)
- func (j *Client) ComputerGroupDetails(identifier any) (*ComputerGroup, error)
- func (j *Client) ComputerGroups() ([]BasicComputerGroupInfo, error)
- func (j *Client) Computers() ([]BasicComputerInfo, error)
- func (j *Client) CreateClass(content *Class) (*Class, error)
- func (j *Client) CreateComputerExtensionAttribute(content *ComputerExtensionAttribute) (*ComputerExtensionAttribute, error)
- func (j *Client) CreateComputerGroup(newGroup *ComputerGroupDetails) (*ComputerGroupDetails, error)
- func (j *Client) CreatePolicy(content *PolicyContents) (*PolicyContents, error)
- func (j *Client) CreateScript(content *ScriptContents) (*ScriptContents, error)
- func (j *Client) DeleteClass(identifier interface{}) (*Class, error)
- func (j *Client) DeleteComputerExtensionAttribute(identifier interface{}) (*ComputerExtensionAttribute, error)
- func (j *Client) DeleteComputerGroup(identifier any) (*ComputerGroupDetails, error)
- func (j *Client) DeletePolicy(identifier interface{}) (*PolicyGeneral, error)
- func (j *Client) DeleteScript(identifier interface{}) (*ScriptContents, error)
- func (j *Client) GetAuthToken() error
- func (j *Client) GetComputer(identifier *ComputerIdentifier) (*Computer, error)
- func (j *Client) MockAPIRequest(r *http.Request, v interface{}) (*http.Request, error)
- func (j *Client) Policies() ([]BasicPolicyInformation, error)
- func (j *Client) PolicyDetails(identifier interface{}) (*Policy, error)
- func (j *Client) ScriptDetails(identifier interface{}) (*Script, error)
- func (j *Client) Scripts() ([]BasicScriptInfo, error)
- func (j *Client) UpdateClass(identifier interface{}, content *Class) (*Class, error)
- func (j *Client) UpdateComputer(identifier *ComputerIdentifier, updates *ComputerDetails) (*ComputerDetails, error)
- func (j *Client) UpdateComputerExtensionAttribue(identifier interface{}, content *ComputerExtensionAttribute) (*ComputerExtensionAttribute, error)
- func (j *Client) UpdateComputerGroupMembers(identifier any, updates *ComputerGroupBindingChanges) (*ComputerGroupDetails, error)
- func (j *Client) UpdatePolicy(identifier interface{}, policy *PolicyContents) (*PolicyContents, error)
- func (j *Client) UpdateScript(identifier interface{}, script *ScriptContents) (*ScriptContents, error)
- type Computer
- type ComputerDetails
- type ComputerExtensionAttrInputType
- type ComputerExtensionAttribute
- type ComputerExtensionAttributeDetails
- type ComputerExtensionAttributes
- type ComputerGroup
- type ComputerGroupBindingChanges
- type ComputerGroupDetails
- type ComputerGroups
- type ComputerIdentifier
- type Computers
- type ConfigProfile
- type Department
- type DockItem
- type DockItemDetails
- type Exclusions
- type ExtensionAttribute
- type GeneralDeviceInformation
- type GeneralInformation
- type GroupInformation
- type HardwareInformation
- type Limitations
- type LocationInformation
- type ManagementAccount
- type MeetingTime
- type MobileDevice
- type MobileDevices
- type NetworkSegment
- type Option
- type Options
- type Package
- type Packages
- type ParametersList
- type Policies
- type Policy
- type PolicyAccountMaintenance
- type PolicyCategory
- type PolicyContents
- type PolicyDateLimitations
- type PolicyDiskEncryption
- type PolicyFileProcesses
- type PolicyGeneral
- type PolicyMaintenance
- type PolicyNetworkLimitations
- type PolicyOverrides
- type PolicyRebootSettings
- type PolicyScriptAssignment
- type PolicySite
- type PolicyUserInteraction
- type PrinterDetails
- type Scope
- type Script
- type ScriptContents
- type Scripts
- type SelfService
- type SelfServiceCategory
- type SelfServiceIcon
- type Site
- type Sites
- type SoftwareInformation
- type User
- type UserGroup
- type UserGroupDetails
- type UserGroupLimitations
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CreateJSONLogger ¶
CreateJSONLogger returns a new logger configured for JSON output
func CreateTextLogger ¶
CreateTextLogger returns a new logger configured for text output
func EndpointBuilder ¶
EndpointBuilder can be utilized to query a specific API context via either name or ID
func JSONPrettyPrint ¶
JSONPrettyPrint can be used to pretty print JSON API responses
func ValidateComputerExtensionAttribute ¶
func ValidateComputerExtensionAttribute(ce *ComputerExtensionAttribute) error
ValidateComputerExtensionAttribute orchestrates computer extension content validation
Types ¶
type Account ¶
type Account struct { Size int `json:"size"` Details AccountDetails `json:"account"` }
Account represents an account set up in Jamf
type AccountDetails ¶
type AccountDetails struct { Action string `json:"action"` Username string `json:"username"` Realname string `json:"realname"` Password string `json:"password"` ArchiveHomDir bool `json:"archive_home_directory"` ArchiveHomeDirPath string `json:"archive_home_directory_to"` Home string `json:"home"` Picture string `json:"picture"` Admin bool `json:"admin"` FileVaultEnabled bool `json:"filevault_enabled"` }
AccountDetails holds the specific account details
type ApplicationInformation ¶
type ApplicationInformation struct { Name string `json:"name"` Path string `json:"path"` Version string `json:"version"` }
ApplicationInformation holds information about the applications on a device
type BasicComputerGroupInfo ¶
type BasicComputerGroupInfo struct { ID int `json:"id,omitempty" xml:"id,omitempty"` Name string `json:"name,omitempty" xml:"name"` IsSmart bool `json:"is_smart" xml:"is_smart"` }
BasicComputerGroupInfo represents the information returned in a list of all computer groups from Jamf
type BasicComputerInfo ¶
type BasicComputerInfo struct {
GeneralInformation
}
BasicComputerInfo represents the information returned in a list of all computers from Jamf
type BasicMobileDeviceInfo ¶
type BasicMobileDeviceInfo struct { GeneralDeviceInformation Username string `json:"username,omitempty" xml:"username,omitempty"` }
BasicComputerInfo represents the information returned in a list of all computers from Jamf
type BasicPolicyInformation ¶
type BasicPolicyInformation struct { XMLName xml.Name `json:"-" xml:"policy,omitempty"` ID int `json:"id,omitempty" xml:"id,omitempty"` Name string `json:"name" xml:"name,omitempty"` }
BasicPolicyInformation holds the basic information for all policies in Jamf
type BasicScriptInfo ¶
type BasicScriptInfo struct { ID int `json:"id,omitempty" xml:"id,omitempty"` Name string `json:"name"` }
BasicScriptInfo holds the most basic information about the scripts available in Jamf
type CertificateInformation ¶
type CertificateInformation struct { CommonName string `json:"common_name"` Identity bool `json:"identity"` ExpiresUTC string `json:"expires_utc"` Name string `json:"name"` }
CertificateInformation holds information about certs intalled on the device
type Class ¶
type Class struct { XMLName xml.Name `json:"-" xml:"class,omitempty"` ID int `json:"id,omitempty" xml:"id,omitempty"` Source string `json:"source,omitempty" xml:"source,omitempty"` Name string `json:"name" xml:"name,omitempty"` Description string `json:"description,omitempty" xml:"description,omitempty"` Site Site `json:"site,omitempty" xml:"site,omitempty"` Students []string `json:"students,omitempty" xml:"students>student,omitempty"` Teachers []string `json:"teachers,omitempty" xml:"teachers>teacher,omitempty"` MobileDevices []BasicMobileDeviceInfo `json:"mobile_devices,omitempty" xml:"mobile_devices,omitempty"` MeetingTimes []MeetingTime `json:"meeting_times,omitempty" xml:"meeting_times,omitempty"` }
Class represents an individual mobile device class in Jamf with all its associated information
type ClassDetails ¶
type ClassDetails struct {
Details *Class `json:"class"`
}
ClassDetails holds the details for a single mobile device class
type Classes ¶
type Classes struct { List []Class `json:"classes" xml:"classes>class,omitempty"` Count int `json:"-" xml:"size"` }
Classes represents a list of mobile device classes in Jamf
type Client ¶
type Client struct { Domain string Username string Password string Endpoint string // contains filtered or unexported fields }
Client represents the interface used to communicate with the Jamf API via an HTTP client
func NewClient ¶
func NewClient(domain string, username string, password string, client *http.Client, opts ...Option) (*Client, error)
NewClient returns a new Jamf HTTP client to be used for API requests
func (*Client) ClassDetails ¶
func (j *Client) ClassDetails(identifier interface{}) (*ClassDetails, error)
ClassDetails returns the details for a specific mobile device class given its ID or Name
func (*Client) ComputerDetails ¶
ComputerDetails returns the details for a specific computer given its ID
func (*Client) ComputerExtensionAttrExists ¶
ComputerExtensionAttrExists is a helper function to check if an extension attribute exists without having to parse the response. Note: If an error occurs that doesn't include a not found message ... we log the error and return false
func (*Client) ComputerExtensionAttributeDetails ¶
func (j *Client) ComputerExtensionAttributeDetails(identifier interface{}) (*ComputerExtensionAttributeDetails, error)
ComputerExtensionAttributeDetails returns the details for a specific computer extension attribute given its ID or Name
func (*Client) ComputerExtensionAttributes ¶
func (j *Client) ComputerExtensionAttributes() ([]ComputerExtensionAttribute, error)
ComputerExtensionAttributes returns all computer extension attributes
func (*Client) ComputerGroupDetails ¶
func (j *Client) ComputerGroupDetails(identifier any) (*ComputerGroup, error)
ComputerGroupDetails returns the details for a specific group given its ID or Name
func (*Client) ComputerGroups ¶
func (j *Client) ComputerGroups() ([]BasicComputerGroupInfo, error)
ComputerGroups represents a list of computer groups in Jamf
func (*Client) Computers ¶
func (j *Client) Computers() ([]BasicComputerInfo, error)
Computers returns all enrolled computer devices
func (*Client) CreateClass ¶
CreateClass will create a new mobile device class in Jamf
func (*Client) CreateComputerExtensionAttribute ¶
func (j *Client) CreateComputerExtensionAttribute(content *ComputerExtensionAttribute) (*ComputerExtensionAttribute, error)
CreateComputerExtensionAttribute will create a computer extension attribute in Jamf
func (*Client) CreateComputerGroup ¶
func (j *Client) CreateComputerGroup(newGroup *ComputerGroupDetails) (*ComputerGroupDetails, error)
func (*Client) CreatePolicy ¶
func (j *Client) CreatePolicy(content *PolicyContents) (*PolicyContents, error)
CreatePolicy will create a policy in Jamf
func (*Client) CreateScript ¶
func (j *Client) CreateScript(content *ScriptContents) (*ScriptContents, error)
CreateScript will create a script in Jamf
func (*Client) DeleteClass ¶
DeleteClass will delete a mobile device class by either ID or Name
func (*Client) DeleteComputerExtensionAttribute ¶
func (j *Client) DeleteComputerExtensionAttribute(identifier interface{}) (*ComputerExtensionAttribute, error)
DeleteComputerExtensionAttribute will delete a computer extension attribute by either ID or Name
func (*Client) DeleteComputerGroup ¶
func (j *Client) DeleteComputerGroup(identifier any) (*ComputerGroupDetails, error)
func (*Client) DeletePolicy ¶
func (j *Client) DeletePolicy(identifier interface{}) (*PolicyGeneral, error)
DeletePolicy will delete a policy by either ID or Name
func (*Client) DeleteScript ¶
func (j *Client) DeleteScript(identifier interface{}) (*ScriptContents, error)
DeleteScript will delete a script by either ID or Name
func (*Client) GetAuthToken ¶
GetAuthToken will retrieve a bearer token using basic auth credentials which is now required for newer server versions https://developer.jamf.com/jamf-pro/docs/getting-started-2#bearer-tokens https://developer.jamf.com/jamf-pro/docs/classic-api-authentication-changes
func (*Client) GetComputer ¶
func (j *Client) GetComputer(identifier *ComputerIdentifier) (*Computer, error)
GetComputer takes in a search option and returns the details for a specific computer
func (*Client) MockAPIRequest ¶
MockAPIRequest is used for testing the API client
func (*Client) Policies ¶
func (j *Client) Policies() ([]BasicPolicyInformation, error)
Policies returns a list of policies available in the jamf client
func (*Client) PolicyDetails ¶
PolicyDetails returns the details for a specific policy given its ID or Name
func (*Client) ScriptDetails ¶
ScriptDetails returns the details for a specific script given its ID or Name
func (*Client) Scripts ¶
func (j *Client) Scripts() ([]BasicScriptInfo, error)
Scripts returns a list of scripts available in the jamf client
func (*Client) UpdateClass ¶
UpdateClass will update a mobile device class in Jamf by either ID or Name
func (*Client) UpdateComputer ¶
func (j *Client) UpdateComputer(identifier *ComputerIdentifier, updates *ComputerDetails) (*ComputerDetails, error)
UpdateComputer takes in an identifier and updated content and updates the device on the server
func (*Client) UpdateComputerExtensionAttribue ¶
func (j *Client) UpdateComputerExtensionAttribue(identifier interface{}, content *ComputerExtensionAttribute) (*ComputerExtensionAttribute, error)
UpdateComputerExtensionAttribue will update a computer extension attribute in Jamf by either ID or Name
func (*Client) UpdateComputerGroupMembers ¶
func (j *Client) UpdateComputerGroupMembers(identifier any, updates *ComputerGroupBindingChanges) (*ComputerGroupDetails, error)
UpdateComputerGroupMembers will update the members of a computer group in Jamf by either group ID or group Name
func (*Client) UpdatePolicy ¶
func (j *Client) UpdatePolicy(identifier interface{}, policy *PolicyContents) (*PolicyContents, error)
UpdatePolicy will update a policy in Jamf by either ID or Name
func (*Client) UpdateScript ¶
func (j *Client) UpdateScript(identifier interface{}, script *ScriptContents) (*ScriptContents, error)
UpdateScript will update a script in Jamf by either ID or Name
type Computer ¶
type Computer struct {
Info ComputerDetails `json:"computer" xml:"computer,omitempty"`
}
Computer represents an individual computer enrolled in Jamf with all its associated information
type ComputerDetails ¶
type ComputerDetails struct { XMLName xml.Name `json:"-" xml:"computer,omitempty"` ID int `json:"id,omitempty" xml:"id,omitempty"` General GeneralInformation `json:"general" xml:"general,omitempty"` UserLocation LocationInformation `json:"location" xml:"location,omitempty"` Hardware HardwareInformation `json:"hardware" xml:"-"` Certificates []CertificateInformation `json:"certificates" xml:"-"` Software SoftwareInformation `json:"software" xml:"-"` ExtensionAttributes []ExtensionAttribute `json:"extension_attributes" xml:"extension_attributes>extension_attribute,omitempty"` Groups GroupInformation `json:"groups_accounts" xml:"-"` ConfigProfiles []ConfigProfile `json:"configuration_profiles" xml:"configuration_profiles,omitempty"` }
type ComputerExtensionAttrInputType ¶
type ComputerExtensionAttrInputType struct { Type string `json:"type,omitempty" xml:"type,omitempty"` Platform string `json:"platform,omitempty" xml:"platform,omitempty"` Script string `json:"script,omitempty" xml:"script,omitempty"` }
ComputerExtensionAttrInputType represents an input type for a computer extension attribute in Jamf
func (*ComputerExtensionAttrInputType) ValidateInputType ¶
func (it *ComputerExtensionAttrInputType) ValidateInputType() error
ValidateInputType will validate that a computer extension attribute's input type is valid
type ComputerExtensionAttribute ¶
type ComputerExtensionAttribute struct { XMLName xml.Name `json:"-" xml:"computer_extension_attribute,omitempty"` ID int `json:"id" xml:"id,omitempty"` Name string `json:"name" xml:"name,omitempty"` Enabled bool `json:"enabled" xml:"enabled"` // we don't omit since false values are omitted if needed this can be changed to a *bool Description string `json:"description,omitempty" xml:"description,omitempty"` DataType string `json:"data_type,omitempty" xml:"data_type,omitempty"` InputType *ComputerExtensionAttrInputType `json:"input_type,omitempty" xml:"input_type,omitempty"` InventoryDisplay string `json:"inventory_display,omitempty" xml:"inventory_display,omitempty"` ReconDisplay string `json:"recon_display,omitempty" xml:"recon_display,omitempty"` }
ComputerExtensionAttribute represents an extension attribute in Jamf
func (*ComputerExtensionAttribute) ValidateDataType ¶
func (ce *ComputerExtensionAttribute) ValidateDataType() error
ValidateDataType will validate that a computer extension attribute's data type is valid
func (*ComputerExtensionAttribute) ValidateInventoryDisplay ¶
func (ce *ComputerExtensionAttribute) ValidateInventoryDisplay() error
ValidateInventoryDisplay will validate that a computer extension attribute's data type is valid
func (*ComputerExtensionAttribute) ValidateReconDisplay ¶
func (ce *ComputerExtensionAttribute) ValidateReconDisplay() error
ValidateReconDisplay will validate that a computer extension attribute's data type is valid
type ComputerExtensionAttributeDetails ¶
type ComputerExtensionAttributeDetails struct {
Details *ComputerExtensionAttribute `json:"computer_extension_attribute"`
}
ComputerExtensionAttributeDetails holds the details for a single extension attribute
type ComputerExtensionAttributes ¶
type ComputerExtensionAttributes struct {
List []ComputerExtensionAttribute `json:"computer_extension_attributes"`
}
ComputerExtensionAttributes represents all attributes that exist in Jamf
type ComputerGroup ¶
type ComputerGroup struct {
Info ComputerGroupDetails `json:"computer_group" xml:"computer_group,omitempty"`
}
ComputerGroup represents a group a device is a member of in Jamf
type ComputerGroupBindingChanges ¶
type ComputerGroupBindingChanges struct { XMLName xml.Name `json:"-" xml:"computer_group,omitempty"` Additions []GeneralInformation `xml:"computer_additions>computer"` Removals []GeneralInformation `xml:"computer_deletions>computer"` }
ComputerGroupBindingChanges represents the changes to a computer group binding when updating the members of a computer group in Jamf
type ComputerGroupDetails ¶
type ComputerGroupDetails struct { XMLName xml.Name `json:"computer_group" xml:"computer_group,omitempty"` BasicComputerGroupInfo Computers []BasicComputerInfo `json:"computers" xml:"computers>computer,omitempty"` }
ComputerGroupDetails represents the detailed information for a specific computer group
type ComputerGroups ¶
type ComputerGroups struct { List []BasicComputerGroupInfo `json:"computer_groups" xml:"computer_groups>computer_group,omitempty"` Size int `json:"size" xml:"size"` }
type ComputerIdentifier ¶
ComputerIdentifier include the searchable computer identifiers
type Computers ¶
type Computers struct {
List []BasicComputerInfo `json:"computers"`
}
Computers represents a list of computers enrolled in Jamf
type ConfigProfile ¶
type ConfigProfile struct { ID int `json:"id,omitempty"` Name string `json:"name"` UUID string `json:"uuid"` Removable bool `json:"is_removable"` }
ConfigProfile represents an active configuration profile in Jamf
type Department ¶
Department represents a department configured in Jamf that a setting can be scoped to
type DockItem ¶
type DockItem struct { Size int `json:"size"` Details *DockItemDetails `json:"dock_item"` }
DockItem represents a dock item configured in Jamf typically part of a policy
type DockItemDetails ¶
type DockItemDetails struct { ID int `json:"id,omitempty"` Name string `json:"name"` Action string `json:"action"` }
DockItemDetails holds the details for a configured dock item
type Exclusions ¶
type Exclusions struct { Computers []*BasicComputerInfo `json:"computers"` ComputerGroups []*ComputerGroup `json:"computer_groups"` Buildings []*Building `json:"buildings"` Departments []*Department `json:"departments"` Users []*User `json:"users"` UserGroups []*UserGroup `json:"user_groups"` NetworkSegments []*NetworkSegment `json:"network_segments"` }
Exclusions represents any exclusions applied to the scoping of the Jamf setting in context
type ExtensionAttribute ¶
type ExtensionAttribute struct { ID int `json:"id,omitempty" xml:"id,omitempty"` Name string `json:"name" xml:"name"` Type string `json:"type" xml:"type"` Value string `json:"value" xml:"value"` }
ExtensionAttribute holds extension attribute information for a device
type GeneralDeviceInformation ¶
type GeneralDeviceInformation struct { XMLName xml.Name `json:"-" xml:"mobile_device,omitempty"` ID int `json:"id,omitempty" xml:"id,omitempty"` Name string `json:"name" xml:"name,omitempty"` DeviceName string `json:"device_name,omitempty" xml:"device_name,omitempty"` UDID string `json:"udid,omitempty" xml:"udid,omitempty"` SerialNumber string `json:"serial_number,omitempty" xml:"serial_number,omitempty"` PhoneNumber string `json:"phone_number,omitempty" xml:"phone_number,omitempty"` WifiMACAddress string `json:"wifi_mac_address,omitempty" xml:"wifi_mac_address,omitempty"` Supervised bool `json:"supervised,omitempty" xml:"supervised,omitempty"` Model string `json:"model,omitempty" xml:"model,omitempty"` ModelIdentifier string `json:"model_identifier,omitempty" xml:"model_identifier,omitempty"` ModelDisplay string `json:"model_display,omitempty" xml:"model_display,omitempty"` }
GeneralDeviceInformation holds basic information associated with Jamf mobile device
type GeneralInformation ¶
type GeneralInformation struct { ID int `json:"id,omitempty" xml:"id,omitempty"` Name string `json:"name" xml:"name,omitempty"` MACAddress string `json:"mac_address" xml:"mac_address,omitempty"` SerialNumber string `json:"serial_number" xml:"serial_number,omitempty"` UDID string `json:"udid" xml:"udid,omitempty"` JamfVersion string `json:"jamf_version" xml:"jamf_version,omitempty"` Platform string `json:"platform" xml:"platform,omitempty"` MDMCapable bool `json:"mdm_capable" xml:"mdm_capable,omitempty"` ReportDate string `json:"report_date" xml:"report_date,omitempty"` IPAddress string `json:"ip_address" xml:"ip_address,omitempty"` LastReportedIP string `json:"last_reported_ip" xml:"last_reported_ip,omitempty"` LastEnrolledDateUTC string `json:"last_enrolled_date_utc" xml:"last_enrolled_date_utc,omitempty"` }
GeneralInformation holds basic information associated with Jamf device
type GroupInformation ¶
type GroupInformation struct { Memberships []string `json:"computer_group_memberships"` LocalAccounts []struct { Name string `json:"name"` RealName string `json:"realname"` UID string `json:"uid"` Administrator bool `json:"administrator"` FilevalutEnabled bool `json:"filevault_enabled"` } `json:"local_accounts"` }
GroupInformation holds the groups the device is a member of
type HardwareInformation ¶
type HardwareInformation struct { Make string `json:"make" xml:"make,omitempty"` OSName string `json:"os_name" xml:"os_name,omitempty"` OSVersion string `json:"os_version" xml:"os_version,omitempty"` OSBuild string `json:"os_build" xml:"os_build,omitempty"` SIPStatus string `json:"sip_status" xml:"sip_status,omitempty"` GatekeeperStatus string `json:"gatekeeper_status" xml:"gatekeeper_status,omitempty"` XProtectVersion string `json:"xprotect_version" xml:"xprotect_version,omitempty"` FilevaultUsers []string `json:"filevault2_users" xml:"filevault2_users,omitempty"` }
HardwareInformation holds the hardware specific device information
type Limitations ¶
type Limitations struct { Users []*User `json:"users,omitempty"` UserGroups []*UserGroup `json:"user_groups,omitempty"` NetworkSegments []*NetworkSegment `json:"network_segments"` }
Limitations represents any limitations related to the specific scope
type LocationInformation ¶
type LocationInformation struct { Username string `json:"username" xml:"username,omitempty"` RealName string `json:"realname" xml:"realname,omitempty"` EmailAddress string `json:"email_address" xml:"email_address,omitempty"` Position string `json:"position" xml:"position,omitempty"` Department string `json:"department" xml:"department,omitempty"` Building string `json:"building" xml:"building,omitempty"` }
LocationInformation holds the information in the User & Locations section
type ManagementAccount ¶
type ManagementAccount struct { Action string `json:"action"` ManagedPassword string `json:"managed_password"` ManagedPasswordLength string `json:"managed_password_length"` }
ManagementAccount represents a management account type
type MeetingTime ¶
type MeetingTime struct { Days string `json:"days,omitempty" xml:"days,omitempty"` StartTime string `json:"start_time,omitempty" xml:"start_time,omitempty"` EndTime string `json:"end_time,omitempty" xml:"end_time,omitempty"` }
MeetingTime holds values for a mobile device class meeting time
type MobileDevice ¶
type MobileDevice struct { Info struct { General GeneralDeviceInformation `json:"general"` } }
MobileDevice represents an individual mobile device enrolled in Jamf with all its associated information
type MobileDevices ¶
type MobileDevices struct { List []MobileDevice `json:"mobile_devices" xml:"mobile_devices>mobile_device,omitempty"` Count int `json:"-" xml:"size"` }
MobileDevices represents a list of all mobile devices enrolled in Jamf
type NetworkSegment ¶
type NetworkSegment struct { ID int `json:"id,omitempty"` Name string `json:"name"` StartingAddress string `json:"starting_address"` EndingAddress string `json:"ending_address"` }
NetworkSegment represents a network segment configured in Jamf that a setting can be scoped to
type Package ¶
type Package struct { XMLName xml.Name `json:"-" xml:"package,omitempty"` ID int `json:"id,omitempty" xml:"id,omitempty"` Name string `json:"name" xml:"name,omitempty"` Action string `json:"action" xml:"action,omitempty"` FUT bool `json:"fut" xml:"fut,omitempty"` FEU bool `json:"feu" xml:"feu,omitempty"` UpdateAutorun bool `json:"update_autorun" xml:"update_autorun,omitempty"` }
Package holds the details of a package configured in Jamf
type Packages ¶
type Packages struct {
List []*Package `json:"packages" xml:"packages>package,omitempty"`
}
Packages holds a list of package details
type ParametersList ¶
type ParametersList struct { Parameter4 string `json:"parameter4" xml:"parameter4"` Parameter5 string `json:"parameter5" xml:"parameter5"` Parameter6 string `json:"parameter6" xml:"parameter6"` Parameter7 string `json:"parameter7" xml:"parameter7"` Parameter8 string `json:"parameter8" xml:"parameter8"` Parameter9 string `json:"parameter9," xml:"parameter9"` Parameter10 string `json:"parameter10" xml:"parameter10"` Parameter11 string `json:"parameter11" xml:"parameter11"` }
ParametersList holds the potential parameters that can be specified for a script in Jamf
type Policies ¶
type Policies struct {
List []BasicPolicyInformation `json:"policies"`
}
Policies holds all policies in the configured Jamf environment
type Policy ¶
type Policy struct {
Content *PolicyContents `json:"policy" xml:"policy"`
}
Policy represents a single policy construct in Jamf
type PolicyAccountMaintenance ¶
type PolicyAccountMaintenance struct { Account []*Account `json:"accounts"` DirectoryBindings interface{} `json:"directory_bindings"` ManagementAccount *ManagementAccount `json:"management_account"` OpenFirmwareEFIPassword interface{} `json:"open_firmware_efi_password"` }
PolicyAccountMaintenance holds information about account changes controlled by this policy
type PolicyCategory ¶
type PolicyCategory struct { ID int `json:"id,omitempty" xml:"id,omitempty"` Name string `json:"name" xml:"name"` }
PolicyCategory is a policy category
type PolicyContents ¶
type PolicyContents struct { XMLName xml.Name `json:"-" xml:"policy,omitempty"` General *PolicyGeneral `json:"general" xml:"general,omitempty"` Scope *Scope `json:"scope" xml:"scope,omitempty"` SelfServices *SelfService `json:"self_service" xml:"self_service,omitempty"` PackageConfiguration *Packages `json:"package_configuration" xml:"package_configuration,omitempty"` ScriptCount int `json:"-" xml:"scripts>size,omitempty"` Scripts []*PolicyScriptAssignment `json:"scripts" xml:"scripts>script,omitempty"` Printers interface{} `json:"printers" xml:"printers,omitempty"` DockItems []*DockItem `json:"dock_items" xml:"dock_items,omitempty"` AccountMaintenance *PolicyAccountMaintenance `json:"account_maintenance" xml:"account_maintenance,omitempty"` RebootSettings *PolicyRebootSettings `json:"reboot" xml:"reboot,omitempty"` Maintenance *PolicyMaintenance `json:"maintenance" xml:"maintenance,omitempty"` FilesProcesses *PolicyFileProcesses `json:"files_processes" xml:"files_processes,omitempty"` UserInteraction *PolicyUserInteraction `json:"user_interaction" xml:"user_interaction,omitempty"` DiskEncryption *PolicyDiskEncryption `json:"disk_encryption" xml:"disk_encryption,omitempty"` }
PolicyContents represents the details associated with a given Jamf policy
type PolicyDateLimitations ¶
type PolicyDateLimitations struct { ActivationDate string `json:"activation_date" xml:"activation_date,omitempty"` ActivationDateEPOCH int `json:"activation_date_epoch" xml:"activation_date_epoch,omitempty"` ActivationDateUTC string `json:"activation_date_utc" xml:"activation_date_utc,omitempty"` ExpirationDate string `json:"expiration_date" xml:"expiration_date,omitempty"` ExpirationDateEPOCH int `json:"expiration_date_epoch" xml:"expiration_date_epoch,omitempty"` ExpirationDateUTC string `json:"expiration_date_utc" xml:"expiration_date_utc,omitempty"` NoExecuteOn struct { Day string `json:"day,omitempty" xml:"day,omitempty"` } `json:"no_execute_on" xml:"no_execute_on,omitempty"` NoExecuteStart string `json:"no_execute_start" xml:"no_execute_start,omitempty"` NoExecuteEnd string `json:"no_execute_end" xml:"no_execute_end,omitempty"` }
PolicyDateLimitations holds the date/time related config for the policy
type PolicyDiskEncryption ¶
type PolicyDiskEncryption struct { Action string `json:"action"` DiskEncryptionConfigID int `json:"disk_encryption_configuration_id"` AuthRestart bool `json:"auth_restart"` RemediateKeyType string `json:"remediate_key_type"` RemediateDiskEncryptConfigID int `json:"remediate_disk_encryption_configuration_id"` }
PolicyDiskEncryption holds information about disk encryption settings when executed
type PolicyFileProcesses ¶
type PolicyFileProcesses struct { SearchPatch string `json:"search_by_path"` DeleteFile bool `json:"delete_file"` LocateFile string `json:"locate_file"` UpdateLocateDB bool `json:"update_locate_database"` SpotlightSearch string `json:"spotlight_search"` SearchFroProcess string `json:"search_for_process"` KillProcess bool `json:"kill_process"` RunCommand string `json:"run_command"` }
PolicyFileProcesses holds information about the files processed when this policy is executed
type PolicyGeneral ¶
type PolicyGeneral struct { XMLName xml.Name `json:"-" xml:"general,omitempty"` ID int `json:"id,omitempty" xml:"id,omitempty"` Name string `json:"name" xml:"name,omitempty"` Enabled bool `json:"enabled" xml:"enabled,omitempty"` Trigger string `json:"trigger" xml:"trigger,omitempty"` TriggerCheckIn bool `json:"trigger_checkin" xml:"trigger_checkin,omitempty"` TriggerEnrollmentComplete bool `json:"trigger_enrollment_comlete" xml:"trigger_enrollment_complete,omitempty"` TriggerLogin bool `json:"trigger_login" xml:"trigger_login,omitempty"` TriggerLogout bool `json:"trigger_logout" xml:"trigger_logout,omitempty"` TriggerNetworkStateChange bool `json:"trigger_network_state_changed" xml:"trigger_network_state_changed,omitempty"` TriggerStartup bool `json:"trigger_startup" xml:"trigger_startup,omitempty"` TriggerOther string `json:"trigger_other" xml:"trigger_other,omitempty"` Frequency string `json:"frequency" xml:"frequency,omitempty"` RetryEvent string `json:"retry_event" xml:"retry_event,omitempty"` RetryAttempts int `json:"retry_attempts" xml:"retry_attempts,omitempty"` NotifyOnFailedRetry bool `json:"notify_on_each_failed_retry" xml:"notify_on_each_failed_retry,omitempty"` LocationUserOnly bool `json:"location_user_only" xml:"location_user_only,omitempty"` TargetDrive string `json:"target_drive" xml:"target_drive,omitempty"` Offline bool `json:"offline" xml:"offline,omitempty"` NetworkRequirements string `json:"network_requirements" xml:"network_requirements,omitempty"` Category *PolicyCategory `json:"category" xml:"category,omitempty"` DateTimeLimitations *PolicyDateLimitations `json:"date_time_limitations" xml:"date_time_limitations,omitempty"` NetworkLimitations *PolicyNetworkLimitations `json:"network_limitations" xml:"network_limitations,omitempty"` OverrideDefaultSettings *PolicyOverrides `json:"override_default_settings" xml:"override_default_settings,omitempty"` Site *PolicySite `json:"site" xml:"site,omitempty"` }
PolicyGeneral holds all the generic policy info
type PolicyMaintenance ¶
type PolicyMaintenance struct { Recon bool `json:"recon"` ResetName bool `json:"reset_name"` InstallAllCachedPackages bool `json:"install_all_cached_packages"` Heal bool `json:"heal"` PreBindings bool `json:"prebindings"` Permissons bool `json:"permissions"` ByHost bool `json:"byhost"` SystemCache bool `json:"system_cache"` UserCache bool `json:"user_cache"` Verify bool `json:"verify"` }
PolicyMaintenance defines how jamf handles this policy long term
type PolicyNetworkLimitations ¶
type PolicyNetworkLimitations struct { MinimumNetworkConnection string `json:"minimum_network_connection" xml:"minimum_network_connection,omitempty"` AnyIPAddress bool `json:"any_ip_address" xml:"any_ip_address,omitempty"` NetworkSegments []string `json:"network_segments" xml:"network_segments,omitempty"` }
PolicyNetworkLimitations holds the network limitations associated with a policy
type PolicyOverrides ¶
type PolicyOverrides struct { TargetDrive string `json:"target_drive" xml:"target_drive,omitempty"` DistributionPoint string `json:"distribution_point" xml:"distribution_point,omitempty"` ForceAFPSMB bool `json:"force_afp_smb" xml:"force_afp_smb,omitempty"` SUS string `json:"sus" xml:"sus,omitempty"` NetbootServer string `json:"netboot_server" xml:"netboot_server,omitempty"` }
PolicyOverrides contains overrides for the policy's default config
type PolicyRebootSettings ¶
type PolicyRebootSettings struct { Message string `json:"message"` StartupDisk string `json:"startup_disk"` SpecifyStartup string `json:"specify_startup"` NoUserLoggedIn string `json:"no_user_logged_in"` UserLoggedIn string `json:"user_logged_in"` MinutesUntilReboot int `json:"minutes_until_reboot"` StartRebootTimerImmediately bool `json:"start_reboot_timer_immediately"` FileVaultReboot bool `json:"file_value_2_reboot"` }
PolicyRebootSettings stores information about how this policy handles reboots
type PolicyScriptAssignment ¶
type PolicyScriptAssignment struct { ID int `json:"id,omitempty" xml:"id,omitempty"` Name string `json:"name" xml:"name,omitempty"` Priority string `json:"priority" xml:"priority,omitempty"` Parameter4 string `json:"parameter4" xml:"parameter4,omitempty"` Parameter5 string `json:"parameter5" xml:"parameter5,omitempty"` Parameter6 string `json:"parameter6" xml:"parameter6,omitempty"` Parameter7 string `json:"parameter7" xml:"parameter7,omitempty"` Parameter8 string `json:"parameter8" xml:"parameter8,omitempty"` Parameter9 string `json:"parameter9" xml:"parameter9,omitempty"` Parameter10 string `json:"parameter10" xml:"parameter10,omitempty"` Parameter11 string `json:"parameter11" xml:"parameter11,omitempty"` }
PolicyScriptAssignment holds the metadata related to a script assigned to a policy
type PolicySite ¶
type PolicySite struct { ID int `json:"id,omitempty" xml:"id,omitempty"` Name string `json:"name" xml:"name"` }
PolicySite holds the site configuration for a policy
type PolicyUserInteraction ¶
type PolicyUserInteraction struct { MessageStart string `json:"message_start"` MessageFinish string `json:"message_finish"` AllowUserDefer bool `json:"allow_user_to_defer"` AllowUserDeferUntilUTC string `json:"allow_deferral_until_utc"` AllowUSerDeferMinutes int `json:"allow_deferral_minutes"` }
PolicyUserInteraction holds the settings associated with user interaction when the policy runs
type PrinterDetails ¶
type PrinterDetails struct { ID int `json:"id,omitempty"` Name string `json:"name"` Action string `json:"action"` MakeDefault bool `json:"make_default"` }
PrinterDetails holds the details to a printer configured in Jamf
type Scope ¶
type Scope struct { AllComputers bool `json:"all_computers" xml:"all_computers,omitempty"` Computers []*BasicComputerInfo `json:"computers" xml:"computers>computer,omitempty"` ComputerGroups []*BasicComputerGroupInfo `json:"computer_groups" xml:"computer_groups>computer_group,omitempty"` Buildings []*Building `json:"buildings" xml:"buildings,omitempty"` Departments []*Department `json:"departments" xml:"departments,omitempty"` LimitToUsers *UserGroupLimitations `json:"limit_to_users" xml:"limit_to_users,omitempty"` Limitations *Limitations `json:"limitations" xml:"limitations,omitempty"` Exclusions *Exclusions `json:"exclusions" xml:"exclusions,omitempty"` }
Scope represents the scope of a related Jamf configuration setting or Policy
type Script ¶
type Script struct {
Content *ScriptContents `json:"script" xml:"script,omitempty"`
}
Script holds the details to a specific script queried by ID
type ScriptContents ¶
type ScriptContents struct { XMLName xml.Name `json:"-" xml:"script,omitempty"` ID int `json:"id,omitempty" xml:"id,omitempty"` Name string `json:"name" xml:"name,omitempty"` Category string `json:"category" xml:"category,omitempty"` Filename string `json:"filename" xml:"filename,omitempty"` Info string `json:"info" xml:"info,omitempty"` Notes string `json:"notes" xml:"notes,omitempty"` Priority string `json:"priority" xml:"priority,omitempty"` Parameters interface{} `json:"parameters" xml:"parameters,omitempty"` Requirements string `json:"os_requirements" xml:"os_requirements,omitempty"` Contents string `json:"script_contents" xml:"script_contents,omitempty"` EncodedContents string `json:"script_contents_encoded" xml:"script_contents_encoded,omitempty"` }
ScriptContents holds the inner content of a script in Jamf
type Scripts ¶
type Scripts struct {
List []BasicScriptInfo `json:"scripts"`
}
Scripts holds a list of all the scripts available in Jamf
type SelfService ¶
type SelfService struct { Enabled bool `json:"user_for_self_service"` DisplayName string `json:"self_service_display_name"` InstallBtnText string `json:"install_button_text"` ReInstallBtnText string `json:"reinstall_button_text"` Description string `json:"self_service_description"` ForceDescriptionView bool `json:"force_users_to_view_description"` Icon *SelfServiceIcon `json:"self_service_icon"` MainPageFeature bool `json:"feature_on_main_page"` Categories []*SelfServiceCategory `json:"self_service_categories"` Notification string `json:"notification"` NotificationSubject string `json:"notification_subject"` NotificationMessage string `json:"notification_message"` }
SelfService represents a self service configuration in Jamf i.e policy self service config
type SelfServiceCategory ¶
type SelfServiceCategory struct { Category struct { ID int `json:"id,omitempty"` Name string `json:"name"` DisplayIn bool `json:"display_in"` FeatureIn bool `json:"feature_in"` } `json:"category"` }
SelfServiceCategory holds the category associated with a policy
type SelfServiceIcon ¶
type SelfServiceIcon struct { ID int `json:"id,omitempty"` Filename string `json:"filename"` URI string `json:"uri"` }
SelfServiceIcon holds the config for a self service icon associated with a policy
type Site ¶
type Site struct { XMLName xml.Name `json:"-" xml:"site,omitempty"` ID int `json:"id,omitempty" xml:"id,omitempty"` Name string `json:"name" xml:"name,omitempty"` }
Site holds the details of a site configured in Jamf
type Sites ¶
type Sites struct { List []Site `json:"sites" xml:"sites>site,omitempty"` Count int `json:"-" xml:"size"` }
Sites holds a list of sites configured in Jamf
type SoftwareInformation ¶
type SoftwareInformation struct { UnixExecutables []string `json:"unix_executables"` InstalledByCasper []string `json:"installed_by_casper"` InstalledByInstaller []string `json:"installed_by_installer_swu"` AvailableSoftwareUpdates []string `json:"available_software_updates"` RunningServices []string `json:"running_services"` Applications []ApplicationInformation `json:"applications"` }
SoftwareInformation holds information about the software installed on a device
type UserGroup ¶
type UserGroup struct { Size int `json:"size"` Info *UserGroupDetails `json:"user_group"` }
UserGroup represents a user group configured in Jamf that a setting can be scoped to
type UserGroupDetails ¶
type UserGroupDetails struct { ID int `json:"id,omitempty"` Name string `json:"name"` IsSmart bool `json:"is_smart"` NotifyOnChange bool `json:"is_notify_on_change"` }
UserGroupDetails holds the specific details of a user group
type UserGroupLimitations ¶
type UserGroupLimitations struct {
UserGroups []*UserGroup `json:"user_groups"`
}
UserGroupLimitations represents the user groups to limit a scope to
Source Files ¶
- account_entity.go
- class.go
- class_entity.go
- client.go
- client_options.go
- computer.go
- computer_entity.go
- computer_extension_attr.go
- computer_extension_attr_entity.go
- computer_group.go
- computer_group_entity.go
- dock_item_entity.go
- jwt_auth.go
- logger.go
- mobile_device_entity.go
- package_entity.go
- policy.go
- policy_entity.go
- printer_entity.go
- scope_entity.go
- scripts.go
- scripts_entity.go
- self_service_entity.go
- site_entity.go
- utils.go