Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package main

import (
"encoding/json"
"fmt"
"log"

"github.com/deploymenttheory/go-api-sdk-jamfpro/sdk/jamfpro"
)

func main() {
// Define the path to the JSON configuration file
configFilePath := "/Users/ecanault/.go/jamfpro/clientconfig.json"

// Initialize the Jamf Pro client with the HTTP client configuration
client, err := jamfpro.BuildClientWithConfigFile(configFilePath)
if err != nil {
log.Fatalf("Failed to initialize Jamf Pro client: %v", err)
}

reenrollmentSettingsInfo, err := client.GetReenrollmentSettings()
if err != nil {
log.Fatalf("Failed to get re-enrollment settings info, %v", err)
}

reenrollmentSettingsInfoJson, err := json.MarshalIndent(reenrollmentSettingsInfo, "", " ")
if err != nil {
log.Fatalf("Failed to marshal json, %v", err)
}

fmt.Println(string(reenrollmentSettingsInfoJson))
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package main

import (
"encoding/json"
"fmt"
"log"

"github.com/deploymenttheory/go-api-sdk-jamfpro/sdk/jamfpro"
)

func main() {
// Define the path to the JSON configuration file
configFilePath := "/Users/ecanault/.go/jamfpro/clientconfig.json"

// Initialize the Jamf Pro client with the HTTP client configuration
client, err := jamfpro.BuildClientWithConfigFile(configFilePath)
if err != nil {
log.Fatalf("Failed to initialize Jamf Pro client: %v", err)
}

settingsUpdate := jamfpro.ResourceReenrollmentSettings{
FlushPolicyHistory: true,
FlushLocationInformation: true,
FlushLocationInformationHistory: true,
FlushExtensionAttributes: true,
FlushSoftwareUpdatePlans: true,
FlushMdmQueue: "DELETE_EVERYTHING",
}

reenrollmentSettingsInfo, err := client.UpdateReenrollmentSettings(settingsUpdate)
if err != nil {
log.Fatalf("Failed to get client checkin info, %v", err)
}

reenrollmentSettingsInfoJson, err := json.MarshalIndent(reenrollmentSettingsInfo, "", " ")
if err != nil {
log.Fatalf("Failed to marshal json, %v", err)
}

fmt.Println(string(reenrollmentSettingsInfoJson))
}
58 changes: 58 additions & 0 deletions sdk/jamfpro/jamfproapi_reenrollment.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
// jamfproapi_reenrollment.go
// Jamf Pro Api - Re-enrollment (preview)
// api reference: https://developer.jamf.com/jamf-pro/reference/get_v1-reenrollment
// Jamf Pro API requires the structs to support a JSON data structure.

package jamfpro

import "fmt"

const uriReenrollmentSettings = "/api/v1/reenrollment"

// Structs

// Resource

type ResourceReenrollmentSettings struct {
FlushPolicyHistory bool `json:"isFlushPolicyHistoryEnabled"`
FlushLocationInformation bool `json:"isFlushLocationInformationEnabled"`
FlushLocationInformationHistory bool `json:"isFlushLocationInformationHistoryEnabled"`
FlushExtensionAttributes bool `json:"isFlushExtensionAttributesEnabled"`
FlushSoftwareUpdatePlans bool `json:"isFlushSoftwareUpdatePlansEnabled"`
FlushMdmQueue string `json:"flushMDMQueue"`
}

// CRUD

func (c *Client) GetReenrollmentSettings() (*ResourceReenrollmentSettings, error) {
endpoint := uriReenrollmentSettings

var out ResourceReenrollmentSettings
resp, err := c.HTTP.DoRequest("GET", endpoint, nil, &out)
if err != nil {
return nil, fmt.Errorf(errMsgFailedGet, "re-enrollment settings", err)
}

if resp != nil && resp.Body != nil {
defer resp.Body.Close()
}

return &out, nil
}

func (c *Client) UpdateReenrollmentSettings(settingsUpdate ResourceReenrollmentSettings) (*ResourceReenrollmentSettings, error) {
endpoint := uriReenrollmentSettings

var out ResourceReenrollmentSettings
resp, err := c.HTTP.DoRequest("PUT", endpoint, settingsUpdate, &out)
if err != nil {
return nil, fmt.Errorf(errMsgFailedUpdate, "re-enrollment settings", err)
}

if resp != nil && resp.Body != nil {
defer resp.Body.Close()
}

return &out, nil

}
Loading