mdm

package module
Version: v0.0.0-...-aab40a0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 8, 2018 License: MIT Imports: 5 Imported by: 3

README

GoDoc Build Status

The mdm package holds structs and helper methods for payloads in Apple's Mobile Device Management protocol.
This package embeds the various payloads and responses in two structs - Payload and Response.

How an MDM server executes commands on a device.

To communicate with a device, an MDM server must create a Payload property list with a specific RequestType and additional data for each request type. Let's use the DeviceInformation request as an example:

    // create a request
	request := &CommandRequest{
		RequestType: "DeviceInformation",
		Queries:     []string{"IsCloudBackupEnabled", "BatteryLevel"},
	}

    // NewPayload will create a proper Payload based on the CommandRequest struct
	payload, err := NewPayload(request)
	if err != nil {
		log.Fatal(err)
	}

	// Encode in a plist and print to stdout
    // uses the github.com/groob/plist package
	encoder := plist.NewEncoder(os.Stdout)
	encoder.Indent("  ")
	if err := encoder.Encode(payload); err != nil {
		log.Fatal(err)
	}

Resulting command payload:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>Command</key>
    <dict>
      <key>Queries</key>
      <array>
        <string>IsCloudBackupEnabled</string>
        <string>BatteryLevel</string>
      </array>
      <key>RequestType</key>
      <string>DeviceInformation</string>
    </dict>
    <key>CommandUUID</key>
    <string>fa34b4b7-0553-4b3a-9c4b-76b8b357a622</string>
  </dict>
</plist>

An MDM server will queue this request and send a push notification to a device. When device checks in, the server will reply with the queued plist.

Once the device receives and processes the payload plist, it will reply back to the server. The response will be another plist, which can be unmarshalled into the Response struct. Below is the response to our DeviceInformation request.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>CommandUUID</key>
    <string>fa34b4b7-0553-4b3a-9c4b-76b8b357a622</string>
	<key>QueryResponses</key>
	<dict>
		<key>BatteryLevel</key>
		<real>1</real>
		<key>IsCloudBackupEnabled</key>
		<false/>
	</dict>
	<key>Status</key>
	<string>Acknowledged</string>
	<key>UDID</key>
	<string>1111111111111111111111111111111111111111</string>
</dict>
</plist>

Documentation

Overview

Package mdm is a library for managing MDM Command Payloads and responses.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AccountConfiguration

type AccountConfiguration struct {
	SkipPrimarySetupAccountCreation     bool           `plist:",omitempty" json:"skip_primary_setup_account_creation,omitempty"`
	SetPrimarySetupAccountAsRegularUser bool           `plist:",omitempty" json:"skip_primary_setup_account_as_regular_user,omitempty"`
	AutoSetupAdminAccounts              []AdminAccount `plist:",omitempty" json:"auto_setup_admin_accounts,omitempty"`
}

AccountConfiguration is an MDM command to create a primary user on OS X It allows skipping the UI to set up a user.

type AdminAccount

type AdminAccount struct {
	ShortName    string `plist:"shortName" json:"short_name"`
	FullName     string `plist:"fullName,omitempty" json:"full_name,omitempty"`
	PasswordHash data   `plist:"passwordHash" json:"password_hash"`
	Hidden       bool   `plist:"hidden,omitempty" json:"hidden,omitempty"`
}

AdminAccount is the configuration for the Admin account created during Setup Assistant

type ApplicationConfiguration

type ApplicationConfiguration struct {
	Identifier    string            `json:"identifier,omitempty"`
	Configuration map[string]string `plist:",omitempty" json:"configuration,omitempty"` // TODO: string map is temporary
}

type ApplyRedemptionCode

type ApplyRedemptionCode struct {
	Identifier     string `plist:",omitempty" json:"identifier,omitempty"`
	RedemptionCode string `plist:",omitempty" json:"redemption_code,omitempty"`
}

type AtvQueryResponses

type AtvQueryResponses struct {
}

AtvQueryResponses contains AppleTV QueryResponses

type AvailableOSUpdatesResponse

type AvailableOSUpdatesResponse []AvailableOSUpdatesResponseItem

type AvailableOSUpdatesResponseItem

type AvailableOSUpdatesResponseItem struct {
	ProductKey        string  `json:"product_key"`
	HumanReadableName string  `json:"human_readable_name"`
	ProductName       string  `json:"product_name"`
	Version           string  `json:"version"`
	Build             string  `json:"build"`
	DownloadSize      int     `json:"download_size"`
	InstallSize       float64 `json:"install_size"`

	// Each entry represents an app identifier that is closed to install this update (macOS only).
	AppIdentifiersToClose []string `json:"app_identifiers_to_close"`

	IsCritical                bool `json:"is_critical"`
	IsConfigurationDataUpdate bool `json:"is_configuration_data_update"`
	IsFirmwareUpdate          bool `json:"is_firmware_update"`
	RestartRequired           bool `json:"restart_required"`
	AllowsInstallLater        bool `json:"allows_install_later"`
}

type CertificateList

type CertificateList []CertificateListItem

CertificateList is the CertificateList MDM Command Response

type CertificateListItem

type CertificateListItem struct {
	CommonName string `json:"common_name"`
	Data       []byte `json:"data"`
	IsIdentity bool   `json:"is_identity"`
}

type CheckinCommand

type CheckinCommand struct {
	// MessageType can be either Authenticate,
	// TokenUpdate or CheckOut
	MessageType string
	Topic       string
	UDID        string
	// contains filtered or unexported fields
}

CheckinCommand represents an MDM checkin command struct

type ClearPasscode

type ClearPasscode struct {
	UnlockToken []byte `plist:",omitempty" json:"unlock_token,omitempty"`
}

type CommandRequest

type CommandRequest struct {
	UDID string `json:"udid"`
	Command
}

CommandRequest represents an MDM command request

func (*CommandRequest) UnmarshalJSON

func (c *CommandRequest) UnmarshalJSON(d []byte) error

type CommonQueryResponses

type CommonQueryResponses struct {
	UDID                  string            `json:"udid"`
	Languages             []string          `json:"languages,omitempty"`              // ATV 6+
	Locales               []string          `json:"locales,omitempty"`                // ATV 6+
	DeviceID              string            `json:"device_id"`                        // ATV 6+
	OrganizationInfo      map[string]string `json:"organization_info,omitempty"`      // IOS 7+
	LastCloudBackupDate   time.Time         `json:"last_cloud_backup_date,omitempty"` // IOS 8+
	AwaitingConfiguration bool              `json:"awaiting_configuration"`           // IOS 9+
	// iTunes
	ITunesStoreAccountIsActive bool   `json:"itunes_store_account_is_active"` // IOS 7+ OSX 10.9+
	ITunesStoreAccountHash     string `json:"itunes_store_account_hash"`      // IOS 8+ OSX 10.10+

	// Device
	DeviceName                    string  `json:"device_name"`
	OSVersion                     string  `json:"os_version"`
	BuildVersion                  string  `json:"build_version"`
	ModelName                     string  `json:"model_name"`
	Model                         string  `json:"model"`
	ProductName                   string  `json:"product_name"`
	SerialNumber                  string  `json:"serial_number"`
	DeviceCapacity                float32 `json:"device_capacity"`
	AvailableDeviceCapacity       float32 `json:"available_device_capacity"`
	BatteryLevel                  float32 `json:"battery_level,omitempty"`           // IOS 5+
	CellularTechnology            int     `json:"cellular_technology,omitempty"`     // IOS 4+
	IsSupervised                  bool    `json:"is_supervised"`                     // IOS 6+
	IsDeviceLocatorServiceEnabled bool    `json:"is_device_locator_service_enabled"` // IOS 7+
	IsActivationLockEnabled       bool    `json:"is_activation_lock_enabled"`        // IOS 7+ OSX 10.9+
	IsDoNotDisturbInEffect        bool    `json:"is_dnd_in_effect"`                  // IOS 7+
	EASDeviceIdentifier           string  `json:"eas_device_identifier"`             // IOS 7 OSX 10.9
	IsCloudBackupEnabled          bool    `json:"is_cloud_backup_enabled"`           // IOS 7.1

	// Network
	BluetoothMAC string   `json:"bluetooth_mac"`
	WiFiMAC      string   `json:"wifi_mac"`
	EthernetMACs []string `json:"ethernet_macs"` // Surprisingly works in IOS
}

CommonQueryResponses has a list of query responses common to all device types

type DEPEnrollmentRequest

type DEPEnrollmentRequest struct {
	Language string `plist:"LANGUAGE"`
	Product  string `plist:"PRODUCT"`
	Serial   string `plist:"SERIAL"`
	UDID     string `plist:"UDID"`
	Version  string `plist:"VERSION"`
	IMEI     string `plist:"IMEI,omitempty"`
	MEID     string `plist:"MEID,omitempty"`
}

DEPEnrollmentRequest is a request sent by the device to an MDM server during DEP Enrollment

type DeleteUser

type DeleteUser struct {
	UserName      string `plist:",omitempty" json:"user_name,omitempty"`
	ForceDeletion bool   `plist:",omitempty" json:"force_deletion,omitempty"`
}

type DeviceInformation

type DeviceInformation struct {
	Queries []string `plist:",omitempty" json:"queries,omitempty"`
}

DeviceInformation is a DeviceInformation MDM Command

type DeviceLock

type DeviceLock struct {
	PIN         string `json:"pin,omitempty"`
	Message     string `plist:",omitempty" json:"message,omitempty"`
	PhoneNumber string `plist:",omitempty" json:"phone_number,omitempty"`
}

type EnableLostMode

type EnableLostMode struct {
	Message     string `plist:",omitempty" json:"message,omitempty"`
	PhoneNumber string `plist:",omitempty" json:"phone_number,omitempty"`
	Footnote    string `plist:",omitempty" json:"footnote,omitempty"`
}

type EraseDevice

type EraseDevice struct {
	PIN string `plist:",omitempty" json:"pin,omitempty"`
}

type ErrorChain

type ErrorChain []ErrorChainItem

type ErrorChainItem

type ErrorChainItem struct {
	ErrorCode            int    `json:"error_code,omitempty"`
	ErrorDomain          string `json:"error_domain,omitempty"`
	LocalizedDescription string `json:"localized_description,omitempty"`
	USEnglishDescription string `json:"us_english_description,omitempty"`
}

Represents a single error in the error chain response

type InstallApplication

type InstallApplication struct {
	ITunesStoreID         int                        `plist:"iTunesStoreID,omitempty" json:"itunes_store_id,omitempty"`
	Identifier            string                     `plist:",omitempty" json:"identifier,omitempty"`
	ManifestURL           string                     `plist:",omitempty" json:"manifest_url,omitempty"`
	ManagementFlags       int                        `plist:",omitempty" json:"management_flags,omitempty"`
	NotManaged            bool                       `plist:",omitempty" json:"not_managed,omitempty"`
	ChangeManagementState string                     `plist:",omitempty" json:"change_management_state,omitempty"`
	Options               *InstallApplicationOptions `plist:",omitempty" json:"options,omitempty"`
}

InstallApplication is an InstallApplication MDM Command

type InstallApplicationConfiguration

type InstallApplicationConfiguration struct {
}

type InstallApplicationOptions

type InstallApplicationOptions struct {
	NotManaged     bool `plist:",omitempty" json:"not_managed,omitempty"`
	PurchaseMethod int  `plist:",omitempty" json:"purchase_method,omitempty"`
}

type InstallMedia

type InstallMedia struct {
	ITunesStoreID int    `plist:"iTunesStoreID,omitempty" json:"itunes_store_id,omitempty"`
	MediaURL      string `plist:",omitempty" json:"media_url,omitempty"`
	MediaType     string `json:"media_type"`
}

type InstallProfile

type InstallProfile struct {
	Payload []byte `plist:",omitempty" json:"payload,omitempty"`
}

InstallProfile is an InstallProfile MDM Command

type InstallProvisioningProfile

type InstallProvisioningProfile struct {
	ProvisioningProfile []byte `plist:",omitempty" json:"provisioning_profile,omitempty"`
}

type InstalledApplicationList

type InstalledApplicationList struct {
	Identifiers     []string `plist:",omitempty" json:"identifiers,omitempty"`
	ManagedAppsOnly bool     `plist:",omitempty" json:"managed_apps_only,omitempty"`
}

type InstalledApplicationListItem

type InstalledApplicationListItem struct {
	Identifier   string `plist:",omitempty" json:"identifier,omitempty"`
	Version      string `plist:",omitempty" json:"version,omitempty"`
	ShortVersion string `plist:",omitempty" json:"short_version,omitempty"`
	Name         string `json:"name,omitempty"`
	BundleSize   uint32 `plist:",omitempty" json:"bundle_size,omitempty"`
	DynamicSize  uint32 `plist:",omitempty" json:"dynamic_size,omitempty"`
	IsValidated  bool   `plist:",omitempty" json:"is_validated,omitempty"`
}

type InstalledApplicationListResponse

type InstalledApplicationListResponse []InstalledApplicationListItem

type InviteToProgram

type InviteToProgram struct {
	ProgramID     string `json:"program_id,omitempty"`
	InvitationURL string `json:"invitation_url,omitempty"`
}

type IosQueryResponses

type IosQueryResponses struct {
	IMEI                 string `json:"imei"`
	MEID                 string `json:"meid"`
	ModemFirmwareVersion string `json:"modem_firmware_version"`
	IsMDMLostModeEnabled bool   `json:"is_mdm_lost_mode_enabled,omitempty"` // IOS 9.3
	MaximumResidentUsers int    `json:"maximum_resident_users"`             // IOS 9.3

	// Network
	ICCID                    string `json:"iccid,omitempty"` // IOS
	CurrentCarrierNetwork    string `json:"current_carrier_network,omitempty"`
	SIMCarrierNetwork        string `json:"sim_carrier_network,omitempty"`
	SubscriberCarrierNetwork string `json:"subscriber_carrier_network,omitempty"`
	CarrierSettingsVersion   string `json:"carrier_settings_version,omitempty"`
	PhoneNumber              string `json:"phone_number,omitempty"`
	VoiceRoamingEnabled      bool   `json:"voice_roaming_enabled,omitempty"`
	DataRoamingEnabled       bool   `json:"data_roaming_enabled,omitempty"`
	IsRoaming                bool   `json:"is_roaming,omitempty"`
	PersonalHotspotEnabled   bool   `json:"personal_hotspot_enabled,omitempty"`
	SubscriberMCC            string `json:"subscriber_mcc,omitempty"`
	SubscriberMNC            string `json:"subscriber_mnc,omitempty"`
	CurrentMCC               string `json:"current_mcc,omitempty"`
	CurrentMNC               string `json:"current_mnc,omitempty"`
}

IosQueryResponses contains iOS QueryResponses

type MCAPNErrorDomain

type MCAPNErrorDomain int

type MCCertificateErrorDomain

type MCCertificateErrorDomain int

type MCDefaultsErrorDomain

type MCDefaultsErrorDomain int

type MCEmailErrorDomain

type MCEmailErrorDomain int

type MCInstallationErrorDomain

type MCInstallationErrorDomain int

type MCKeychainErrorDomain

type MCKeychainErrorDomain int

type MCMDMErrorDomain

type MCMDMErrorDomain int

type MCPasscodeErrorDomain

type MCPasscodeErrorDomain int

type MCPayloadErrorDomain

type MCPayloadErrorDomain int

type MCProfileErrorDomain

type MCProfileErrorDomain int

type MCRestrictionsErrorDomain

type MCRestrictionsErrorDomain int

type MCWebClipErrorDomain

type MCWebClipErrorDomain int

type MacosQueryResponses

type MacosQueryResponses struct {
	OSUpdateSettings   OSUpdateSettingsResponse // OSX 10.11+
	LocalHostName      string                   `json:"local_host_name,omitempty"` // OSX 10.11
	HostName           string                   `json:"host_name,omitempty"`       // OSX 10.11
	ActiveManagedUsers []string                 `json:"active_managed_users"`      // OSX 10.11
}

MacosQueryResponses contains macOS queryResponses

type ManagedApplicationAttributes

type ManagedApplicationAttributes struct {
	Identifiers []string `plist:",omitempty" json:"identifiers,omitempty"`
}

type ManagedApplicationConfiguration

type ManagedApplicationConfiguration struct {
	Identifiers []string `plist:",omitempty" json:"identifiers,omitempty"`
}

type ManagedApplicationFeedback

type ManagedApplicationFeedback struct {
	Identifiers    []string `plist:",omitempty" json:"identifiers,omitempty"`
	DeleteFeedback bool     `plist:",omitempty" json:"delete_feedback,omitempty"`
}

type ManagedApplicationList

type ManagedApplicationList struct {
	Identifiers []string `plist:",omitempty" json:"identifiers,omitempty"`
}

type NSPOSIXErrorDomain

type NSPOSIXErrorDomain int

type OSUpdate

type OSUpdate struct {
	ProductKey string `json:"product_key"`
	/*
		One of the following:
		Default: Download and/or install the software update, depending on the current device state. See the UpdateResults dictionary, below, to determine which InstallAction is scheduled.
		DownloadOnly: Download the software update without installing it.
		InstallASAP: Install an already downloaded software update.
		NotifyOnly: Download the software update and notify the user via the App Store (macOS only).
		InstallLater: Download the software update and install it at a later time (macOS only).
	*/
	InstallAction string `json:"install_action"`
}

type OSUpdateSettingsResponse

type OSUpdateSettingsResponse struct {
	AutoCheckEnabled                bool      `json:"auto_check_enabled"`
	AutomaticAppInstallationEnabled bool      `json:"automatic_app_installation_enabled"`
	AutomaticOSInstallationEnabled  bool      `json:"automatic_os_installation_enabled"`
	AutomaticSecurityUpdatesEnabled bool      `json:"automatic_security_updates_enabled"`
	BackgroundDownloadEnabled       bool      `json:"background_download_enabled"`
	CatalogURL                      string    `json:"catalog_url"`
	IsDefaultCatalog                bool      `json:"is_default_catalog"`
	PerformPeriodicCheck            bool      `json:"perform_periodic_check"`
	PreviousScanDate                time.Time `json:"previous_scan_date"`
	PreviousScanResult              int       `json:"previous_scan_result"`
}

OSUpdateSettingsResponse contains information about macOS update settings.

type OSUpdateStatusResponse

type OSUpdateStatusResponse []OSUpdateStatusResponseItem

type OSUpdateStatusResponseItem

type OSUpdateStatusResponseItem struct {
	ProductKey              string  `json:"product_key"`
	IsDownloaded            bool    `json:"is_downloaded"`
	DownloadPercentComplete float64 `json:"download_percent_complete"`
	/*
		The status of this update. Possible values are:
		Idle: No action is being taken on this software update.
		Downloading: The software update is being downloaded.
		Installing: The software update is being installed. This status may not be returned if the device must reboot during installation.
	*/
	Status string `json:"status"`
}

type Payload

type Payload struct {
	CommandUUID string
	Command     *Command
}

Payload is an MDM payload

func NewPayload

func NewPayload(request *CommandRequest) (*Payload, error)

type PayloadContentItem

type PayloadContentItem struct {
	PayloadDescription  string `json:"payload_description"`
	PayloadDisplayName  string `json:"payload_display_name"`
	PayloadIdentifier   string `json:"payload_identifier"`
	PayloadOrganization string `json:"payload_organization"`
	PayloadVersion      int    `json:"payload_version"`
}

type ProfileList

type ProfileList []ProfileListItem

type ProfileListItem

type ProfileListItem struct {
	HasRemovalPasscode       bool                 `json:"has_removal_passcode"`
	IsEncrypted              bool                 `json:"is_encrypted"`
	PayloadContent           []PayloadContentItem `json:"payload_content,omitempty" plist:",omitempty"`
	PayloadDescription       string               `json:"payload_description"`
	PayloadDisplayName       string               `json:"payload_display_name"`
	PayloadIdentifier        string               `json:"payload_identifier"`
	PayloadOrganization      string               `json:"payload_organization"`
	PayloadRemovalDisallowed bool                 `json:"payload_removal_disallowed"`
	PayloadUUID              string               `json:"payload_uuid"`
	PayloadVersion           int                  `json:"payload_version"`
}

type ProvisioningProfileListItem

type ProvisioningProfileListItem struct {
	Name       string    `plist:",omitempty" json:"name,omitempty"`
	UUID       string    `plist:",omitempty" json:"uuid,omitempty"`
	ExpiryDate time.Time `plist:",omitempty" json:"expiry_date,omitempty"`
}

type ProvisioningProfileListResponse

type ProvisioningProfileListResponse []ProvisioningProfileListItem

type QueryResponses

QueryResponses is a DeviceInformation MDM Command Response

type RemoveApplication

type RemoveApplication struct {
	Identifier string `json:"identifier,omitempty"`
}

type RemoveMedia

type RemoveMedia struct {
	MediaType     string `json:"media_type"`
	ITunesStoreID int    `plist:"iTunesStoreID,omitempty" json:"itunes_store_id,omitempty"`
	PersistentID  string `plist:",omitempty" json:"persistent_id,omitempty"`
}

type RemoveProfile

type RemoveProfile struct {
	Identifier string `plist:",omitempty" json:"identifier,omitempty"`
}

type RemoveProvisioningProfile

type RemoveProvisioningProfile struct {
	UUID string `plist:",omitempty" json:"uuid,omitempty"`
}

type RequestMirroring

type RequestMirroring struct {
	DestinationName     string `plist:",omitempty" json:"destination_name,omitempty"`
	DestinationDeviceID string `plist:",omitempty" json:"destination_device_id,omitempty"`
	ScanTime            string `plist:",omitempty" json:"scan_time,omitempty"`
	Password            string `plist:",omitempty" json:"password,omitempty"`
}

type RequestMirroringResponse

type RequestMirroringResponse struct {
	MirroringResult string `json:"mirroring_result,omitempty"`
}

type Response

type Response struct {
	UDID                     string
	UserID                   *string `json:"user_id,omitempty" plist:"UserID,omitempty"`
	Status                   string
	CommandUUID              string
	RequestType              string                           `json:"request_type,omitempty" plist:",omitempty"`
	ErrorChain               []ErrorChainItem                 `json:"error_chain" plist:",omitempty"`
	QueryResponses           QueryResponses                   `json:"query_responses,omitempty" plist:",omitempty"`
	SecurityInfo             SecurityInfo                     `json:"security_info,omitempty" plist:",omitempty"`
	CertificateList          CertificateList                  `json:"certificate_list,omitempty" plist:",omitempty"`
	InstalledApplicationList InstalledApplicationListResponse `json:"installed_application_list,omitempty" plist:",omitempty"`
	ScheduleOSUpdateScan     ScheduleOSUpdateScanResponse     `json:"schedule_os_update_scan"`
	OSUpdateStatus           OSUpdateStatusResponse           `json:"os_update_status,omitempty" plist:",omitempty"`
	AvailableOSUpdates       AvailableOSUpdatesResponse       `json:"available_os_updates,omitempty" plist:",omitempty"`
	ProfileList              ProfileList                      `json:"profile_list,omitempty" plist:",omitempty"`
}

Response is an MDM Command Response

type Restrictions

type Restrictions struct {
	ProfileRestrictions bool `plist:",omitempty" json:"restrictions,omitempty"`
}

type ScheduleOSUpdate

type ScheduleOSUpdate struct {
	Updates []OSUpdate `plist:",omitempty" json:"updates,omitempty"`
}

ScheduleOSUpdate runs update(s) immediately

type ScheduleOSUpdateScan

type ScheduleOSUpdateScan struct {
	Force bool `plist:",omitempty" json:"force,omitempty"`
}

ScheduleOSUpdateScan schedules a (background) OS SoftwareUpdate check

type ScheduleOSUpdateScanResponse

type ScheduleOSUpdateScanResponse struct {
	ScanInitiated bool `json:"scan_initiated"`
}

type SecurityInfo

type SecurityInfo struct {
	FDEEnabled                     bool `json:"fde_enabled,omitempty"` // OSX
	FDEHasPersonalRecoveryKey      bool `json:"fde_has_personal_recovery_key,omitempty"`
	FDEHasInstitutionalRecoveryKey bool `json:"fde_has_institutional_recovery_key,omitempty"`

	HardwareEncryptionCaps        int  `json:"hardware_encryption_caps,omitempty"` // iOS
	PasscodeCompliant             bool `json:"passcode_compliant,omitempty"`
	PasscodeCompliantWithProfiles bool `json:"passcode_compliant_with_profiles,omitempty"`
	PasscodePresent               bool `json:"passcode_present,omitempty"`
}

SecurityInfo is the SecurityInfo MDM Command Response

type Setting

type Setting struct {
	Item       string            `json:"item"`
	Enabled    *bool             `plist:",omitempty" json:"enabled,omitempty"`
	DeviceName *string           `plist:",omitempty" json:"device_name,omitempty"`
	HostName   *string           `plist:",omitempty" json:"hostname,omitempty"`
	Identifier *string           `plist:",omitempty" json:"identifier"`
	Attributes map[string]string `plist:",omitempty" json:"attributes,omitempty"`
}

type Settings

type Settings struct {
	Settings []Setting `plist:",omitempty" json:"settings,omitempty"`
}

type UsersListItem

type UsersListItem struct {
	UserName      string `json:"user_name,omitempty"`
	HasDataToSync bool   `json:"has_data_to_sync,omitempty"`
	DataQuota     int    `json:"data_quota,omitempty"`
	DataUsed      int    `json:"data_used,omitempty"`
}

type UsersListResponse

type UsersListResponse []UsersListItem

type ValidateApplications

type ValidateApplications struct {
	Identifiers []string `plist:",omitempty" json:"identifiers,omitempty"`
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
t or T : Toggle theme light dark auto
y or Y : Canonical URL