diff --git a/src/types/comfyRegistryTypes.ts b/src/types/comfyRegistryTypes.ts new file mode 100644 index 000000000..705fc383b --- /dev/null +++ b/src/types/comfyRegistryTypes.ts @@ -0,0 +1,3114 @@ +/** + * This file was auto-generated by openapi-typescript. + * Do not make direct changes to the file. + */ + +export interface paths { + '/users': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + /** Get information about the calling user. */ + get: operations['getUser'] + put?: never + post?: never + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/upload-artifact': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + get?: never + put?: never + /** Receive artifacts (output files) from the ComfyUI GitHub Action */ + post: { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + requestBody: { + content: { + 'application/json': { + /** @description Repository name */ + repo: string + /** @description Unique identifier for the job */ + job_id: string + /** @description Unique identifier for the run */ + run_id: string + /** @description Operating system used in the run */ + os: string + /** @description Cuda version. */ + cuda_version?: string + /** @description The name of the bucket where the output files are stored */ + bucket_name?: string + /** @description A comma separated string that contains GCS path(s) to output files. eg. gs://bucket-name/output, gs://bucket-name/output2 */ + output_files_gcs_paths?: string + /** @description The path to ComfyUI logs. eg. gs://bucket-name/logs */ + comfy_logs_gcs_path?: string + /** @description The flags used in the comfy run */ + comfy_run_flags?: string + commit_hash: string + /** @description The time of the commit in the format of "YYYY-MM-DDTHH:MM:SSZ" (2016-10-10T00:00:00Z) */ + commit_time: string + /** @description The commit message */ + commit_message: string + /** @description The name of the workflow */ + workflow_name: string + branch_name: string + /** + * Format: int64 + * @description The start time of the job as a Unix timestamp. + */ + start_time: number + /** + * Format: int64 + * @description The end time of the job as a Unix timestamp. + */ + end_time: number + /** @description The average amount of VRAM used in the run. */ + avg_vram?: number + /** @description The peak amount of VRAM used in the run. */ + peak_vram?: number + /** @description The pull request number */ + pr_number: string + /** @description The author of the commit */ + author: string + /** @description The user who triggered the job */ + job_trigger_user: string + /** @description The python version used in the run */ + python_version: string + /** @description The pytorch version used in the run */ + pytorch_version?: string + machine_stats?: components['schemas']['MachineStats'] + status: components['schemas']['WorkflowRunStatus'] + } + } + } + responses: { + /** @description Successfully received the artifact details */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + message?: string + } + } + } + /** @description Invalid request */ + 400: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/gitcommit': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + /** + * Retrieve CI data for a given commit + * @description Returns all runs, jobs, job results, and storage files associated with a given commit. + */ + get: { + parameters: { + query?: { + /** @description The ID of the commit to fetch data for. */ + commitId?: string + /** @description The operating system to filter the CI data by. */ + operatingSystem?: string + /** @description The name of the workflow to filter the CI data by. */ + workflowName?: string + /** @description The branch of the gitcommit to filter the CI data by. */ + branch?: string + /** @description The page number to retrieve. */ + page?: number + /** @description The number of items to include per page. */ + pageSize?: number + /** @description The repo to filter by. */ + repoName?: string + } + header?: never + path?: never + cookie?: never + } + requestBody?: never + responses: { + /** @description An object containing runs, jobs, job results, and storage files */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + jobResults?: components['schemas']['ActionJobResult'][] + totalNumberOfPages?: number + } + } + } + /** @description Commit not found */ + 404: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } + put?: never + post?: never + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/gitcommitsummary': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + /** + * Retrieve a summary of git commits + * @description Returns a summary of git commits, including status, start time, and end time. + */ + get: { + parameters: { + query?: { + /** @description The repository name to filter the git commits by. */ + repoName?: string + /** @description The branch name to filter the git commits by. */ + branchName?: string + /** @description The page number to retrieve. */ + page?: number + /** @description The number of items to include per page. */ + pageSize?: number + } + header?: never + path?: never + cookie?: never + } + requestBody?: never + responses: { + /** @description Successfully retrieved git commit summaries */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + commitSummaries?: components['schemas']['GitCommitSummary'][] + totalNumberOfPages?: number + } + } + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + message?: string + } + } + } + } + } + put?: never + post?: never + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/workflowresult/{workflowResultId}': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + /** Retrieve a specific commit by ID */ + get: operations['getWorkflowResult'] + put?: never + post?: never + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/branch': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + /** + * Retrieve all distinct branches for a given repo + * @description Returns all branches for a given repo. + */ + get: { + parameters: { + query: { + /** @description The repo to filter by. */ + repo_name: string + } + header?: never + path?: never + cookie?: never + } + requestBody?: never + responses: { + /** @description An array of branches */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + branches?: string[] + } + } + } + /** @description Repo not found */ + 404: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } + put?: never + post?: never + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/users/publishers/': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + /** Retrieve all publishers for a given user */ + get: operations['listPublishersForUser'] + put?: never + post?: never + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/publishers/{publisherId}/permissions': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + /** Retrieve permissions the user has for a given publisher */ + get: operations['getPermissionOnPublisher'] + put?: never + post?: never + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/publishers/validate': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + /** + * Validate if a publisher username is available + * @description Checks if the publisher username is already taken. + */ + get: operations['validatePublisher'] + put?: never + post?: never + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/publishers': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + /** Retrieve all publishers */ + get: operations['listPublishers'] + put?: never + /** Create a new publisher */ + post: operations['createPublisher'] + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/publishers/{publisherId}': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + /** Retrieve a publisher by ID */ + get: operations['getPublisher'] + /** Update a publisher */ + put: operations['updatePublisher'] + post?: never + /** Delete a publisher */ + delete: operations['deletePublisher'] + options?: never + head?: never + patch?: never + trace?: never + } + '/publishers/{publisherId}/ban': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + get?: never + put?: never + /** Ban a publisher */ + post: operations['BanPublisher'] + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/publishers/{publisherId}/nodes': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + /** Retrieve all nodes */ + get: operations['listNodesForPublisher'] + put?: never + /** Create a new custom node */ + post: operations['createNode'] + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/publishers/{publisherId}/nodes/{nodeId}': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + get?: never + /** Update a specific node */ + put: operations['updateNode'] + post?: never + /** Delete a specific node */ + delete: operations['deleteNode'] + options?: never + head?: never + patch?: never + trace?: never + } + '/publishers/{publisherId}/nodes/{nodeId}/permissions': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + /** Retrieve permissions the user has for a given publisher */ + get: operations['getPermissionOnPublisherNodes'] + put?: never + post?: never + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/publishers/{publisherId}/nodes/{nodeId}/versions': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + get?: never + put?: never + /** Publish a new version of a node */ + post: operations['publishNodeVersion'] + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/publishers/{publisherId}/nodes/{nodeId}/versions/{versionId}': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + get?: never + /** + * Update changelog and deprecation status of a node version + * @description Update only the changelog and deprecated status of a specific version of a node. + */ + put: operations['updateNodeVersion'] + post?: never + /** Unpublish (delete) a specific version of a node */ + delete: operations['deleteNodeVersion'] + options?: never + head?: never + patch?: never + trace?: never + } + '/publishers/{publisherId}/nodes/{nodeId}/ban': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + get?: never + put?: never + /** Ban a publisher's Node */ + post: operations['BanPublisherNode'] + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/publishers/{publisherId}/tokens': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + /** Retrieve all personal access tokens for a publisher */ + get: operations['listPersonalAccessTokens'] + put?: never + /** Create a new personal access token */ + post: operations['createPersonalAccessToken'] + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/publishers/{publisherId}/tokens/{tokenId}': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + get?: never + put?: never + post?: never + /** Delete a specific personal access token */ + delete: operations['deletePersonalAccessToken'] + options?: never + head?: never + patch?: never + trace?: never + } + '/nodes/search': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + /** + * Retrieves a list of nodes + * @description Returns a paginated list of nodes across all publishers. + */ + get: operations['searchNodes'] + put?: never + post?: never + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/nodes/reindex': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + get?: never + put?: never + /** Reindex all nodes for searching. */ + post: operations['reindexNodes'] + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/nodes': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + /** + * Retrieves a list of nodes + * @description Returns a paginated list of nodes across all publishers. + */ + get: operations['listAllNodes'] + put?: never + post?: never + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/nodes/{nodeId}': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + /** + * Retrieve a specific node by ID + * @description Returns the details of a specific node. + */ + get: operations['getNode'] + put?: never + post?: never + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/nodes/{nodeId}/reviews': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + get?: never + put?: never + /** Add review to a specific version of a node */ + post: operations['postNodeReview'] + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/nodes/{nodeId}/install': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + /** + * Returns a node version to be installed. + * @description Retrieves the node data for installation, either the latest or a specific version. + */ + get: operations['installNode'] + put?: never + post?: never + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/nodes/{nodeId}/versions': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + /** List all versions of a node */ + get: operations['listNodeVersions'] + put?: never + post?: never + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/nodes/{nodeId}/versions/{versionId}': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + /** Retrieve a specific version of a node */ + get: operations['getNodeVersion'] + put?: never + post?: never + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/versions': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + /** List all node versions given some filters. */ + get: operations['listAllNodeVersions'] + put?: never + post?: never + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/admin/nodes/{nodeId}/versions/{versionNumber}': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + get?: never + /** + * Admin Update Node Version Status + * @description Only admins can approve a node version. + */ + put: operations['adminUpdateNodeVersion'] + post?: never + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/security-scan': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + /** + * Security Scan + * @description Pull all pending node versions and conduct security scans. + */ + get: operations['securityScan'] + put?: never + post?: never + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/nodes/{nodeId}/versions/{version}/comfy-nodes': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + get?: never + put?: never + /** create comfy-nodes for certain node */ + post: operations['CreateComfyNodes'] + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/nodes/{nodeId}/versions/{version}/comfy-nodes/{comfyNodeName}': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + /** get specify comfy-node based on its id */ + get: operations['GetComfyNode'] + put?: never + post?: never + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/comfy-nodes/backfill': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + get?: never + put?: never + /** trigger comfy nodes backfill */ + post: operations['ComfyNodesBackfill'] + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } +} +export type webhooks = Record +export interface components { + schemas: { + PersonalAccessToken: { + /** + * Format: uuid + * @description Unique identifier for the GitCommit + */ + id?: string + /** @description Required. The name of the token. Can be a simple description. */ + name?: string + /** @description Optional. A more detailed description of the token's intended use. */ + description?: string + /** + * Format: date-time + * @description [Output Only]The date and time the token was created. + */ + createdAt?: string + /** @description [Output Only]. The personal access token. Only returned during creation. */ + token?: string + } + GitCommit: { + /** + * Format: uuid + * @description Unique identifier for the GitCommit + */ + id?: string + /** @description The hash of the commit */ + commit_hash?: string + /** @description The name of the commit */ + commit_name?: string + /** @description The branch where the commit was made */ + branch_name?: string + /** @description The author of the commit */ + author?: string + /** + * Format: date-time + * @description The timestamp when the commit was made + */ + timestamp?: string + } + GitCommitSummary: { + /** @description The hash of the commit */ + commit_hash?: string + /** @description The name of the commit */ + commit_name?: string + /** @description The branch where the commit was made */ + branch_name?: string + /** @description The author of the commit */ + author?: string + /** + * Format: date-time + * @description The timestamp when the commit was made + */ + timestamp?: string + /** @description A map of operating system to status pairs */ + status_summary?: { + [key: string]: string + } + } + User: { + /** @description The unique id for this user. */ + id?: string + /** @description The email address for this user. */ + email?: string + /** @description The name for this user. */ + name?: string + /** @description Indicates if the user is approved. */ + isApproved?: boolean + /** @description Indicates if the user has admin privileges. */ + isAdmin?: boolean + } + PublisherUser: { + /** @description The unique id for this user. */ + id?: string + /** @description The email address for this user. */ + email?: string + /** @description The name for this user. */ + name?: string + } + ErrorResponse: { + error: string + message: string + } + ActionJobResult: { + /** + * Format: uuid + * @description Unique identifier for the job result + */ + id?: string + /** @description Name of the workflow */ + workflow_name?: string + /** @description Operating system used */ + operating_system?: string + /** @description PyTorch version used */ + python_version?: string + /** @description PyTorch version used */ + pytorch_version?: string + /** @description Identifier of the run this result belongs to */ + action_run_id?: string + /** @description Identifier of the job this result belongs to */ + action_job_id?: string + /** @description CUDA version used */ + cuda_version?: string + /** @description Name of the relevant git branch */ + branch_name?: string + /** @description The hash of the commit */ + commit_hash?: string + /** @description The ID of the commit */ + commit_id?: string + /** + * Format: int64 + * @description The Unix timestamp when the commit was made + */ + commit_time?: number + /** @description The message of the commit */ + commit_message?: string + /** @description The comfy run flags. E.g. `--low-vram` */ + comfy_run_flags?: string + /** @description The repository name */ + git_repo?: string + /** @description The pull request number */ + pr_number?: string + /** + * Format: int64 + * @description The start time of the job as a Unix timestamp. + */ + start_time?: number + /** + * Format: int64 + * @description The end time of the job as a Unix timestamp. + */ + end_time?: number + /** @description The average VRAM used by the job */ + avg_vram?: number + /** @description The peak VRAM used by the job */ + peak_vram?: number + /** @description The user who triggered the job. */ + job_trigger_user?: string + /** @description The author of the commit */ + author?: string + machine_stats?: components['schemas']['MachineStats'] + status?: components['schemas']['WorkflowRunStatus'] + storage_file?: components['schemas']['StorageFile'] + } + StorageFile: { + /** + * Format: uuid + * @description Unique identifier for the storage file + */ + id?: string + /** @description Path to the file in storage */ + file_path?: string + /** @description Public URL */ + public_url?: string + } + Publisher: { + name?: string + /** @description The unique identifier for the publisher. It's akin to a username. Should be lowercase. */ + id?: string + description?: string + website?: string + support?: string + source_code_repo?: string + /** @description URL to the publisher's logo. */ + logo?: string + /** + * Format: date-time + * @description The date and time the publisher was created. + */ + createdAt?: string + /** @description A list of members in the publisher. */ + members?: components['schemas']['PublisherMember'][] + /** @description The status of the publisher. */ + status?: components['schemas']['PublisherStatus'] + } + PublisherMember: { + /** @description The unique identifier for the publisher member. */ + id?: string + /** @description The user associated with this publisher member. */ + user?: components['schemas']['PublisherUser'] + /** @description The role of the user in the publisher. */ + role?: string + } + Node: { + /** @description The unique identifier of the node. */ + id?: string + /** @description The display name of the node. */ + name?: string + /** @description The category of the node. */ + category?: string + description?: string + author?: string + /** @description The path to the LICENSE file in the node's repository. */ + license?: string + /** @description URL to the node's icon. */ + icon?: string + /** @description URL to the node's repository. */ + repository?: string + tags?: string[] + /** @description The latest version of the node. */ + latest_version?: components['schemas']['NodeVersion'] + /** @description The average rating of the node. */ + rating?: number + /** @description The number of downloads of the node. */ + downloads?: number + /** @description The publisher of the node. */ + publisher?: components['schemas']['Publisher'] + /** @description The status of the node. */ + status?: components['schemas']['NodeStatus'] + /** @description The status detail of the node. */ + status_detail?: string + } + NodeVersion: { + id?: string + /** @description The version identifier, following semantic versioning. Must be unique for the node. */ + version?: string + /** + * Format: date-time + * @description The date and time the version was created. + */ + createdAt?: string + /** @description Summary of changes made in this version */ + changelog?: string + /** @description A list of pip dependencies required by the node. */ + dependencies?: string[] + /** @description [Output Only] URL to download this version of the node */ + downloadUrl?: string + /** @description Indicates if this version is deprecated. */ + deprecated?: boolean + /** @description The status of the node version. */ + status?: components['schemas']['NodeVersionStatus'] + /** @description The reason for the status change. */ + status_reason?: string + /** @description The unique identifier of the node. */ + node_id?: string + /** @description The status of comfy node extraction process. */ + comfy_node_extract_status?: string + } + ComfyNode: { + /** @description Unique identifier for the node */ + comfy_node_name?: string + /** @description UI category where the node is listed, used for grouping nodes. */ + category?: string + /** @description Brief description of the node's functionality or purpose. */ + description?: string + /** @description Defines input parameters */ + input_types?: string + /** @description Indicates if the node is deprecated. Deprecated nodes are hidden in the UI. */ + deprecated?: boolean + /** @description Indicates if the node is experimental, subject to changes or removal. */ + experimental?: boolean + /** @description Boolean values indicating if each output is a list. */ + output_is_list?: boolean[] + /** @description Names of the outputs for clarity in workflows. */ + return_names?: string + /** @description Specifies the types of outputs produced by the node. */ + return_types?: string + /** @description Name of the entry-point function to execute the node. */ + function?: string + } + ComfyNodeCloudBuildInfo: { + project_id?: string + project_number?: string + location?: string + build_id?: string + } + Error: { + /** @description A clear and concise description of the error. */ + message?: string + /** @description Optional detailed information about the error or hints for resolving it. */ + details?: string[] + } + NodeVersionUpdateRequest: { + /** @description The changelog describing the version changes. */ + changelog?: string + /** @description Whether the version is deprecated. */ + deprecated?: boolean + } + /** @enum {string} */ + NodeStatus: 'NodeStatusActive' | 'NodeStatusDeleted' | 'NodeStatusBanned' + /** @enum {string} */ + NodeVersionStatus: + | 'NodeVersionStatusActive' + | 'NodeVersionStatusDeleted' + | 'NodeVersionStatusBanned' + | 'NodeVersionStatusPending' + | 'NodeVersionStatusFlagged' + /** @enum {string} */ + PublisherStatus: 'PublisherStatusActive' | 'PublisherStatusBanned' + /** @enum {string} */ + WorkflowRunStatus: + | 'WorkflowRunStatusStarted' + | 'WorkflowRunStatusFailed' + | 'WorkflowRunStatusCompleted' + MachineStats: { + /** @description Name of the machine. */ + machine_name?: string + /** @description The operating system version. eg. Ubuntu Linux 20.04 */ + os_version?: string + /** @description The GPU type. eg. NVIDIA Tesla K80 */ + gpu_type?: string + /** @description Total CPU on the machine. */ + cpu_capacity?: string + /** @description Initial CPU available before the job starts. */ + initial_cpu?: string + /** @description Total memory on the machine. */ + memory_capacity?: string + /** @description Initial RAM available before the job starts. */ + initial_ram?: string + /** @description Time series of VRAM usage. */ + vram_time_series?: Record + /** @description Total disk capacity on the machine. */ + disk_capacity?: string + /** @description Initial disk available before the job starts. */ + initial_disk?: string + /** @description The pip freeze output */ + pip_freeze?: string + } + } + responses: never + parameters: never + requestBodies: never + headers: never + pathItems: never +} +export type $defs = Record +export interface operations { + getUser: { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + requestBody?: never + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['User'] + } + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Not Found */ + 404: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } + getWorkflowResult: { + parameters: { + query?: never + header?: never + path: { + workflowResultId: string + } + cookie?: never + } + requestBody?: never + responses: { + /** @description Commit details */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ActionJobResult'] + } + } + /** @description Commit not found */ + 404: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + } + } + listPublishersForUser: { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + requestBody?: never + responses: { + /** @description A list of publishers */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['Publisher'][] + } + } + /** @description Bad request, invalid input data */ + 400: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + } + } + getPermissionOnPublisher: { + parameters: { + query?: never + header?: never + path: { + publisherId: string + } + cookie?: never + } + requestBody?: never + responses: { + /** @description A list of permissions */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + canEdit?: boolean + } + } + } + /** @description Bad request, invalid input data */ + 400: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + } + } + validatePublisher: { + parameters: { + query: { + /** @description The publisher username to validate. */ + username: string + } + header?: never + path?: never + cookie?: never + } + requestBody?: never + responses: { + /** @description Username validation result */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + /** @description True if the username is available, false otherwise. */ + isAvailable?: boolean + } + } + } + /** @description Invalid input, such as missing username in the query. */ + 400: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + } + } + listPublishers: { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + requestBody?: never + responses: { + /** @description A list of publishers */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['Publisher'][] + } + } + /** @description Bad request, invalid input data */ + 400: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + } + } + createPublisher: { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + requestBody: { + content: { + 'application/json': components['schemas']['Publisher'] + } + } + responses: { + /** @description Publisher created successfully */ + 201: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['Publisher'] + } + } + /** @description Bad request, invalid input data */ + 400: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + } + } + getPublisher: { + parameters: { + query?: never + header?: never + path: { + publisherId: string + } + cookie?: never + } + requestBody?: never + responses: { + /** @description Publisher retrieved successfully */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['Publisher'] + } + } + /** @description Publisher not found */ + 404: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + } + } + updatePublisher: { + parameters: { + query?: never + header?: never + path: { + publisherId: string + } + cookie?: never + } + requestBody: { + content: { + 'application/json': components['schemas']['Publisher'] + } + } + responses: { + /** @description Publisher updated successfully */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['Publisher'] + } + } + /** @description Bad request, invalid input data */ + 400: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Publisher not found */ + 404: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + } + } + deletePublisher: { + parameters: { + query?: never + header?: never + path: { + publisherId: string + } + cookie?: never + } + requestBody?: never + responses: { + /** @description Publisher deleted successfully */ + 204: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Publisher not found */ + 404: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + } + } + BanPublisher: { + parameters: { + query?: never + header?: never + path: { + publisherId: string + } + cookie?: never + } + requestBody?: never + responses: { + /** @description Publisher Banned Successfully */ + 204: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + /** @description Publisher not found */ + 404: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + } + } + listNodesForPublisher: { + parameters: { + query?: { + /** @description Number of nodes to return per page */ + include_banned?: boolean + } + header?: never + path: { + publisherId: string + } + cookie?: never + } + requestBody?: never + responses: { + /** @description List of all nodes */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['Node'][] + } + } + /** @description Bad request, invalid input data. */ + 400: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + } + } + createNode: { + parameters: { + query?: never + header?: never + path: { + publisherId: string + } + cookie?: never + } + requestBody: { + content: { + 'application/json': components['schemas']['Node'] + } + } + responses: { + /** @description Node created successfully */ + 201: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['Node'] + } + } + /** @description Bad request, invalid input data. */ + 400: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + } + } + updateNode: { + parameters: { + query?: never + header?: never + path: { + publisherId: string + nodeId: string + } + cookie?: never + } + requestBody: { + content: { + 'application/json': components['schemas']['Node'] + } + } + responses: { + /** @description Node updated successfully */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['Node'] + } + } + /** @description Bad request, invalid input data */ + 400: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + /** @description Node not found */ + 404: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + } + } + deleteNode: { + parameters: { + query?: never + header?: never + path: { + publisherId: string + nodeId: string + } + cookie?: never + } + requestBody?: never + responses: { + /** @description Node deleted successfully */ + 204: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + /** @description Node not found */ + 404: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + } + } + getPermissionOnPublisherNodes: { + parameters: { + query?: never + header?: never + path: { + publisherId: string + nodeId: string + } + cookie?: never + } + requestBody?: never + responses: { + /** @description A list of permissions */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + canEdit?: boolean + } + } + } + /** @description Bad request, invalid input data */ + 400: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + } + } + publishNodeVersion: { + parameters: { + query?: never + header?: never + path: { + publisherId: string + nodeId: string + } + cookie?: never + } + requestBody: { + content: { + 'application/json': { + personal_access_token: string + node_version: components['schemas']['NodeVersion'] + node: components['schemas']['Node'] + } + } + } + responses: { + /** @description New version published successfully */ + 201: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + /** @description The signed URL to upload the node version token. */ + signedUrl?: string + node_version?: components['schemas']['NodeVersion'] + } + } + } + /** @description Bad request, invalid input data. */ + 400: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + } + } + updateNodeVersion: { + parameters: { + query?: never + header?: never + path: { + publisherId: string + nodeId: string + versionId: string + } + cookie?: never + } + requestBody: { + content: { + 'application/json': components['schemas']['NodeVersionUpdateRequest'] + } + } + responses: { + /** @description Version updated successfully */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['NodeVersion'] + } + } + /** @description Bad request, invalid input data. */ + 400: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + /** @description Version not found */ + 404: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + } + } + deleteNodeVersion: { + parameters: { + query?: never + header?: never + path: { + publisherId: string + nodeId: string + versionId: string + } + cookie?: never + } + requestBody?: never + responses: { + /** @description Version unpublished (deleted) successfully */ + 204: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Version does not belong to the publisher */ + 403: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + /** @description Version not found */ + 404: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['Error'] + } + } + /** @description Version not found */ + 500: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + } + } + BanPublisherNode: { + parameters: { + query?: never + header?: never + path: { + publisherId: string + nodeId: string + } + cookie?: never + } + requestBody?: never + responses: { + /** @description Node Banned Successfully */ + 204: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + /** @description Publisher or Node not found */ + 404: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + } + } + listPersonalAccessTokens: { + parameters: { + query?: never + header?: never + path: { + publisherId: string + } + cookie?: never + } + requestBody?: never + responses: { + /** @description List of all personal access tokens */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['PersonalAccessToken'][] + } + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + /** @description No tokens found */ + 404: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + } + } + createPersonalAccessToken: { + parameters: { + query?: never + header?: never + path: { + publisherId: string + } + cookie?: never + } + requestBody: { + content: { + 'application/json': components['schemas']['PersonalAccessToken'] + } + } + responses: { + /** @description Token created successfully */ + 201: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + /** @description The newly created personal access token. */ + token?: string + } + } + } + /** @description Bad request, invalid input data. */ + 400: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + } + } + deletePersonalAccessToken: { + parameters: { + query?: never + header?: never + path: { + publisherId: string + tokenId: string + } + cookie?: never + } + requestBody?: never + responses: { + /** @description Token deleted successfully */ + 204: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + /** @description Token not found */ + 404: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + } + } + searchNodes: { + parameters: { + query?: { + /** @description Page number of the nodes list */ + page?: number + /** @description Number of nodes to return per page */ + limit?: number + /** @description Keyword to search the nodes */ + search?: string + /** @description Keyword to search the nodes by comfy node name */ + comfy_node_search?: string + /** @description Number of nodes to return per page */ + include_banned?: boolean + } + header?: never + path?: never + cookie?: never + } + requestBody?: never + responses: { + /** @description A paginated list of nodes */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + /** @description Total number of nodes available */ + total?: number + nodes?: components['schemas']['Node'][] + /** @description Current page number */ + page?: number + /** @description Maximum number of nodes per page */ + limit?: number + /** @description Total number of pages available */ + totalPages?: number + } + } + } + /** @description Invalid input, object invalid */ + 400: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Not found */ + 404: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + } + } + reindexNodes: { + parameters: { + query?: { + /** @description Maximum number of nodes to send to algolia at a time */ + max_batch?: number + /** @description Minimum interval from the last time the nodes were indexed to algolia */ + min_age?: string + } + header?: never + path?: never + cookie?: never + } + requestBody?: never + responses: { + /** @description Reindex completed successfully. */ + 200: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Bad request. */ + 400: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + } + } + listAllNodes: { + parameters: { + query?: { + /** @description Page number of the nodes list */ + page?: number + /** @description Number of nodes to return per page */ + limit?: number + /** @description Number of nodes to return per page */ + include_banned?: boolean + /** @description Retrieve nodes created or updated after this timestamp (ISO 8601 format) */ + timestamp?: string + /** @description Whether to fetch fresh result from database or use cached one if false */ + latest?: boolean + } + header?: never + path?: never + cookie?: never + } + requestBody?: never + responses: { + /** @description A paginated list of nodes */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + /** @description Total number of nodes available */ + total?: number + nodes?: components['schemas']['Node'][] + /** @description Current page number */ + page?: number + /** @description Maximum number of nodes per page */ + limit?: number + /** @description Total number of pages available */ + totalPages?: number + } + } + } + /** @description Invalid input, object invalid */ + 400: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Not found */ + 404: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + } + } + getNode: { + parameters: { + query?: never + header?: never + path: { + nodeId: string + } + cookie?: never + } + requestBody?: never + responses: { + /** @description Node details */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['Node'] + } + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + /** @description Node not found */ + 404: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + } + } + postNodeReview: { + parameters: { + query: { + /** @description number of star given to the node version */ + star: number + } + header?: never + path: { + nodeId: string + } + cookie?: never + } + requestBody?: never + responses: { + /** @description Detailed information about a specific node */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['Node'] + } + } + /** @description Bad Request */ + 400: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Node version not found */ + 404: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['Error'] + } + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + } + } + installNode: { + parameters: { + query?: { + /** @description Specific version of the node to retrieve. If omitted, the latest version is returned. */ + version?: string + } + header?: never + path: { + /** @description The unique identifier of the node. */ + nodeId: string + } + cookie?: never + } + requestBody?: never + responses: { + /** @description Node data returned successfully. */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['NodeVersion'] + } + } + /** @description Invalid input, such as a bad version format. */ + 400: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + /** @description Node not found. */ + 404: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + } + } + listNodeVersions: { + parameters: { + query?: { + statuses?: components['schemas']['NodeVersionStatus'][] + include_status_reason?: boolean + } + header?: never + path: { + nodeId: string + } + cookie?: never + } + requestBody?: never + responses: { + /** @description List of all node versions */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['NodeVersion'][] + } + } + /** @description Node banned */ + 403: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + /** @description Node not found */ + 404: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['Error'] + } + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + } + } + getNodeVersion: { + parameters: { + query?: never + header?: never + path: { + nodeId: string + /** @description The version of the node. (Not a UUID). */ + versionId: string + } + cookie?: never + } + requestBody?: never + responses: { + /** @description Detailed information about a specific node version */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['NodeVersion'] + } + } + /** @description Node version not found */ + 404: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['Error'] + } + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + } + } + listAllNodeVersions: { + parameters: { + query?: { + nodeId?: string + statuses?: components['schemas']['NodeVersionStatus'][] + include_status_reason?: boolean + /** @description The page number to retrieve. */ + page?: number + /** @description The number of items to include per page. */ + pageSize?: number + } + header?: never + path?: never + cookie?: never + } + requestBody?: never + responses: { + /** @description List of all node versions */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + /** @description Total number of node versions available */ + total?: number + versions?: components['schemas']['NodeVersion'][] + /** @description Current page number */ + page?: number + /** @description Maximum number of node versions per page. Maximum is 100. */ + pageSize?: number + /** @description Total number of pages available */ + totalPages?: number + } + } + } + /** @description Invalid input, object invalid */ + 400: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + /** @description Node banned */ + 403: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + } + } + adminUpdateNodeVersion: { + parameters: { + query?: never + header?: never + path: { + nodeId: string + versionNumber: string + } + cookie?: never + } + requestBody: { + content: { + 'application/json': { + status?: components['schemas']['NodeVersionStatus'] + /** @description The reason for the status change. */ + status_reason?: string + } + } + } + responses: { + /** @description Version updated successfully */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['NodeVersion'] + } + } + /** @description Bad request, invalid input data. */ + 400: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + /** @description Version not found */ + 404: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + } + } + securityScan: { + parameters: { + query?: { + minAge?: string + maxNodes?: number + } + header?: never + path?: never + cookie?: never + } + requestBody?: never + responses: { + /** @description Scan completed successfully */ + 200: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Bad request, invalid input data. */ + 400: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + } + } + CreateComfyNodes: { + parameters: { + query?: never + header?: never + path: { + nodeId: string + version: string + } + cookie?: never + } + requestBody: { + content: { + 'application/json': { + success?: boolean + status?: string + reason?: string + cloud_build_info?: components['schemas']['ComfyNodeCloudBuildInfo'] + nodes?: { + [key: string]: components['schemas']['ComfyNode'] + } + } + } + } + responses: { + /** @description Comy Nodes created successfully */ + 204: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + /** @description Version not found */ + 404: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + /** @description Existing Comfy Nodes exists */ + 409: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + } + } + GetComfyNode: { + parameters: { + query?: never + header?: never + path: { + nodeId: string + version: string + comfyNodeName: string + } + cookie?: never + } + requestBody?: never + responses: { + /** @description Comy Nodes created successfully */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ComfyNode'] + } + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + /** @description Version not found */ + 404: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + } + } + ComfyNodesBackfill: { + parameters: { + query?: { + max_node?: number + } + header?: never + path?: never + cookie?: never + } + requestBody?: never + responses: { + /** @description Backfill triggered */ + 204: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Bad request, invalid input data. */ + 400: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['ErrorResponse'] + } + } + } + } +}