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

package tangled

// schema: org.tangled.temp.repo.createWebhook

import (
	"context"

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

const (
	TempRepoCreateWebhookNSID = "org.tangled.temp.repo.createWebhook"
)

// TempRepoCreateWebhook_Input is the input argument to a org.tangled.temp.repo.createWebhook call.
type TempRepoCreateWebhook_Input struct {
	// active: Whether the webhook should be active immediately. Defaults to true.
	Active *bool `json:"active,omitempty" cborgen:"active,omitempty"`
	// events: Event types to subscribe to (e.g. 'push', 'repository:renamed').
	Events []string `json:"events" cborgen:"events"`
	// repoDid: DID of the repository as minted by the knot.
	RepoDid string `json:"repoDid" cborgen:"repoDid"`
	// secret: Optional HMAC secret used to sign payloads. If omitted, payloads are not signed.
	Secret *string `json:"secret,omitempty" cborgen:"secret,omitempty"`
	// url: Endpoint URL that will receive webhook payloads.
	Url string `json:"url" cborgen:"url"`
}

// TempRepoCreateWebhook_Output is the output of a org.tangled.temp.repo.createWebhook call.
type TempRepoCreateWebhook_Output struct {
	// id: ID of the newly created webhook.
	Id int64 `json:"id" cborgen:"id"`
}

// TempRepoCreateWebhook calls the XRPC method "org.tangled.temp.repo.createWebhook".
func TempRepoCreateWebhook(ctx context.Context, c util.LexClient, input *TempRepoCreateWebhook_Input) (*TempRepoCreateWebhook_Output, error) {
	var out TempRepoCreateWebhook_Output
	if err := c.LexDo(ctx, util.Procedure, "application/json", "org.tangled.temp.repo.createWebhook", nil, input, &out); err != nil {
		return nil, err
	}

	return &out, nil
}
