Palo Alto Networks Licensing API
The Prisma Cloud License endpoints enable you to query your Prisma Cloud usage.
The Prisma Cloud License endpoints enable you to query your Prisma Cloud usage.
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