// Code generated by msgraph.go/gen DO NOT EDIT.

package msgraph

import "context"

// AppleEnrollmentProfileAssignmentRequestBuilder is request builder for AppleEnrollmentProfileAssignment
type AppleEnrollmentProfileAssignmentRequestBuilder struct{ BaseRequestBuilder }

// Request returns AppleEnrollmentProfileAssignmentRequest
func (b *AppleEnrollmentProfileAssignmentRequestBuilder) Request() *AppleEnrollmentProfileAssignmentRequest {
	return &AppleEnrollmentProfileAssignmentRequest{
		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
	}
}

// AppleEnrollmentProfileAssignmentRequest is request for AppleEnrollmentProfileAssignment
type AppleEnrollmentProfileAssignmentRequest struct{ BaseRequest }

// Get performs GET request for AppleEnrollmentProfileAssignment
func (r *AppleEnrollmentProfileAssignmentRequest) Get(ctx context.Context) (resObj *AppleEnrollmentProfileAssignment, err error) {
	var query string
	if r.query != nil {
		query = "?" + r.query.Encode()
	}
	err = r.JSONRequest(ctx, "GET", query, nil, &resObj)
	return
}

// Update performs PATCH request for AppleEnrollmentProfileAssignment
func (r *AppleEnrollmentProfileAssignmentRequest) Update(ctx context.Context, reqObj *AppleEnrollmentProfileAssignment) error {
	return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
}

// Delete performs DELETE request for AppleEnrollmentProfileAssignment
func (r *AppleEnrollmentProfileAssignmentRequest) Delete(ctx context.Context) error {
	return r.JSONRequest(ctx, "DELETE", "", nil, nil)
}

// ApplePushNotificationCertificateRequestBuilder is request builder for ApplePushNotificationCertificate
type ApplePushNotificationCertificateRequestBuilder struct{ BaseRequestBuilder }

// Request returns ApplePushNotificationCertificateRequest
func (b *ApplePushNotificationCertificateRequestBuilder) Request() *ApplePushNotificationCertificateRequest {
	return &ApplePushNotificationCertificateRequest{
		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
	}
}

// ApplePushNotificationCertificateRequest is request for ApplePushNotificationCertificate
type ApplePushNotificationCertificateRequest struct{ BaseRequest }

// Get performs GET request for ApplePushNotificationCertificate
func (r *ApplePushNotificationCertificateRequest) Get(ctx context.Context) (resObj *ApplePushNotificationCertificate, err error) {
	var query string
	if r.query != nil {
		query = "?" + r.query.Encode()
	}
	err = r.JSONRequest(ctx, "GET", query, nil, &resObj)
	return
}

// Update performs PATCH request for ApplePushNotificationCertificate
func (r *ApplePushNotificationCertificateRequest) Update(ctx context.Context, reqObj *ApplePushNotificationCertificate) error {
	return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
}

// Delete performs DELETE request for ApplePushNotificationCertificate
func (r *ApplePushNotificationCertificateRequest) Delete(ctx context.Context) error {
	return r.JSONRequest(ctx, "DELETE", "", nil, nil)
}

// AppleUserInitiatedEnrollmentProfileRequestBuilder is request builder for AppleUserInitiatedEnrollmentProfile
type AppleUserInitiatedEnrollmentProfileRequestBuilder struct{ BaseRequestBuilder }

// Request returns AppleUserInitiatedEnrollmentProfileRequest
func (b *AppleUserInitiatedEnrollmentProfileRequestBuilder) Request() *AppleUserInitiatedEnrollmentProfileRequest {
	return &AppleUserInitiatedEnrollmentProfileRequest{
		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
	}
}

// AppleUserInitiatedEnrollmentProfileRequest is request for AppleUserInitiatedEnrollmentProfile
type AppleUserInitiatedEnrollmentProfileRequest struct{ BaseRequest }

// Get performs GET request for AppleUserInitiatedEnrollmentProfile
func (r *AppleUserInitiatedEnrollmentProfileRequest) Get(ctx context.Context) (resObj *AppleUserInitiatedEnrollmentProfile, err error) {
	var query string
	if r.query != nil {
		query = "?" + r.query.Encode()
	}
	err = r.JSONRequest(ctx, "GET", query, nil, &resObj)
	return
}

// Update performs PATCH request for AppleUserInitiatedEnrollmentProfile
func (r *AppleUserInitiatedEnrollmentProfileRequest) Update(ctx context.Context, reqObj *AppleUserInitiatedEnrollmentProfile) error {
	return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
}

// Delete performs DELETE request for AppleUserInitiatedEnrollmentProfile
func (r *AppleUserInitiatedEnrollmentProfileRequest) Delete(ctx context.Context) error {
	return r.JSONRequest(ctx, "DELETE", "", nil, nil)
}

//
type AppleUserInitiatedEnrollmentProfileSetPriorityRequestBuilder struct{ BaseRequestBuilder }

// SetPriority action undocumented
func (b *AppleUserInitiatedEnrollmentProfileRequestBuilder) SetPriority(reqObj *AppleUserInitiatedEnrollmentProfileSetPriorityRequestParameter) *AppleUserInitiatedEnrollmentProfileSetPriorityRequestBuilder {
	bb := &AppleUserInitiatedEnrollmentProfileSetPriorityRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
	bb.BaseRequestBuilder.baseURL += "/setPriority"
	bb.BaseRequestBuilder.requestObject = reqObj
	return bb
}

//
type AppleUserInitiatedEnrollmentProfileSetPriorityRequest struct{ BaseRequest }

//
func (b *AppleUserInitiatedEnrollmentProfileSetPriorityRequestBuilder) Request() *AppleUserInitiatedEnrollmentProfileSetPriorityRequest {
	return &AppleUserInitiatedEnrollmentProfileSetPriorityRequest{
		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client, requestObject: b.requestObject},
	}
}

//
func (r *AppleUserInitiatedEnrollmentProfileSetPriorityRequest) Post(ctx context.Context) error {
	return r.JSONRequest(ctx, "POST", "", r.requestObject, nil)
}
