Palo Alto Networks Packages API

The Packages API from Palo Alto Networks — 5 operation(s) for packages.

OpenAPI Specification

palo-alto-networks-packages-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  contact: {}
  description: "The Packages endpoints are listed below.           \n"
  title: Prisma Cloud API Overview Packages API
  version: Latest
servers:
- url: https://api.prismacloud.io
tags:
- name: Packages
paths:
  /code/api/v1/vulnerabilities/packages/files/{fileMetadataId}:
    get:
      description: 'Gets all the Packages related to a specific file based on pagination

        Pagination is required - this endpoint must use the pagination.validate

        The API accepts a file metadata UUID.

        There is an option to get the packages sorted by their error count.

        root-only query parameter is optional - if true, returns only root level packages, in a sense of the file''s dependency tree'
      operationId: getPackagesByFile
      parameters:
      - in: path
        name: fileMetadataId
        required: true
        schema:
          type: string
      - in: query
        name: limit
        required: true
        schema:
          format: double
          type: number
      - in: query
        name: offset
        required: true
        schema:
          format: double
          type: number
      - in: query
        name: sort
        required: false
        schema:
          enum:
          - errors
          type: string
      - in: query
        name: root-only
        required: false
        schema:
          type: boolean
      responses:
        '200':
          content:
            application/json:
              examples:
                Example 1:
                  value:
                    fileMetadataId: b3f4f652-b71a-4b8b-8b7f-f812f80a7b44
                    hasNext: false
                    packages:
                    - fileMetadataId: 8d79e5a6-399b-42c3-8678-1fc165ca72c5
                      packageId: b3f4f652-b71a-4b8b-8b7f-jd2k359k5d36
                      packageLicenses: []
                      packageName: express
                      packageVersion: 4.17.1
              schema:
                $ref: '#/components/schemas/GetPackagesByFileResponse'
          description: get packages by file
        '422':
          description: Request arguments validation error
      security:
      - CustomAuthorizer: []
      summary: Get Packages Related to a File
      tags:
      - Packages
      x-codeSamples:
      - lang: Python + Requests
        source: 'import requests


          url = "https://api.prismacloud.io/code/api/v1/vulnerabilities/packages/files/{fileMetadataId}"


          querystring = {"limit":"SOME_NUMBER_VALUE","offset":"SOME_NUMBER_VALUE","sort":"SOME_STRING_VALUE","root-only":"SOME_BOOLEAN_VALUE"}


          headers = {"authorization": "REPLACE_KEY_VALUE"}


          response = requests.request("GET", url, headers=headers, params=querystring)


          print(response.text)'
      - lang: Shell + Curl
        source: "curl --request GET \\\n  --url 'https://api.prismacloud.io/code/api/v1/vulnerabilities/packages/files/{fileMetadataId}?limit=SOME_NUMBER_VALUE&offset=SOME_NUMBER_VALUE&sort=SOME_STRING_VALUE&root-only=SOME_BOOLEAN_VALUE' \\\n  --header 'authorization: REPLACE_KEY_VALUE'"
  /code/api/v1/vulnerabilities/packages/{packageUuid}/direct-sub-dependencies:
    get:
      description: 'Gets all the direct sub-dependencies packages of a specific package.

        The API accepts a package UUID.

        There is an option to get the packages sorted by their error count.'
      operationId: getDirectSubDependenciesByUuid
      parameters:
      - in: path
        name: packageUuid
        required: true
        schema:
          type: string
      - in: query
        name: limit
        required: true
        schema:
          format: double
          type: number
      - in: query
        name: offset
        required: true
        schema:
          format: double
          type: number
      - in: query
        name: sort
        required: false
        schema:
          enum:
          - errors
          type: string
      responses:
        '200':
          content:
            application/json:
              examples:
                Example 1:
                  value:
                    directSubDependenciesPackages:
                    - fileMetadataId: 8d79e5a6-399b-42c3-8678-1fc165ca72c5
                      packageId: b3f4f652-b71a-4b8b-8b7f-jd2k359k5d36
                      packageLicenses: []
                      packageName: express
                      packageVersion: 4.17.1
                    hasNext: false
                    packageId: b3f4f652-b71a-4b8b-8b7f-f812f80a7b43
              schema:
                $ref: '#/components/schemas/GetDirectSubDependenciesByUuidResponse'
          description: Get direct sub-dependencies packages by source package.
        '422':
          description: Request arguments validation error
      security:
      - CustomAuthorizer: []
      summary: Get Direct Sub-dependency Packages by Source Package
      tags:
      - Packages
      x-codeSamples:
      - lang: Python + Requests
        source: 'import requests


          url = "https://api.prismacloud.io/code/api/v1/vulnerabilities/packages/{packageUuid}/direct-sub-dependencies"


          querystring = {"limit":"SOME_NUMBER_VALUE","offset":"SOME_NUMBER_VALUE","sort":"SOME_STRING_VALUE"}


          headers = {"authorization": "REPLACE_KEY_VALUE"}


          response = requests.request("GET", url, headers=headers, params=querystring)


          print(response.text)'
      - lang: Shell + Curl
        source: "curl --request GET \\\n  --url 'https://api.prismacloud.io/code/api/v1/vulnerabilities/packages/{packageUuid}/direct-sub-dependencies?limit=SOME_NUMBER_VALUE&offset=SOME_NUMBER_VALUE&sort=SOME_STRING_VALUE' \\\n  --header 'authorization: REPLACE_KEY_VALUE'"
  /code/api/v1/vulnerabilities/packages/{packageUuid}:
    get:
      description: 'Gets Package by its uuid.

        The API accepts a package UUID.'
      operationId: getPackageByUuid
      parameters:
      - in: path
        name: packageUuid
        required: true
        schema:
          type: string
      - description: options to get more data on the package by comma-separated list as string, for now the only option is errorCount, file, repository
        in: query
        name: include
        required: false
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              examples:
                Example 1:
                  value:
                    errorCount: 3
                    fileMetadataId: 8d79e5a6-399b-42c3-8678-1fc165ca72c5
                    packageId: b3f4f652-b71a-4b8b-8b7f-jd2k359k5d36
                    packageLicenses: []
                    packageName: express
                    packageVersion: 4.17.1
              schema:
                $ref: '#/components/schemas/PackageData'
          description: get package by uuid
        '422':
          description: Request arguments validation error
      security:
      - CustomAuthorizer: []
      summary: Get Package
      tags:
      - Packages
      x-codeSamples:
      - lang: Python + Requests
        source: 'import requests


          url = "https://api.prismacloud.io/code/api/v1/vulnerabilities/packages/{packageUuid}"


          querystring = {"include":"SOME_STRING_VALUE"}


          headers = {"authorization": "REPLACE_KEY_VALUE"}


          response = requests.request("GET", url, headers=headers, params=querystring)


          print(response.text)'
      - lang: Shell + Curl
        source: "curl --request GET \\\n  --url 'https://api.prismacloud.io/code/api/v1/vulnerabilities/packages/{packageUuid}?include=SOME_STRING_VALUE' \\\n  --header 'authorization: REPLACE_KEY_VALUE'"
  /code/api/v1/vulnerabilities/packages/search:
    post:
      description: Searching for packages by a given reauestBody.
      operationId: searchPackages
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PackagesSearchBody'
        required: true
      responses:
        '200':
          content:
            application/json:
              examples:
                Example 1:
                  value:
                  - errorCount: 2
                    fileMetadataId: 8d79e5a6-399b-42c3-8678-1fc165ca72c5
                    fixableErrorCount: 1
                    packageId: a11294e7-e2e8-44c4-b48e-20305eb0000d
                    packageLicenses: []
                    packageName: validator
                    packageVersion: 8.2.0
                  - errorCount: 2
                    fileMetadataId: 8d79e5a6-399b-42c3-8678-1fc165ca72c5
                    fixableErrorCount: 2
                    packageId: d1b67af0-f168-4370-9d65-084fb6b1fa17
                    packageLicenses: []
                    packageName: validator
                    packageVersion: 8.2.0
              schema:
                $ref: '#/components/schemas/PackagesSearchResponse'
          description: search packages
        '422':
          description: Request arguments validation error
      security:
      - CustomAuthorizer: []
      summary: Search Packages
      tags:
      - Packages
      x-codeSamples:
      - lang: Python + Requests
        source: "import requests\n\nurl = \"https://api.prismacloud.io/code/api/v1/vulnerabilities/packages/search\"\n\npayload = {\n    \"filter\": {\"fixableOnly\": True},\n    \"include\": [\"errorCount\"],\n    \"limit\": 0,\n    \"offset\": 0,\n    \"q\": \"string\",\n    \"repositories\": [\"string\"],\n    \"sortBy\": [\"errors\"],\n    \"statuses\": [\"OPEN\"]\n}\nheaders = {\n    \"content-type\": \"application/json\",\n    \"authorization\": \"REPLACE_KEY_VALUE\"\n}\n\nresponse = requests.request(\"POST\", url, json=payload, headers=headers)\n\nprint(response.text)"
      - lang: Shell + Curl
        source: "curl --request POST \\\n  --url https://api.prismacloud.io/code/api/v1/vulnerabilities/packages/search \\\n  --header 'authorization: REPLACE_KEY_VALUE' \\\n  --header 'content-type: application/json' \\\n  --data '{\"filter\":{\"fixableOnly\":true},\"include\":[\"errorCount\"],\"limit\":0,\"offset\":0,\"q\":\"string\",\"repositories\":[\"string\"],\"sortBy\":[\"errors\"],\"statuses\":[\"OPEN\"]}'"
  /code/api/v1/vulnerabilities/packages/{packageUuid}/cves:
    get:
      description: Get cves by package uuid.
      operationId: getCvesByPackageUuid
      parameters:
      - in: path
        name: packageUuid
        required: true
        schema:
          type: string
      - in: query
        name: directOnly
        required: false
        schema:
          type: boolean
      responses:
        '200':
          content:
            application/json:
              examples:
                Example 1:
                  value:
                    data:
                    - causePackageId: null
                      cveId: CVE-2017-16026
                      cvss: 4
                      description: Request is an http client. If a request is made using ```multipart```, and the body type .....
                      fixVersion: ''
                      link: https://nvd.nist.gov/vuln/detail/CVE-2017-16026
                      packageName: request
                      packageVersion: 2.36.0
                      publishedDate: '2018-06-04T19:29:00.000Z'
                      riskFactors:
                        DoS: false
                        HasFix: false
                        Severity: Low
                      severity: LOW
                      uuid: 4714c309-f02e-4288-9e85-2e7f0356ad24
                      vector: CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N
                    - causePackageId: 2126d52e-484b-45c3-9896-c4c9cddb2dd5
                      cveId: CVE-2014-7191
                      cvss: 7
                      description: The qs module before 1.0.0 in Node.js does not call the compact function for array data, which allows remote attackers to cause a denial of service (memory consumption) by using a large index value to create a sparse array.
                      fixVersion: ''
                      link: https://nvd.nist.gov/vuln/detail/CVE-2014-7191
                      packageName: request
                      packageVersion: 2.36.0
                      publishedDate: '2014-10-19T01:55:00.000Z'
                      riskFactors:
                        Complexity: low
                        DoS: true
                        HasFix: true
                        Severity: High
                        Vector: network
                      severity: HIGH
                      uuid: d88564ba-bf2a-49cf-912c-b91bd0c4442c
                      vector: AV:N/AC:L/Au:N/C:N/I:N/A:P
                    packageUuid: a3d99fe0-98f3-41f6-8de4-4d9691786833
              schema:
                $ref: '#/components/schemas/GetCvesByPackageUuidResponse'
          description: cves
        '422':
          description: Request arguments validation error
      security:
      - CustomAuthorizer: []
      summary: Get CVEs by Package UUID
      tags:
      - Packages
      x-codeSamples:
      - lang: Python + Requests
        source: 'import requests


          url = "https://api.prismacloud.io/code/api/v1/vulnerabilities/packages/{packageUuid}/cves"


          querystring = {"directOnly":"SOME_BOOLEAN_VALUE"}


          headers = {"authorization": "REPLACE_KEY_VALUE"}


          response = requests.request("GET", url, headers=headers, params=querystring)


          print(response.text)'
      - lang: Shell + Curl
        source: "curl --request GET \\\n  --url 'https://api.prismacloud.io/code/api/v1/vulnerabilities/packages/{packageUuid}/cves?directOnly=SOME_BOOLEAN_VALUE' \\\n  --header 'authorization: REPLACE_KEY_VALUE'"
components:
  schemas:
    GetPackagesByFileResponse:
      additionalProperties: false
      properties:
        fileMetadataId:
          type: string
        hasNext:
          type: boolean
        packages:
          items:
            $ref: '#/components/schemas/PackageData'
          type: array
      required:
      - fileMetadataId
      - packages
      - hasNext
      type: object
    Include:
      enum:
      - errorCount
      - fixableErrorCount
      - file
      - repository
      - images
      type: string
    PackageData:
      additionalProperties: false
      properties:
        errorCount:
          format: double
          type: number
        fileMetadataId:
          type: string
        fileMetadataPath:
          type: string
        fixableErrorCount:
          format: double
          type: number
        images:
          items:
            type: string
          type: array
        isRoot:
          type: boolean
        licensesMetadata:
          items:
            $ref: '#/components/schemas/LicenseMetadata'
          type: array
        packageId:
          type: string
        packageLanguage:
          type: string
        packageLicenses:
          items:
            type: string
          type: array
        packageName:
          type: string
        packageVersion:
          type: string
        repository:
          properties:
            name:
              type: string
            owner:
              type: string
          type: object
        sourcePackageIds:
          items:
            properties:
              sourcePackageId:
                type: string
            required:
            - sourcePackageId
            type: object
          type:
          - array
          - 'null'
      required:
      - packageId
      - packageName
      - packageVersion
      - packageLicenses
      type: object
    Status:
      enum:
      - OPEN
      - SUPPRESS
      - PASS
      type: string
    CVEResponse:
      additionalProperties: false
      properties:
        causePackageId:
          type:
          - string
          - 'null'
        cveId:
          type: string
        cvss:
          format: double
          type:
          - number
          - 'null'
        description:
          type:
          - string
          - 'null'
        fixVersion:
          type: string
        link:
          type:
          - string
          - 'null'
        packageName:
          type: string
        packageVersion:
          type: string
        publishedDate:
          type: string
        riskFactors:
          additionalProperties:
            anyOf:
            - type: boolean
            - type: string
          properties: {}
          type: object
        severity:
          type: string
        uuid:
          type: string
        vector:
          type:
          - string
          - 'null'
      required:
      - fixVersion
      - cvss
      - vector
      - description
      - severity
      - packageName
      - packageVersion
      - link
      - riskFactors
      - cveId
      - publishedDate
      - uuid
      - causePackageId
      type: object
    Sort:
      enum:
      - errors
      type: string
    GetCvesByPackageUuidResponse:
      additionalProperties: false
      properties:
        data:
          items:
            $ref: '#/components/schemas/CVEResponse'
          type: array
        packageUuid:
          type: string
      required:
      - data
      - packageUuid
      type: object
    GetDirectSubDependenciesByUuidResponse:
      additionalProperties: false
      properties:
        directSubDependenciesPackages:
          items:
            $ref: '#/components/schemas/PackageData'
          type: array
        hasNext:
          type: boolean
        packageId:
          type: string
      required:
      - packageId
      - directSubDependenciesPackages
      - hasNext
      type: object
    LicenseMetadata:
      additionalProperties: false
      properties:
        isOsi:
          type: boolean
        isSpdx:
          type: boolean
        license:
          type: string
      required:
      - license
      - isSpdx
      - isOsi
      type: object
    PackagesSearchResponse:
      additionalProperties: false
      properties:
        hasNext:
          type: boolean
        packages:
          items:
            $ref: '#/components/schemas/PackageData'
          type: array
      required:
      - packages
      - hasNext
      type: object
    PackagesSearchBody:
      additionalProperties: false
      properties:
        filter:
          properties:
            fixableOnly:
              type: boolean
          required:
          - fixableOnly
          type: object
        include:
          items:
            $ref: '#/components/schemas/Include'
          type: array
        limit:
          format: double
          type: number
        offset:
          format: double
          type: number
        q:
          type: string
        repositories:
          items:
            type: string
          type: array
        sortBy:
          items:
            $ref: '#/components/schemas/Sort'
          type: array
        statuses:
          items:
            $ref: '#/components/schemas/Status'
          type: array
      required:
      - repositories
      - limit
      - offset
      type: object
  securitySchemes:
    CustomAuthorizer:
      in: header
      name: authorization
      type: apiKey
      x-amazon-apigateway-authorizer:
        authorizerResultTtlInSeconds: 0
        authorizerUri: arn:aws:apigateway:{Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:{Region}:{AccountId}:function:bc-authorization-authorizer-{UniqueTag}{Alias}/invocations
        identitySource: method.request.header.authorization
        type: request
      x-amazon-apigateway-authtype: custom