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

package ozone

// schema: tools.ozone.safelink.addRule

import (
	"context"

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

// SafelinkAddRule_Input is the input argument to a tools.ozone.safelink.addRule call.
type SafelinkAddRule_Input struct {
	Action *string `json:"action" cborgen:"action"`
	// comment: Optional comment about the decision
	Comment *string `json:"comment,omitempty" cborgen:"comment,omitempty"`
	// createdBy: Author DID. Only respected when using admin auth
	CreatedBy *string `json:"createdBy,omitempty" cborgen:"createdBy,omitempty"`
	Pattern   *string `json:"pattern" cborgen:"pattern"`
	Reason    *string `json:"reason" cborgen:"reason"`
	// url: The URL or domain to apply the rule to
	Url string `json:"url" cborgen:"url"`
}

// SafelinkAddRule calls the XRPC method "tools.ozone.safelink.addRule".
func SafelinkAddRule(ctx context.Context, c util.LexClient, input *SafelinkAddRule_Input) (*SafelinkDefs_Event, error) {
	var out SafelinkDefs_Event
	if err := c.LexDo(ctx, util.Procedure, "application/json", "tools.ozone.safelink.addRule", nil, input, &out); err != nil {
		return nil, err
	}

	return &out, nil
}
