{
  "openapi": "3.0.1",
  "info": {
    "title": "Polyglot Manifest License and End-of-Life Gate",
    "description": "Read manifest files from more than one ecosystem. Report the license, the deprecation flag and the abandonment age of each package in one table.",
    "version": "0.1",
    "x-build-id": "Lb6NTH6JFGIW7dsMz"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/kingii98~polyglot-manifest-license-and-end-of-life-gate/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-kingii98-polyglot-manifest-license-and-end-of-life-gate",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/kingii98~polyglot-manifest-license-and-end-of-life-gate/runs": {
      "post": {
        "operationId": "runs-sync-kingii98-polyglot-manifest-license-and-end-of-life-gate",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/kingii98~polyglot-manifest-license-and-end-of-life-gate/run-sync": {
      "post": {
        "operationId": "run-sync-kingii98-polyglot-manifest-license-and-end-of-life-gate",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "required": [
          "manifests"
        ],
        "properties": {
          "manifests": {
            "title": "Manifests",
            "minItems": 1,
            "maxItems": 25,
            "type": "array",
            "description": "1 to 25 manifest files. Give each one as pasted text (content) or as a public URL (url). Supported types: package.json, package-lock.json, requirements.txt, go.mod and Cargo.toml. The type comes from the file name, or you can state it. No repository clone. No package install.",
            "default": [
              {
                "name": "web/package.json",
                "type": "package.json",
                "content": "{\n  \"name\": \"demo-web\",\n  \"dependencies\": {\n    \"express\": \"^4.18.2\",\n    \"request\": \"^2.88.2\",\n    \"left-pad\": \"^1.3.0\"\n  }\n}\n"
              },
              {
                "name": "api/requirements.txt",
                "type": "requirements.txt",
                "content": "requests==2.31.0\ndjango>=4.2\n"
              },
              {
                "name": "gateway/go.mod",
                "type": "go.mod",
                "content": "module example.com/demo\n\ngo 1.21\n\nrequire (\n\tgithub.com/gorilla/mux v1.8.1\n\tgithub.com/sirupsen/logrus v1.9.3\n)\n"
              },
              {
                "name": "worker/Cargo.toml",
                "type": "Cargo.toml",
                "content": "[package]\nname = \"demo-worker\"\nversion = \"0.1.0\"\n\n[dependencies]\nserde = \"1.0\"\nrand = \"0.8\"\n"
              }
            ]
          },
          "licensePolicy": {
            "title": "Denied SPDX licenses",
            "type": "array",
            "description": "SPDX identifiers that the report must flag, for example GPL-3.0-only and AGPL-3.0-only. A package whose license matches one of these gets the FAIL verdict. Deprecated identifiers such as GPL-3.0 are matched as well.",
            "default": [
              "GPL-3.0-only",
              "AGPL-3.0-only"
            ],
            "items": {
              "type": "string"
            }
          },
          "abandonmentDays": {
            "title": "Abandonment age in days",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "A package with no new release in this many days gets the abandoned flag.",
            "default": 730
          },
          "includeTransitive": {
            "title": "Include transitive dependencies",
            "type": "boolean",
            "description": "Resolve one level of transitive dependencies for npm and PyPI packages, and keep the transitive entries that a lock file or a go.mod indirect marker already states. Off by default, because it multiplies the package count and the run cost.",
            "default": false
          },
          "failOnDeprecated": {
            "title": "A deprecated package fails the policy",
            "type": "boolean",
            "description": "Count a package that the registry marks deprecated (or a yanked PyPI or crates.io release) as a policy failure.",
            "default": true
          },
          "failOnAbandoned": {
            "title": "An abandoned package fails the policy",
            "type": "boolean",
            "description": "Count a package that is older than the abandonment age as a policy failure. Off by default, because an old release is often a stable release.",
            "default": false
          },
          "failOnUnknownLicense": {
            "title": "An unreadable license fails the policy",
            "type": "boolean",
            "description": "Count a package whose license the registry does not state as an SPDX identifier as a policy failure.",
            "default": false
          },
          "baselineKey": {
            "title": "Baseline key",
            "type": "string",
            "description": "Optional key-value store key that holds the baseline for this manifest set. Leave it empty and the Actor derives one key from the manifest names, so the same manifest set finds its own baseline on the next run.",
            "default": ""
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}