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

package ozone

// schema: tools.ozone.setting.upsertOption

import (
	"context"

	"github.com/bluesky-social/indigo/lex/util"
)

// SettingUpsertOption_Input is the input argument to a tools.ozone.setting.upsertOption call.
type SettingUpsertOption_Input struct {
	Description *string                  `json:"description,omitempty" cborgen:"description,omitempty"`
	Key         string                   `json:"key" cborgen:"key"`
	ManagerRole *string                  `json:"managerRole,omitempty" cborgen:"managerRole,omitempty"`
	Scope       string                   `json:"scope" cborgen:"scope"`
	Value       *util.LexiconTypeDecoder `json:"value" cborgen:"value"`
}

// SettingUpsertOption_Output is the output of a tools.ozone.setting.upsertOption call.
type SettingUpsertOption_Output struct {
	Option *SettingDefs_Option `json:"option" cborgen:"option"`
}

// SettingUpsertOption calls the XRPC method "tools.ozone.setting.upsertOption".
func SettingUpsertOption(ctx context.Context, c util.LexClient, input *SettingUpsertOption_Input) (*SettingUpsertOption_Output, error) {
	var out SettingUpsertOption_Output
	if err := c.LexDo(ctx, util.Procedure, "application/json", "tools.ozone.setting.upsertOption", nil, input, &out); err != nil {
		return nil, err
	}

	return &out, nil
}
