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

package org_tangled

// schema: org.tangled.temp.spindle.quota.set

import (
	"context"

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

const (
	TempSpindleQuotaSetNSID = "org.tangled.temp.spindle.quota.set"
)

// TempSpindleQuotaSet_Input is the input argument to a org.tangled.temp.spindle.quota.set call.
type TempSpindleQuotaSet_Input struct {
	// did: DID of the repository or account owner
	Did string `json:"did" cborgen:"did"`
	// limit: positive maximum in the resource's native units; cannot be combined with unlimited
	Limit *int64 `json:"limit,omitempty" cborgen:"limit,omitempty"`
	// resource: quota resource name, such as workflows, vcpus, memory_mib, disk_mib, or cache_storage_bytes
	Resource string `json:"resource" cborgen:"resource"`
	// unlimited: store an unlimited override; cannot be combined with limit
	Unlimited *bool `json:"unlimited,omitempty" cborgen:"unlimited,omitempty"`
}

// TempSpindleQuotaSet calls the XRPC method "org.tangled.temp.spindle.quota.set".
func TempSpindleQuotaSet(ctx context.Context, c util.LexClient, input *TempSpindleQuotaSet_Input) error {
	if err := c.LexDo(ctx, util.Procedure, "application/json", "org.tangled.temp.spindle.quota.set", nil, input, nil); err != nil {
		return err
	}

	return nil
}
