/*
 * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
 */
import * as z from "zod";
import { assetRelationsCreateAssetRelationsByAssetId } from "../../funcs/assetRelationsCreateAssetRelationsByAssetId.js";
import * as operations from "../../models/operations/index.js";
import { formatResult } from "../tools.js";
const args = {
    assetId: z.string(),
    requestBody: operations.CreateAssetRelationsByAssetIdRequestBody$inboundSchema,
};
export const tool$assetRelationsCreateAssetRelationsByAssetId = {
    name: "create-asset-relations",
    description: `Add related assets by asset ID

Relates an asset to other assets by their asset IDs, an immutable identifier, regardless of public ID, display name, asset folder, resource type or deliver type. This is a bidirectional process, meaning that the asset will also be added as a related_asset to all the other assets specified. The relation is also a one to many relationship, where the asset is related to all the assets specified, but those assets aren't also related to each other.`,
    scopes: ["librarian"],
    args,
    tool: async (client, args, ctx) => {
        const [result, apiCall] = await assetRelationsCreateAssetRelationsByAssetId(client, args.assetId, args.requestBody, { fetchOptions: { signal: ctx.signal } }).$inspect();
        if (!result.ok) {
            return {
                content: [{ type: "text", text: result.error.message }],
                isError: true,
            };
        }
        const value = result.value;
        return formatResult(value, apiCall);
    },
};
//# sourceMappingURL=assetRelationsCreateAssetRelationsByAssetId.js.map