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

package tangled

// schema: sh.tangled.repo.hiddenRef

import (
	"context"

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

const (
	RepoHiddenRefNSID = "sh.tangled.repo.hiddenRef"
)

// RepoHiddenRef_Input is the input argument to a sh.tangled.repo.hiddenRef call.
type RepoHiddenRef_Input struct {
	// forkRef: Fork reference name
	ForkRef string `json:"forkRef" cborgen:"forkRef"`
	// remoteRef: Remote reference name
	RemoteRef string `json:"remoteRef" cborgen:"remoteRef"`
	// repo: AT-URI of the repository
	Repo string `json:"repo" cborgen:"repo"`
}

// RepoHiddenRef_Output is the output of a sh.tangled.repo.hiddenRef call.
type RepoHiddenRef_Output struct {
	// error: Error message if creation failed
	Error *string `json:"error,omitempty" cborgen:"error,omitempty"`
	// ref: The created hidden ref name
	Ref *string `json:"ref,omitempty" cborgen:"ref,omitempty"`
	// success: Whether the hidden ref was created successfully
	Success bool `json:"success" cborgen:"success"`
}

// RepoHiddenRef calls the XRPC method "sh.tangled.repo.hiddenRef".
func RepoHiddenRef(ctx context.Context, c util.LexClient, input *RepoHiddenRef_Input) (*RepoHiddenRef_Output, error) {
	var out RepoHiddenRef_Output
	if err := c.LexDo(ctx, util.Procedure, "application/json", "sh.tangled.repo.hiddenRef", nil, input, &out); err != nil {
		return nil, err
	}

	return &out, nil
}
