actions/create-folder/create-folder.mjs
import autodesk from "../../autodesk.app.mjs"; export default { key: "autodesk-create-folder", name: "Create Folder", description: "Creates a new folder in a project in Autodesk. [See the documentation](https://aps.autodesk.com/en/docs/data/v2/reference/http/projects-project_id-folders-POST/)", version: "0.0.2", annotations: { destructiveHint: false, openWorldHint: true, readOnlyHint: false, }, type: "action", props: { autodesk, hubId: { propDefinition: [ autodesk, "hubId", ], }, projectId: { propDefinition: [ autodesk, "projectId", (c) => ({ hubId: c.hubId, }), ], }, name: { type: "string", label: "Name", description: "The name of the new folder", }, parent: { propDefinition: [ autodesk, "folderId", (c) => ({ hubId: c.hubId, projectId: c.projectId, }), ], label: "Parent Folder ID", description: "The identifier of the parent folder", }, type: { type: "string", label: "Extension Type", description: "The type of folder extension. For BIM 360 Docs folders, use `folders:autodesk.bim360:Folder`. For all other services, use `folders:autodesk.core:Folder`.", options: [ { label: "BIM 360 Docs folders", value: "folders:autodesk.core:Folder", }, { label: "Other folders", value: "folders:autodesk.bim360:Folder", }, ], default: "folders:autodesk.core:Folder", optional: true, }, }, async run({ $ }) { const response = await this.autodesk.createFolder({ $, projectId: this.projectId, data: { jsonapi: { version: "1.0", }, data: { type: "folders", attributes: { name: this.name, extension: { type: this.type, version: "1.0", }, }, relationships: { parent: { data: { type: "folders", id: this.parent, }, }, }, }, }, }); $.export("$summary", `Successfully created new folder: ${this.name}`); return response; }, };