Palo Alto Networks Application Settings API
Application Settings
Application Settings
openapi: 3.2.0
info:
version: 2.0.0
title: GlobalProtect Application Settings API
description: These APIs are used for defining and managing Prisma Access GlobalProtect services within Strata Cloud Manager.
termsOfService: https://www.paloaltonetworks.com/content/dam/pan/en_US/assets/pdf/legal/palo-alto-networks-end-user-license-agreement-eula.pdf
contact:
email: support@paloaltonetworks.com
name: Palo Alto Networks Technical Support
url: https://support.paloaltonetworks.com
license:
name: MIT
url: https://opensource.org/license/mit
servers:
- url: https://api.strata.paloaltonetworks.com/config/mobile-agent/v1
description: Current
- url: https://api.sase.paloaltonetworks.com/sse/config/v1/mobile-agent
description: Legacy
security:
- scmToken: []
tags:
- name: Application Settings
description: Application Settings
paths:
/agent-profiles:
get:
tags:
- Application Settings
summary: List GlobalProtect agent profiles
description: 'Retrieve a list of GlobalProtect agent profiles
'
operationId: ListGlobalProtectAgentProfiles
parameters:
- $ref: '#/components/parameters/name'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/offset'
- $ref: '#/components/parameters/folder-mobileusers-required'
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
data:
allOf:
- type: array
items:
$ref: '#/components/schemas/agent-profiles'
limit:
type: integer
default: 200
offset:
type: integer
default: 0
total:
type: integer
'400':
$ref: '#/components/responses/bad_request_errors_basic'
'401':
$ref: '#/components/responses/auth_errors'
'403':
$ref: '#/components/responses/access_errors'
'404':
$ref: '#/components/responses/not_found'
default:
$ref: '#/components/responses/default_errors'
post:
tags:
- Application Settings
summary: Create a GlobalProtect agent profile
description: 'Create a new GlobalProtect agent profile
'
operationId: CreateGlobalProtectAgentProfiles
parameters:
- $ref: '#/components/parameters/folder-mobileusers-required'
requestBody:
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/agent-profiles'
responses:
'201':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/agent-profiles'
'400':
$ref: '#/components/responses/bad_request_errors_basic_with_body'
'401':
$ref: '#/components/responses/auth_errors'
'403':
$ref: '#/components/responses/access_errors'
'409':
$ref: '#/components/responses/conflict_errors'
default:
$ref: '#/components/responses/default_errors'
put:
tags:
- Application Settings
summary: Update a GlobalProtect agent profile
description: 'Update an existing GlobalProtect agent profile
'
operationId: UpdateGlobalProtectAgentProfiles
parameters:
- $ref: '#/components/parameters/folder-mobileusers-required'
requestBody:
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/agent-profiles'
responses:
'200':
$ref: '#/components/responses/http_ok'
'400':
$ref: '#/components/responses/bad_request_errors_basic_with_body'
'401':
$ref: '#/components/responses/auth_errors'
'403':
$ref: '#/components/responses/access_errors'
'404':
$ref: '#/components/responses/not_found'
'409':
$ref: '#/components/responses/conflict_errors'
default:
$ref: '#/components/responses/default_errors'
delete:
tags:
- Application Settings
summary: Delete a GlobalProtect agent profile
description: 'Delete a GlobalProtect agent profile
'
operationId: DeleteGlobalProtectAgentProfiles
parameters:
- $ref: '#/components/parameters/name-required'
- $ref: '#/components/parameters/folder-mobileusers-required'
responses:
'200':
$ref: '#/components/responses/http_ok'
'400':
$ref: '#/components/responses/bad_request_errors_basic'
'401':
$ref: '#/components/responses/auth_errors'
'403':
$ref: '#/components/responses/access_errors'
'404':
$ref: '#/components/responses/not_found'
'409':
$ref: '#/components/responses/conflict_errors'
default:
$ref: '#/components/responses/default_errors'
components:
examples:
json_401_panui_auth_key_expired:
summary: Key Expired
value:
_errors:
- code: E016
message: Key Expired
details: {}
_request_id: 123e4567-e89b-12d3-a456-426655440000
json_501_panui_restapi_method_not_supported:
summary: Method Not Supported
value:
_errors:
- code: E012
message: Method Not Supported
details: {}
_request_id: 123e4567-e89b-12d3-a456-426655440000
json_400_panui_restapi_input_format_mismatch:
summary: Input Format Mismatch
value:
_errors:
- code: E003
message: 'Input Format Mismatch: input-format=json'
details: {}
_request_id: 123e4567-e89b-12d3-a456-426655440000
json_501_panui_restapi_version_not_supported:
summary: Version Not Supported
value:
_errors:
- code: E012
message: Version Not Supported
details: {}
_request_id: 123e4567-e89b-12d3-a456-426655440000
json_409_panui_mgmt_name_not_unique:
summary: Name Not Unique
value:
_errors:
- code: E006
message: Name Not Unique
details: {}
_request_id: 123e4567-e89b-12d3-a456-426655440000
json_409_panui_mgmt_object_not_unique:
summary: Object Not Unique
value:
_errors:
- code: E016
message: Object Not Unique
details: {}
_request_id: 123e4567-e89b-12d3-a456-426655440000
json_404_panui_mgmt_object_not_present:
summary: Object Not Present
value:
_errors:
- code: E005
message: Object Not Present
details: {}
_request_id: 123e4567-e89b-12d3-a456-426655440000
json_400_panui_restapi_missing_body:
summary: Missing Body
value:
_errors:
- code: E003
message: Missing Body
details: {}
_request_id: 123e4567-e89b-12d3-a456-426655440000
json_409_panui_mgmt_reference_not_zero:
summary: Reference Not Zero
value:
_errors:
- code: E009
message: Reference Not Zero
details: {}
_request_id: 123e4567-e89b-12d3-a456-426655440000
json_400_panui_restapi_output_format_mismatch:
summary: Output Format Mismatch
value:
_errors:
- code: E003
message: 'Output Format Mismatch: output-format=json Accept=xml'
details: {}
_request_id: 123e4567-e89b-12d3-a456-426655440000
json_400_panui_mgmt_invalid_command:
summary: Invalid Command
value:
_errors:
- code: E003
message: Invalid Command
details: {}
_request_id: 123e4567-e89b-12d3-a456-426655440000
json_401_panui_auth_not_authenticated:
summary: Not Authenticated
value:
_errors:
- code: E016
message: Not Authenticated
details: {}
_request_id: 123e4567-e89b-12d3-a456-426655440000
json_401_panui_auth_invalid_credential:
summary: Invalid Credential
value:
_errors:
- code: E016
message: Invalid Credential
details: {}
_request_id: 123e4567-e89b-12d3-a456-426655440000
json_403_panui_auth_unauthorized:
summary: Unauthorized
value:
_errors:
- code: E007
message: Unauthorized
details: {}
_request_id: 123e4567-e89b-12d3-a456-426655440000
json_400_panui_restapi_missing_query_parameter:
summary: Missing Query Parameter
value:
_errors:
- code: E003
message: 'Missing Query Parameter: name'
details: {}
_request_id: 123e4567-e89b-12d3-a456-426655440000
json_405_panui_restapi_action_not_supported:
summary: Action Not Supported
value:
_errors:
- code: E012
message: 'Action Not Supported: move'
details: {}
_request_id: 123e4567-e89b-12d3-a456-426655440000
json_400_panui_restapi_invalid_query_parameter:
summary: Invalid Query Parameter
value:
_errors:
- code: E003
message: 'Invalid Query Parameter: location=invalid'
details: {}
_request_id: 123e4567-e89b-12d3-a456-426655440000
json_400_panui_mgmt_invalid_object:
summary: Invalid Object
value:
_errors:
- code: E003
message: Invalid Object
details: {}
_request_id: 123e4567-e89b-12d3-a456-426655440000
json_400_panui_mgmt_malformed_command:
summary: Malformed Command
value:
_errors:
- code: E003
message: Malformed Command
details: {}
_request_id: 123e4567-e89b-12d3-a456-426655440000
json_401_panui_auth_key_too_long:
summary: Key Too Long
value:
_errors:
- code: E016
message: Key Too Long
details: {}
_request_id: 123e4567-e89b-12d3-a456-426655440000
json_504_panui_mgmt_session_timeout:
summary: Session Timeout
value:
_errors:
- code: '4'
message: Session Timeout
details: {}
_request_id: 123e4567-e89b-12d3-a456-426655440000
json_401_panui_auth_need_password_change:
summary: Need Password Change
value:
_errors:
- code: E016
message: The password needs to be changed.
details: {}
_request_id: 123e4567-e89b-12d3-a456-426655440000
json_400_panui_mgmt_bad_xpath:
summary: Bad XPath
value:
_errors:
- code: E013
message: Bad XPath
details: {}
_request_id: 123e4567-e89b-12d3-a456-426655440000
schemas:
agent-profiles:
type: object
properties:
name:
type: string
folder:
type: string
default: Mobile Users
agent_ui:
type: object
description: Agent UI configuration settings
properties:
agent_user_override_timeout:
type: integer
description: Agent disabled duration (minutes). A value of `0` means the agent will remain disabled until manually enabled.
minimum: 0
maximum: 65535
default: 0
max_agent_user_overrides:
type: integer
description: The maximum number of times the agent can be disabled. A value of `0` means there are no limits to the number of times the agent can be disabled.
minimum: 0
maximum: 25
default: 0
passcode:
type: string
format: password
description: The passcode used to disable the agent
minLength: 6
maxLength: 64
uninstall_password:
type: string
format: password
description: The password used to uninstall the agent
minLength: 6
maxLength: 32
welcome_page:
type: object
description: The welcome page displayed upon login
properties:
page:
type: string
authentication_override:
type: object
properties:
accept_cookie:
type: object
properties:
cookie_lifetime:
type: object
properties:
lifetime_in_days:
type: number
minimum: 1
maximum: 365
lifetime_in_hours:
type: number
minimum: 1
maximum: 72
lifetime_in_minutes:
type: number
minimum: 1
maximum: 59
cookie_encrypt_decrypt_cert:
type: string
generate_cookie:
type: boolean
certificate:
type: object
properties:
criteria:
type: object
properties:
certificate_profile:
type: string
client_certificate:
type: object
properties:
local:
type: string
scep:
type: string
maxLength: 255
custom_checks:
type: object
properties:
criteria:
type: object
properties:
plist:
type: array
items:
type: object
properties:
name:
type: string
key:
type: array
items:
type: object
properties:
name:
type: string
negate:
type: boolean
value:
type: string
pattern: .*
maxLength: 1024
negate:
type: boolean
registry_key:
type: array
items:
type: object
properties:
name:
type: string
maxLength: 1023
default_value_data:
type: string
maxLength: 1024
negate:
type: boolean
registry_value:
type: array
items:
type: object
properties:
name:
type: string
negate:
type: boolean
value_data:
type: string
gateways:
type: object
properties:
external:
type: object
properties:
list:
type: array
items:
type: object
properties:
name:
type: string
choice:
type: object
oneOf:
- type: object
title: fqdn
properties:
fqdn:
type: string
- type: object
title: ip
properties:
ip:
type: object
properties:
ipv4:
type: string
pattern: ^([:0-9.])+$
maxLength: 100
ipv6:
type: string
maxLength: 100
manual:
type: boolean
description: If this GlobalProtect gateway can be manually selected
default: false
priority_rule:
type: array
items:
type: object
properties:
name:
type: string
priority:
enum:
- '0'
- '1'
- '2'
- '3'
- '4'
- '5'
internal:
type: object
properties:
list:
type: array
items:
type: object
properties:
name:
type: string
choice:
type: object
oneOf:
- type: object
title: fqdn
properties:
fqdn:
type: string
- type: object
title: ip
properties:
ip:
type: object
properties:
ipv4:
type: string
pattern: ^([:0-9.])+$
maxLength: 100
ipv6:
type: string
maxLength: 100
source_ip:
type: array
items:
type: string
gp_app_config:
type: object
properties:
config:
type: array
description: Currently we only support connect-method and tunnel-mtu as app-config
items:
type: object
anyOf:
- $ref: '#/components/schemas/connect-method'
- $ref: '#/components/schemas/tunnel-mtu'
hip_collection:
type: object
properties:
certificate_profile:
type: string
collect_hip_data:
type: boolean
custom_checks:
type: object
properties:
linux:
type: object
properties:
process_list:
type: array
items:
type: string
mac_os:
type: object
properties:
plist:
type: array
items:
type: object
properties:
name:
type: string
description: Preference list
maxLength: 1023
key:
type: array
items:
type: string
required:
- name
process_list:
type: array
items:
type: string
windows:
type: object
properties:
process_list:
type: array
items:
type: string
registry_key:
type: array
items:
type: object
properties:
name:
type: string
description: Registry key
maxLength: 1023
registry_value:
type: array
items:
type: string
required:
- name
exclusion:
type: object
properties:
category:
type: array
items:
type: object
properties:
name:
type: string
vendor:
type: array
items:
type: object
properties:
name:
type: string
product:
type: array
items:
type: string
max_wait_time:
type: number
minimum: 10
maximum: 60
internal_host_detection:
type: object
properties:
hostname:
type: string
description: Host name of the IPv4 in DNS record
pattern: ^[a-zA-Z0-9._-]+$
maxLength: 256
ip_address:
type: string
description: Internal IPv4 address of a host
internal_host_detection_v6:
type: object
properties:
hostname:
type: string
description: Host name of the IPv4 in DNS record
pattern: ^[a-zA-Z0-9._-]+$
maxLength: 256
ip_address:
type: string
description: Internal IPv6 address of a host
machine_account_exists_with_serialno:
type: object
properties:
'yes':
type: object
'no':
type: object
os:
type: array
items:
enum:
- Android
- Chrome
- IoT
- Linux
- Mac
- Windows
- WindowsUWP
- iOS
save_user_credentials:
enum:
- '0'
- '1'
- '2'
- '3'
source_user:
type: array
items:
type: string
third_party_vpn_clients:
type: array
items:
enum:
- PAN Virtual Ethernet Adapter
- Juniper Network Virtual Adapter
- Cisco Systems VPN Adapter
required:
- name
generic_error:
type: object
properties:
_errors:
$ref: '#/components/schemas/error_detail_cause_infos'
_request_id:
type: string
x-examples: {}
error_detail_cause_info:
type: object
title: Cause Info
properties:
code:
type: string
message:
type: string
details:
oneOf:
- type: string
- type: object
help:
type: string
tunnel-mtu:
type: object
properties:
name:
enum:
- tunnel-mtu
default: tunnel-mtu
value:
type: array
description: GlobalProtect Connection MTU (bytes)
minItems: 1
maxItems: 1
items:
type: number
minimum: 1000
maximum: 1420
default: 1400
error_detail_cause_infos:
type: array
items:
$ref: '#/components/schemas/error_detail_cause_info'
x-examples: {}
connect-method:
type: object
properties:
name:
enum:
- connect-method
default: connect-method
value:
type: array
minItems: 1
maxItems: 1
items:
enum:
- user-logon
- pre-logon
- on-demand
- pre-logon-then-on-demand
responses:
http_ok:
description: OK
not_found:
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/generic_error'
examples:
object_not_present:
$ref: '#/components/examples/json_404_panui_mgmt_object_not_present'
default_errors:
description: General Errors
content:
application/json:
schema:
$ref: '#/components/schemas/generic_error'
examples:
version_not_supported:
$ref: '#/components/examples/json_501_panui_restapi_version_not_supported'
method_not_allowed:
$ref: '#/components/examples/json_501_panui_restapi_method_not_supported'
action_not_supported:
$ref: '#/components/examples/json_405_panui_restapi_action_not_supported'
bad_xpath:
$ref: '#/components/examples/json_400_panui_mgmt_bad_xpath'
invalid_command:
$ref: '#/components/examples/json_400_panui_mgmt_invalid_command'
malformed_command:
$ref: '#/components/examples/json_400_panui_mgmt_malformed_command'
session_timeout:
$ref: '#/components/examples/json_504_panui_mgmt_session_timeout'
bad_request_errors_basic_with_body:
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/generic_error'
examples:
input_format_mismatch:
$ref: '#/components/examples/json_400_panui_restapi_input_format_mismatch'
output_format_mismatch:
$ref: '#/components/examples/json_400_panui_restapi_output_format_mismatch'
missing_query_parameter:
$ref: '#/components/examples/json_400_panui_restapi_missing_query_parameter'
invalid_query_parameter:
$ref: '#/components/examples/json_400_panui_restapi_invalid_query_parameter'
missing_body:
$ref: '#/components/examples/json_400_panui_restapi_missing_body'
invalid_object:
$ref: '#/components/examples/json_400_panui_mgmt_invalid_object'
bad_request_errors_basic:
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/generic_error'
examples:
input_format_mismatch:
$ref: '#/components/examples/json_400_panui_restapi_input_format_mismatch'
output_format_mismatch:
$ref: '#/components/examples/json_400_panui_restapi_output_format_mismatch'
missing_query_parameter:
$ref: '#/components/examples/json_400_panui_restapi_missing_query_parameter'
invalid_query_parameter:
$ref: '#/components/examples/json_400_panui_restapi_invalid_query_parameter'
auth_errors:
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/generic_error'
examples:
auth_not_authenticated:
$ref: '#/components/examples/json_401_panui_auth_not_authenticated'
invalid_credential:
$ref: '#/components/examples/json_401_panui_auth_invalid_credential'
key_too_long:
$ref: '#/components/examples/json_401_panui_auth_key_too_long'
key_expired:
$ref: '#/components/examples/json_401_panui_auth_key_expired'
need_password_change:
$ref: '#/components/examples/json_401_panui_auth_need_password_change'
conflict_errors:
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/generic_error'
examples:
object_not_unique:
$ref: '#/components/examples/json_409_panui_mgmt_object_not_unique'
name_not_unique:
$ref: '#/components/examples/json_409_panui_mgmt_name_not_unique'
reference_not_zero:
$ref: '#/components/examples/json_409_panui_mgmt_reference_not_zero'
access_errors:
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/generic_error'
examples:
auth_unauthorized:
$ref: '#/components/examples/json_403_panui_auth_unauthorized'
parameters:
name:
name: name
in: query
description: The name of the configuration resource
required: false
schema:
type: string
limit:
name: limit
in: query
description: The maximum number of results per page
required: false
schema:
type: integer
default: 200
folder-mobileusers-required:
name: folder
in: query
description: 'The folder in which the resource is defined
'
schema:
enum:
- Mobile Users
offset:
name: offset
in: query
description: The offset into the list of results returned
required: false
schema:
type: integer
default: 0
name-required:
name: name
in: query
description: The name of the configuration resource
required: true
schema:
type: string
securitySchemes:
scmOAuth:
type: oauth2
description: "Strata Cloud Manager APIs authenticate client requests using the \nOAuth 2.0 Client Credentials flow. Please use the `client_id`, \n`client_secret` values associated with an IAM service account along \nwith a scope value of `tsg_id:XXXXXXXXXX`, where `XXXXXXXXXX` is the \nTenant Service Group (TSG) ID. The resulting JWT access token should \nbe attached to all API calls as a `Bearer` token in the `Authorization` \nheader (ex. `Authorization: Bearer tokenstring`).\n"
flows:
clientCredentials:
tokenUrl: https://auth.apps.paloaltonetworks.com/oauth2/access_token
scopes: {}
scmToken:
type: http
description: "Strata Cloud Manager APIs authenticate client requests using the \nOAuth 2.0 Client Credentials flow. Please use the `client_id`, \n`client_secret` values associated with an IAM service account along \nwith a scope value of `tsg_id:XXXXXXXXXX`, where `XXXXXXXXXX` is the \nTenant Service Group (TSG) ID. The resulting JWT access token should \nbe attached to all API calls as a `Bearer` token in the `Authorization` \nheader (ex. `Authorization: Bearer tokenstring`).\n"
scheme: bearer
bearerFormat: JWT
x-internal: false