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

package atproto

// schema: com.atproto.server.reserveSigningKey

import (
	"context"

	"github.com/bluesky-social/indigo/xrpc"
)

// ServerReserveSigningKey_Input is the input argument to a com.atproto.server.reserveSigningKey call.
type ServerReserveSigningKey_Input struct {
	// did: The DID to reserve a key for.
	Did *string `json:"did,omitempty" cborgen:"did,omitempty"`
}

// ServerReserveSigningKey_Output is the output of a com.atproto.server.reserveSigningKey call.
type ServerReserveSigningKey_Output struct {
	// signingKey: The public key for the reserved signing key, in did:key serialization.
	SigningKey string `json:"signingKey" cborgen:"signingKey"`
}

// ServerReserveSigningKey calls the XRPC method "com.atproto.server.reserveSigningKey".
func ServerReserveSigningKey(ctx context.Context, c *xrpc.Client, input *ServerReserveSigningKey_Input) (*ServerReserveSigningKey_Output, error) {
	var out ServerReserveSigningKey_Output
	if err := c.Do(ctx, xrpc.Procedure, "application/json", "com.atproto.server.reserveSigningKey", nil, input, &out); err != nil {
		return nil, err
	}

	return &out, nil
}
