// Code generated by msgraph-generate.go DO NOT EDIT.

package msgraph

import "context"

// TrustFrameworkKeySetGenerateKeyRequestParameter undocumented
type TrustFrameworkKeySetGenerateKeyRequestParameter struct {
	// Use undocumented
	Use *string `json:"use,omitempty"`
	// Kty undocumented
	Kty *string `json:"kty,omitempty"`
	// Nbf undocumented
	Nbf *int `json:"nbf,omitempty"`
	// Exp undocumented
	Exp *int `json:"exp,omitempty"`
}

// TrustFrameworkKeySetUploadSecretRequestParameter undocumented
type TrustFrameworkKeySetUploadSecretRequestParameter struct {
	// Use undocumented
	Use *string `json:"use,omitempty"`
	// K undocumented
	K *string `json:"k,omitempty"`
	// Nbf undocumented
	Nbf *int `json:"nbf,omitempty"`
	// Exp undocumented
	Exp *int `json:"exp,omitempty"`
}

// TrustFrameworkKeySetUploadCertificateRequestParameter undocumented
type TrustFrameworkKeySetUploadCertificateRequestParameter struct {
	// Key undocumented
	Key *string `json:"key,omitempty"`
}

// TrustFrameworkKeySetUploadPkcs12RequestParameter undocumented
type TrustFrameworkKeySetUploadPkcs12RequestParameter struct {
	// Key undocumented
	Key *string `json:"key,omitempty"`
	// Password undocumented
	Password *string `json:"password,omitempty"`
}

//
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
}