Files
zeekay 56f560f991
build / build (push) Failing after 0s
rename: ziti → zt across all paths
- Repo names: ziti-* → zt-*
- Go modules: github.com/hanzozt/ziti → github.com/hanzozt/zt
- Docker images: hanzozt/ziti-* → hanzozt/zt-*
- C/Java/JS symbols: ziti_* → zt_*
- File and directory names updated
2026-02-18 18:34:06 -08:00

7298 lines
320 KiB
YAML

consumes:
- application/json
produces:
- application/json
schemes:
- https
swagger: "2.0"
info:
contact:
email: [email protected]
name: Hanzo ZT
url: https://hanzozt.discourse.group
description: Hanzo ZT Edge Client API
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0.html
title: Ziti Edge Client
version: 0.26.53
host: demo.zt.dev
basePath: /edge/client/v1
paths:
/:
get:
operationId: listRoot
responses:
"200":
description: Version information for the controller
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/listVersionEnvelope'
security: []
summary: Returns version information
tags:
- Informational
/.well-known/est/cacerts:
get:
description: |
This endpoint is used during enrollments to bootstrap trust between enrolling clients and the Ziti Edge API.
This endpoint returns a base64 encoded PKCS7 store. The content can be base64 decoded and parsed by any library
that supports parsing PKCS7 stores.
operationId: listWellKnownCas
produces:
- application/pkcs7-mime
responses:
"200":
description: A base64 encoded PKCS7 store
schema:
example: |
MIIMUQYJKoZIhvcNAQcCoIIMQjCCDD4CAQExADALBgkqhkiG9w0BBwGgggwkMIIG
BjCCA+6gAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwgZcxCzAJBgNVBAYTAlVTMRcw
FQYDVQQIDA5Ob3J0aCBDYXJvbGluYTESMBAGA1UEBwwJQ2hhcmxvdHRlMRMwEQYD
VQQKDApOZXRGb3VuZHJ5MSkwJwYDVQQLDCBOZXRGb3VuZHJ5IENlcnRpZmljYXRl
IEF1dGhvcml0eTEbMBkGA1UEAwwSTmV0Rm91bmRyeSBSb290IENBMB4XDTE4MDUx
ODE2NTcyM1oXDTI4MDUxNTE2NTcyM1owgYsxCzAJBgNVBAYTAlVTMRcwFQYDVQQI
DA5Ob3J0aCBDYXJvbGluYTETMBEGA1UECgwKTmV0Rm91bmRyeTEpMCcGA1UECwwg
TmV0Rm91bmRyeSBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxIzAhBgNVBAMMGk5ldEZv
dW5kcnkgSW50ZXJtZWRpYXRlIENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
CgKCAgEAsb1EPhMUweS9WpjT7L54xAOmZqugJ6fhSrFfLUwNUy172q+ASvZTpT1z
KIPcZpGmPB3TX2bHaAR67BbRkUR11JgWE3U8+FsGrYmPZtaKM6fg8Mh0WZ41oMYQ
NJyQixOktrgqfybyJoT5PeT5AA7QQmd8mku2X9nkAu6gWPf2nHNc7SeQdijmyQQa
VK3oqyaxOzWzsU/XbfMEz/ObkefUxgt5Z6jlK0xcW0Q+QgtawMKLUiuo6obWRPcl
7Hm9Sze8XJS5pbvS5JkUszxoRZuDVHZylrlHIpA/IL+BnvS+M7SP28UWe9skrv/s
6ACpJtuPJ1EYf5fakugOpY7i+hq7YNi//csbc49Qjn2OtttrR7JcTaHUEU1I/tQb
QGAtNkI4pJjRVUdDawQFQlWHZD1COixNLErs2HzAI00DhLrY6SKITI/kjN0Xx010
XdMcdfay0PLWm6RwxiRmMQFL4GNIC895NF1q6xV4W4rWgqUNlcvKpy+i1chWpRbU
He16ul0qh10fcESrRvAbXn5YrQJLrwbSr+85ubN8lYdNLE0qg2cIXZlUilarZZzW
ghtCe+KkUpjfRuAi/CqfSwNK3QXEfeVEK6S49mHeSekOizFIw7fmDhCz9vXwMOnb
ryRSLEJks0gIRcSDVChXheAqC98y4kcQdniNWFnqJXoqA+rrSokCAwEAAaNmMGQw
HQYDVR0OBBYEFK8UXC/sq6dGVFAqEXHsQDzqzwuUMB8GA1UdIwQYMBaAFEHz6RRu
OuXj2mwAzOeUinfWeivpMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQD
AgGGMA0GCSqGSIb3DQEBCwUAA4ICAQBDAAaOE2Nbb49eOjyTNxIeOB+ZKQjJ1hUE
gRrootAA8NYbtKW/vyxTWnNi5XOGXd4DFS9OKZ0mL/7NyLc0mbTwPH2ZT8KTPUTS
Cpo6yktZ/7TMjyAtWZiOMg2EH+6m/nlNSXk/v5fb8+JQLdZfpxoA017dHh3tc8l7
KOskCZNwQHgF/YMXrPXUNbsGkXRuJLtpjPw5O9GvPys7p+a1aJH1WCTly9zfB6j+
rMF+UGCPDT30sxitVlohik83j6pKLgEAP/gi8nJbILlTP7ce+gJeHR2tfDvmK91X
6QgCF2STUFBU7/9H1/pPRRykOxQpAd8xqSgqGEyp9Ie4tysZjwoUEnG8IVJ5ykrI
Fximvnb4B+LABV9WEo08n8m1R8wEryrISi8fBPn3Pr5nuayOfFLa15CLTkZF40FN
8ika1qNZy8bWRDwTZJQUUb7VCheRWcMwdZdNmhl3J+VZLpQ+ruW7b2ajwacHz5Nw
BHKNcmxXb/4vHq/BnlcayHnSqT6036+OZQ+owDegcYmWV6LaM7xLErjHz2EE38M2
YSiW5SU1zluDe+iHb6l3Gd3Fj/X1gkMWFgYh0XPMSUSyimLNYzy4THKzmWlcQNFo
LLiIDbLrMt+vk+vBkIsNTTPXRJOFPBhmIF6uIUj+2YhzNotX/pQtqMKms3pPlmHq
dH6biwygETCCBhYwggP+oAMCAQICCQDquKpymLJ5WzANBgkqhkiG9w0BAQsFADCB
lzELMAkGA1UEBhMCVVMxFzAVBgNVBAgMDk5vcnRoIENhcm9saW5hMRIwEAYDVQQH
DAlDaGFybG90dGUxEzARBgNVBAoMCk5ldEZvdW5kcnkxKTAnBgNVBAsMIE5ldEZv
dW5kcnkgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MRswGQYDVQQDDBJOZXRGb3VuZHJ5
IFJvb3QgQ0EwHhcNMTgwNTE4MTY1NDQ3WhcNMzgwNTEzMTY1NDQ3WjCBlzELMAkG
A1UEBhMCVVMxFzAVBgNVBAgMDk5vcnRoIENhcm9saW5hMRIwEAYDVQQHDAlDaGFy
bG90dGUxEzARBgNVBAoMCk5ldEZvdW5kcnkxKTAnBgNVBAsMIE5ldEZvdW5kcnkg
Q2VydGlmaWNhdGUgQXV0aG9yaXR5MRswGQYDVQQDDBJOZXRGb3VuZHJ5IFJvb3Qg
Q0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKq/Xa+749Cr3WJGYD
DIEtNKIRnTFc6TeiRSm/O7hG2+1Nrh/dObjZJuDjsopWP8NFA/DwlNyEphYKAeSw
HDmu+4nFd6ifoeDE2lYq6bNhLcgN+A3MlN5Phb2rnO32YYZwHXGWov+jtd2gaK0f
WsH8CQxn6n2v7qvPMTeYFP8p4jqTZw2bvZWw+LMYTFCy541DFqQLQasMg10mXRAV
XO7Oa9y+D1re1zLq4wS6u8ItJoKzfmvZkMvD90C/tQ4u0iJaL7GB2SE9MOPDeGVv
pnoSAIkSVmvRDUAj2x9PuukykzoL1OAWzc5Cg+5LxRmLejVE7PvPcHaTtNag2tRD
w2vbMeFKN8NvQH1QYcaPWZe4Vl9b6DAuTaH5RN919H/F+ZHyjZybVPwC14lflneI
KyNy8JEV/YMIbEADWnuiedzDehk2Opn+0+9Zr2X/xfjCo8iWHFbNaVnQX7wdRaOo
783lEouncqe46FDBLBpyAuDKHQpIT3MK8rkC/1yBNxsH44vMweUZuK0u7PC9KHtm
pQfuflYGfxA34kY6WU3jzyQHetoLYjoxTqNEEjuGpwy2o1j7RaCBEFIbYlnlbhpE
WFTaQf96z2GQ6m1U3y7JyDflHSu9Fo1JNkG3qXsjDwda/6W7NRJRgdFrhnOwrm7F
6L9X4P1HnzU/VJL66LwPmiHVjQIDAQABo2MwYTAdBgNVHQ4EFgQUQfPpFG465ePa
bADM55SKd9Z6K+kwHwYDVR0jBBgwFoAUQfPpFG465ePabADM55SKd9Z6K+kwDwYD
VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQADggIB
ACfU74aKWROaxnue8tZb5PFkEbnDRcRrKXRhnptA0vrgB4ydnYxX9hEBZD8o6PBy
3rewvl5meSOBE6zyb4JD80lHdzHSVFIwbzsNOeEjCslv/PA/3Y+J7DCt6gPNMDeY
uEssdqeSiMoYz2gnven4flSMKgTAJd3/SpVrn35HzXiU9MkmFVpPEMnTctOjw+Jn
cCkG5+D9N14dxtgZ/tUfbH+GUfhyGVxRdPrX5KQqAyapMfEaMXXa8KNs7PG+sDiS
WI+Sg9jUGtxgkfKdVNtFW+QMXyy7eT3iXPA+1r2hFAhgfIaGtBJUhxPHMhKtjbAg
AX+6+2D3GAbaD1+lcQHhKry3hygQ3OX79FJW6zyPS0tiV/LfovHqX/3x9q5PTVBO
wEOS2/LCc4R2M7S+HIPf4eSJ+nH4uCIdJ42WCror/mRsuL7geCksi70GHuCynP4y
qQFszu/UtbBEsN8loTnLpOInxaGB1Y8UPm14b2Lo1/3HkoMVh0/UaHJ0TmnZ1r7m
fGhfRyAZYRdvT1sB+Eb4b5A2zEZqsTc9IwFOhnI4ZilPoZ5s2xejqrVw3GSvovEh
dprrQmvxuh+VQ23y/+/4z9b2xWyDu2zVveB4whqPe2rkgxJrEl4GfLk2DW+dN6j8
3Zl4lPoUZYwzkC6raCaHyFlAoaTbqz0H6rvVJYxJPS6UoQAxAA==
type: string
security: []
summary: Get CA Cert Store
tags:
- Well Known
/authenticate:
parameters:
- enum:
- password
- cert
- ext-jwt
in: query
name: method
required: true
type: string
post:
description: |
Allowed authentication methods include "password", "cert", and "ext-jwt"
operationId: authenticate
parameters:
- in: body
name: auth
schema:
$ref: '#/definitions/authenticate'
responses:
"200":
description: The API session associated with the session used to issue the request
examples:
default:
data:
_links:
self:
href: ./current-api-session
configTypes: []
createdAt: "2020-03-09T19:03:49.1883693Z"
expiresAt: "2020-03-09T19:34:21.5600897Z"
id: 27343114-b44f-406e-9981-f3c4f2f28d54
identity:
_links:
self:
href: ./identities/66352d7b-a6b2-4ce9-85bb-9f18e318704d
id: 66352d7b-a6b2-4ce9-85bb-9f18e318704d
name: Default Admin
urlName: identities
tags:
- userField1: !!float 123
- userField2: asdf
token: 28bb0ed2-0577-4632-ae70-d17106b92871
updatedAt: "2020-03-09T19:04:21.5600897Z"
meta: {}
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/currentApiSessionDetailEnvelope'
"400":
description: The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information
examples:
application/json:
error:
args:
urlVars: {}
cause:
details:
context: (root)
field: (root)
property: fooField3
field: (root)
message: '(root): fooField3 is required'
type: required
value:
fooField: abc
fooField2: def
causeMessage: schema validation failed
code: COULD_NOT_VALIDATE
message: The supplied request contains an invalid document
requestId: ac6766d6-3a09-44b3-8d8a-1b541d97fdd9
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"401":
description: The authentication request could not be processed as the credentials are invalid
examples:
application/json:
error:
args:
urlVars: {}
cause: ""
causeMessage: ""
code: INVALID_AUTH
message: The authentication request failed
requestId: 5952ed10-3091-474f-a691-47ebab6990dc
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"429":
description: The resource requested is rate limited and the rate limit has been exceeded
examples:
application/json:
error:
args:
urlVars: {}
causeMessage: you have hit a rate limit in the requested operation
code: RATE_LIMITED
message: The resource is rate limited and the rate limit has been exceeded. Please try again later
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
security: []
summary: Authenticate via a method supplied via a query string parameter
tags:
- Authentication
/authenticate/mfa:
post:
description: Completes MFA authentication by submitting a MFA time based one time token or backup code.
operationId: authenticateMfa
parameters:
- description: An MFA validation request
in: body
name: mfaAuth
required: true
schema:
$ref: '#/definitions/mfaCode'
responses:
"200":
description: Base empty response
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/empty'
"401":
description: Base empty response
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/empty'
"429":
description: The resource requested is rate limited and the rate limit has been exceeded
examples:
application/json:
error:
args:
urlVars: {}
causeMessage: you have hit a rate limit in the requested operation
code: RATE_LIMITED
message: The resource is rate limited and the rate limit has been exceeded. Please try again later
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
security:
- ztSession: []
- oauth2:
- openid
summary: Complete MFA authentication
tags:
- Authentication
- MFA
/controllers:
get:
description: Retrieves a list of controllers
operationId: listControllers
parameters:
- in: query
name: limit
type: integer
- in: query
name: offset
type: integer
- in: query
name: filter
type: string
responses:
"200":
description: A list of controllers
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/listControllersEnvelope'
"400":
description: The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information
examples:
application/json:
error:
args:
urlVars: {}
cause:
details:
context: (root)
field: (root)
property: fooField3
field: (root)
message: '(root): fooField3 is required'
type: required
value:
fooField: abc
fooField2: def
causeMessage: schema validation failed
code: COULD_NOT_VALIDATE
message: The supplied request contains an invalid document
requestId: ac6766d6-3a09-44b3-8d8a-1b541d97fdd9
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"401":
description: The supplied session does not have the correct access rights to request this resource
examples:
application/json:
error:
args:
urlVars: {}
cause: ""
causeMessage: ""
code: UNAUTHORIZED
message: The request could not be completed. The session is not authorized or the credentials are invalid
requestId: 0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"429":
description: The resource requested is rate limited and the rate limit has been exceeded
examples:
application/json:
error:
args:
urlVars: {}
causeMessage: you have hit a rate limit in the requested operation
code: RATE_LIMITED
message: The resource is rate limited and the rate limit has been exceeded. Please try again later
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
security:
- ztSession: []
- oauth2:
- openid
summary: List controllers
tags:
- Controllers
/current-api-session:
delete:
description: Terminates the current API session
responses:
"200":
description: Base empty response
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/empty'
"401":
description: The supplied session does not have the correct access rights to request this resource
examples:
application/json:
error:
args:
urlVars: {}
cause: ""
causeMessage: ""
code: UNAUTHORIZED
message: The request could not be completed. The session is not authorized or the credentials are invalid
requestId: 0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
security:
- ztSession: []
- oauth2:
- openid
summary: Logout
tags:
- Current API Session
get:
description: Retrieves the API session that was used to issue the current request
operationId: getCurrentAPISession
responses:
"200":
description: The API session associated with the session used to issue the request
examples:
default:
data:
_links:
self:
href: ./current-api-session
configTypes: []
createdAt: "2020-03-09T19:03:49.1883693Z"
expiresAt: "2020-03-09T19:34:21.5600897Z"
id: 27343114-b44f-406e-9981-f3c4f2f28d54
identity:
_links:
self:
href: ./identities/66352d7b-a6b2-4ce9-85bb-9f18e318704d
id: 66352d7b-a6b2-4ce9-85bb-9f18e318704d
name: Default Admin
urlName: identities
tags:
- userField1: !!float 123
- userField2: asdf
token: 28bb0ed2-0577-4632-ae70-d17106b92871
updatedAt: "2020-03-09T19:04:21.5600897Z"
meta: {}
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/currentApiSessionDetailEnvelope'
"401":
description: The supplied session does not have the correct access rights to request this resource
examples:
application/json:
error:
args:
urlVars: {}
cause: ""
causeMessage: ""
code: UNAUTHORIZED
message: The request could not be completed. The session is not authorized or the credentials are invalid
requestId: 0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
security:
- ztSession: []
- oauth2:
- openid
summary: Return the current API session
tags:
- Current API Session
/current-api-session/certificates:
get:
description: Retrieves a list of certificate resources for the current API session; supports filtering, sorting, and pagination
operationId: listCurrentApiSessionCertificates
parameters:
- in: query
name: limit
type: integer
- in: query
name: offset
type: integer
- in: query
name: filter
type: string
responses:
"200":
description: A list of the current API Session's certificate
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/listCurrentApiSessionCertificatesEnvelope'
"400":
description: The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information
examples:
application/json:
error:
args:
urlVars: {}
cause:
details:
context: (root)
field: (root)
property: fooField3
field: (root)
message: '(root): fooField3 is required'
type: required
value:
fooField: abc
fooField2: def
causeMessage: schema validation failed
code: COULD_NOT_VALIDATE
message: The supplied request contains an invalid document
requestId: ac6766d6-3a09-44b3-8d8a-1b541d97fdd9
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"401":
description: The supplied session does not have the correct access rights to request this resource
examples:
application/json:
error:
args:
urlVars: {}
cause: ""
causeMessage: ""
code: UNAUTHORIZED
message: The request could not be completed. The session is not authorized or the credentials are invalid
requestId: 0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"429":
description: The resource requested is rate limited and the rate limit has been exceeded
examples:
application/json:
error:
args:
urlVars: {}
causeMessage: you have hit a rate limit in the requested operation
code: RATE_LIMITED
message: The resource is rate limited and the rate limit has been exceeded. Please try again later
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"503":
description: The request could not be completed due to the server being busy or in a temporarily bad state
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
security:
- ztSession: []
- oauth2:
- openid
summary: List the ephemeral certificates available for the current API Session
tags:
- Current API Session
post:
description: Creates an ephemeral certificate for the current API Session. This endpoint expects a PEM encoded CSRs to be provided for fulfillment as a property of a JSON payload. It is up to the client to manage the private key backing the CSR request.
operationId: createCurrentApiSessionCertificate
parameters:
- description: The payload describing the CSR used to create a session certificate
in: body
name: sessionCertificate
required: true
schema:
$ref: '#/definitions/currentApiSessionCertificateCreate'
responses:
"201":
description: A response of a create API Session certificate
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/createCurrentApiSessionCertificateEnvelope'
"400":
description: The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information
examples:
application/json:
error:
args:
urlVars: {}
cause:
details:
context: (root)
field: (root)
property: fooField3
field: (root)
message: '(root): fooField3 is required'
type: required
value:
fooField: abc
fooField2: def
causeMessage: schema validation failed
code: COULD_NOT_VALIDATE
message: The supplied request contains an invalid document
requestId: ac6766d6-3a09-44b3-8d8a-1b541d97fdd9
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"401":
description: The supplied session does not have the correct access rights to request this resource
examples:
application/json:
error:
args:
urlVars: {}
cause: ""
causeMessage: ""
code: UNAUTHORIZED
message: The request could not be completed. The session is not authorized or the credentials are invalid
requestId: 0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"429":
description: The resource requested is rate limited and the rate limit has been exceeded
examples:
application/json:
error:
args:
urlVars: {}
causeMessage: you have hit a rate limit in the requested operation
code: RATE_LIMITED
message: The resource is rate limited and the rate limit has been exceeded. Please try again later
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"503":
description: The request could not be completed due to the server being busy or in a temporarily bad state
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
security:
- ztSession: []
- oauth2:
- openid
summary: Creates an ephemeral certificate for the current API Session
tags:
- Current API Session
/current-api-session/certificates/{id}:
delete:
description: |
Delete an ephemeral certificateby id
operationId: deleteCurrentApiSessionCertificate
responses:
"200":
description: The delete request was successful and the resource has been removed
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/empty'
"400":
description: The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information
examples:
application/json:
error:
args:
urlVars: {}
cause:
details:
context: (root)
field: (root)
property: fooField3
field: (root)
message: '(root): fooField3 is required'
type: required
value:
fooField: abc
fooField2: def
causeMessage: schema validation failed
code: COULD_NOT_VALIDATE
message: The supplied request contains an invalid document
requestId: ac6766d6-3a09-44b3-8d8a-1b541d97fdd9
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"401":
description: The supplied session does not have the correct access rights to request this resource
examples:
application/json:
error:
args:
urlVars: {}
cause: ""
causeMessage: ""
code: UNAUTHORIZED
message: The request could not be completed. The session is not authorized or the credentials are invalid
requestId: 0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"429":
description: The resource requested is rate limited and the rate limit has been exceeded
examples:
application/json:
error:
args:
urlVars: {}
causeMessage: you have hit a rate limit in the requested operation
code: RATE_LIMITED
message: The resource is rate limited and the rate limit has been exceeded. Please try again later
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"503":
description: The request could not be completed due to the server being busy or in a temporarily bad state
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
security:
- ztSession: []
- oauth2:
- openid
summary: Delete an ephemeral certificate
tags:
- Current API Session
get:
description: Retrieves a single ephemeral certificate by id
operationId: detailCurrentApiSessionCertificate
responses:
"200":
description: A response containing a single API Session certificate
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/detailCurrentApiSessionCertificateEnvelope'
"401":
description: The supplied session does not have the correct access rights to request this resource
examples:
application/json:
error:
args:
urlVars: {}
cause: ""
causeMessage: ""
code: UNAUTHORIZED
message: The request could not be completed. The session is not authorized or the credentials are invalid
requestId: 0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"404":
description: The requested resource does not exist
examples:
application/json:
error:
args:
urlVars:
id: 71a3000f-7dda-491a-9b90-a19f4ee6c406
cause: null
causeMessage: ""
code: NOT_FOUND
message: The resource requested was not found or is no longer available
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"429":
description: The resource requested is rate limited and the rate limit has been exceeded
examples:
application/json:
error:
args:
urlVars: {}
causeMessage: you have hit a rate limit in the requested operation
code: RATE_LIMITED
message: The resource is rate limited and the rate limit has been exceeded. Please try again later
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"503":
description: The request could not be completed due to the server being busy or in a temporarily bad state
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
security:
- ztSession: []
- oauth2:
- openid
summary: Retrieves an ephemeral certificate
tags:
- Current API Session
parameters:
- description: The id of the requested resource
in: path
name: id
required: true
type: string
/current-api-session/service-updates:
get:
description: |
Retrieves data indicating the last time data relevant to this API Session was altered that would necessitate
service refreshes.
operationId: listServiceUpdates
responses:
"200":
description: Data indicating necessary service updates
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/listCurrentApiSessionServiceUpdatesEnvelope'
"401":
description: The supplied session does not have the correct access rights to request this resource
examples:
application/json:
error:
args:
urlVars: {}
cause: ""
causeMessage: ""
code: UNAUTHORIZED
message: The request could not be completed. The session is not authorized or the credentials are invalid
requestId: 0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"429":
description: The resource requested is rate limited and the rate limit has been exceeded
examples:
application/json:
error:
args:
urlVars: {}
causeMessage: you have hit a rate limit in the requested operation
code: RATE_LIMITED
message: The resource is rate limited and the rate limit has been exceeded. Please try again later
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"503":
description: The request could not be completed due to the server being busy or in a temporarily bad state
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
security:
- ztSession: []
- oauth2:
- openid
summary: Returns data indicating whether a client should updates it service list
tags:
- Current API Session
- Services
/current-api-session/totp-token:
post:
description: |
Creates a TOTP token that proves TOTP validation occurred at a specific time. Used in posture response for posture checks.
operationId: createTotpToken
parameters:
- description: An MFA TOTP validation request
in: body
name: mfaValidation
required: true
schema:
$ref: '#/definitions/mfaCode'
responses:
"200":
description: A TOTP token create response, contains a token used to satisfy posture checks
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/totpTokenEnvelope'
"401":
description: The supplied session does not have the correct access rights to request this resource
examples:
application/json:
error:
args:
urlVars: {}
cause: ""
causeMessage: ""
code: UNAUTHORIZED
message: The request could not be completed. The session is not authorized or the credentials are invalid
requestId: 0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"404":
description: The requested resource does not exist
examples:
application/json:
error:
args:
urlVars:
id: 71a3000f-7dda-491a-9b90-a19f4ee6c406
cause: null
causeMessage: ""
code: NOT_FOUND
message: The resource requested was not found or is no longer available
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
security:
- ztSession: []
- oauth2:
- openid
summary: Create an MFA TOTP token that proves TOTP code checking has passed as a specific time for posture checks.
tags:
- Current API Session
- MFA
/current-identity:
get:
description: Returns the identity associated with the API sessions used to issue the current request
operationId: getCurrentIdentity
responses:
"200":
description: The identity associated with the API Session used to issue the request
examples:
default:
data:
_links:
edge-router-policies:
href: ./identities/66352d7b-a6b2-4ce9-85bb-9f18e318704d/edge-routers
self:
href: ./identities/66352d7b-a6b2-4ce9-85bb-9f18e318704d
service-policies:
href: ./identities/66352d7b-a6b2-4ce9-85bb-9f18e318704d/identities
authenticators:
updb:
username: admin
createdAt: "2020-01-13T16:38:13.6854788Z"
enrollment: {}
id: 66352d7b-a6b2-4ce9-85bb-9f18e318704d
isAdmin: true
isDefaultAdmin: true
name: Default Admin
roleAttributes: []
tags: {}
type:
_links:
self:
href: ./identity-types/User
id: User
name: User
urlName: identity-types
updatedAt: "2020-01-13T16:38:13.6854788Z"
meta: {}
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/currentIdentityDetailEnvelope'
"401":
description: The supplied session does not have the correct access rights to request this resource
examples:
application/json:
error:
args:
urlVars: {}
cause: ""
causeMessage: ""
code: UNAUTHORIZED
message: The request could not be completed. The session is not authorized or the credentials are invalid
requestId: 0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
security:
- ztSession: []
- oauth2:
- openid
summary: Return the current identity
tags:
- Current Identity
/current-identity/authenticators:
get:
description: Retrieves a list of authenticators assigned to the current API session's identity; supports filtering, sorting, and pagination.
operationId: listCurrentIdentityAuthenticators
parameters:
- in: query
name: limit
type: integer
- in: query
name: offset
type: integer
- in: query
name: filter
type: string
responses:
"200":
description: A list of authenticators
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/listAuthenticatorsEnvelope'
"400":
description: The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information
examples:
application/json:
error:
args:
urlVars: {}
cause:
details:
context: (root)
field: (root)
property: fooField3
field: (root)
message: '(root): fooField3 is required'
type: required
value:
fooField: abc
fooField2: def
causeMessage: schema validation failed
code: COULD_NOT_VALIDATE
message: The supplied request contains an invalid document
requestId: ac6766d6-3a09-44b3-8d8a-1b541d97fdd9
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"401":
description: The supplied session does not have the correct access rights to request this resource
examples:
application/json:
error:
args:
urlVars: {}
cause: ""
causeMessage: ""
code: UNAUTHORIZED
message: The request could not be completed. The session is not authorized or the credentials are invalid
requestId: 0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
security:
- ztSession: []
- oauth2:
- openid
summary: List authenticators for the current identity
tags:
- Current API Session
/current-identity/authenticators/{id}:
get:
description: Retrieves a single authenticator by id. Will only show authenticators assigned to the API session's identity.
operationId: detailCurrentIdentityAuthenticator
responses:
"200":
description: A singular authenticator resource
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/detailAuthenticatorEnvelope'
"401":
description: The supplied session does not have the correct access rights to request this resource
examples:
application/json:
error:
args:
urlVars: {}
cause: ""
causeMessage: ""
code: UNAUTHORIZED
message: The request could not be completed. The session is not authorized or the credentials are invalid
requestId: 0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"404":
description: The requested resource does not exist
examples:
application/json:
error:
args:
urlVars:
id: 71a3000f-7dda-491a-9b90-a19f4ee6c406
cause: null
causeMessage: ""
code: NOT_FOUND
message: The resource requested was not found or is no longer available
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
security:
- ztSession: []
- oauth2:
- openid
summary: Retrieve an authenticator for the current identity
tags:
- Current API Session
parameters:
- description: The id of the requested resource
in: path
name: id
required: true
type: string
patch:
description: |
Update the supplied fields on an authenticator by id. Will only update authenticators assigned to the API
session's identity.
operationId: patchCurrentIdentityAuthenticator
parameters:
- description: An authenticator patch object
in: body
name: authenticator
required: true
schema:
$ref: '#/definitions/authenticatorPatchWithCurrent'
responses:
"200":
description: The patch request was successful and the resource has been altered
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/empty'
"400":
description: The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information
examples:
application/json:
error:
args:
urlVars: {}
cause:
details:
context: (root)
field: (root)
property: fooField3
field: (root)
message: '(root): fooField3 is required'
type: required
value:
fooField: abc
fooField2: def
causeMessage: schema validation failed
code: COULD_NOT_VALIDATE
message: The supplied request contains an invalid document
requestId: ac6766d6-3a09-44b3-8d8a-1b541d97fdd9
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"401":
description: The supplied session does not have the correct access rights to request this resource
examples:
application/json:
error:
args:
urlVars: {}
cause: ""
causeMessage: ""
code: UNAUTHORIZED
message: The request could not be completed. The session is not authorized or the credentials are invalid
requestId: 0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"404":
description: The requested resource does not exist
examples:
application/json:
error:
args:
urlVars:
id: 71a3000f-7dda-491a-9b90-a19f4ee6c406
cause: null
causeMessage: ""
code: NOT_FOUND
message: The resource requested was not found or is no longer available
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
security:
- ztSession: []
- oauth2:
- openid
summary: Update the supplied fields on an authenticator of this identity
tags:
- Current API Session
put:
description: |
Update all fields on an authenticator by id. Will only update authenticators assigned to the API session's
identity.
operationId: updateCurrentIdentityAuthenticator
parameters:
- description: An authenticator put object
in: body
name: authenticator
required: true
schema:
$ref: '#/definitions/authenticatorUpdateWithCurrent'
responses:
"200":
description: The update request was successful and the resource has been altered
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/empty'
"400":
description: The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information
examples:
application/json:
error:
args:
urlVars: {}
cause:
details:
context: (root)
field: (root)
property: fooField3
field: (root)
message: '(root): fooField3 is required'
type: required
value:
fooField: abc
fooField2: def
causeMessage: schema validation failed
code: COULD_NOT_VALIDATE
message: The supplied request contains an invalid document
requestId: ac6766d6-3a09-44b3-8d8a-1b541d97fdd9
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"401":
description: The supplied session does not have the correct access rights to request this resource
examples:
application/json:
error:
args:
urlVars: {}
cause: ""
causeMessage: ""
code: UNAUTHORIZED
message: The request could not be completed. The session is not authorized or the credentials are invalid
requestId: 0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"404":
description: The requested resource does not exist
examples:
application/json:
error:
args:
urlVars:
id: 71a3000f-7dda-491a-9b90-a19f4ee6c406
cause: null
causeMessage: ""
code: NOT_FOUND
message: The resource requested was not found or is no longer available
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
security:
- ztSession: []
- oauth2:
- openid
summary: Update all fields on an authenticator of this identity
tags:
- Current API Session
/current-identity/authenticators/{id}/extend:
parameters:
- description: The id of the requested resource
in: path
name: id
required: true
type: string
post:
description: |-
This endpoint only functions for certificates issued by the controller. 3rd party certificates are not handled.
Allows an identity to extend its certificate's expiration date by using its current and valid client certificate to submit a CSR. This CSR may be passed in using a new private key, thus allowing private key rotation.
The response from this endpoint is a new client certificate which the client must be verified via the /authenticators/{id}/extend-verify endpoint.
After verification is completion any new connections must be made with new certificate. Prior to verification the old client certificate remains active.
operationId: extendCurrentIdentityAuthenticator
parameters:
- in: body
name: extend
required: true
schema:
$ref: '#/definitions/identityExtendEnrollmentRequest'
responses:
"200":
description: A response containg the identity's new certificate
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/identityExtendEnrollmentEnvelope'
"401":
description: The supplied session does not have the correct access rights to request this resource
examples:
application/json:
error:
args:
urlVars: {}
cause: ""
causeMessage: ""
code: UNAUTHORIZED
message: The request could not be completed. The session is not authorized or the credentials are invalid
requestId: 0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
security:
- ztSession: []
- oauth2:
- openid
summary: Allows the current identity to recieve a new certificate associated with a certificate based authenticator
tags:
- Current API Session
- Enroll
- Extend Enrollment
/current-identity/authenticators/{id}/extend-verify:
parameters:
- description: The id of the requested resource
in: path
name: id
required: true
type: string
post:
description: |-
After submitting a CSR for a new client certificate the resulting public certificate must be re-submitted to this endpoint to verify receipt.
After receipt, the new client certificate must be used for new authentication requests.
operationId: extendVerifyCurrentIdentityAuthenticator
parameters:
- in: body
name: extend
required: true
schema:
$ref: '#/definitions/identityExtendValidateEnrollmentRequest'
responses:
"200":
description: Base empty response
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/empty'
"401":
description: The supplied session does not have the correct access rights to request this resource
examples:
application/json:
error:
args:
urlVars: {}
cause: ""
causeMessage: ""
code: UNAUTHORIZED
message: The request could not be completed. The session is not authorized or the credentials are invalid
requestId: 0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
security:
- ztSession: []
- oauth2:
- openid
summary: Allows the current identity to validate reciept of a new client certificate
tags:
- Current API Session
- Enroll
- Extend Enrollment
/current-identity/edge-routers:
get:
description: |
Lists the Edge Routers that the current identity has access to via policies. The data returned
includes their address and online status
operationId: getCurrentIdentityEdgeRouters
responses:
"200":
description: A list of edge routers
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/listCurrentIdentityEdgeRoutersEnvelope'
"401":
description: The supplied session does not have the correct access rights to request this resource
examples:
application/json:
error:
args:
urlVars: {}
cause: ""
causeMessage: ""
code: UNAUTHORIZED
message: The request could not be completed. The session is not authorized or the credentials are invalid
requestId: 0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"429":
description: The resource requested is rate limited and the rate limit has been exceeded
examples:
application/json:
error:
args:
urlVars: {}
causeMessage: you have hit a rate limit in the requested operation
code: RATE_LIMITED
message: The resource is rate limited and the rate limit has been exceeded. Please try again later
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"503":
description: The request could not be completed due to the server being busy or in a temporarily bad state
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
security:
- ztSession: []
- oauth2:
- openid
summary: Return this list of Edge Routers the identity has access to
tags:
- Current Identity
- Edge Router
/current-identity/mfa:
delete:
description: |
Disable MFA for the current identity. Requires a current valid time based one time password if MFA enrollment has been completed. If not, code should be an empty string. If one time passwords are not available and admin account can be used to remove MFA from the identity via `DELETE /identities/<id>/mfa`.
operationId: deleteMfa
parameters:
- in: header
name: mfa-validation-code
type: string
responses:
"200":
description: Base empty response
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/empty'
"401":
description: The supplied session does not have the correct access rights to request this resource
examples:
application/json:
error:
args:
urlVars: {}
cause: ""
causeMessage: ""
code: UNAUTHORIZED
message: The request could not be completed. The session is not authorized or the credentials are invalid
requestId: 0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"404":
description: The requested resource does not exist
examples:
application/json:
error:
args:
urlVars:
id: 71a3000f-7dda-491a-9b90-a19f4ee6c406
cause: null
causeMessage: ""
code: NOT_FOUND
message: The resource requested was not found or is no longer available
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
security:
- ztSession: []
- oauth2:
- openid
summary: Disable MFA for the current identity
tags:
- Current Identity
- MFA
get:
description: |
Returns details about the current MFA enrollment. If enrollment has not been completed it will return the current MFA configuration details necessary to complete a `POST /current-identity/mfa/verify`.
operationId: detailMfa
responses:
"200":
description: The details of an MFA enrollment
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/detailMfaEnvelope'
"401":
description: The supplied session does not have the correct access rights to request this resource
examples:
application/json:
error:
args:
urlVars: {}
cause: ""
causeMessage: ""
code: UNAUTHORIZED
message: The request could not be completed. The session is not authorized or the credentials are invalid
requestId: 0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"404":
description: The requested resource does not exist
examples:
application/json:
error:
args:
urlVars:
id: 71a3000f-7dda-491a-9b90-a19f4ee6c406
cause: null
causeMessage: ""
code: NOT_FOUND
message: The resource requested was not found or is no longer available
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
security:
- ztSession: []
- oauth2:
- openid
summary: Returns the current status of MFA enrollment
tags:
- Current Identity
- MFA
post:
description: |
Allows authenticator based MFA enrollment. If enrollment has already been completed, it must be disabled before attempting to re-enroll. Subsequent enrollment request is completed via `POST /current-identity/mfa/verify`
operationId: enrollMfa
responses:
"201":
description: The create request was successful and the resource has been added at the following location
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/createEnvelope'
"401":
description: The supplied session does not have the correct access rights to request this resource
examples:
application/json:
error:
args:
urlVars: {}
cause: ""
causeMessage: ""
code: UNAUTHORIZED
message: The request could not be completed. The session is not authorized or the credentials are invalid
requestId: 0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"409":
description: The identity is already enrolled in MFA
examples:
application/json:
error:
args: null
cause: null
causeMessage: ""
code: ALREADY_MFA_ENROLLED
message: The identity is already enrolled in MFA
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
security:
- ztSession: []
- oauth2:
- openid
summary: Initiate MFA enrollment
tags:
- Current Identity
- MFA
/current-identity/mfa/qr-code:
get:
description: |
Shows an QR code image for unverified MFA enrollments. 404s if the MFA enrollment has been completed or not started.
operationId: detailMfaQrCode
produces:
- image/png
- application/json
responses:
"200":
description: OK
"404":
description: No MFA enrollment or MFA enrollment is completed
security:
- ztSession: []
- oauth2:
- openid
summary: Show a QR code for unverified MFA enrollments
tags:
- Current Identity
- MFA
/current-identity/mfa/recovery-codes:
get:
description: |
Allows the viewing of recovery codes of an MFA enrollment. Requires a current valid time based one time password to interact with. Available after a completed MFA enrollment.
operationId: detailMfaRecoveryCodes
parameters:
- description: An MFA validation request
in: body
name: mfaValidation
schema:
$ref: '#/definitions/mfaCode'
- in: header
name: mfa-validation-code
type: string
responses:
"200":
description: The recovery codes of an MFA enrollment
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/detailMfaRecoveryCodesEnvelope'
"401":
description: The supplied session does not have the correct access rights to request this resource
examples:
application/json:
error:
args:
urlVars: {}
cause: ""
causeMessage: ""
code: UNAUTHORIZED
message: The request could not be completed. The session is not authorized or the credentials are invalid
requestId: 0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"404":
description: The requested resource does not exist
examples:
application/json:
error:
args:
urlVars:
id: 71a3000f-7dda-491a-9b90-a19f4ee6c406
cause: null
causeMessage: ""
code: NOT_FOUND
message: The resource requested was not found or is no longer available
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
security:
- ztSession: []
- oauth2:
- openid
summary: For a completed MFA enrollment view the current recovery codes
tags:
- Current Identity
- MFA
post:
description: |
Allows regeneration of recovery codes of an MFA enrollment. Requires a current valid time based one time password to interact with. Available after a completed MFA enrollment. This replaces all existing recovery codes.
operationId: createMfaRecoveryCodes
parameters:
- description: An MFA validation request
in: body
name: mfaValidation
required: true
schema:
$ref: '#/definitions/mfaCode'
responses:
"200":
description: Base empty response
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/empty'
"401":
description: The supplied session does not have the correct access rights to request this resource
examples:
application/json:
error:
args:
urlVars: {}
cause: ""
causeMessage: ""
code: UNAUTHORIZED
message: The request could not be completed. The session is not authorized or the credentials are invalid
requestId: 0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"404":
description: The requested resource does not exist
examples:
application/json:
error:
args:
urlVars:
id: 71a3000f-7dda-491a-9b90-a19f4ee6c406
cause: null
causeMessage: ""
code: NOT_FOUND
message: The resource requested was not found or is no longer available
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
security:
- ztSession: []
- oauth2:
- openid
summary: For a completed MFA enrollment regenerate the recovery codes
tags:
- Current Identity
- MFA
/current-identity/mfa/verify:
post:
description: |
Completes MFA enrollment by accepting a time based one time password as verification. Called after MFA enrollment has been initiated via `POST /current-identity/mfa`.
operationId: verifyMfa
parameters:
- description: An MFA validation request
in: body
name: mfaValidation
required: true
schema:
$ref: '#/definitions/mfaCode'
responses:
"200":
description: Base empty response
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/empty'
"401":
description: The supplied session does not have the correct access rights to request this resource
examples:
application/json:
error:
args:
urlVars: {}
cause: ""
causeMessage: ""
code: UNAUTHORIZED
message: The request could not be completed. The session is not authorized or the credentials are invalid
requestId: 0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"404":
description: The requested resource does not exist
examples:
application/json:
error:
args:
urlVars:
id: 71a3000f-7dda-491a-9b90-a19f4ee6c406
cause: null
causeMessage: ""
code: NOT_FOUND
message: The resource requested was not found or is no longer available
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
security:
- ztSession: []
- oauth2:
- openid
summary: Complete MFA enrollment by verifying a time based one time token
tags:
- Current Identity
- MFA
/enroll:
parameters:
- format: uuid
in: query
name: token
type: string
- in: query
name: method
type: string
- in: body
name: body
schema:
$ref: '#/definitions/genericEnroll'
post:
consumes:
- application/pkcs7
- application/json
- application/x-pem-file
- text/plain
description: present a OTT and CSR to receive a long-lived client certificate
operationId: enroll
produces:
- application/json
responses:
"200":
description: A response containing and identities client certificate chains
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/enrollmentCertsEnvelope'
"400":
description: The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information
examples:
application/json:
error:
args:
urlVars: {}
cause:
details:
context: (root)
field: (root)
property: fooField3
field: (root)
message: '(root): fooField3 is required'
type: required
value:
fooField: abc
fooField2: def
causeMessage: schema validation failed
code: COULD_NOT_VALIDATE
message: The supplied request contains an invalid document
requestId: ac6766d6-3a09-44b3-8d8a-1b541d97fdd9
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"404":
description: The requested resource does not exist
examples:
application/json:
error:
args:
urlVars:
id: 71a3000f-7dda-491a-9b90-a19f4ee6c406
cause: null
causeMessage: ""
code: NOT_FOUND
message: The resource requested was not found or is no longer available
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"409":
description: The request could not be completed due to a conflict of configuration or state
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"410":
description: The request could not be completed as the resource is no longer available
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"429":
description: The resource requested is rate limited and the rate limit has been exceeded
examples:
application/json:
error:
args:
urlVars: {}
causeMessage: you have hit a rate limit in the requested operation
code: RATE_LIMITED
message: The resource is rate limited and the rate limit has been exceeded. Please try again later
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"503":
description: The request could not be completed due to the server being busy or in a temporarily bad state
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
summary: Enroll an identity via one-time-token
tags:
- Enroll
/enroll/ca:
post:
description: |
For CA auto enrollment, an identity is not created beforehand.
Instead one will be created during enrollment. The client will present a client certificate that is signed by a
Certificate Authority that has been added and verified (See POST /cas and POST /cas/{id}/verify).
During this process no CSRs are requires as the client should already be in possession of a valid certificate.
operationId: enrollCa
responses:
"200":
description: Base empty response
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/empty'
"400":
description: The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information
examples:
application/json:
error:
args:
urlVars: {}
cause:
details:
context: (root)
field: (root)
property: fooField3
field: (root)
message: '(root): fooField3 is required'
type: required
value:
fooField: abc
fooField2: def
causeMessage: schema validation failed
code: COULD_NOT_VALIDATE
message: The supplied request contains an invalid document
requestId: ac6766d6-3a09-44b3-8d8a-1b541d97fdd9
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"404":
description: The requested resource does not exist
examples:
application/json:
error:
args:
urlVars:
id: 71a3000f-7dda-491a-9b90-a19f4ee6c406
cause: null
causeMessage: ""
code: NOT_FOUND
message: The resource requested was not found or is no longer available
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"429":
description: The resource requested is rate limited and the rate limit has been exceeded
examples:
application/json:
error:
args:
urlVars: {}
causeMessage: you have hit a rate limit in the requested operation
code: RATE_LIMITED
message: The resource is rate limited and the rate limit has been exceeded. Please try again later
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"503":
description: The request could not be completed due to the server being busy or in a temporarily bad state
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
summary: Enroll an identity with a pre-exchanged certificate
tags:
- Enroll
/enroll/challenge:
post:
description: |
A caller may submit a nonce and a key id (kid) from the enrollment JWKS endpoint or enrollment JWT that will
be used to sign the nonce. The resulting signature may be validated with the associated public key in order
to verify a networks identity during enrollment. The nonce must be a valid formatted UUID.
operationId: enrollmentChallenge
parameters:
- in: body
name: nonce
required: true
schema:
$ref: '#/definitions/nonceChallenge'
responses:
"200":
description: A nonce challenge response. The contents will be the signature of the nonce, the key id used, and algorithm used to produce the signature.
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/nonceSignature'
"400":
description: The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information
examples:
application/json:
error:
args:
urlVars: {}
cause:
details:
context: (root)
field: (root)
property: fooField3
field: (root)
message: '(root): fooField3 is required'
type: required
value:
fooField: abc
fooField2: def
causeMessage: schema validation failed
code: COULD_NOT_VALIDATE
message: The supplied request contains an invalid document
requestId: ac6766d6-3a09-44b3-8d8a-1b541d97fdd9
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"429":
description: The resource requested is rate limited and the rate limit has been exceeded
examples:
application/json:
error:
args:
urlVars: {}
causeMessage: you have hit a rate limit in the requested operation
code: RATE_LIMITED
message: The resource is rate limited and the rate limit has been exceeded. Please try again later
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
summary: Allows verification of a controller or cluster of controllers as being the valid target for enrollment.
tags:
- Enroll
/enroll/erott:
parameters:
- description: An OTT enrollment request
in: body
name: erOttEnrollmentRequest
required: true
schema:
$ref: '#/definitions/erOttEnrollmentRequest'
post:
description: |
Enrolls an edge-router via a one-time-token to establish a certificate based identity.
operationId: enrollErOtt
responses:
"200":
description: A response containing the edge routers signed certificates (server chain, server cert, CAs).
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/enrollmentCertsEnvelope'
"400":
description: The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information
examples:
application/json:
error:
args:
urlVars: {}
cause:
details:
context: (root)
field: (root)
property: fooField3
field: (root)
message: '(root): fooField3 is required'
type: required
value:
fooField: abc
fooField2: def
causeMessage: schema validation failed
code: COULD_NOT_VALIDATE
message: The supplied request contains an invalid document
requestId: ac6766d6-3a09-44b3-8d8a-1b541d97fdd9
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"429":
description: The resource requested is rate limited and the rate limit has been exceeded
examples:
application/json:
error:
args:
urlVars: {}
causeMessage: you have hit a rate limit in the requested operation
code: RATE_LIMITED
message: The resource is rate limited and the rate limit has been exceeded. Please try again later
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"503":
description: The request could not be completed due to the server being busy or in a temporarily bad state
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
summary: Enroll an edge-router
tags:
- Enroll
/enroll/extend/router:
post:
description: |
Allows a router to extend its certificates' expiration date by
using its current and valid client certificate to submit a CSR. This CSR may
be passed in using a new private key, thus allowing private key rotation or swapping.
After completion any new connections must be made with certificates returned from a 200 OK
response. The previous client certificate is rendered invalid for use with the controller even if it
has not expired.
This request must be made using the existing, valid, client certificate.
operationId: extendRouterEnrollment
parameters:
- in: body
name: routerExtendEnrollmentRequest
required: true
schema:
$ref: '#/definitions/routerExtendEnrollmentRequest'
responses:
"200":
description: A response containing the edge routers new signed certificates (server chain, server cert, CAs).
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/enrollmentCertsEnvelope'
"400":
description: The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information
examples:
application/json:
error:
args:
urlVars: {}
cause:
details:
context: (root)
field: (root)
property: fooField3
field: (root)
message: '(root): fooField3 is required'
type: required
value:
fooField: abc
fooField2: def
causeMessage: schema validation failed
code: COULD_NOT_VALIDATE
message: The supplied request contains an invalid document
requestId: ac6766d6-3a09-44b3-8d8a-1b541d97fdd9
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"401":
description: The supplied session does not have the correct access rights to request this resource
examples:
application/json:
error:
args:
urlVars: {}
cause: ""
causeMessage: ""
code: UNAUTHORIZED
message: The request could not be completed. The session is not authorized or the credentials are invalid
requestId: 0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"429":
description: The resource requested is rate limited and the rate limit has been exceeded
examples:
application/json:
error:
args:
urlVars: {}
causeMessage: you have hit a rate limit in the requested operation
code: RATE_LIMITED
message: The resource is rate limited and the rate limit has been exceeded. Please try again later
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
summary: Extend the life of a currently enrolled router's certificates
tags:
- Enroll
- Extend Enrollment
/enroll/jwks:
get:
description: |
Returns a list of JSON Web Keys (JWKS) that are used for enrollment signing. The keys listed here are used
to sign and co-sign enrollment JWTs. They can be verified through a challenge endpoint, using the public keys
from this endpoint to verify the target machine has possession of the related private key.
operationId: getEnrollmentJwks
responses:
"200":
description: A JWKS response for enrollment.
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/jwks'
summary: List JSON Web Keys associated with enrollment
tags:
- Enroll
/enroll/ott:
parameters:
- description: An OTT enrollment request
in: body
name: ottEnrollmentRequest
required: true
schema:
$ref: '#/definitions/ottEnrollmentRequest'
post:
description: |
Enroll an identity via a one-time-token which is supplied via a query string parameter. This enrollment method
expects a PEM encoded CSRs to be provided for fulfillment. It is up to the enrolling identity to manage the
private key backing the CSR request.
operationId: enrollOtt
responses:
"200":
description: A response containing and identities client certificate chains
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/enrollmentCertsEnvelope'
"400":
description: The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information
examples:
application/json:
error:
args:
urlVars: {}
cause:
details:
context: (root)
field: (root)
property: fooField3
field: (root)
message: '(root): fooField3 is required'
type: required
value:
fooField: abc
fooField2: def
causeMessage: schema validation failed
code: COULD_NOT_VALIDATE
message: The supplied request contains an invalid document
requestId: ac6766d6-3a09-44b3-8d8a-1b541d97fdd9
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"404":
description: The requested resource does not exist
examples:
application/json:
error:
args:
urlVars:
id: 71a3000f-7dda-491a-9b90-a19f4ee6c406
cause: null
causeMessage: ""
code: NOT_FOUND
message: The resource requested was not found or is no longer available
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"429":
description: The resource requested is rate limited and the rate limit has been exceeded
examples:
application/json:
error:
args:
urlVars: {}
causeMessage: you have hit a rate limit in the requested operation
code: RATE_LIMITED
message: The resource is rate limited and the rate limit has been exceeded. Please try again later
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"503":
description: The request could not be completed due to the server being busy or in a temporarily bad state
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
summary: Enroll an identity via one-time-token
tags:
- Enroll
/enroll/ottca:
parameters:
- description: An OTT enrollment request
in: body
name: ottEnrollmentRequest
required: true
schema:
$ref: '#/definitions/ottEnrollmentRequest'
post:
description: |
Enroll an identity via a one-time-token that also requires a pre-exchanged client certificate to match a
Certificate Authority that has been added and verified (See POST /cas and POST /cas{id}/verify). The client
must present a client certificate signed by CA associated with the enrollment. This enrollment is similar to
CA auto enrollment except that is required the identity to be pre-created.
As the client certificate has been pre-exchanged there is no CSR input to this enrollment method.
operationId: enrollOttCa
responses:
"200":
description: Base empty response
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/empty'
"400":
description: The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information
examples:
application/json:
error:
args:
urlVars: {}
cause:
details:
context: (root)
field: (root)
property: fooField3
field: (root)
message: '(root): fooField3 is required'
type: required
value:
fooField: abc
fooField2: def
causeMessage: schema validation failed
code: COULD_NOT_VALIDATE
message: The supplied request contains an invalid document
requestId: ac6766d6-3a09-44b3-8d8a-1b541d97fdd9
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"429":
description: The resource requested is rate limited and the rate limit has been exceeded
examples:
application/json:
error:
args:
urlVars: {}
causeMessage: you have hit a rate limit in the requested operation
code: RATE_LIMITED
message: The resource is rate limited and the rate limit has been exceeded. Please try again later
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"503":
description: The request could not be completed due to the server being busy or in a temporarily bad state
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
summary: Enroll an identity via one-time-token with a pre-exchanged client certificate
tags:
- Enroll
/enroll/token:
post:
operationId: enrollToken
parameters:
- description: The id of the token issuer to use for enrollment, optional as long the the token is not opaque
in: header
name: zt-token-issuer-id
type: string
- description: An identifying token to enroll with
in: header
name: Authorization
required: true
type: string
- description: "A enrollment request with or without a CSR. Including a CSR indicated an attempt to enroll with certificate \ncredentials. If no CSR is included, the request is assumed to be a token enrollment request that will\nauthenticate via tokens.\n"
in: body
name: tokenEnrollmentRequest
required: true
schema:
$ref: '#/definitions/tokenEnrollmentRequest'
responses:
"200":
description: A response containing and identities client certificate chains
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/enrollmentCertsEnvelope'
"400":
description: The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information
examples:
application/json:
error:
args:
urlVars: {}
cause:
details:
context: (root)
field: (root)
property: fooField3
field: (root)
message: '(root): fooField3 is required'
type: required
value:
fooField: abc
fooField2: def
causeMessage: schema validation failed
code: COULD_NOT_VALIDATE
message: The supplied request contains an invalid document
requestId: ac6766d6-3a09-44b3-8d8a-1b541d97fdd9
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"404":
description: The requested resource does not exist
examples:
application/json:
error:
args:
urlVars:
id: 71a3000f-7dda-491a-9b90-a19f4ee6c406
cause: null
causeMessage: ""
code: NOT_FOUND
message: The resource requested was not found or is no longer available
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"409":
description: The request could not be completed due to a conflict of configuration or state
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"410":
description: The request could not be completed as the resource is no longer available
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"429":
description: The resource requested is rate limited and the rate limit has been exceeded
examples:
application/json:
error:
args:
urlVars: {}
causeMessage: you have hit a rate limit in the requested operation
code: RATE_LIMITED
message: The resource is rate limited and the rate limit has been exceeded. Please try again later
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"503":
description: The request could not be completed due to the server being busy or in a temporarily bad state
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
tags:
- Enroll
/enroll/updb:
parameters:
- format: uuid
in: query
name: token
required: true
type: string
- in: body
name: updbCredentials
required: true
schema:
properties:
password:
$ref: '#/definitions/password'
username:
$ref: '#/definitions/username'
type: object
post:
description: |
Enrolls an identity via a one-time-token to establish an initial username and password combination
operationId: enrollUpdb
responses:
"200":
description: Base empty response
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/empty'
"400":
description: The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information
examples:
application/json:
error:
args:
urlVars: {}
cause:
details:
context: (root)
field: (root)
property: fooField3
field: (root)
message: '(root): fooField3 is required'
type: required
value:
fooField: abc
fooField2: def
causeMessage: schema validation failed
code: COULD_NOT_VALIDATE
message: The supplied request contains an invalid document
requestId: ac6766d6-3a09-44b3-8d8a-1b541d97fdd9
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"404":
description: The requested resource does not exist
examples:
application/json:
error:
args:
urlVars:
id: 71a3000f-7dda-491a-9b90-a19f4ee6c406
cause: null
causeMessage: ""
code: NOT_FOUND
message: The resource requested was not found or is no longer available
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"429":
description: The resource requested is rate limited and the rate limit has been exceeded
examples:
application/json:
error:
args:
urlVars: {}
causeMessage: you have hit a rate limit in the requested operation
code: RATE_LIMITED
message: The resource is rate limited and the rate limit has been exceeded. Please try again later
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"503":
description: The request could not be completed due to the server being busy or in a temporarily bad state
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
summary: Enroll an identity via one-time-token
tags:
- Enroll
/enumerated-capabilities:
get:
operationId: listEnumeratedCapabilities
responses:
"200":
description: A typed and enumerated list of capabilities
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/listEnumeratedCapabilitiesEnvelope'
security: []
summary: Returns all capabilities this version of the controller is aware of, enabled or not.
tags:
- Informational
/external-jwt-signers:
get:
description: Retrieves a list of external JWT signers for authentication
operationId: listExternalJwtSigners
parameters:
- in: query
name: limit
type: integer
- in: query
name: offset
type: integer
- in: query
name: filter
type: string
responses:
"200":
description: A list of External JWT Signers
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/listClientExternalJwtSignersEnvelope'
"400":
description: The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information
examples:
application/json:
error:
args:
urlVars: {}
cause:
details:
context: (root)
field: (root)
property: fooField3
field: (root)
message: '(root): fooField3 is required'
type: required
value:
fooField: abc
fooField2: def
causeMessage: schema validation failed
code: COULD_NOT_VALIDATE
message: The supplied request contains an invalid document
requestId: ac6766d6-3a09-44b3-8d8a-1b541d97fdd9
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"401":
description: The supplied session does not have the correct access rights to request this resource
examples:
application/json:
error:
args:
urlVars: {}
cause: ""
causeMessage: ""
code: UNAUTHORIZED
message: The request could not be completed. The session is not authorized or the credentials are invalid
requestId: 0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"429":
description: The resource requested is rate limited and the rate limit has been exceeded
examples:
application/json:
error:
args:
urlVars: {}
causeMessage: you have hit a rate limit in the requested operation
code: RATE_LIMITED
message: The resource is rate limited and the rate limit has been exceeded. Please try again later
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"503":
description: The request could not be completed due to the server being busy or in a temporarily bad state
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
summary: List Client Authentication External JWT
tags:
- External JWT Signer
/network-jwts:
get:
description: Returns a list of JWTs for trusting a network
operationId: listNetworkJWTs
responses:
"200":
description: A list of network JWTs
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/listNetworkJWTsEnvelope'
"400":
description: The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information
examples:
application/json:
error:
args:
urlVars: {}
cause:
details:
context: (root)
field: (root)
property: fooField3
field: (root)
message: '(root): fooField3 is required'
type: required
value:
fooField: abc
fooField2: def
causeMessage: schema validation failed
code: COULD_NOT_VALIDATE
message: The supplied request contains an invalid document
requestId: ac6766d6-3a09-44b3-8d8a-1b541d97fdd9
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"429":
description: The resource requested is rate limited and the rate limit has been exceeded
examples:
application/json:
error:
args:
urlVars: {}
causeMessage: you have hit a rate limit in the requested operation
code: RATE_LIMITED
message: The resource is rate limited and the rate limit has been exceeded. Please try again later
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
summary: Returns a list of JWTs suitable for bootstrapping network trust.
tags:
- Enrollment
/posture-response:
post:
description: Submits posture responses
operationId: createPostureResponse
parameters:
- description: A Posture Response
in: body
name: postureResponse
required: true
schema:
$ref: '#/definitions/postureResponseCreate'
responses:
"201":
description: Contains a list of services that have had their timers altered
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/postureResponseEnvelope'
"400":
description: The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information
examples:
application/json:
error:
args:
urlVars: {}
cause:
details:
context: (root)
field: (root)
property: fooField3
field: (root)
message: '(root): fooField3 is required'
type: required
value:
fooField: abc
fooField2: def
causeMessage: schema validation failed
code: COULD_NOT_VALIDATE
message: The supplied request contains an invalid document
requestId: ac6766d6-3a09-44b3-8d8a-1b541d97fdd9
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"401":
description: The supplied session does not have the correct access rights to request this resource
examples:
application/json:
error:
args:
urlVars: {}
cause: ""
causeMessage: ""
code: UNAUTHORIZED
message: The request could not be completed. The session is not authorized or the credentials are invalid
requestId: 0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"429":
description: The resource requested is rate limited and the rate limit has been exceeded
examples:
application/json:
error:
args:
urlVars: {}
causeMessage: you have hit a rate limit in the requested operation
code: RATE_LIMITED
message: The resource is rate limited and the rate limit has been exceeded. Please try again later
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"503":
description: The request could not be completed due to the server being busy or in a temporarily bad state
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
security:
- ztSession: []
- oauth2:
- openid
summary: Submit a posture response to a posture query
tags:
- Posture Checks
/posture-response-bulk:
post:
description: Submits posture responses
operationId: createPostureResponseBulk
parameters:
- description: A Posture Response
in: body
name: postureResponse
required: true
schema:
items:
$ref: '#/definitions/postureResponseCreate'
type: array
responses:
"200":
description: Contains a list of services that have had their timers altered
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/postureResponseEnvelope'
"400":
description: The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information
examples:
application/json:
error:
args:
urlVars: {}
cause:
details:
context: (root)
field: (root)
property: fooField3
field: (root)
message: '(root): fooField3 is required'
type: required
value:
fooField: abc
fooField2: def
causeMessage: schema validation failed
code: COULD_NOT_VALIDATE
message: The supplied request contains an invalid document
requestId: ac6766d6-3a09-44b3-8d8a-1b541d97fdd9
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"401":
description: The supplied session does not have the correct access rights to request this resource
examples:
application/json:
error:
args:
urlVars: {}
cause: ""
causeMessage: ""
code: UNAUTHORIZED
message: The request could not be completed. The session is not authorized or the credentials are invalid
requestId: 0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"429":
description: The resource requested is rate limited and the rate limit has been exceeded
examples:
application/json:
error:
args:
urlVars: {}
causeMessage: you have hit a rate limit in the requested operation
code: RATE_LIMITED
message: The resource is rate limited and the rate limit has been exceeded. Please try again later
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"503":
description: The request could not be completed due to the server being busy or in a temporarily bad state
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
security:
- ztSession: []
- oauth2:
- openid
summary: Submit multiple posture responses
tags:
- Posture Checks
/protocols:
get:
operationId: listProtocols
responses:
"200":
description: A list of supported Edge protocols
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/listProtocolsEnvelope'
"429":
description: The resource requested is rate limited and the rate limit has been exceeded
examples:
application/json:
error:
args:
urlVars: {}
causeMessage: you have hit a rate limit in the requested operation
code: RATE_LIMITED
message: The resource is rate limited and the rate limit has been exceeded. Please try again later
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"503":
description: The request could not be completed due to the server being busy or in a temporarily bad state
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
security: []
summary: Return a list of the listening Edge protocols
tags:
- Informational
/services:
get:
description: |
Retrieves a list of config resources; supports filtering, sorting, and pagination. Requires admin access.
operationId: listServices
parameters:
- in: query
name: limit
type: integer
- in: query
name: offset
type: integer
- in: query
name: filter
type: string
- collectionFormat: multi
in: query
items:
type: string
name: configTypes
type: array
- collectionFormat: multi
in: query
items:
type: string
name: roleFilter
type: array
- in: query
name: roleSemantic
type: string
responses:
"200":
description: A list of services
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/listServicesEnvelope'
"400":
description: The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information
examples:
application/json:
error:
args:
urlVars: {}
cause:
details:
context: (root)
field: (root)
property: fooField3
field: (root)
message: '(root): fooField3 is required'
type: required
value:
fooField: abc
fooField2: def
causeMessage: schema validation failed
code: COULD_NOT_VALIDATE
message: The supplied request contains an invalid document
requestId: ac6766d6-3a09-44b3-8d8a-1b541d97fdd9
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"401":
description: The supplied session does not have the correct access rights to request this resource
examples:
application/json:
error:
args:
urlVars: {}
cause: ""
causeMessage: ""
code: UNAUTHORIZED
message: The request could not be completed. The session is not authorized or the credentials are invalid
requestId: 0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"429":
description: The resource requested is rate limited and the rate limit has been exceeded
examples:
application/json:
error:
args:
urlVars: {}
causeMessage: you have hit a rate limit in the requested operation
code: RATE_LIMITED
message: The resource is rate limited and the rate limit has been exceeded. Please try again later
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"503":
description: The request could not be completed due to the server being busy or in a temporarily bad state
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
security:
- ztSession: []
- oauth2:
- openid
summary: List services
tags:
- Service
/services/{id}:
delete:
description: Delete a service by id. Requires admin access.
operationId: deleteService
responses:
"200":
description: The delete request was successful and the resource has been removed
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/empty'
"400":
description: The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information
examples:
application/json:
error:
args:
urlVars: {}
cause:
details:
context: (root)
field: (root)
property: fooField3
field: (root)
message: '(root): fooField3 is required'
type: required
value:
fooField: abc
fooField2: def
causeMessage: schema validation failed
code: COULD_NOT_VALIDATE
message: The supplied request contains an invalid document
requestId: ac6766d6-3a09-44b3-8d8a-1b541d97fdd9
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"401":
description: The supplied session does not have the correct access rights to request this resource
examples:
application/json:
error:
args:
urlVars: {}
cause: ""
causeMessage: ""
code: UNAUTHORIZED
message: The request could not be completed. The session is not authorized or the credentials are invalid
requestId: 0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"404":
description: The requested resource does not exist
examples:
application/json:
error:
args:
urlVars:
id: 71a3000f-7dda-491a-9b90-a19f4ee6c406
cause: null
causeMessage: ""
code: NOT_FOUND
message: The resource requested was not found or is no longer available
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"409":
description: The resource requested to be removed/altered cannot be as it is referenced by another object.
examples:
application/json:
error:
args:
urlVars:
id: 71a3000f-7dda-491a-9b90-a19f4ee6c406
causeMessage: referenced by /some-resource/05f4f710-c155-4a74-86d5-77558eb9cb42
code: CONFLICT_CANNOT_MODIFY_REFERENCED
message: The resource cannot be deleted/modified. Remove all referencing resources first.
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"429":
description: The resource requested is rate limited and the rate limit has been exceeded
examples:
application/json:
error:
args:
urlVars: {}
causeMessage: you have hit a rate limit in the requested operation
code: RATE_LIMITED
message: The resource is rate limited and the rate limit has been exceeded. Please try again later
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"503":
description: The request could not be completed due to the server being busy or in a temporarily bad state
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
security:
- ztSession: []
- oauth2:
- openid
summary: Delete a service
tags:
- Service
get:
description: Retrieves a single service by id. Requires admin access.
operationId: detailService
responses:
"200":
description: A single service
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/detailServiceEnvelope'
"401":
description: The supplied session does not have the correct access rights to request this resource
examples:
application/json:
error:
args:
urlVars: {}
cause: ""
causeMessage: ""
code: UNAUTHORIZED
message: The request could not be completed. The session is not authorized or the credentials are invalid
requestId: 0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"404":
description: The requested resource does not exist
examples:
application/json:
error:
args:
urlVars:
id: 71a3000f-7dda-491a-9b90-a19f4ee6c406
cause: null
causeMessage: ""
code: NOT_FOUND
message: The resource requested was not found or is no longer available
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"429":
description: The resource requested is rate limited and the rate limit has been exceeded
examples:
application/json:
error:
args:
urlVars: {}
causeMessage: you have hit a rate limit in the requested operation
code: RATE_LIMITED
message: The resource is rate limited and the rate limit has been exceeded. Please try again later
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"503":
description: The request could not be completed due to the server being busy or in a temporarily bad state
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
security:
- ztSession: []
- oauth2:
- openid
summary: Retrieves a single service
tags:
- Service
parameters:
- description: The id of the requested resource
in: path
name: id
required: true
type: string
patch:
description: Update the supplied fields on a service. Requires admin access.
operationId: patchService
parameters:
- description: A service patch object
in: body
name: service
required: true
schema:
$ref: '#/definitions/servicePatch'
responses:
"200":
description: The patch request was successful and the resource has been altered
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/empty'
"400":
description: The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information
examples:
application/json:
error:
args:
urlVars: {}
cause:
details:
context: (root)
field: (root)
property: fooField3
field: (root)
message: '(root): fooField3 is required'
type: required
value:
fooField: abc
fooField2: def
causeMessage: schema validation failed
code: COULD_NOT_VALIDATE
message: The supplied request contains an invalid document
requestId: ac6766d6-3a09-44b3-8d8a-1b541d97fdd9
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"401":
description: The supplied session does not have the correct access rights to request this resource
examples:
application/json:
error:
args:
urlVars: {}
cause: ""
causeMessage: ""
code: UNAUTHORIZED
message: The request could not be completed. The session is not authorized or the credentials are invalid
requestId: 0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"404":
description: The requested resource does not exist
examples:
application/json:
error:
args:
urlVars:
id: 71a3000f-7dda-491a-9b90-a19f4ee6c406
cause: null
causeMessage: ""
code: NOT_FOUND
message: The resource requested was not found or is no longer available
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"429":
description: The resource requested is rate limited and the rate limit has been exceeded
examples:
application/json:
error:
args:
urlVars: {}
causeMessage: you have hit a rate limit in the requested operation
code: RATE_LIMITED
message: The resource is rate limited and the rate limit has been exceeded. Please try again later
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"503":
description: The request could not be completed due to the server being busy or in a temporarily bad state
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
security:
- ztSession: []
- oauth2:
- openid
summary: Update the supplied fields on a service
tags:
- Service
put:
description: Update all fields on a service by id. Requires admin access.
operationId: updateService
parameters:
- description: A service update object
in: body
name: service
required: true
schema:
$ref: '#/definitions/serviceUpdate'
responses:
"200":
description: The update request was successful and the resource has been altered
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/empty'
"400":
description: The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information
examples:
application/json:
error:
args:
urlVars: {}
cause:
details:
context: (root)
field: (root)
property: fooField3
field: (root)
message: '(root): fooField3 is required'
type: required
value:
fooField: abc
fooField2: def
causeMessage: schema validation failed
code: COULD_NOT_VALIDATE
message: The supplied request contains an invalid document
requestId: ac6766d6-3a09-44b3-8d8a-1b541d97fdd9
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"401":
description: The supplied session does not have the correct access rights to request this resource
examples:
application/json:
error:
args:
urlVars: {}
cause: ""
causeMessage: ""
code: UNAUTHORIZED
message: The request could not be completed. The session is not authorized or the credentials are invalid
requestId: 0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"404":
description: The requested resource does not exist
examples:
application/json:
error:
args:
urlVars:
id: 71a3000f-7dda-491a-9b90-a19f4ee6c406
cause: null
causeMessage: ""
code: NOT_FOUND
message: The resource requested was not found or is no longer available
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"429":
description: The resource requested is rate limited and the rate limit has been exceeded
examples:
application/json:
error:
args:
urlVars: {}
causeMessage: you have hit a rate limit in the requested operation
code: RATE_LIMITED
message: The resource is rate limited and the rate limit has been exceeded. Please try again later
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"503":
description: The request could not be completed due to the server being busy or in a temporarily bad state
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
security:
- ztSession: []
- oauth2:
- openid
summary: Update all fields on a service
tags:
- Service
/services/{id}/edge-routers:
get:
description: |
Retrieves the list of edge routers permitted to handle traffic for the specified service
operationId: listServiceEdgeRouters
parameters:
- in: query
name: limit
type: integer
- in: query
name: offset
type: integer
- in: query
name: filter
type: string
- description: an optional JWT token use to authenticate the request. If provided, the token must be valid else a not authorized response is returned.
in: header
name: session-token
type: string
responses:
"200":
description: A list of edge routers suitable for dialing or binding the specified service by the authenticated identity
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/listServiceEdgeRoutersEnvelope'
"400":
description: The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information
examples:
application/json:
error:
args:
urlVars: {}
cause:
details:
context: (root)
field: (root)
property: fooField3
field: (root)
message: '(root): fooField3 is required'
type: required
value:
fooField: abc
fooField2: def
causeMessage: schema validation failed
code: COULD_NOT_VALIDATE
message: The supplied request contains an invalid document
requestId: ac6766d6-3a09-44b3-8d8a-1b541d97fdd9
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"401":
description: The supplied session does not have the correct access rights to request this resource
examples:
application/json:
error:
args:
urlVars: {}
cause: ""
causeMessage: ""
code: UNAUTHORIZED
message: The request could not be completed. The session is not authorized or the credentials are invalid
requestId: 0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"404":
description: The requested resource does not exist
examples:
application/json:
error:
args:
urlVars:
id: 71a3000f-7dda-491a-9b90-a19f4ee6c406
cause: null
causeMessage: ""
code: NOT_FOUND
message: The resource requested was not found or is no longer available
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"429":
description: The resource requested is rate limited and the rate limit has been exceeded
examples:
application/json:
error:
args:
urlVars: {}
causeMessage: you have hit a rate limit in the requested operation
code: RATE_LIMITED
message: The resource is rate limited and the rate limit has been exceeded. Please try again later
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
security:
- ztSession: []
- oauth2:
- openid
summary: List of edge routers permitted to handle traffic for the specified service
tags:
- Service
parameters:
- description: The id of the requested resource
in: path
name: id
required: true
type: string
/services/{id}/terminators:
get:
description: |
Retrieves a list of terminator resources that are assigned specific service; supports filtering, sorting, and pagination.
operationId: listServiceTerminators
parameters:
- in: query
name: limit
type: integer
- in: query
name: offset
type: integer
- in: query
name: filter
type: string
responses:
"200":
description: A list of terminators
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/listClientTerminatorsEnvelope'
"400":
description: The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information
examples:
application/json:
error:
args:
urlVars: {}
cause:
details:
context: (root)
field: (root)
property: fooField3
field: (root)
message: '(root): fooField3 is required'
type: required
value:
fooField: abc
fooField2: def
causeMessage: schema validation failed
code: COULD_NOT_VALIDATE
message: The supplied request contains an invalid document
requestId: ac6766d6-3a09-44b3-8d8a-1b541d97fdd9
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"401":
description: The supplied session does not have the correct access rights to request this resource
examples:
application/json:
error:
args:
urlVars: {}
cause: ""
causeMessage: ""
code: UNAUTHORIZED
message: The request could not be completed. The session is not authorized or the credentials are invalid
requestId: 0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"429":
description: The resource requested is rate limited and the rate limit has been exceeded
examples:
application/json:
error:
args:
urlVars: {}
causeMessage: you have hit a rate limit in the requested operation
code: RATE_LIMITED
message: The resource is rate limited and the rate limit has been exceeded. Please try again later
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"503":
description: The request could not be completed due to the server being busy or in a temporarily bad state
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
security:
- ztSession: []
- oauth2:
- openid
summary: List of terminators assigned to a service
tags:
- Service
parameters:
- description: The id of the requested resource
in: path
name: id
required: true
type: string
/sessions:
get:
description: |
Retrieves a list of active sessions resources; supports filtering, sorting, and pagination.
Sessions are tied to an API session and are moved when an API session times out or logs out. Active sessions
(i.e. Ziti SDK connected to an edge router) will keep the session and API session marked as active.
operationId: listSessions
parameters:
- in: query
name: limit
type: integer
- in: query
name: offset
type: integer
- in: query
name: filter
type: string
responses:
"200":
description: A list of sessions
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/listSessionsEnvelope'
"400":
description: The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information
examples:
application/json:
error:
args:
urlVars: {}
cause:
details:
context: (root)
field: (root)
property: fooField3
field: (root)
message: '(root): fooField3 is required'
type: required
value:
fooField: abc
fooField2: def
causeMessage: schema validation failed
code: COULD_NOT_VALIDATE
message: The supplied request contains an invalid document
requestId: ac6766d6-3a09-44b3-8d8a-1b541d97fdd9
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"401":
description: The supplied session does not have the correct access rights to request this resource
examples:
application/json:
error:
args:
urlVars: {}
cause: ""
causeMessage: ""
code: UNAUTHORIZED
message: The request could not be completed. The session is not authorized or the credentials are invalid
requestId: 0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"429":
description: The resource requested is rate limited and the rate limit has been exceeded
examples:
application/json:
error:
args:
urlVars: {}
causeMessage: you have hit a rate limit in the requested operation
code: RATE_LIMITED
message: The resource is rate limited and the rate limit has been exceeded. Please try again later
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"503":
description: The request could not be completed due to the server being busy or in a temporarily bad state
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
security:
- ztSession: []
- oauth2:
- openid
summary: List sessions
tags:
- Session
post:
description: Create a session resource.
operationId: createSession
parameters:
- description: A session to create
in: body
name: session
required: true
schema:
$ref: '#/definitions/sessionCreate'
responses:
"201":
description: The create request was successful and the resource has been added at the following location
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/sessionCreateEnvelope'
"400":
description: The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information
examples:
application/json:
error:
args:
urlVars: {}
cause:
details:
context: (root)
field: (root)
property: fooField3
field: (root)
message: '(root): fooField3 is required'
type: required
value:
fooField: abc
fooField2: def
causeMessage: schema validation failed
code: COULD_NOT_VALIDATE
message: The supplied request contains an invalid document
requestId: ac6766d6-3a09-44b3-8d8a-1b541d97fdd9
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"401":
description: The supplied session does not have the correct access rights to request this resource
examples:
application/json:
error:
args:
urlVars: {}
cause: ""
causeMessage: ""
code: UNAUTHORIZED
message: The request could not be completed. The session is not authorized or the credentials are invalid
requestId: 0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"404":
description: The requested resource does not exist
examples:
application/json:
error:
args:
urlVars:
id: 71a3000f-7dda-491a-9b90-a19f4ee6c406
cause: null
causeMessage: ""
code: NOT_FOUND
message: The resource requested was not found or is no longer available
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"429":
description: The resource requested is rate limited and the rate limit has been exceeded
examples:
application/json:
error:
args:
urlVars: {}
causeMessage: you have hit a rate limit in the requested operation
code: RATE_LIMITED
message: The resource is rate limited and the rate limit has been exceeded. Please try again later
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"503":
description: The request could not be completed due to the server being busy or in a temporarily bad state
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
security:
- ztSession: []
- oauth2:
- openid
summary: Create a session resource
tags:
- Session
/sessions/{id}:
delete:
description: Delete a session by id.
operationId: deleteSession
responses:
"200":
description: The delete request was successful and the resource has been removed
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/empty'
"400":
description: The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information
examples:
application/json:
error:
args:
urlVars: {}
cause:
details:
context: (root)
field: (root)
property: fooField3
field: (root)
message: '(root): fooField3 is required'
type: required
value:
fooField: abc
fooField2: def
causeMessage: schema validation failed
code: COULD_NOT_VALIDATE
message: The supplied request contains an invalid document
requestId: ac6766d6-3a09-44b3-8d8a-1b541d97fdd9
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"401":
description: The supplied session does not have the correct access rights to request this resource
examples:
application/json:
error:
args:
urlVars: {}
cause: ""
causeMessage: ""
code: UNAUTHORIZED
message: The request could not be completed. The session is not authorized or the credentials are invalid
requestId: 0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"409":
description: The resource requested to be removed/altered cannot be as it is referenced by another object.
examples:
application/json:
error:
args:
urlVars:
id: 71a3000f-7dda-491a-9b90-a19f4ee6c406
causeMessage: referenced by /some-resource/05f4f710-c155-4a74-86d5-77558eb9cb42
code: CONFLICT_CANNOT_MODIFY_REFERENCED
message: The resource cannot be deleted/modified. Remove all referencing resources first.
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"429":
description: The resource requested is rate limited and the rate limit has been exceeded
examples:
application/json:
error:
args:
urlVars: {}
causeMessage: you have hit a rate limit in the requested operation
code: RATE_LIMITED
message: The resource is rate limited and the rate limit has been exceeded. Please try again later
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"503":
description: The request could not be completed due to the server being busy or in a temporarily bad state
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
security:
- ztSession: []
- oauth2:
- openid
summary: Delete a session
tags:
- Session
get:
description: Retrieves a single session by id.
operationId: detailSession
responses:
"200":
description: A single session
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/detailSessionEnvelope'
"401":
description: The supplied session does not have the correct access rights to request this resource
examples:
application/json:
error:
args:
urlVars: {}
cause: ""
causeMessage: ""
code: UNAUTHORIZED
message: The request could not be completed. The session is not authorized or the credentials are invalid
requestId: 0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
"404":
description: The requested resource does not exist
examples:
application/json:
error:
args:
urlVars:
id: 71a3000f-7dda-491a-9b90-a19f4ee6c406
cause: null
causeMessage: ""
code: NOT_FOUND
message: The resource requested was not found or is no longer available
requestId: 270908d6-f2ef-4577-b973-67bec18ae376
meta:
apiEnrollmentVersion: 0.0.1
apiVersion: 0.0.1
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/apiErrorEnvelope'
security:
- ztSession: []
- oauth2:
- openid
summary: Retrieves a single session
tags:
- Session
parameters:
- description: The id of the requested resource
in: path
name: id
required: true
type: string
/specs:
get:
description: Returns a list of spec files embedded within the controller for consumption/documentation/code geneartion
operationId: listSpecs
responses:
"200":
description: A list of specifications
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/listSpecsEnvelope'
security: []
summary: Returns a list of API specs
tags:
- Informational
/specs/{id}:
get:
description: Returns single spec resource embedded within the controller for consumption/documentation/code geneartion
operationId: detailSpec
responses:
"200":
description: A single specification
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/detailSpecEnvelope'
security: []
summary: Return a single spec resource
tags:
- Informational
parameters:
- description: The id of the requested resource
in: path
name: id
required: true
type: string
/specs/{id}/spec:
get:
description: Return the body of the specification (i.e. Swagger, OpenAPI 2.0, 3.0, etc).
operationId: detailSpecBody
produces:
- text/yaml
- application/json
responses:
"200":
description: Returns the document that represents the specification
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/detailSpecBodyEnvelope'
security: []
summary: Returns the spec's file
tags:
- Informational
parameters:
- description: The id of the requested resource
in: path
name: id
required: true
type: string
/version:
get:
operationId: listVersion
responses:
"200":
description: Version information for the controller
headers:
WWW-Authenticate:
description: Denotes different type of security token related information
items:
type: string
type: array
schema:
$ref: '#/definitions/listVersionEnvelope'
security: []
summary: Returns version information
tags:
- Informational
definitions:
apiAddress:
properties:
url:
type: string
version:
type: string
type: object
apiAddressArray:
items:
$ref: '#/definitions/apiAddress'
type: array
apiAddressList:
additionalProperties:
$ref: '#/definitions/apiAddressArray'
type: object
apiError:
properties:
args:
$ref: '#/definitions/apiErrorArgs'
cause:
$ref: '#/definitions/apiErrorCause'
causeMessage:
type: string
code:
type: string
data:
additionalProperties: true
type: object
message:
type: string
requestId:
type: string
type: object
apiErrorArgs:
properties:
urlVars:
additionalProperties:
type: string
type: object
type: object
apiErrorCause:
allOf:
- $ref: '#/definitions/apiFieldError'
- $ref: '#/definitions/apiError'
apiErrorEnvelope:
properties:
error:
$ref: '#/definitions/apiError'
meta:
$ref: '#/definitions/meta'
required:
- meta
- error
type: object
apiFieldError:
properties:
field:
type: string
reason:
type: string
value:
description: can be any value - string, number, boolean, array or object
type: object
apiSessionDetail:
allOf:
- $ref: '#/definitions/baseEntity'
- properties:
authQueries:
$ref: '#/definitions/authQueryList'
authenticatorId:
type: string
cachedLastActivityAt:
format: date-time
type: string
configTypes:
items:
type: string
type: array
identity:
$ref: '#/definitions/entityRef'
identityId:
type: string
improperClientCertChain:
type: boolean
ipAddress:
type: string
isCertExtendRequested:
type: boolean
isCertExtendable:
type: boolean
isCertKeyRollRequested:
type: boolean
isMfaComplete:
type: boolean
isMfaRequired:
type: boolean
lastActivityAt:
format: date-time
type: string
token:
type: string
required:
- token
- identity
- identityId
- configTypes
- ipAddress
- authQueries
- cachedUpdatedAt
- isMfaRequired
- isMfaComplete
- authenticatorId
- isCertExtendable
type: object
description: An API Session object
type: object
apiVersion:
properties:
apiBaseUrls:
items:
type: string
type: array
path:
type: string
version:
type: string
required:
- path
type: object
attributes:
description: A set of strings used to loosely couple this resource to policies
items:
type: string
type: array
x-nullable: true
x-omitempty: true
authQueryDetail:
properties:
clientId:
type: string
format:
$ref: '#/definitions/mfaFormats'
httpMethod:
type: string
httpUrl:
type: string
id:
type: string
isTotpEnrolled:
type: boolean
maxLength:
type: integer
minLength:
type: integer
provider:
$ref: '#/definitions/mfaProviders'
scopes:
items:
type: string
type: array
typeId:
$ref: '#/definitions/authQueryType'
required:
- provider
type: object
authQueryList:
items:
$ref: '#/definitions/authQueryDetail'
type: array
authQueryType:
enum:
- MFA
- TOTP
- EXT-JWT
type: string
authenticate:
description: A generic authenticate object meant for use with the /authenticate path. Required fields depend on authentication method.
properties:
configTypes:
$ref: '#/definitions/configTypes'
envInfo:
$ref: '#/definitions/envInfo'
password:
$ref: '#/definitions/password'
sdkInfo:
$ref: '#/definitions/sdkInfo'
username:
$ref: '#/definitions/username'
type: object
authenticatorDetail:
allOf:
- $ref: '#/definitions/baseEntity'
- properties:
certPem:
type: string
extendRequestedAt:
format: date-time
type: string
x-nullable: true
fingerprint:
type: string
identity:
$ref: '#/definitions/entityRef'
identityId:
type: string
isExtendRequested:
type: boolean
isIssuedByNetwork:
type: boolean
isKeyRollRequested:
type: boolean
lastAuthResolvedToRoot:
type: boolean
lastExtendRolledKeys:
type: boolean
method:
type: string
username:
type: string
required:
- method
- identityId
- identity
type: object
description: A singular authenticator resource
type: object
authenticatorList:
description: An array of authenticator resources
items:
$ref: '#/definitions/authenticatorDetail'
type: array
authenticatorPatch:
description: All of the fields on an authenticator that may be updated
properties:
password:
$ref: '#/definitions/passwordNullable'
tags:
$ref: '#/definitions/tags'
username:
$ref: '#/definitions/usernameNullable'
type: object
authenticatorPatchWithCurrent:
allOf:
- $ref: '#/definitions/authenticatorPatch'
- properties:
currentPassword:
$ref: '#/definitions/password'
required:
- currentPassword
type: object
description: All of the fields on an authenticator that may be updated
type: object
authenticatorUpdate:
description: All of the fields on an authenticator that will be updated
properties:
password:
$ref: '#/definitions/password'
tags:
$ref: '#/definitions/tags'
username:
$ref: '#/definitions/username'
required:
- username
- password
type: object
authenticatorUpdateWithCurrent:
allOf:
- $ref: '#/definitions/authenticatorUpdate'
- properties:
currentPassword:
$ref: '#/definitions/password'
required:
- currentPassword
type: object
description: All of the fields on an authenticator that will be updated
type: object
baseEntity:
description: Fields shared by all Edge API entities
properties:
_links:
$ref: '#/definitions/links'
createdAt:
format: date-time
type: string
id:
type: string
tags:
$ref: '#/definitions/tags'
updatedAt:
format: date-time
type: string
required:
- id
- createdAt
- updatedAt
- _links
type: object
capabilities:
enum:
- OIDC_AUTH
- HA_CONTROLLER
type: string
clientExternalJwtSignerDetail:
allOf:
- $ref: '#/definitions/baseEntity'
- properties:
audience:
type: string
x-nullable: true
clientId:
type: string
x-nullable: true
enrollToCertEnabled:
type: boolean
enrollToTokenEnabled:
type: boolean
externalAuthUrl:
format: url
type: string
name:
example: MyApps Signer
type: string
openIdConfigurationUrl:
type: string
scopes:
items:
type: string
type: array
targetToken:
$ref: '#/definitions/targetToken'
required:
- name
- externalAuthUrl
type: object
description: A External JWT Signer resource
type: object
clientExternalJwtSignerList:
description: An array of External JWT Signers resources
items:
$ref: '#/definitions/clientExternalJwtSignerDetail'
type: array
commonEdgeRouterProperties:
properties:
appData:
$ref: '#/definitions/tags'
cost:
maximum: !!float 65535
minimum: !!float 0
type: integer
x-nullable: true
disabled:
type: boolean
hostname:
type: string
isOnline:
type: boolean
name:
type: string
noTraversal:
type: boolean
x-nullable: true
supportedProtocols:
additionalProperties:
type: string
type: object
syncStatus:
type: string
required:
- hostname
- name
- supportedProtocols
- syncStatus
- isOnline
- cost
- noTraversal
- disabled
type: object
configTypes:
description: Specific configuration types that should be returned
items:
type: string
type: array
controllerDetail:
allOf:
- $ref: '#/definitions/baseEntity'
- properties:
apiAddresses:
$ref: '#/definitions/apiAddressList'
certPem:
type: string
ctrlAddress:
type: string
x-nullable: true
fingerprint:
type: string
isOnline:
type: boolean
lastJoinedAt:
format: date-time
type: string
name:
type: string
required:
- name
- certPem
- fingerprint
- isOnline
- lastJoinedAt
type: object
description: A controller resource
type: object
controllersList:
description: An array of controller resources
items:
$ref: '#/definitions/controllerDetail'
type: array
createCurrentApiSessionCertificateEnvelope:
properties:
data:
$ref: '#/definitions/currentApiSessionCertificateCreateResponse'
meta:
$ref: '#/definitions/meta'
required:
- meta
- data
createEnvelope:
properties:
data:
$ref: '#/definitions/createLocation'
meta:
$ref: '#/definitions/meta'
type: object
createLocation:
properties:
_links:
$ref: '#/definitions/links'
id:
type: string
type: object
currentApiSessionCertificateCreate:
properties:
csr:
type: string
required:
- csr
type: object
currentApiSessionCertificateCreateResponse:
allOf:
- $ref: '#/definitions/createLocation'
- properties:
cas:
type: string
certificate:
type: string
required:
- certificate
type: object
currentApiSessionCertificateDetail:
allOf:
- $ref: '#/definitions/baseEntity'
- properties:
certificate:
type: string
fingerprint:
type: string
subject:
type: string
validFrom:
format: date-time
type: string
validTo:
format: date-time
type: string
required:
- subject
- fingerprint
- validFrom
- validTo
- certificate
type: object
type: object
currentApiSessionCertificateList:
items:
$ref: '#/definitions/currentApiSessionCertificateDetail'
type: array
currentApiSessionDetail:
allOf:
- $ref: '#/definitions/apiSessionDetail'
- properties:
expirationSeconds:
type: integer
expiresAt:
format: date-time
type: string
required:
- expiresAt
- expirationSeconds
type: object
description: An API Session object for the current API session
type: object
currentApiSessionDetailEnvelope:
properties:
data:
$ref: '#/definitions/currentApiSessionDetail'
meta:
$ref: '#/definitions/meta'
required:
- meta
- data
type: object
currentApiSessionServiceUpdateList:
properties:
lastChangeAt:
format: date-time
type: string
required:
- lastChangeAt
type: object
currentIdentityDetailEnvelope:
properties:
data:
$ref: '#/definitions/identityDetail'
meta:
$ref: '#/definitions/meta'
required:
- meta
- data
type: object
currentIdentityEdgeRouterDetail:
allOf:
- $ref: '#/definitions/baseEntity'
- $ref: '#/definitions/commonEdgeRouterProperties'
description: A detail edge router resource
type: object
currentIdentityEdgeRouterList:
description: A list of edge router resources
items:
$ref: '#/definitions/currentIdentityEdgeRouterDetail'
type: array
detailAuthenticatorEnvelope:
properties:
data:
$ref: '#/definitions/authenticatorDetail'
meta:
$ref: '#/definitions/meta'
required:
- meta
- data
type: object
detailCurrentApiSessionCertificateEnvelope:
properties:
data:
$ref: '#/definitions/currentApiSessionCertificateDetail'
meta:
$ref: '#/definitions/meta'
required:
- meta
- data
detailMfa:
allOf:
- $ref: '#/definitions/baseEntity'
- properties:
isVerified:
type: boolean
provisioningUrl:
description: Not provided if MFA verification has been completed
type: string
recoveryCodes:
description: Not provided if MFA verification has been completed
items:
type: string
type: array
required:
- isVerified
type: object
detailMfaEnvelope:
properties:
data:
$ref: '#/definitions/detailMfa'
meta:
$ref: '#/definitions/meta'
required:
- meta
- data
type: object
detailMfaRecoveryCodes:
allOf:
- $ref: '#/definitions/baseEntity'
- properties:
recoveryCodes:
items:
type: string
type: array
required:
- recoveryCodes
type: object
detailMfaRecoveryCodesEnvelope:
properties:
data:
$ref: '#/definitions/detailMfaRecoveryCodes'
meta:
$ref: '#/definitions/meta'
required:
- meta
- data
type: object
detailServiceEnvelope:
properties:
data:
$ref: '#/definitions/serviceDetail'
meta:
$ref: '#/definitions/meta'
required:
- meta
- data
type: object
detailSessionEnvelope:
properties:
data:
$ref: '#/definitions/sessionDetail'
meta:
$ref: '#/definitions/meta'
required:
- meta
- data
type: object
detailSpecBodyEnvelope:
properties:
data:
$ref: '#/definitions/specBodyDetail'
meta:
$ref: '#/definitions/meta'
required:
- meta
- data
type: object
detailSpecEnvelope:
properties:
data:
$ref: '#/definitions/specDetail'
meta:
$ref: '#/definitions/meta'
required:
- meta
- data
type: object
dialBind:
enum:
- Dial
- Bind
- Invalid
type: string
dialBindArray:
items:
$ref: '#/definitions/dialBind'
type: array
empty:
properties:
data:
example: {}
type: object
meta:
$ref: '#/definitions/meta'
required:
- meta
- data
type: object
enrollmentCerts:
properties:
ca:
description: A PEM encoded set of CA certificates to trust
type: string
cert:
description: A PEM encoded set of certificates to use as the client chain
type: string
serverCert:
description: A PEM encoded set of certificates to use as the servers chain
type: string
type: object
enrollmentCertsEnvelope:
properties:
data:
$ref: '#/definitions/enrollmentCerts'
meta:
$ref: '#/definitions/meta'
type: object
entityRef:
description: A reference to another resource and links to interact with it
properties:
_links:
$ref: '#/definitions/links'
entity:
type: string
id:
type: string
name:
type: string
type: object
envInfo:
description: Environment information an authenticating client may provide
properties:
arch:
maxLength: !!float 255
type: string
domain:
maxLength: !!float 253
type: string
hostname:
maxLength: !!float 253
type: string
os:
maxLength: !!float 255
type: string
osRelease:
maxLength: !!float 255
type: string
osVersion:
maxLength: !!float 255
type: string
type: object
erOttEnrollmentRequest:
properties:
clientCsr:
type: string
serverCsr:
type: string
token:
type: string
type: object
genericEnroll:
properties:
certCsr:
type: string
clientCsr:
type: string
name:
type: string
password:
$ref: '#/definitions/password'
serverCertCsr:
type: string
username:
$ref: '#/definitions/username'
type: object
identityAuthenticators:
properties:
cert:
properties:
fingerprint:
type: string
id:
type: string
type: object
updb:
properties:
id:
type: string
username:
type: string
type: object
type: object
identityDetail:
allOf:
- $ref: '#/definitions/baseEntity'
- properties:
appData:
$ref: '#/definitions/tags'
authPolicy:
$ref: '#/definitions/entityRef'
authPolicyId:
type: string
authenticators:
$ref: '#/definitions/identityAuthenticators'
defaultHostingCost:
$ref: '#/definitions/terminatorCost'
defaultHostingPrecedence:
$ref: '#/definitions/terminatorPrecedence'
disabled:
type: boolean
disabledAt:
format: date-time
type: string
x-nullable: true
disabledUntil:
format: date-time
type: string
x-nullable: true
edgeRouterConnectionStatus:
enum:
- online
- offline
- unknown
type: string
enrollment:
$ref: '#/definitions/identityEnrollments'
envInfo:
$ref: '#/definitions/envInfo'
externalId:
type: string
x-nullable: true
hasApiSession:
type: boolean
hasEdgeRouterConnection:
type: boolean
interfaces:
items:
$ref: '#/definitions/interface'
type: array
isAdmin:
type: boolean
isDefaultAdmin:
type: boolean
isMfaEnabled:
type: boolean
name:
type: string
permissions:
$ref: '#/definitions/permissions'
roleAttributes:
$ref: '#/definitions/attributes'
sdkInfo:
$ref: '#/definitions/sdkInfo'
serviceHostingCosts:
$ref: '#/definitions/terminatorCostMap'
serviceHostingPrecedences:
$ref: '#/definitions/terminatorPrecedenceMap'
type:
$ref: '#/definitions/entityRef'
typeId:
type: string
required:
- name
- type
- typeId
- isDefaultAdmin
- isAdmin
- authenticators
- enrollment
- envInfo
- sdkInfo
- roleAttributes
- hasEdgeRouterConnection
- edgeRouterConnectionStatus
- hasApiSession
- isMfaEnabled
- serviceHostingPrecedences
- serviceHostingCosts
- defaultHostingCost
- authPolicyId
- authPolicy
- externalId
- disabled
- permissions
type: object
description: Detail of a specific identity
type: object
identityEnrollments:
properties:
ott:
properties:
expiresAt:
format: date-time
type: string
id:
type: string
jwt:
type: string
token:
type: string
type: object
ottca:
properties:
ca:
$ref: '#/definitions/entityRef'
caId:
type: string
expiresAt:
format: date-time
type: string
id:
type: string
jwt:
type: string
token:
type: string
type: object
updb:
properties:
expiresAt:
format: date-time
type: string
id:
type: string
jwt:
type: string
token:
type: string
type: object
type: object
identityExtendCerts:
properties:
ca:
description: A PEM encoded set of CA certificates
type: string
clientCert:
description: A PEM encoded client certificate
type: string
type: object
identityExtendEnrollmentEnvelope:
properties:
data:
$ref: '#/definitions/identityExtendCerts'
meta:
$ref: '#/definitions/meta'
type: object
identityExtendEnrollmentRequest:
properties:
clientCertCsr:
type: string
required:
- clientCertCsr
type: object
identityExtendValidateEnrollmentRequest:
properties:
clientCert:
description: A PEM encoded client certificate previously returned after an extension request
type: string
required:
- clientCert
type: object
interface:
description: A resource describing a network interface
properties:
addresses:
items:
type: string
type: array
hardwareAddress:
type: string
index:
minimum: !!float 0
type: integer
isBroadcast:
type: boolean
isLoopback:
type: boolean
isMulticast:
type: boolean
isRunning:
type: boolean
isUp:
type: boolean
mtu:
minimum: !!float 0
type: integer
name:
type: string
required:
- name
- hardwareAddress
- mtu
- index
- isUp
- isRunning
- isLoopback
- isBroadcast
- isMulticast
type: object
jwk:
properties:
alg:
description: Algorithm intended for use with the key.
type: string
crv:
description: Curve for ECC Public Keys.
type: string
d:
description: ECC Private Key or RSA Private Exponent.
type: string
dp:
description: First Factor CRT Exponent for RSA.
type: string
dq:
description: Second Factor CRT Exponent for RSA.
type: string
e:
description: Exponent for RSA Public Key.
type: string
key_ops:
description: Intended key operations, e.g., sign, verify.
items:
type: string
type: array
kid:
description: Key ID.
type: string
kty:
description: Key Type.
type: string
n:
description: Modulus for RSA Public Key.
type: string
oth:
description: Other Primes Info not represented by the first two primes.
items:
$ref: '#/definitions/otherPrime'
type: array
p:
description: First Prime Factor for RSA.
type: string
q:
description: Second Prime Factor for RSA.
type: string
qi:
description: First CRT Coefficient for RSA.
type: string
use:
description: Public key use, e.g., sig (signature) or enc (encryption).
type: string
x:
description: X Coordinate for ECC Public Keys.
type: string
x5c:
description: X.509 Certificate Chain.
items:
type: string
type: array
x5t:
description: X.509 Certificate SHA-1 Thumbprint.
type: string
x5t#S256:
description: X.509 Certificate SHA-256 Thumbprint.
type: string
x5u:
description: X.509 URL.
type: string
y:
description: Y Coordinate for ECC Public Keys.
type: string
required:
- kty
type: object
jwks:
properties:
keys:
items:
$ref: '#/definitions/jwk'
type: array
type: object
link:
description: A link to another resource
properties:
comment:
type: string
href:
format: uri
type: string
method:
type: string
required:
- href
type: object
links:
additionalProperties:
$ref: '#/definitions/link'
description: A map of named links
type: object
x-omitempty: false
listAuthenticatorsEnvelope:
properties:
data:
$ref: '#/definitions/authenticatorList'
meta:
$ref: '#/definitions/meta'
type: object
listClientExternalJwtSignersEnvelope:
properties:
data:
$ref: '#/definitions/clientExternalJwtSignerList'
meta:
$ref: '#/definitions/meta'
required:
- meta
- data
type: object
listClientTerminatorsEnvelope:
properties:
data:
$ref: '#/definitions/terminatorClientList'
meta:
$ref: '#/definitions/meta'
required:
- meta
- data
type: object
listControllersEnvelope:
properties:
data:
$ref: '#/definitions/controllersList'
meta:
$ref: '#/definitions/meta'
required:
- meta
- data
type: object
listCurrentApiSessionCertificatesEnvelope:
properties:
data:
$ref: '#/definitions/currentApiSessionCertificateList'
meta:
$ref: '#/definitions/meta'
required:
- meta
- data
listCurrentApiSessionServiceUpdatesEnvelope:
properties:
data:
$ref: '#/definitions/currentApiSessionServiceUpdateList'
meta:
$ref: '#/definitions/meta'
required:
- meta
- data
type: object
listCurrentIdentityEdgeRoutersEnvelope:
properties:
data:
$ref: '#/definitions/currentIdentityEdgeRouterList'
meta:
$ref: '#/definitions/meta'
required:
- meta
- data
type: object
listEnumeratedCapabilitiesEnvelope:
properties:
data:
items:
$ref: '#/definitions/capabilities'
type: array
meta:
$ref: '#/definitions/meta'
required:
- meta
- data
type: object
listNetworkJWTsEnvelope:
properties:
data:
$ref: '#/definitions/networkJWTList'
meta:
$ref: '#/definitions/meta'
required:
- meta
- data
type: object
listProtocols:
additionalProperties:
$ref: '#/definitions/protocol'
type: object
listProtocolsEnvelope:
properties:
data:
$ref: '#/definitions/listProtocols'
meta:
$ref: '#/definitions/meta'
required:
- meta
- data
type: object
listServiceEdgeRoutersEnvelope:
properties:
data:
$ref: '#/definitions/serviceEdgeRouters'
meta:
$ref: '#/definitions/meta'
required:
- meta
- data
type: object
listServicesEnvelope:
properties:
data:
$ref: '#/definitions/serviceList'
meta:
$ref: '#/definitions/meta'
required:
- meta
- data
type: object
listSessionsEnvelope:
properties:
data:
$ref: '#/definitions/sessionList'
meta:
$ref: '#/definitions/meta'
required:
- meta
- data
type: object
listSpecsEnvelope:
properties:
data:
$ref: '#/definitions/specList'
meta:
$ref: '#/definitions/meta'
required:
- meta
- data
type: object
listVersionEnvelope:
properties:
data:
$ref: '#/definitions/version'
meta:
$ref: '#/definitions/meta'
required:
- meta
- data
type: object
meta:
properties:
apiEnrollmentVersion:
type: string
apiVersion:
type: string
filterableFields:
items:
type: string
type: array
x-omitempty: true
pagination:
$ref: '#/definitions/pagination'
type: object
mfaCode:
properties:
code:
type: string
required:
- code
type: object
mfaFormats:
enum:
- numeric
- alpha
- alphaNumeric
type: string
mfaProviders:
enum:
- zt
- url
type: string
networkJWT:
allOf:
- properties:
name:
type: string
token:
type: string
required:
- name
- token
type: object
description: A network JWT
type: object
networkJWTList:
description: An array of network JWTs
items:
$ref: '#/definitions/networkJWT'
type: array
nonceChallenge:
properties:
keyId:
type: string
nonce:
format: uuid
type: string
required:
- nonce
- keyId
type: object
nonceSignature:
properties:
algorithm:
type: string
caPool:
type: string
kid:
type: string
signature:
type: string
required:
- signature
- algorithm
- kid
- caPool
type: object
osType:
enum:
- Windows
- WindowsServer
- Android
- iOS
- Linux
- macOS
type: string
otherPrime:
properties:
d:
description: Factor CRT exponent.
type: string
r:
description: Prime factor.
type: string
t:
description: Factor CRT coefficient.
type: string
type: object
ottEnrollmentRequest:
properties:
clientCsr:
type: string
token:
type: string
type: object
pagination:
properties:
limit:
format: int64
type: number
offset:
format: int64
type: number
totalCount:
format: int64
type: number
required:
- limit
- offset
- totalCount
type: object
password:
maxLength: !!float 100
minLength: !!float 5
type: string
passwordNullable:
maxLength: !!float 100
minLength: !!float 5
type: string
x-nullable: true
permissions:
description: A set of strings used to define which types of resources this resource can acccess
items:
enum:
- admin_readonly
- auth-policy
- auth-policy.read
- auth-policy.create
- auth-policy.update
- auth-policy.delete
- ca
- ca.read
- ca.create
- ca.update
- ca.delete
- config
- config.read
- config.create
- config.update
- config.delete
- config-type
- config-type.read
- config-type.create
- config-type.update
- config-type.delete
- edge-router-policy
- edge-router-policy.read
- edge-router-policy.create
- edge-router-policy.update
- edge-router-policy.delete
- enrollment
- enrollment.read
- enrollment.create
- enrollment.update
- enrollment.delete
- external-jwt-signer
- external-jwt-signer.read
- external-jwt-signer.create
- external-jwt-signer.update
- external-jwt-signer.delete
- identity
- identity.read
- identity.create
- identity.update
- identity.delete
- ops
- ops.read
- ops.update
- ops.delete
- posture-check
- posture-check.read
- posture-check.create
- posture-check.update
- posture-check.delete
- router
- router.read
- router.create
- router.update
- router.delete
- service
- service.read
- service.create
- service.update
- service.delete
- service-edge-router-policy
- service-edge-router-policy.read
- service-edge-router-policy.create
- service-edge-router-policy.update
- service-edge-router-policy.delete
- service-policy
- service-policy.read
- service-policy.create
- service-policy.update
- service-policy.delete
- terminator
- terminator.read
- terminator.create
- terminator.update
- terminator.delete
type: string
type: array
x-nullable: true
x-omitempty: true
postureCheckType:
enum:
- OS
- PROCESS
- DOMAIN
- MAC
- MFA
- PROCESS_MULTI
type: string
postureQueries:
properties:
isPassing:
type: boolean
policyId:
type: string
policyType:
$ref: '#/definitions/dialBind'
postureQueries:
items:
$ref: '#/definitions/postureQuery'
type: array
required:
- policyId
- isPassing
- postureQueries
type: object
postureQuery:
allOf:
- $ref: '#/definitions/baseEntity'
- properties:
isPassing:
type: boolean
process:
$ref: '#/definitions/postureQueryProcess'
processes:
items:
$ref: '#/definitions/postureQueryProcess'
type: array
promptGracePeriodSeconds:
type: integer
promptOnUnlock:
type: boolean
promptOnWake:
type: boolean
queryType:
$ref: '#/definitions/postureCheckType'
timeout:
type: integer
timeoutAt:
format: date-time
type: string
x-nullable: true
timeoutRemaining:
type: integer
required:
- queryType
- isPassing
- timeout
- timeoutRemaining
type: object
type: object
postureQueryProcess:
properties:
osType:
$ref: '#/definitions/osType'
path:
type: string
type: object
postureResponse:
properties:
services:
items:
$ref: '#/definitions/postureResponseService'
type: array
required:
- services
type: object
postureResponseCreate:
discriminator: typeId
properties:
id:
type: string
typeId:
$ref: '#/definitions/postureCheckType'
required:
- id
- typeId
type: object
postureResponseDomainCreate:
allOf:
- $ref: '#/definitions/postureResponseCreate'
- properties:
domain:
type: string
required:
- domain
type: object
x-class: DOMAIN
postureResponseEndpointStateCreate:
allOf:
- $ref: '#/definitions/postureResponseCreate'
- properties:
unlocked:
type: boolean
woken:
type: boolean
type: object
x-class: ENDPOINT_STATE
postureResponseEnvelope:
properties:
data:
$ref: '#/definitions/postureResponse'
meta:
$ref: '#/definitions/meta'
required:
- meta
- data
type: object
postureResponseMacAddressCreate:
allOf:
- $ref: '#/definitions/postureResponseCreate'
- properties:
macAddresses:
items:
type: string
type: array
required:
- macAddresses
type: object
x-class: MAC
postureResponseOperatingSystemCreate:
allOf:
- $ref: '#/definitions/postureResponseCreate'
- properties:
build:
type: string
type:
type: string
version:
type: string
required:
- type
- version
type: object
x-class: OS
postureResponseProcessCreate:
allOf:
- $ref: '#/definitions/postureResponseCreate'
- properties:
hash:
type: string
isRunning:
type: boolean
path:
type: string
signerFingerprints:
items:
type: string
type: array
required:
- process
type: object
x-class: PROCESS
postureResponseService:
properties:
id:
type: string
name:
type: string
postureQueryType:
type: string
timeout:
type: integer
timeoutRemaining:
type: integer
required:
- id
- name
- postureQueryType
- timeout
- timeoutRemaining
type: object
protocol:
properties:
address:
type: string
required:
- address
type: object
routerExtendEnrollmentRequest:
properties:
certCsr:
type: string
serverCertCsr:
type: string
required:
- serverCertCsr
- certCsr
type: object
sdkInfo:
description: SDK information an authenticating client may provide
properties:
appId:
maxLength: !!float 255
type: string
appVersion:
maxLength: !!float 255
type: string
branch:
maxLength: !!float 255
type: string
revision:
maxLength: !!float 255
type: string
type:
maxLength: !!float 255
type: string
version:
maxLength: !!float 255
type: string
type: object
serviceDetail:
allOf:
- $ref: '#/definitions/baseEntity'
- properties:
config:
additionalProperties:
additionalProperties:
type: object
type: object
description: map of config data for this service keyed by the config type name. Only configs of the types requested will be returned.
type: object
configs:
items:
type: string
type: array
encryptionRequired:
description: Describes whether connections must support end-to-end encryption on both sides of the connection. Read-only property, set at create.
type: boolean
maxIdleTimeMillis:
type: integer
name:
type: string
permissions:
$ref: '#/definitions/dialBindArray'
postureQueries:
items:
$ref: '#/definitions/postureQueries'
type: array
roleAttributes:
$ref: '#/definitions/attributes'
terminatorStrategy:
type: string
required:
- name
- maxIdleTimeMillis
- terminatorStrategy
- roleAttributes
- permissions
- configs
- config
- encryptionRequired
- postureQueries
type: object
type: object
serviceEdgeRouters:
properties:
edgeRouters:
items:
$ref: '#/definitions/commonEdgeRouterProperties'
type: array
type: object
serviceList:
items:
$ref: '#/definitions/serviceDetail'
type: array
servicePatch:
properties:
configs:
items:
type: string
type: array
encryptionRequired:
description: Describes whether connections must support end-to-end encryption on both sides of the connection. Read-only property, set at create.
type: boolean
maxIdleTimeMillis:
type: integer
name:
type: string
roleAttributes:
items:
type: string
type: array
tags:
$ref: '#/definitions/tags'
terminatorStrategy:
type: string
type: object
serviceUpdate:
properties:
configs:
items:
type: string
type: array
encryptionRequired:
description: Describes whether connections must support end-to-end encryption on both sides of the connection. Read-only property, set at create.
type: boolean
maxIdleTimeMillis:
type: integer
name:
type: string
roleAttributes:
items:
type: string
type: array
tags:
$ref: '#/definitions/tags'
terminatorStrategy:
type: string
required:
- name
type: object
sessionCreate:
properties:
serviceId:
type: string
tags:
$ref: '#/definitions/tags'
type:
$ref: '#/definitions/dialBind'
type: object
sessionCreateEnvelope:
properties:
data:
$ref: '#/definitions/sessionDetail'
meta:
$ref: '#/definitions/meta'
type: object
sessionDetail:
allOf:
- $ref: '#/definitions/baseEntity'
- properties:
apiSession:
$ref: '#/definitions/entityRef'
apiSessionId:
type: string
edgeRouters:
items:
$ref: '#/definitions/sessionEdgeRouter'
type: array
identityId:
type: string
service:
$ref: '#/definitions/entityRef'
serviceId:
type: string
token:
type: string
type:
$ref: '#/definitions/dialBind'
required:
- type
- apiSessionId
- apiSession
- serviceId
- service
- token
- edgeRouters
- identityId
type: object
type: object
sessionEdgeRouter:
allOf:
- $ref: '#/definitions/commonEdgeRouterProperties'
- properties:
urls:
additionalProperties:
type: string
type: object
required:
- urls
type: object
sessionList:
items:
$ref: '#/definitions/sessionDetail'
type: array
specBodyDetail:
type: string
specDetail:
allOf:
- $ref: '#/definitions/baseEntity'
- properties:
name:
type: string
required:
- name
type: object
type: object
specList:
items:
$ref: '#/definitions/specDetail'
type: array
subTags:
additionalProperties:
type: object
type: object
tags:
allOf:
- $ref: '#/definitions/subTags'
description: 'A map of user defined fields and values. The values are limited to the following types/values: null, string, boolean'
x-nullable: true
targetToken:
description: Defines the target token type
enum:
- ACCESS
- ID
type: string
x-nullable: true
terminatorClientDetail:
allOf:
- $ref: '#/definitions/baseEntity'
- properties:
identity:
type: string
routerId:
type: string
service:
$ref: '#/definitions/entityRef'
serviceId:
type: string
required:
- serviceId
- service
- routerId
- identity
type: object
type: object
terminatorClientList:
items:
$ref: '#/definitions/terminatorClientDetail'
type: array
terminatorCost:
maximum: !!float 65535
minimum: !!float 0
type: integer
terminatorCostMap:
additionalProperties:
$ref: '#/definitions/terminatorCost'
type: object
terminatorPrecedence:
enum:
- default
- required
- failed
type: string
terminatorPrecedenceMap:
additionalProperties:
$ref: '#/definitions/terminatorPrecedence'
type: object
tokenEnrollmentRequest:
properties:
clientCsr:
type: string
type: object
totpToken:
properties:
issuedAt:
format: date-time
type: string
token:
type: string
required:
- token
- issuedAt
type: object
totpTokenEnvelope:
properties:
data:
$ref: '#/definitions/totpToken'
meta:
$ref: '#/definitions/meta'
required:
- meta
- data
type: object
username:
maxLength: !!float 100
minLength: !!float 4
type: string
usernameNullable:
maxLength: !!float 100
minLength: !!float 4
type: string
x-nullable: true
version:
properties:
apiVersions:
additionalProperties:
additionalProperties:
$ref: '#/definitions/apiVersion'
type: object
type: object
buildDate:
example: "2020-02-11 16:09:08"
type: string
capabilities:
items:
type: string
type: array
revision:
example: ea556fc18740
type: string
runtimeVersion:
example: go1.13.5
type: string
version:
example: v0.9.0
type: string
type: object
securityDefinitions:
oauth2:
authorizationUrl: /oidc/authorize
flow: accessCode
scopes:
openid: openid
tokenUrl: /oidc/token
type: oauth2
ztSession:
description: An API Key that is provided post authentication
in: header
name: zt-session
type: apiKey