Palo Alto Networks Licensing API

The Prisma Cloud License endpoints enable you to query your Prisma Cloud usage.

OpenAPI Specification

palo-alto-networks-licensing-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Palo Alto Networks Licensing API
  version: Latest
  contact: {}
  description: 'Operations tagged Licensing across 2 of this provider''s published API definitions: palo-alto-cspm-consolidated-spec-cspm-spec-openapi.json, palo-alto-cspm-licensingmicroservice-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.prismacloud.io
- url: https://api2.prismacloud.io
- url: https://api3.prismacloud.io
- url: https://api4.prismacloud.io
- url: https://api.anz.prismacloud.io
- url: https://api.eu.prismacloud.io
- url: https://api2.eu.prismacloud.io
- url: https://api.gov.prismacloud.io
- url: https://api.prismacloud.cn
- url: https://api.ca.prismacloud.io
- url: https://api.sg.prismacloud.io
- url: https://api.uk.prismacloud.io
- url: https://api.ind.prismacloud.io
- url: https://api.jp.prismacloud.io
- url: https://api.fr.prismacloud.io
tags:
- name: Licensing
  description: The Prisma Cloud License endpoints enable you to query your Prisma Cloud usage.
paths:
  /license/api/v1/usage:
    post:
      tags:
      - Licensing
      summary: Usage Count By Cloud Type V1 (Deprecated)
      description: "Returns a breakdown of resources used per account for a single cloud type. \n\n**Note**: This API will be deprecated soon. To ensure that your automation and scripts continue to work without disruption, use the **Usage Count By Cloud Type V2** API.\n\nYou can request usage data in one of the following formats;\n* Receive paginated usage data in the response object \n* Download usage data in a CSV file\n\n\nBy default, you will receive your paginated usage data in the response object. You can control the number of items in the \nresponse object through the **limit** request body parameter. If data beyond what's in the response object is available,\nthe response object attribute **nextPageToken** will provide a token you can set in the request parameter **pageToken** of your\nnext request to get the next page of usage data.\n\n\nTo download the usage data in a CSV file, set the following:\n* Request header: **Accept: application/octet-stream**\n* Request body parameter: **csvHeaderRequired** = **true**.\n\n\nThe following example curl command requests usage data in a CSV file:\n\n```bash\ncurl --location --request POST 'https://api.prismacloud.io/license/api/v1/usage' \\\n--header 'x-redlock-auth:<your JWT>' \\\n--header 'Content-Type: application/json' \\\n--header 'Accept: application/octet-stream' \\\n--data-raw '{\n    \"timeRange\": {\n        \"type\": \"relative\",\n        \"value\": {\n            \"amount\": 1,\n            \"unit\": \"month\"\n        }\n    },\n    \"accountIds\": [\n        \"123456789987\", \n        \"987654321123\"\n    ],\n    \"cloudType\": \"AWS\",\n    \"csvHeaderRequired\": true\n}'\n````\n"
      operationId: license-usage-count-by-cloud-paginated_1_1
      parameters:
      - name: cloud_type
        in: query
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json; charset=UTF-8:
            schema:
              $ref: '#/components/schemas/LicenseRequestModel'
        required: true
      responses:
        '200':
          description: Successful operation
          content:
            application/json; charset=UTF-8:
              schema:
                $ref: '#/components/schemas/LicenseResponseModel'
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/CsvMessage'
        '400':
          description: invalid_parameter_value
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/SpringErrorResponse'
            application/json; charset=UTF-8:
              schema:
                oneOf:
                - $ref: '#/components/schemas/LicenseResponseModel'
                - $ref: '#/components/schemas/SpringErrorResponse'
        '403':
          description: Forbidden
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/SpringErrorResponse'
            application/json; charset=UTF-8:
              schema:
                oneOf:
                - $ref: '#/components/schemas/LicenseResponseModel'
                - $ref: '#/components/schemas/SpringErrorResponse'
        '500':
          description: internal_error
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/SpringErrorResponse'
            application/json; charset=UTF-8:
              schema:
                oneOf:
                - $ref: '#/components/schemas/LicenseResponseModel'
                - $ref: '#/components/schemas/SpringErrorResponse'
      security:
      - x-redlock-auth: []
    servers:
    - url: https://api.prismacloud.io
    - url: https://api2.prismacloud.io
    - url: https://api3.prismacloud.io
    - url: https://api4.prismacloud.io
  /license/api/v1/usage/time_series:
    post:
      tags:
      - Licensing
      summary: Resource Usage Over Time V1 (Deprecated)
      description: 'Get a breakdown of resource usage over time.


        **Note**: This API will be deprecated soon. To ensure that your automation and scripts continue to work without disruption, use the **Resource Usage Over Time V2** API.

        '
      operationId: license-usage-graph_1
      requestBody:
        content:
          application/json; charset=UTF-8:
            schema:
              $ref: '#/components/schemas/AccountListRequestModel1'
        required: true
      responses:
        '200':
          description: Successful operation
          content:
            application/json; charset=UTF-8:
              schema:
                $ref: '#/components/schemas/ResourceUsageGraphResponse'
        '400':
          description: invalid_parameter_value
          content:
            application/json; charset=UTF-8:
              schema:
                $ref: '#/components/schemas/SpringErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json; charset=UTF-8:
              schema:
                $ref: '#/components/schemas/SpringErrorResponse'
        '500':
          description: internal_error
          content:
            application/json; charset=UTF-8:
              schema:
                $ref: '#/components/schemas/SpringErrorResponse'
      security:
      - x-redlock-auth: []
    servers:
    - url: https://api.prismacloud.io
    - url: https://api2.prismacloud.io
    - url: https://api3.prismacloud.io
    - url: https://api4.prismacloud.io
  /license/api/v2/usage:
    post:
      tags:
      - Licensing
      summary: Usage Count By Cloud Type V2
      description: "Get a full breakdown of resources used per account for selected cloud types in a paginated way.\n\nBy default, you will receive your paginated usage data in the response object. You can control the number of items in the \nresponse object through the **limit** request body parameter. If data beyond what's in the response object is available,\nthe response object attribute **nextPageToken** will provide a token you can set in the request parameter **pageToken** of your\nnext request to get the next page of usage data.\n"
      operationId: license-usage-count-by-cloud-paginated
      parameters:
      - name: cloud_type
        in: query
        schema:
          type: string
      requestBody:
        content:
          application/json; charset=UTF-8:
            schema:
              $ref: '#/components/schemas/LicensingUsageApiRequest'
        required: true
      responses:
        '200':
          description: Successful operation
          content:
            application/json; charset=UTF-8:
              schema:
                $ref: '#/components/schemas/ResourceUsageCountResponse'
        '400':
          description: invalid_parameter_value
          content:
            application/json; charset=UTF-8:
              schema:
                $ref: '#/components/schemas/SpringErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json; charset=UTF-8:
              schema:
                $ref: '#/components/schemas/SpringErrorResponse'
        '500':
          description: internal_error
          content:
            application/json; charset=UTF-8:
              schema:
                $ref: '#/components/schemas/SpringErrorResponse'
      security:
      - x-redlock-auth: []
    servers:
    - url: https://api.prismacloud.io
    - url: https://api2.prismacloud.io
    - url: https://api3.prismacloud.io
    - url: https://api4.prismacloud.io
  /license/api/v2/time_series:
    post:
      tags:
      - Licensing
      summary: Resource Usage Over Time V2
      description: Get a breakdown of resource usage over time.
      operationId: license-usage-graph
      requestBody:
        content:
          application/json; charset=UTF-8:
            schema:
              $ref: '#/components/schemas/LicensingUsageApiRequest'
        required: true
      responses:
        '200':
          description: Successful operation
          content:
            application/json; charset=UTF-8:
              schema:
                $ref: '#/components/schemas/ResourceUsageGraphResponse'
        '400':
          description: invalid_parameter_value
          content:
            application/json; charset=UTF-8:
              schema:
                $ref: '#/components/schemas/SpringErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json; charset=UTF-8:
              schema:
                $ref: '#/components/schemas/SpringErrorResponse'
        '500':
          description: internal_error
          content:
            application/json; charset=UTF-8:
              schema:
                $ref: '#/components/schemas/SpringErrorResponse'
      security:
      - x-redlock-auth: []
    servers:
    - url: https://api.prismacloud.io
    - url: https://api2.prismacloud.io
    - url: https://api3.prismacloud.io
    - url: https://api4.prismacloud.io
  /license/api/v1/credit-allocation-rules:
    post:
      tags:
      - Licensing
      summary: Credit allocation rules and usage
      description: Get credit allocation rules and usage with pagination.
      operationId: getCreditAllocationRules
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreditAllocationRuleListRequest'
      responses:
        '200':
          description: Success
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/CreditAllocationRuleList'
        '400':
          description: invalid_parameter_value
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SpringErrorResponse'
      security:
      - x-redlock-auth: []
      x-public: 'true'
    servers:
    - url: https://api.prismacloud.io
    - url: https://api2.prismacloud.io
    - url: https://api3.prismacloud.io
    - url: https://api4.prismacloud.io
    - url: https://api.anz.prismacloud.io
    - url: https://api.eu.prismacloud.io
    - url: https://api2.eu.prismacloud.io
    - url: https://api.gov.prismacloud.io
    - url: https://api.prismacloud.cn
    - url: https://api.ca.prismacloud.io
    - url: https://api.sg.prismacloud.io
    - url: https://api.uk.prismacloud.io
    - url: https://api.ind.prismacloud.io
    - url: https://api.jp.prismacloud.io
    - url: https://api.fr.prismacloud.io
  /license/api/v1/credit-allocation-rule:
    post:
      tags:
      - Licensing
      summary: Create credit allocation rule
      description: Create credit allocation rule.
      operationId: createCreditAllocationRule
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreditAllocationRule'
        required: true
      responses:
        '200':
          description: Success
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/CreditAllocationRule'
        '400':
          description: invalid_parameter_value
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SpringErrorResponse'
      security:
      - x-redlock-auth: []
      x-public: 'true'
    servers:
    - url: https://api.prismacloud.io
    - url: https://api2.prismacloud.io
    - url: https://api3.prismacloud.io
    - url: https://api4.prismacloud.io
    - url: https://api.anz.prismacloud.io
    - url: https://api.eu.prismacloud.io
    - url: https://api2.eu.prismacloud.io
    - url: https://api.gov.prismacloud.io
    - url: https://api.prismacloud.cn
    - url: https://api.ca.prismacloud.io
    - url: https://api.sg.prismacloud.io
    - url: https://api.uk.prismacloud.io
    - url: https://api.ind.prismacloud.io
    - url: https://api.jp.prismacloud.io
    - url: https://api.fr.prismacloud.io
  /license/api/v1/credit-allocation-rule-summary:
    post:
      tags:
      - Licensing
      summary: Credit allocation rule summary
      description: Get credit allocation rule summary.
      operationId: getCreditAllocationRuleSummary
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreditAllocationRuleSummaryRequest'
      responses:
        '200':
          description: Success
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/CreditAllocationSummary'
        '400':
          description: invalid_parameter_value
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SpringErrorResponse'
      security:
      - x-redlock-auth: []
      x-public: 'true'
    servers:
    - url: https://api.prismacloud.io
    - url: https://api2.prismacloud.io
    - url: https://api3.prismacloud.io
    - url: https://api4.prismacloud.io
    - url: https://api.anz.prismacloud.io
    - url: https://api.eu.prismacloud.io
    - url: https://api2.eu.prismacloud.io
    - url: https://api.gov.prismacloud.io
    - url: https://api.prismacloud.cn
    - url: https://api.ca.prismacloud.io
    - url: https://api.sg.prismacloud.io
    - url: https://api.uk.prismacloud.io
    - url: https://api.ind.prismacloud.io
    - url: https://api.jp.prismacloud.io
    - url: https://api.fr.prismacloud.io
  /license/api/v1/credit-allocation-rule/{ruleId}:
    get:
      tags:
      - Licensing
      summary: Credit allocation rule
      description: Get a credit allocation rule, without license usage
      operationId: getCreditAllocationRule
      parameters:
      - name: ruleId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/CreditAllocationRule'
        '400':
          description: invalid_parameter_value
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SpringErrorResponse'
      security:
      - x-redlock-auth: []
      x-public: 'true'
    delete:
      tags:
      - Licensing
      summary: Delete credit allocation rule
      description: Delete credit allocation rule.
      operationId: deleteCreditAllocationRule
      parameters:
      - name: ruleId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
        '400':
          description: invalid_parameter_value
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SpringErrorResponse'
      security:
      - x-redlock-auth: []
      x-public: 'true'
    patch:
      tags:
      - Licensing
      summary: Update credit allocation rule
      description: Update credit allocation rule.
      operationId: updateCreditAllocationRule
      parameters:
      - name: ruleId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreditAllocationRule'
        required: true
      responses:
        '200':
          description: Success
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/CreditAllocationRule'
        '400':
          description: invalid_parameter_value
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SpringErrorResponse'
      security:
      - x-redlock-auth: []
      x-public: 'true'
    servers:
    - url: https://api.prismacloud.io
    - url: https://api2.prismacloud.io
    - url: https://api3.prismacloud.io
    - url: https://api4.prismacloud.io
    - url: https://api.anz.prismacloud.io
    - url: https://api.eu.prismacloud.io
    - url: https://api2.eu.prismacloud.io
    - url: https://api.gov.prismacloud.io
    - url: https://api.prismacloud.cn
    - url: https://api.ca.prismacloud.io
    - url: https://api.sg.prismacloud.io
    - url: https://api.uk.prismacloud.io
    - url: https://api.ind.prismacloud.io
    - url: https://api.jp.prismacloud.io
    - url: https://api.fr.prismacloud.io
  /license/api/v1/credit-allocation-rule-names:
    get:
      tags:
      - Licensing
      summary: Credit allocation rule
      description: Get a credit allocation rule names
      operationId: getCreditAllocationRuleNames
      responses:
        '200':
          description: Success
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/CreditAllocationRuleNames'
      security:
      - x-redlock-auth: []
      x-public: 'true'
    servers:
    - url: https://api.prismacloud.io
    - url: https://api2.prismacloud.io
    - url: https://api3.prismacloud.io
    - url: https://api4.prismacloud.io
    - url: https://api.anz.prismacloud.io
    - url: https://api.eu.prismacloud.io
    - url: https://api2.eu.prismacloud.io
    - url: https://api.gov.prismacloud.io
    - url: https://api.prismacloud.cn
    - url: https://api.ca.prismacloud.io
    - url: https://api.sg.prismacloud.io
    - url: https://api.uk.prismacloud.io
    - url: https://api.ind.prismacloud.io
    - url: https://api.jp.prismacloud.io
    - url: https://api.fr.prismacloud.io
components:
  schemas:
    RelativeTimeRangeConfig:
      required:
      - type
      type: object
      properties:
        type:
          type: string
          enum:
          - relative
        value:
          $ref: '#/components/schemas/RelativeTimeDurationModel1'
        relativeTimeType:
          type: string
          enum:
          - BACKWARD
      description: Model for RelativeTimeRangeConfig
    GraphDataPoint:
      type: object
      properties:
        timeRange:
          $ref: '#/components/schemas/TimeRange'
        counts:
          type: object
          additionalProperties:
            type: object
            additionalProperties:
              type: integer
              description: Graph resource usage by cloud type
              format: int32
            description: Graph resource usage by cloud type
          description: Graph resource usage by cloud type
      description: Graph resource usage data points
    RelativeTimeDurationModel1:
      type: object
      properties:
        unit:
          type: string
          description: Time unit
          enum:
          - minute
          - hour
          - day
          - week
          - month
          - year
          - epoch
          - login
          - minute, hour, day, week, month, year, epoch, login
        amount:
          type: integer
          description: Number of time units
          format: int32
      description: Model for RelativeTimeDuration
    AccountDetails:
      type: object
      properties:
        name:
          type: string
        id:
          type: string
    LicensingUsageApiRequest:
      required:
      - accountIds
      - timeRange
      type: object
      properties:
        accountIds:
          type: array
          description: List of account IDs
          items:
            type: string
            description: List of account IDs
        limit:
          type: integer
          description: Limit of items per request. Default is 1000.
          format: int32
          example: 100
        cloudTypes:
          type: array
          description: List of cloud types
          items:
            type: string
            description: List of cloud types
        timeRange:
          $ref: '#/components/schemas/RelativeTimeRangeConfig'
        pageToken:
          type: string
          description: Page token for pagination
          example: 'null'
        offset:
          type: integer
          description: Offset
          format: int64
          example: 0
      description: Licensing Usage Api request payload
    LicenseRequestModel:
      required:
      - accountIds
      - timeRange
      type: object
      properties:
        accountIds:
          type: array
          description: List of account IDs
          items:
            type: string
            description: List of account IDs
        limit:
          type: integer
          description: Limit no of records per request
          format: int32
          example: 10
        timeRange:
          $ref: '#/components/schemas/RelativeTimeRangeConfig'
        cloudType:
          type: string
          description: Cloud type values
          example: aws
        csvHeaderRequired:
          type: boolean
          description: CSV file header
          example: true
        pageToken:
          type: string
          description: Page token for pagination
          example: 'null'
        offset:
          type: integer
          description: Offset
          format: int64
          example: 0
      description: Model for LicenseRequest
    CsvMessage:
      type: object
      properties:
        headerComments:
          type: array
          description: List of header comments
          items:
            type: string
            description: List of header comments
        headers:
          type: array
          description: List of headers
          items:
            type: string
            description: List of headers
        rows:
          type: array
          description: List of rows
          items:
            type: array
            description: List of rows
            items:
              type: string
              description: List of rows
      description: Model for CsvMessage
    ResourceUsageGraphResponse:
      type: object
      properties:
        dataPoints:
          type: array
          description: Graph GraphDataPoint points
          items:
            $ref: '#/components/schemas/GraphDataPoint'
        workloadsPurchased:
          type: integer
          description: Purchased workload count
          format: int32
        timeUnit:
          type: string
          description: Returned data in time unit
          enum:
          - minute
          - hour
          - day
          - week
          - month
          - year
          - epoch
          - login
        availableAsOf:
          type: integer
          description: Selected data end time in milli second
          format: int64
      description: Graph resource usage
    SpringErrorResponse:
      required:
      - error
      - message
      - path
      - status
      - timestamp
      type: object
      properties:
        timestamp:
          type: string
          description: timestamp
        status:
          type: integer
          description: Http status
          format: int32
        error:
          type: string
          description: Error message
        message:
          type: string
          description: Error message
        path:
          type: string
          description: Request path
      description: Error Response
    Account:
      type: object
      properties:
        name:
          type: string
        id:
          type: string
    Stats:
      type: object
      properties:
        stats:
          type: object
          additionalProperties:
            type: integer
            format: int32
      description: Statistics to be shown. This contains the total workload per resource type.
    Item:
      type: object
      properties:
        total:
          type: integer
          format: int32
        account:
          $ref: '#/components/schemas/Account'
        resourceTypeCount:
          type: object
          additionalProperties:
            type: object
      description: List of items. Each item contains cloud account name and the workload count of resource type
    AccountListRequestModel1:
      required:
      - accountIds
      - timeRange
      type: object
      properties:
        accountIds:
          type: array
          description: List of account IDs
          items:
            type: string
            description: List of account IDs
        limit:
          type: integer
          description: Limit of items per request. Default is 1000.
          format: int32
          example: 100
        timeRange:
          $ref: '#/components/schemas/RelativeTimeRangeConfig'
        cloudType:
          type: string
          description: Cloud type values
          example: aws
        csvHeaderRequired:
          type: boolean
          description: CSV file header
          example: true
      description: Model for AccountListRequest
    LicenseResponseModel:
      type: object
      properties:
        totalRows:
          type: integer
          description: Total number of rows for the query.
          format: int64
        nextPageToken:
          type: string
          description: Token to be used for next page call.
        items:
          type: array
          description: List of items. Each item contains cloud account name and the workload count of resource type.
          items:
            $ref: '#/components/schemas/Item'
        stats:
          $ref: '#/components/schemas/Stats'
      description: Model containing Paginated License response
    TimeRange:
      required:
      - endTime
      - startTime
      type: object
      properties:
        startTime:
          type: object
          properties:
            empty:
              type: boolean
            present:
              type: boolean
            asLong:
              type: integer
              format: int64
          description: Start Time im Millis
        endTime:
          type: object
          properties:
            empty:
              type: boolean
            present:
              type: boolean
            asLong:
              type: integer
              format: int64
          description: End Time im Millis
      description: Time range
    ResourceUsageCountResponse:
      type: object
      properties:
        totalRows:
          type: integer
          description: Total number of rows for the query
          format: int32
        stats:
          type: object
          additionalProperties:
            type: integer
            description: Statistics to be shown. This contains the total workload per resource type.
            format: int32
          description: Statistics to be shown. This contains the total workload per resource type.
        items:
          type: array
          description: List of items. Each item contains cloud account name and the workload count of resource type
          items:
            $ref: '#/components/schemas/ResourceUsageCount'
        nextPageToken:
          type: string
          description: Token to be used for next page call
        planType:
          type: string
          description: PlanType of the selected time range
      description: Model containing Paginated License response
    ResourceUsageCount:
      type: object
      properties:
        account:
          $ref: '#/components/schemas/AccountDetails'
        cloudType:
          type: string
        total:
          type: integer
          format: int32
        resourceTypeCount:
          type: object
          additionalProperties:
            type: integer
            format: int32
      description: List of items. Each item contains cloud account name and the workload count of resource type
    CreditAllocationRule:
      required:
      - accountGroups
      - alarmThreshold
      - allocatedCredits
      - id
      - name
      - targetType
      type: object
      properties:
        id:
          type: string
          description: Unique id.  Ignored on create.  Must match path param on update.
        customerId:
          type: integer
          description: Customer id.  Ignored on create and update.
          format: int32
        prismaId:
          type: integer
          description: Customer prisma id.  Ignored on create and update.
          format: int64
        name:
          maxLength: 200
          minLength: 1
          type: string
          description: Rule name.  Must be non-empty and unique.  Required on create.  Ignored on update if null.
        targetType:
          type: string
          description: Must be 'AccountGroup'.  Required on create.  Ignored on update if null.
          enum:
          - AccountGroup
        allocatedCredits:
          maximum: 2147483647
          minimum: 0
          type: integer
          description: Credits allocated to this rule.  Required on create.  Ignored on update if null.
          format: int32
        alarmThreshold:
          maximum: 100
          minimum: 0
          type: integer
          description: Percent usage of allocatedCredits to trigger alarm.  Required on create.  Ignored on update if null.
          format: int32
        accountGroups:
          maxItems: 2147483647
          minItems: 1
          uniqueItems: true
          type: array
          description: Account group ids.  Must be at least one.  Required on create.  Ignored on update if null.
          items:
            type: string
            description: Account group ids.  Must be at least one.  Required on create.  Ignored on update if null.
        usedCredits:
          type: integer
          description: Credit usage for the requested time period
          format: int32
        percentage:
          type: integer
          description: Percent credit usage of the rule allocated credits
          format: int32
      description: Credit allocation rule
    ResourceUsageGraphResponse_2:
      type: object
      properties:
        dataPoints:
          type: array
          description: Graph GraphDataPoint points
          items:
            $ref: '#/components/schemas/GraphDataPoint'
        workloadsPurchased:
          type: integer
          description: Purchased workload count
          format: int32
        timeUnit:
          type: string
          description: Returned data in time unit
          enum:
          - minute
          - hour
          - day
          - week
          - month
          - year
          - epoch
          - login
          - INVALID
        availableAsOf:
          type: integer
          description: Selected data end time in milli second
          format: int64
      description: Graph resource usage
    TimeRangeValue:
      type: object
      properties:
        unit:
          type: string
          description: Time unit when type=relative, to_now, or from_now.  The unit 'week' is only supported when type=relative.
          enum:
          - hour
          - day
          - week
          - month
          - year
        amount:
          minimum: 1
          type: integer
          description: Number of time units when type=relative
          format: int32
        startTime:
          minimum: 0
          type: integer
          description: Start time when type=absolute.  startTime must be milli-seconds since epoch.
          format: int64
        endTime:
          minimum: 0
          type: integer
          description: End time when type=absolute.  endTime must be milli-seconds since epoch.
          format: int64
      description: Time range value for credit allocation rule request. For relative, provide an object with unit and amount fields. For absolute, provide an object with startTime and endTime fields. For to_now or from_now, 

# --- truncated at 32 KB (38 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/palo-alto-networks/refs/heads/main/openapi/palo-alto-networks-licensing-api-openapi.yml