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

package msgraph

import "context"

// TrustFrameworkRequestBuilder is request builder for TrustFramework
type TrustFrameworkRequestBuilder struct{ BaseRequestBuilder }

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

// TrustFrameworkRequest is request for TrustFramework
type TrustFrameworkRequest struct{ BaseRequest }

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

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

// TrustFrameworkKeySetRequestBuilder is request builder for TrustFrameworkKeySet
type TrustFrameworkKeySetRequestBuilder struct{ BaseRequestBuilder }

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

// TrustFrameworkKeySetRequest is request for TrustFrameworkKeySet
type TrustFrameworkKeySetRequest struct{ BaseRequest }

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

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

// TrustFrameworkPolicyRequestBuilder is request builder for TrustFrameworkPolicy
type TrustFrameworkPolicyRequestBuilder struct{ BaseRequestBuilder }

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

// TrustFrameworkPolicyRequest is request for TrustFrameworkPolicy
type TrustFrameworkPolicyRequest struct{ BaseRequest }

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

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

//
type TrustFrameworkKeySetGenerateKeyRequestBuilder struct{ BaseRequestBuilder }

// GenerateKey action undocumented
func (b *TrustFrameworkKeySetRequestBuilder) GenerateKey(reqObj *TrustFrameworkKeySetGenerateKeyRequestParameter) *TrustFrameworkKeySetGenerateKeyRequestBuilder {
	bb := &TrustFrameworkKeySetGenerateKeyRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
	bb.BaseRequestBuilder.baseURL += "/generateKey"
	bb.BaseRequestBuilder.requestObject = reqObj
	return bb
}

//
type TrustFrameworkKeySetGenerateKeyRequest struct{ BaseRequest }

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

//
func (r *TrustFrameworkKeySetGenerateKeyRequest) Post(ctx context.Context) (resObj *TrustFrameworkKey, err error) {
	err = r.JSONRequest(ctx, "POST", "", r.requestObject, &resObj)
	return
}

//
type TrustFrameworkKeySetUploadSecretRequestBuilder struct{ BaseRequestBuilder }

// UploadSecret action undocumented
func (b *TrustFrameworkKeySetRequestBuilder) UploadSecret(reqObj *TrustFrameworkKeySetUploadSecretRequestParameter) *TrustFrameworkKeySetUploadSecretRequestBuilder {
	bb := &TrustFrameworkKeySetUploadSecretRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
	bb.BaseRequestBuilder.baseURL += "/uploadSecret"
	bb.BaseRequestBuilder.requestObject = reqObj
	return bb
}

//
type TrustFrameworkKeySetUploadSecretRequest struct{ BaseRequest }

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

//
func (r *TrustFrameworkKeySetUploadSecretRequest) Post(ctx context.Context) (resObj *TrustFrameworkKey, err error) {
	err = r.JSONRequest(ctx, "POST", "", r.requestObject, &resObj)
	return
}

//
type TrustFrameworkKeySetUploadCertificateRequestBuilder struct{ BaseRequestBuilder }

// UploadCertificate action undocumented
func (b *TrustFrameworkKeySetRequestBuilder) UploadCertificate(reqObj *TrustFrameworkKeySetUploadCertificateRequestParameter) *TrustFrameworkKeySetUploadCertificateRequestBuilder {
	bb := &TrustFrameworkKeySetUploadCertificateRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
	bb.BaseRequestBuilder.baseURL += "/uploadCertificate"
	bb.BaseRequestBuilder.requestObject = reqObj
	return bb
}

//
type TrustFrameworkKeySetUploadCertificateRequest struct{ BaseRequest }

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

//
func (r *TrustFrameworkKeySetUploadCertificateRequest) Post(ctx context.Context) (resObj *TrustFrameworkKey, err error) {
	err = r.JSONRequest(ctx, "POST", "", r.requestObject, &resObj)
	return
}

//
type TrustFrameworkKeySetUploadPkcs12RequestBuilder struct{ BaseRequestBuilder }

// UploadPkcs12 action undocumented
func (b *TrustFrameworkKeySetRequestBuilder) UploadPkcs12(reqObj *TrustFrameworkKeySetUploadPkcs12RequestParameter) *TrustFrameworkKeySetUploadPkcs12RequestBuilder {
	bb := &TrustFrameworkKeySetUploadPkcs12RequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
	bb.BaseRequestBuilder.baseURL += "/uploadPkcs12"
	bb.BaseRequestBuilder.requestObject = reqObj
	return bb
}

//
type TrustFrameworkKeySetUploadPkcs12Request struct{ BaseRequest }

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

//
func (r *TrustFrameworkKeySetUploadPkcs12Request) Post(ctx context.Context) (resObj *TrustFrameworkKey, err error) {
	err = r.JSONRequest(ctx, "POST", "", r.requestObject, &resObj)
	return
}
