// Code generated by cmd/lexgen (see Makefile's lexgen); DO NOT EDIT.

package ozone

// schema: tools.ozone.communication.createTemplate

import (
	"context"

	"github.com/bluesky-social/indigo/xrpc"
)

// CommunicationCreateTemplate_Input is the input argument to a tools.ozone.communication.createTemplate call.
type CommunicationCreateTemplate_Input struct {
	// contentMarkdown: Content of the template, markdown supported, can contain variable placeholders.
	ContentMarkdown string `json:"contentMarkdown" cborgen:"contentMarkdown"`
	// createdBy: DID of the user who is creating the template.
	CreatedBy *string `json:"createdBy,omitempty" cborgen:"createdBy,omitempty"`
	// lang: Message language.
	Lang *string `json:"lang,omitempty" cborgen:"lang,omitempty"`
	// name: Name of the template.
	Name string `json:"name" cborgen:"name"`
	// subject: Subject of the message, used in emails.
	Subject string `json:"subject" cborgen:"subject"`
}

// CommunicationCreateTemplate calls the XRPC method "tools.ozone.communication.createTemplate".
func CommunicationCreateTemplate(ctx context.Context, c *xrpc.Client, input *CommunicationCreateTemplate_Input) (*CommunicationDefs_TemplateView, error) {
	var out CommunicationDefs_TemplateView
	if err := c.Do(ctx, xrpc.Procedure, "application/json", "tools.ozone.communication.createTemplate", nil, input, &out); err != nil {
		return nil, err
	}

	return &out, nil
}
