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

package org_tangled

// schema: org.tangled.repo.reserveKey

import (
	"context"

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

const (
	RepoReserveKeyNSID = "org.tangled.repo.reserveKey"
)

// RepoReserveKey_Input is the input argument to a org.tangled.repo.reserveKey call.
type RepoReserveKey_Input struct {
	// repo: The caller-minted DID to reserve
	Repo string `json:"repo" cborgen:"repo"`
}

// RepoReserveKey_Output is the output of a org.tangled.repo.reserveKey call.
type RepoReserveKey_Output struct {
	// key: Multibase-encoded public signing key the knot holds for this repo identity
	Key  string `json:"key" cborgen:"key"`
	Repo string `json:"repo" cborgen:"repo"`
}

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

	return &out, nil
}
