Documentation
¶
Overview ¶
Package dep is a client library for Apple's Device Enrollment Program
Configure and create an http client passing the Oauth credentials from the server token.
config := dep.Config{
ConsumerKey: "CK_3a419c0b",
ConsumerSecret: "CS_3fb23281",
AccessToken: "AT_O8473841",
AccessSecret: "AS_9d141598",
}
client := dep.NewClient(config)
Use the new DEP client:
account, err := client.Account()
if err != nil {
// handle err
}
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Account ¶
type Account struct {
ServerName string `json:"server_name"`
ServerUUID string `json:"server_uuid"`
AdminID string `json:"admin_id"`
FacilitatorID string `json:"facilitator_id,omitempty"` //deprecated
OrgName string `json:"org_name"`
OrgEmail string `json:"org_email"`
OrgPhone string `json:"org_phone"`
OrgAddress string `json:"org_address"`
URLs []string `json:"urls"`
}
Account is a DEP account
type AccountService ¶
AccountService communicates with the DEP Account Details endpoint
account, err := client.Account()
type Client ¶
type Client interface {
AccountService
DeviceService
ProfileService
}
Client interacts with DEP
type Config ¶
type Config struct {
ConsumerKey string //given by apple
ConsumerSecret string //given by apple
AccessToken string //given by apple
AccessSecret string //given by apple
AuthSessionToken string //requested from DEP using above credentials
// contains filtered or unexported fields
}
Config is a configuration struct for DEP
type Device ¶
type Device struct {
SerialNumber string `json:"serial_number"`
Model string `json:"model"`
Description string `json:"description"`
Color string `json:"color"`
AssetTag string `json:"asset_tag"`
ProfileStatus string `json:"profile_status"`
ProfileUUID string `json:"profile_uuid,omitempty"`
ProfileAssignTime time.Time `json:"profile_assign_time,omitempty"`
ProfilePushTime time.Time `json:"profile_push_time,omitempty"`
DeviceAssignedDate time.Time `json:"device_assigned_date,omitempty"`
DeviceAssignedBy string `json:"device_assigned_by,omitempty"`
OS string `json:"os,omitempty"`
DeviceFamily string `json:"device_family,omitempty"`
// sync fields
OpType string `json:"op_type,omitempty"`
OpDate time.Time `json:"op_date,omitempty"`
}
Device is a DEP device
type DeviceDetailsResponse ¶
DeviceDetailsResponse is a response for a DeviceDetails request
type DeviceRequestOption ¶
type DeviceRequestOption func(*deviceRequestOpts) error
DeviceRequestOption is an optional parameter for the DeviceService API. The option can be used to set Cursor or Limit options for the request.
func Cursor ¶
func Cursor(cursor string) DeviceRequestOption
Cursor is an optional argument that can be added to FetchDevices
func Limit ¶
func Limit(limit int) DeviceRequestOption
Limit is an optional argument that can be passed to FetchDevices and SyncDevices
type DeviceResponse ¶
type DeviceResponse struct {
Devices []Device `json:"devices"`
Cursor string `json:"cursor"`
FetchedUntil time.Time `json:"fetched_until"`
MoreToFollow bool `json:"more_to_follow"`
}
DeviceResponse is a DEP FetchDevices response
type DeviceService ¶
type DeviceService interface {
FetchDevices(opts ...DeviceRequestOption) (*DeviceResponse, error)
SyncDevices(cursor string, opts ...DeviceRequestOption) (*DeviceResponse, error)
DeviceDetails(devices []string) (*DeviceDetailsResponse, error)
}
DeviceService allows fetching and syncing devices, as well as requesting device details
Use (Cursor() and Limit() as optional arguments for Fetch Devices, example:
fetchResponse, err := client.FetchDevices(dep.Limit(100))
if err != nil {
// handle err
}
fmt.Println(fetchResponse.Devices)
type Profile ¶
type Profile struct {
ProfileName string `json:"profile_name"`
URL string `json:"url"`
AllowPairing bool `json:"allow_pairing,omitempty"`
IsSupervised bool `json:"is_supervised,omitempty"`
IsMultiUser bool `json:"is_multi_user,omitempty"`
IsMandatory bool `json:"is_mandatory,omitempty"`
AwaitDeviceConfigured bool `json:"await_device_configured,omitempty"`
IsMDMRemovable bool `json:"is_mdm_removable"`
SupportPhoneNumber string `json:"support_phone_number,omitempty"`
AutoAdvanceSetup bool `json:"auto_advance_setup,omitempty"`
SupportEmailAddress string `json:"support_email_address,omitempty"`
OrgMagic string `json:"org_magic"`
AnchorCerts []string `json:"anchor_certs,omitempty"`
SupervisingHostCerts []string `json:"supervising_host_certs,omitempty"`
SkipSetupItems []string `json:"skip_setup_items,omitempty"`
Department string `json:"department,omitempty"`
Devices []string `json:"devices"`
}
Profile is a DEP setup profile. The profile can be defined, assigned and fetched.
type ProfileResponse ¶
type ProfileResponse struct {
ProfileUUID string `json:"profile_uuid"`
Devices map[string]string `json:"devices"`
}
ProfileResponse is the response body for Define Profile
type ProfileService ¶
type ProfileService interface {
DefineProfile(profile *Profile) (*ProfileResponse, error)
AssignProfile(profileUUID string, devices []string) (*ProfileResponse, error)
FetchProfile(profileUUID string) (*Profile, error)
}
ProfileService allows Defining, Assigning and Fetching profiles from DEP