/*
 * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
 * @generated-id: cb6c64076c69
 */
import * as z from "zod";
import { assetRelationsCreateAssetRelationsByAssetId } from "../../funcs/assetRelationsCreateAssetRelationsByAssetId.js";
import { RelateAssetsByAssetIdRequest$zodSchema } from "../../models/relateassetsbyassetidrequest.js";
import { formatResult } from "../tools.js";
const args = {
    asset_id: z.string().describe("The asset ID of the resource. Must be a 32-character hexadecimal string."),
    relate_assets_by_asset_id_request: RelateAssetsByAssetIdRequest$zodSchema
        .describe(`The asset IDs to relate.`),
};
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 delivery 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"],
    annotations: {
        "title": "Create Asset Relations",
        "destructiveHint": false,
        "idempotentHint": false,
        "openWorldHint": false,
        "readOnlyHint": false,
    },
    args,
    tool: async (client, args, ctx) => {
        const [result] = await assetRelationsCreateAssetRelationsByAssetId(client, args.asset_id, args.relate_assets_by_asset_id_request, { fetchOptions: { signal: ctx.signal } }).$inspect();
        if (!result.ok) {
            return {
                content: [{ type: "text", text: result.error.message }],
                isError: true,
            };
        }
        return formatResult(result.value);
    },
};
//# sourceMappingURL=assetRelationsCreateAssetRelationsByAssetId.js.map