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

package msgraph

import "context"

// IntuneBrandingProfileRequestBuilder is request builder for IntuneBrandingProfile
type IntuneBrandingProfileRequestBuilder struct{ BaseRequestBuilder }

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

// IntuneBrandingProfileRequest is request for IntuneBrandingProfile
type IntuneBrandingProfileRequest struct{ BaseRequest }

// Get performs GET request for IntuneBrandingProfile
func (r *IntuneBrandingProfileRequest) Get(ctx context.Context) (resObj *IntuneBrandingProfile, 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 IntuneBrandingProfile
func (r *IntuneBrandingProfileRequest) Update(ctx context.Context, reqObj *IntuneBrandingProfile) error {
	return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
}

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

// IntuneBrandingProfileAssignmentRequestBuilder is request builder for IntuneBrandingProfileAssignment
type IntuneBrandingProfileAssignmentRequestBuilder struct{ BaseRequestBuilder }

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

// IntuneBrandingProfileAssignmentRequest is request for IntuneBrandingProfileAssignment
type IntuneBrandingProfileAssignmentRequest struct{ BaseRequest }

// Get performs GET request for IntuneBrandingProfileAssignment
func (r *IntuneBrandingProfileAssignmentRequest) Get(ctx context.Context) (resObj *IntuneBrandingProfileAssignment, 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 IntuneBrandingProfileAssignment
func (r *IntuneBrandingProfileAssignmentRequest) Update(ctx context.Context, reqObj *IntuneBrandingProfileAssignment) error {
	return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
}

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

//
type IntuneBrandingProfileAssignRequestBuilder struct{ BaseRequestBuilder }

// Assign action undocumented
func (b *IntuneBrandingProfileRequestBuilder) Assign(reqObj *IntuneBrandingProfileAssignRequestParameter) *IntuneBrandingProfileAssignRequestBuilder {
	bb := &IntuneBrandingProfileAssignRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
	bb.BaseRequestBuilder.baseURL += "/assign"
	bb.BaseRequestBuilder.requestObject = reqObj
	return bb
}

//
type IntuneBrandingProfileAssignRequest struct{ BaseRequest }

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

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