Skip to main content

Pomerium Zero API (0.1.0)

Download OpenAPI specification:Download

user

The user service enables you to manage users and user information within an organization or namespace.

This service also enables you to create API access user accounts and renew API refresh tokens.

deleteCurrentUser

Delete current user

Authorizations:
bearerAuth

Responses

updateCurrentUserInfo

Fetch and update currently logged in user information from the identity provider

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "email": "user@example.com",
  • "displayName": "string",
  • "needsOnboarding": true,
  • "photoUrl": "string",
  • "type": "user_type_interactive",
  • "legalTerms": {
    }
}

completeOnboarding

Complete onboarding

Authorizations:
bearerAuth

Responses

listUsersInNamespace

List users in namespace

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

namespaceId
required
string

ID of namespace

Responses

Response samples

Content type
application/json
[
  • {
    }
]

removeUserFromNamespace

Remove user from namespace

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

namespaceId
required
string

ID of namespace

userId
required
string

ID of user

Responses

addUserToNamespace

Add user to namespace

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

namespaceId
required
string

ID of namespace

userId
required
string

ID of user

Request Body schema: application/json
required
namespaceRole
required
string (NamespaceRole)
Enum: "admin" "manager" "viewer"

Responses

Request samples

Content type
application/json
{
  • "namespaceRole": "admin"
}

Response samples

Content type
application/json
{ }

listUsersInOrganization

List users

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

query Parameters
userType
string (UserType)
Enum: "user_type_interactive" "user_type_api_access"

Type of user

Responses

Response samples

Content type
application/json
[
  • {
    }
]

createApiAccessUser

Create API access user account

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

Request Body schema: application/json
required
name
required
string

Freetext user name

role
string (OrganizationRole)
Enum: "owner" "admin" "auditor" "member"

A high level role that describes the level of access a user has to an organization.

  • Owner: Global namespace admin.
  • Admin: Global namespace admin.
  • Auditor: Global namespace viewer.
  • Member: any user who was granted access to the organization

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "role": "owner"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "email": "user@example.com",
  • "displayName": "string",
  • "needsOnboarding": true,
  • "photoUrl": "string",
  • "type": "user_type_interactive",
  • "refreshToken": "string"
}

removeUserFromOrganization

Remove user from organization

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

userId
required
string

ID of user

Responses

RenewApiUserRefreshToken

Renews API user refresh token. The userId must be an API user. Obtaining a new refresh token invalidates any previously issued refresh tokens.

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

userId
required
string

ID of user

Responses

Response samples

Content type
application/json
{
  • "refreshToken": "string"
}

invitation

The invitation service is where you can view and respond to pending invitations to join a professional type organization.

listUserInvitations

List invitations

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json
[
  • {
    }
]

acceptInvitation

Accept invitation

Authorizations:
bearerAuth
path Parameters
invitationId
required
string

ID of invitation

Responses

rejectInvitation

Reject an invitation

Authorizations:
bearerAuth
path Parameters
invitationId
required
string

ID of invitation

Responses

invite

The invite service is where you can manage invitations sent to users to join your organization.

listOrganizationInvites

List invites

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

Responses

Response samples

Content type
application/json
[
  • {
    }
]

createOrganizationInvite

Create invite

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

Request Body schema: application/json
required
emails
required
Array of strings <email> [ items <email > ]
role
required
string (OrganizationRole)
Enum: "owner" "admin" "auditor" "member"

A high level role that describes the level of access a user has to an organization.

  • Owner: Global namespace admin.
  • Admin: Global namespace admin.
  • Auditor: Global namespace viewer.
  • Member: any user who was granted access to the organization

Responses

Request samples

Content type
application/json
{
  • "emails": [
    ],
  • "role": "owner"
}

Response samples

Content type
application/json
[
  • {
    }
]

deleteOrganizationInvite

Delete invite

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

invitationId
required
string

ID of invitation

Responses

policy

The policy service is where you can manage policies within a namespace in your organization.

You can build a policy by configuring a Pomerium Policy Language (PPL) rule and apply it to a route.

listPolicies

List policies

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

query Parameters
namespaceId
required
string

ID of namespace

includeDescendants
boolean

include resources from descendant namespaces

Responses

Response samples

Content type
application/json
[
  • {
    }
]

createPolicy

Create policy

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

Request Body schema: application/json
required
namespaceId
required
string
name
required
string
enforced
required
boolean
required
PPLRule (object) or Array of PPLRule (objects)
description
required
string
explanation
required
string
remediation
required
string

Responses

Request samples

Content type
application/json
{
  • "namespaceId": "string",
  • "name": "string",
  • "enforced": true,
  • "ppl": {
    },
  • "description": "string",
  • "explanation": "string",
  • "remediation": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "namespaceId": "string",
  • "name": "string",
  • "enforced": true,
  • "ppl": {
    },
  • "description": "string",
  • "explanation": "string",
  • "remediation": "string",
  • "routes": [
    ],
  • "enforcedRoutes": [
    ]
}

deletePolicy

Delete policy

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

policyId
required
string

ID of policy

Responses

getPolicy

Get policy

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

policyId
required
string

ID of policy

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "namespaceId": "string",
  • "name": "string",
  • "enforced": true,
  • "ppl": {
    },
  • "description": "string",
  • "explanation": "string",
  • "remediation": "string",
  • "routes": [
    ],
  • "enforcedRoutes": [
    ]
}

updatePolicy

Update policy

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

policyId
required
string

ID of policy

Request Body schema: application/json
required
namespaceId
required
string
name
required
string
enforced
required
boolean
required
PPLRule (object) or Array of PPLRule (objects)
description
required
string
explanation
required
string
remediation
required
string

Responses

Request samples

Content type
application/json
{
  • "namespaceId": "string",
  • "name": "string",
  • "enforced": true,
  • "ppl": {
    },
  • "description": "string",
  • "explanation": "string",
  • "remediation": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "namespaceId": "string",
  • "name": "string",
  • "enforced": true,
  • "ppl": {
    },
  • "description": "string",
  • "explanation": "string",
  • "remediation": "string",
  • "routes": [
    ],
  • "enforcedRoutes": [
    ]
}

updateRoute

Update route

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

routeId
required
string

ID of route

Request Body schema: application/json
required
namespaceId
required
string
name
required
string (entityName) [ 1 .. 128 ] characters
from
required
string <url>
to
Array of strings <url> [ items <url > ]
object (RouteDirectResponse)
prefix
string
path
string
regex
string
prefixRewrite
string
regexRewritePattern
string
regexRewriteSubstitution
string
hostRewrite
string
hostRewriteHeader
string
hostPathRegexRewritePattern
string
hostPathRegexRewriteSubstitution
string
regexPriorityOrder
integer <int64>
timeout
string (Duration) ^([0-9]+(y|w|d|h|m|s|ms))+$
idleTimeout
string (Duration) ^([0-9]+(y|w|d|h|m|s|ms))+$
allowWebsockets
required
boolean
allowSpdy
required
boolean
tlsSkipVerify
required
boolean
tlsUpstreamServerName
string
tlsDownstreamServerName
string
tlsCustomCaKeyPairId
string
tlsClientKeyPairId
string
tlsDownstreamClientCaKeyPairId
string
tlsUpstreamAllowRenegotiation
required
boolean
object (StringMap)
object (StringMap)
removeRequestHeaders
Array of strings
Array of objects (RouteRewriteHeader)
preserveHostHeader
required
boolean
passIdentityHeaders
boolean
kubernetesServiceAccountToken
string
object (RouteRedirect)
enableGoogleCloudServerlessAuthentication
required
boolean
showErrorDetails
required
boolean
RouteHttpHealthCheck (object) or RouteTcpHealthCheck (object) or RouteGrpcHealthCheck (object) (RouteHealthCheck)
loadBalancingPolicy
string (RouteLoadBalancingPolicy)
Enum: "round_robin" "least_request" "ring_hash" "random" "maglev"
policyIds
required
Array of strings

Responses

Request samples

Content type
application/json
{
  • "namespaceId": "string",
  • "name": "string",
  • "from": "string",
  • "to": [
    ],
  • "response": {
    },
  • "prefix": "string",
  • "path": "string",
  • "regex": "string",
  • "prefixRewrite": "string",
  • "regexRewritePattern": "string",
  • "regexRewriteSubstitution": "string",
  • "hostRewrite": "string",
  • "hostRewriteHeader": "string",
  • "hostPathRegexRewritePattern": "string",
  • "hostPathRegexRewriteSubstitution": "string",
  • "regexPriorityOrder": 0,
  • "timeout": "string",
  • "idleTimeout": "string",
  • "allowWebsockets": true,
  • "allowSpdy": true,
  • "tlsSkipVerify": true,
  • "tlsUpstreamServerName": "string",
  • "tlsDownstreamServerName": "string",
  • "tlsCustomCaKeyPairId": "string",
  • "tlsClientKeyPairId": "string",
  • "tlsDownstreamClientCaKeyPairId": "string",
  • "tlsUpstreamAllowRenegotiation": true,
  • "setRequestHeaders": {
    },
  • "setResponseHeaders": {
    },
  • "removeRequestHeaders": [
    ],
  • "rewriteResponseHeaders": [
    ],
  • "preserveHostHeader": true,
  • "passIdentityHeaders": true,
  • "kubernetesServiceAccountToken": "string",
  • "redirect": {
    },
  • "enableGoogleCloudServerlessAuthentication": true,
  • "showErrorDetails": true,
  • "healthCheck": {
    },
  • "loadBalancingPolicy": "round_robin",
  • "policyIds": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "namespaceId": "string",
  • "name": "string",
  • "from": "string",
  • "to": [
    ],
  • "response": {
    },
  • "prefix": "string",
  • "path": "string",
  • "regex": "string",
  • "prefixRewrite": "string",
  • "regexRewritePattern": "string",
  • "regexRewriteSubstitution": "string",
  • "hostRewrite": "string",
  • "hostRewriteHeader": "string",
  • "hostPathRegexRewritePattern": "string",
  • "hostPathRegexRewriteSubstitution": "string",
  • "regexPriorityOrder": 0,
  • "timeout": "string",
  • "idleTimeout": "string",
  • "allowWebsockets": true,
  • "allowSpdy": true,
  • "tlsSkipVerify": true,
  • "tlsUpstreamServerName": "string",
  • "tlsDownstreamServerName": "string",
  • "tlsCustomCaKeyPairId": "string",
  • "tlsClientKeyPairId": "string",
  • "tlsDownstreamClientCaKeyPairId": "string",
  • "tlsUpstreamAllowRenegotiation": true,
  • "setRequestHeaders": {
    },
  • "setResponseHeaders": {
    },
  • "removeRequestHeaders": [
    ],
  • "rewriteResponseHeaders": [
    ],
  • "preserveHostHeader": true,
  • "passIdentityHeaders": true,
  • "kubernetesServiceAccountToken": "string",
  • "redirect": {
    },
  • "enableGoogleCloudServerlessAuthentication": true,
  • "showErrorDetails": true,
  • "healthCheck": {
    },
  • "loadBalancingPolicy": "round_robin",
  • "policyIds": [
    ],
  • "enforcedPolicyIds": [
    ]
}

activityLog

listActivityLogs

List activity logs

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

query Parameters
activityType
string (ActivityType)
Enum: "create" "delete" "update"

Type of activity

entityId
string

ID of entity

entityType
string (EntityType)
Enum: "changeset" "custom_domain" "domain" "key_pair" "namespace" "organization" "policy" "route" "settings" "service_account"

Type of entity

changesetId
string

id of changeset

namespaceId
string

ID of namespace

userId
string

ID of user

offset
integer

offset of the resources

limit
integer

limit number of resources returned

Responses

Response samples

Content type
application/json
[
  • {
    }
]

createServiceAccount

Create service account

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

clusterId
required
string

ID of cluster

Request Body schema: application/json
required
expiresAt
string <date-time>
description
required
string
userId
required
string

Responses

Request samples

Content type
application/json
{
  • "expiresAt": "2019-08-24T14:15:22Z",
  • "description": "string",
  • "userId": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "expiresAt": "2019-08-24T14:15:22Z",
  • "description": "string",
  • "userId": "string",
  • "token": "string"
}

deleteServiceAccount

Delete service account

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

clusterId
required
string

ID of cluster

serviceAccountId
required
string

ID of service account

Responses

updateServiceAccount

Update service account

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

clusterId
required
string

ID of cluster

serviceAccountId
required
string

ID of service account

Request Body schema: application/json
required
description
required
string

Responses

Request samples

Content type
application/json
{
  • "description": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "expiresAt": "2019-08-24T14:15:22Z",
  • "description": "string",
  • "userId": "string"
}

updateSettings

Update settings

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

clusterId
required
string

ID of cluster

Request Body schema: application/json
required
logLevel
required
string

Sets the global logging level for Pomerium. Only logs of the desired level and above will be logged.

proxyLogLevel
string

Sets the logging level for the Pomerium Proxy service access logs. Only logs of the desired level and above will be logged.

address
required
string <hostport>

Specifies the Host and Port to serve HTTP requests from. If empty, :443 is used.

dnsLookupFamily
required
string (DNSLookupFamily)
Enum: "V4_ONLY" "V6_ONLY" "V4_PREFERRED" "AUTO" "ALL"

Sets the DNS IP address resolution policy.

httpRedirectAddr
string <hostport>

Specifies the Host and Port to redirect HTTP to HTTPS traffic on. If unset, no redirect server is started.

timeoutRead
required
string (Duration) ^([0-9]+(y|w|d|h|m|s|ms))+$

Sets the amount of time for the entire request stream to be received from the client.

timeoutWrite
required
string (Duration) ^([0-9]+(y|w|d|h|m|s|ms))+$

Sets the max stream duration is the maximum time that a stream’s lifetime will span.

timeoutIdle
required
string (Duration) ^([0-9]+(y|w|d|h|m|s|ms))+$

Sets the idle timeout is the time at which a downstream or upstream connection will be terminated if there are no active streams.

cookieName
required
string

Sets the name of the session cookie sent to clients.

cookieSecret
string

Sets the secret used to encrypt and sign session cookies. If you don't provide a cookie secret, Pomerium will generate one for you.

cookieDomain
string

Sets the scope of session cookies issued by Pomerium. If you specify the domain explicitly, then subdomains would also be included.

cookieHttpOnly
required
boolean

If true, this setting forbids JavaScript from accessing the cookie.

cookieExpire
required
string (Duration) ^([0-9]+(y|w|d|h|m|s|ms))+$

Sets the lifetime of session cookies. After this interval, users must reauthenticate.

cookieSameSite
string

Sets the SameSite option for cookies, which determines whether or not a cookie is sent with cross-site requests.

certificateAuthorityKeyPairId
string

ID of CA's public and private key pair.

object (StringMap)

Specifies a mapping of HTTP Headers added globally to all managed routes and Pomerium's Authenticate Service.

object (StringMap)

Pass specific user session data to upstream applications as unsigned HTTP request headers.

defaultUpstreamTimeout
required
string (Duration) ^([0-9]+(y|w|d|h|m|s|ms))+$

The default timeout applied to a proxied route when no timeout key is specified by the policy.

metricsAddress
string

Exposes a Prometheus endpoint on the specified port.

tracingProvider
string

The name of the tracing provider (for example, Jaeger or Zipkin).

tracingSampleRate
required
number

Percentage of requests to sample in decimal notation. The default is 0.0001, or .01%.

tracingDatadogAddress
string <hostport>

The host:port address of the Datadog Trace Agent. Defaults to localhost:8126.

tracingJaegerCollectorEndpoint
string

The URL to the Jaeger HTTP Thrift collector.

tracingJaegerAgentEndpoint
string <hostport>

The address of the jaeger-agent where you send Spans to.

tracingZipkinEndpoint
string

The URL to the Zipkin HTTP endpoint.

clientCa
string

The X.509 public-key used to validate a client certificate.

clientCaFile
string

Path to client CA's PEM certificate bundle.

clientCaKeyPairId
string

ID of the client CA's public and private key pair.

googleCloudServerlessAuthenticationServiceAccount
string

Specifies the Service Account credentials to support GCP's Authorization Header format.

skipXffAppend
required
boolean

If true, the incoming X-Forwarded-For HTTP header would not be modified.

databrokerStorageConnection
string

The databroker storage connection string.

accessLogFields
Array of strings

Controls which fields are included in the access logs.

authorizeLogFields
Array of strings

Controls which fields are included in the authorize logs.

passIdentityHeaders
required
boolean
autoApplyChangesets
required
boolean

Responses

Request samples

Content type
application/json
{
  • "logLevel": "string",
  • "proxyLogLevel": "string",
  • "address": "string",
  • "dnsLookupFamily": "V4_ONLY",
  • "httpRedirectAddr": "string",
  • "timeoutRead": "string",
  • "timeoutWrite": "string",
  • "timeoutIdle": "string",
  • "cookieName": "string",
  • "cookieSecret": "string",
  • "cookieDomain": "string",
  • "cookieHttpOnly": true,
  • "cookieExpire": "string",
  • "cookieSameSite": "string",
  • "certificateAuthorityKeyPairId": "string",
  • "setResponseHeaders": {
    },
  • "jwtClaimsHeaders": {
    },
  • "defaultUpstreamTimeout": "string",
  • "metricsAddress": "string",
  • "tracingProvider": "string",
  • "tracingSampleRate": 0,
  • "tracingDatadogAddress": "string",
  • "tracingJaegerCollectorEndpoint": "string",
  • "tracingJaegerAgentEndpoint": "string",
  • "tracingZipkinEndpoint": "string",
  • "clientCa": "string",
  • "clientCaFile": "string",
  • "clientCaKeyPairId": "string",
  • "googleCloudServerlessAuthenticationServiceAccount": "string",
  • "skipXffAppend": true,
  • "databrokerStorageConnection": "string",
  • "accessLogFields": [
    ],
  • "authorizeLogFields": [
    ],
  • "passIdentityHeaders": true,
  • "autoApplyChangesets": true
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "logLevel": "string",
  • "proxyLogLevel": "string",
  • "address": "string",
  • "dnsLookupFamily": "V4_ONLY",
  • "httpRedirectAddr": "string",
  • "timeoutRead": "string",
  • "timeoutWrite": "string",
  • "timeoutIdle": "string",
  • "cookieName": "string",
  • "cookieSecret": "string",
  • "cookieDomain": "string",
  • "cookieHttpOnly": true,
  • "cookieExpire": "string",
  • "cookieSameSite": "string",
  • "certificateAuthorityKeyPairId": "string",
  • "setResponseHeaders": {
    },
  • "jwtClaimsHeaders": {
    },
  • "defaultUpstreamTimeout": "string",
  • "metricsAddress": "string",
  • "tracingProvider": "string",
  • "tracingSampleRate": 0,
  • "tracingDatadogAddress": "string",
  • "tracingJaegerCollectorEndpoint": "string",
  • "tracingJaegerAgentEndpoint": "string",
  • "tracingZipkinEndpoint": "string",
  • "clientCa": "string",
  • "clientCaFile": "string",
  • "clientCaKeyPairId": "string",
  • "googleCloudServerlessAuthenticationServiceAccount": "string",
  • "skipXffAppend": true,
  • "databrokerStorageConnection": "string",
  • "accessLogFields": [
    ],
  • "authorizeLogFields": [
    ],
  • "passIdentityHeaders": true,
  • "autoApplyChangesets": true
}

listCustomDomains

List custom domains

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

query Parameters
clusterId
required
string

ID of cluster

Responses

Response samples

Content type
application/json
[
  • {
    }
]

addCustomDomain

Add custom domain

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

Request Body schema: application/json
required
clusterId
required
string
domainName
required
string

Responses

Request samples

Content type
application/json
{
  • "clusterId": "string",
  • "domainName": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "clusterId": "string",
  • "domainName": "string",
  • "lastError": "string",
  • "keyPairId": "string",
  • "expiresAt": "2019-08-24T14:15:22Z"
}

deleteCustomDomain

Delete custom domain

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

customDomainId
required
string

ID of custom domain

Responses

createKeyPair

Create keyPair

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

Request Body schema: application/json
required
key
string
namespaceId
required
string
certificate
string
name
string

Responses

Request samples

Content type
application/json
{
  • "key": "string",
  • "namespaceId": "string",
  • "certificate": "string",
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "certificateInfo": {
    },
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "namespaceId": "string",
  • "certificate": "string",
  • "name": "string",
  • "origin": "system",
  • "status": "pending"
}

deleteKeyPair

Delete keyPair

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

keyPairId
required
string

ID of namespace

Responses

updateKeyPair

Update keyPair. If the certificate and/or key is not set the existing certificate and/or key will be preserved.

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

keyPairId
required
string

ID of namespace

Request Body schema: application/json
required
key
string
namespaceId
required
string
certificate
string
name
string

Responses

Request samples

Content type
application/json
{
  • "key": "string",
  • "namespaceId": "string",
  • "certificate": "string",
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "certificateInfo": {
    },
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "namespaceId": "string",
  • "certificate": "string",
  • "name": "string",
  • "origin": "system",
  • "status": "pending"
}

createNamespace

Create namespace

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

Request Body schema: application/json
required
parentId
string
name
required
string

Responses

Request samples

Content type
application/json
{
  • "parentId": "string",
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "parentId": "string",
  • "name": "string",
  • "type": "cluster"
}

deleteNamespace

Delete namespace

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

namespaceId
required
string

ID of namespace

Responses

updateNamespace

Update namespace

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

namespaceId
required
string

ID of namespace

Request Body schema: application/json
required
parentId
string
name
required
string

Responses

Request samples

Content type
application/json
{
  • "parentId": "string",
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "parentId": "string",
  • "name": "string",
  • "type": "cluster"
}

createPolicy

Create policy

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

Request Body schema: application/json
required
namespaceId
required
string
name
required
string
enforced
required
boolean
required
PPLRule (object) or Array of PPLRule (objects)
description
required
string
explanation
required
string
remediation
required
string

Responses

Request samples

Content type
application/json
{
  • "namespaceId": "string",
  • "name": "string",
  • "enforced": true,
  • "ppl": {
    },
  • "description": "string",
  • "explanation": "string",
  • "remediation": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "namespaceId": "string",
  • "name": "string",
  • "enforced": true,
  • "ppl": {
    },
  • "description": "string",
  • "explanation": "string",
  • "remediation": "string",
  • "routes": [
    ],
  • "enforcedRoutes": [
    ]
}

deletePolicy

Delete policy

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

policyId
required
string

ID of policy

Responses

updatePolicy

Update policy

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

policyId
required
string

ID of policy

Request Body schema: application/json
required
namespaceId
required
string
name
required
string
enforced
required
boolean
required
PPLRule (object) or Array of PPLRule (objects)
description
required
string
explanation
required
string
remediation
required
string

Responses

Request samples

Content type
application/json
{
  • "namespaceId": "string",
  • "name": "string",
  • "enforced": true,
  • "ppl": {
    },
  • "description": "string",
  • "explanation": "string",
  • "remediation": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "namespaceId": "string",
  • "name": "string",
  • "enforced": true,
  • "ppl": {
    },
  • "description": "string",
  • "explanation": "string",
  • "remediation": "string",
  • "routes": [
    ],
  • "enforcedRoutes": [
    ]
}

createRoute

Create route

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

Request Body schema: application/json
required
namespaceId
required
string
name
required
string (entityName) [ 1 .. 128 ] characters
from
required
string <url>
to
Array of strings <url> [ items <url > ]
object (RouteDirectResponse)
prefix
string
path
string
regex
string
prefixRewrite
string
regexRewritePattern
string
regexRewriteSubstitution
string
hostRewrite
string
hostRewriteHeader
string
hostPathRegexRewritePattern
string
hostPathRegexRewriteSubstitution
string
regexPriorityOrder
integer <int64>
timeout
string (Duration) ^([0-9]+(y|w|d|h|m|s|ms))+$
idleTimeout
string (Duration) ^([0-9]+(y|w|d|h|m|s|ms))+$
allowWebsockets
required
boolean
allowSpdy
required
boolean
tlsSkipVerify
required
boolean
tlsUpstreamServerName
string
tlsDownstreamServerName
string
tlsCustomCaKeyPairId
string
tlsClientKeyPairId
string
tlsDownstreamClientCaKeyPairId
string
tlsUpstreamAllowRenegotiation
required
boolean
object (StringMap)
object (StringMap)
removeRequestHeaders
Array of strings
Array of objects (RouteRewriteHeader)
preserveHostHeader
required
boolean
passIdentityHeaders
boolean
kubernetesServiceAccountToken
string
object (RouteRedirect)
enableGoogleCloudServerlessAuthentication
required
boolean
showErrorDetails
required
boolean
RouteHttpHealthCheck (object) or RouteTcpHealthCheck (object) or RouteGrpcHealthCheck (object) (RouteHealthCheck)
loadBalancingPolicy
string (RouteLoadBalancingPolicy)
Enum: "round_robin" "least_request" "ring_hash" "random" "maglev"
policyIds
required
Array of strings

Responses

Request samples

Content type
application/json
{
  • "namespaceId": "string",
  • "name": "string",
  • "from": "string",
  • "to": [
    ],
  • "response": {
    },
  • "prefix": "string",
  • "path": "string",
  • "regex": "string",
  • "prefixRewrite": "string",
  • "regexRewritePattern": "string",
  • "regexRewriteSubstitution": "string",
  • "hostRewrite": "string",
  • "hostRewriteHeader": "string",
  • "hostPathRegexRewritePattern": "string",
  • "hostPathRegexRewriteSubstitution": "string",
  • "regexPriorityOrder": 0,
  • "timeout": "string",
  • "idleTimeout": "string",
  • "allowWebsockets": true,
  • "allowSpdy": true,
  • "tlsSkipVerify": true,
  • "tlsUpstreamServerName": "string",
  • "tlsDownstreamServerName": "string",
  • "tlsCustomCaKeyPairId": "string",
  • "tlsClientKeyPairId": "string",
  • "tlsDownstreamClientCaKeyPairId": "string",
  • "tlsUpstreamAllowRenegotiation": true,
  • "setRequestHeaders": {
    },
  • "setResponseHeaders": {
    },
  • "removeRequestHeaders": [
    ],
  • "rewriteResponseHeaders": [
    ],
  • "preserveHostHeader": true,
  • "passIdentityHeaders": true,
  • "kubernetesServiceAccountToken": "string",
  • "redirect": {
    },
  • "enableGoogleCloudServerlessAuthentication": true,
  • "showErrorDetails": true,
  • "healthCheck": {
    },
  • "loadBalancingPolicy": "round_robin",
  • "policyIds": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "namespaceId": "string",
  • "name": "string",
  • "from": "string",
  • "to": [
    ],
  • "response": {
    },
  • "prefix": "string",
  • "path": "string",
  • "regex": "string",
  • "prefixRewrite": "string",
  • "regexRewritePattern": "string",
  • "regexRewriteSubstitution": "string",
  • "hostRewrite": "string",
  • "hostRewriteHeader": "string",
  • "hostPathRegexRewritePattern": "string",
  • "hostPathRegexRewriteSubstitution": "string",
  • "regexPriorityOrder": 0,
  • "timeout": "string",
  • "idleTimeout": "string",
  • "allowWebsockets": true,
  • "allowSpdy": true,
  • "tlsSkipVerify": true,
  • "tlsUpstreamServerName": "string",
  • "tlsDownstreamServerName": "string",
  • "tlsCustomCaKeyPairId": "string",
  • "tlsClientKeyPairId": "string",
  • "tlsDownstreamClientCaKeyPairId": "string",
  • "tlsUpstreamAllowRenegotiation": true,
  • "setRequestHeaders": {
    },
  • "setResponseHeaders": {
    },
  • "removeRequestHeaders": [
    ],
  • "rewriteResponseHeaders": [
    ],
  • "preserveHostHeader": true,
  • "passIdentityHeaders": true,
  • "kubernetesServiceAccountToken": "string",
  • "redirect": {
    },
  • "enableGoogleCloudServerlessAuthentication": true,
  • "showErrorDetails": true,
  • "healthCheck": {
    },
  • "loadBalancingPolicy": "round_robin",
  • "policyIds": [
    ],
  • "enforcedPolicyIds": [
    ]
}

deleteRoute

Delete route

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

routeId
required
string

ID of route

Responses

updateRoute

Update route

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

routeId
required
string

ID of route

Request Body schema: application/json
required
namespaceId
required
string
name
required
string (entityName) [ 1 .. 128 ] characters
from
required
string <url>
to
Array of strings <url> [ items <url > ]
object (RouteDirectResponse)
prefix
string
path
string
regex
string
prefixRewrite
string
regexRewritePattern
string
regexRewriteSubstitution
string
hostRewrite
string
hostRewriteHeader
string
hostPathRegexRewritePattern
string
hostPathRegexRewriteSubstitution
string
regexPriorityOrder
integer <int64>
timeout
string (Duration) ^([0-9]+(y|w|d|h|m|s|ms))+$
idleTimeout
string (Duration) ^([0-9]+(y|w|d|h|m|s|ms))+$
allowWebsockets
required
boolean
allowSpdy
required
boolean
tlsSkipVerify
required
boolean
tlsUpstreamServerName
string
tlsDownstreamServerName
string
tlsCustomCaKeyPairId
string
tlsClientKeyPairId
string
tlsDownstreamClientCaKeyPairId
string
tlsUpstreamAllowRenegotiation
required
boolean
object (StringMap)
object (StringMap)
removeRequestHeaders
Array of strings
Array of objects (RouteRewriteHeader)
preserveHostHeader
required
boolean
passIdentityHeaders
boolean
kubernetesServiceAccountToken
string
object (RouteRedirect)
enableGoogleCloudServerlessAuthentication
required
boolean
showErrorDetails
required
boolean
RouteHttpHealthCheck (object) or RouteTcpHealthCheck (object) or RouteGrpcHealthCheck (object) (RouteHealthCheck)
loadBalancingPolicy
string (RouteLoadBalancingPolicy)
Enum: "round_robin" "least_request" "ring_hash" "random" "maglev"
policyIds
required
Array of strings

Responses

Request samples

Content type
application/json
{
  • "namespaceId": "string",
  • "name": "string",
  • "from": "string",
  • "to": [
    ],
  • "response": {
    },
  • "prefix": "string",
  • "path": "string",
  • "regex": "string",
  • "prefixRewrite": "string",
  • "regexRewritePattern": "string",
  • "regexRewriteSubstitution": "string",
  • "hostRewrite": "string",
  • "hostRewriteHeader": "string",
  • "hostPathRegexRewritePattern": "string",
  • "hostPathRegexRewriteSubstitution": "string",
  • "regexPriorityOrder": 0,
  • "timeout": "string",
  • "idleTimeout": "string",
  • "allowWebsockets": true,
  • "allowSpdy": true,
  • "tlsSkipVerify": true,
  • "tlsUpstreamServerName": "string",
  • "tlsDownstreamServerName": "string",
  • "tlsCustomCaKeyPairId": "string",
  • "tlsClientKeyPairId": "string",
  • "tlsDownstreamClientCaKeyPairId": "string",
  • "tlsUpstreamAllowRenegotiation": true,
  • "setRequestHeaders": {
    },
  • "setResponseHeaders": {
    },
  • "removeRequestHeaders": [
    ],
  • "rewriteResponseHeaders": [
    ],
  • "preserveHostHeader": true,
  • "passIdentityHeaders": true,
  • "kubernetesServiceAccountToken": "string",
  • "redirect": {
    },
  • "enableGoogleCloudServerlessAuthentication": true,
  • "showErrorDetails": true,
  • "healthCheck": {
    },
  • "loadBalancingPolicy": "round_robin",
  • "policyIds": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "namespaceId": "string",
  • "name": "string",
  • "from": "string",
  • "to": [
    ],
  • "response": {
    },
  • "prefix": "string",
  • "path": "string",
  • "regex": "string",
  • "prefixRewrite": "string",
  • "regexRewritePattern": "string",
  • "regexRewriteSubstitution": "string",
  • "hostRewrite": "string",
  • "hostRewriteHeader": "string",
  • "hostPathRegexRewritePattern": "string",
  • "hostPathRegexRewriteSubstitution": "string",
  • "regexPriorityOrder": 0,
  • "timeout": "string",
  • "idleTimeout": "string",
  • "allowWebsockets": true,
  • "allowSpdy": true,
  • "tlsSkipVerify": true,
  • "tlsUpstreamServerName": "string",
  • "tlsDownstreamServerName": "string",
  • "tlsCustomCaKeyPairId": "string",
  • "tlsClientKeyPairId": "string",
  • "tlsDownstreamClientCaKeyPairId": "string",
  • "tlsUpstreamAllowRenegotiation": true,
  • "setRequestHeaders": {
    },
  • "setResponseHeaders": {
    },
  • "removeRequestHeaders": [
    ],
  • "rewriteResponseHeaders": [
    ],
  • "preserveHostHeader": true,
  • "passIdentityHeaders": true,
  • "kubernetesServiceAccountToken": "string",
  • "redirect": {
    },
  • "enableGoogleCloudServerlessAuthentication": true,
  • "showErrorDetails": true,
  • "healthCheck": {
    },
  • "loadBalancingPolicy": "round_robin",
  • "policyIds": [
    ],
  • "enforcedPolicyIds": [
    ]
}

route

The route service is where you can build and manage routes defined in a namespace within your organization.

updatePolicy

Update policy

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

policyId
required
string

ID of policy

Request Body schema: application/json
required
namespaceId
required
string
name
required
string
enforced
required
boolean
required
PPLRule (object) or Array of PPLRule (objects)
description
required
string
explanation
required
string
remediation
required
string

Responses

Request samples

Content type
application/json
{
  • "namespaceId": "string",
  • "name": "string",
  • "enforced": true,
  • "ppl": {
    },
  • "description": "string",
  • "explanation": "string",
  • "remediation": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "namespaceId": "string",
  • "name": "string",
  • "enforced": true,
  • "ppl": {
    },
  • "description": "string",
  • "explanation": "string",
  • "remediation": "string",
  • "routes": [
    ],
  • "enforcedRoutes": [
    ]
}

listRoutes

List routes

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

query Parameters
namespaceId
required
string

ID of namespace

includeDescendants
boolean

include resources from descendant namespaces

Responses

Response samples

Content type
application/json
[
  • {
    }
]

createRoute

Create route

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

Request Body schema: application/json
required
namespaceId
required
string
name
required
string (entityName) [ 1 .. 128 ] characters
from
required
string <url>
to
Array of strings <url> [ items <url > ]
object (RouteDirectResponse)
prefix
string
path
string
regex
string
prefixRewrite
string
regexRewritePattern
string
regexRewriteSubstitution
string
hostRewrite
string
hostRewriteHeader
string
hostPathRegexRewritePattern
string
hostPathRegexRewriteSubstitution
string
regexPriorityOrder
integer <int64>
timeout
string (Duration) ^([0-9]+(y|w|d|h|m|s|ms))+$
idleTimeout
string (Duration) ^([0-9]+(y|w|d|h|m|s|ms))+$
allowWebsockets
required
boolean
allowSpdy
required
boolean
tlsSkipVerify
required
boolean
tlsUpstreamServerName
string
tlsDownstreamServerName
string
tlsCustomCaKeyPairId
string
tlsClientKeyPairId
string
tlsDownstreamClientCaKeyPairId
string
tlsUpstreamAllowRenegotiation
required
boolean
object (StringMap)
object (StringMap)
removeRequestHeaders
Array of strings
Array of objects (RouteRewriteHeader)
preserveHostHeader
required
boolean
passIdentityHeaders
boolean
kubernetesServiceAccountToken
string
object (RouteRedirect)
enableGoogleCloudServerlessAuthentication
required
boolean
showErrorDetails
required
boolean
RouteHttpHealthCheck (object) or RouteTcpHealthCheck (object) or RouteGrpcHealthCheck (object) (RouteHealthCheck)
loadBalancingPolicy
string (RouteLoadBalancingPolicy)
Enum: "round_robin" "least_request" "ring_hash" "random" "maglev"
policyIds
required
Array of strings

Responses

Request samples

Content type
application/json
{
  • "namespaceId": "string",
  • "name": "string",
  • "from": "string",
  • "to": [
    ],
  • "response": {
    },
  • "prefix": "string",
  • "path": "string",
  • "regex": "string",
  • "prefixRewrite": "string",
  • "regexRewritePattern": "string",
  • "regexRewriteSubstitution": "string",
  • "hostRewrite": "string",
  • "hostRewriteHeader": "string",
  • "hostPathRegexRewritePattern": "string",
  • "hostPathRegexRewriteSubstitution": "string",
  • "regexPriorityOrder": 0,
  • "timeout": "string",
  • "idleTimeout": "string",
  • "allowWebsockets": true,
  • "allowSpdy": true,
  • "tlsSkipVerify": true,
  • "tlsUpstreamServerName": "string",
  • "tlsDownstreamServerName": "string",
  • "tlsCustomCaKeyPairId": "string",
  • "tlsClientKeyPairId": "string",
  • "tlsDownstreamClientCaKeyPairId": "string",
  • "tlsUpstreamAllowRenegotiation": true,
  • "setRequestHeaders": {
    },
  • "setResponseHeaders": {
    },
  • "removeRequestHeaders": [
    ],
  • "rewriteResponseHeaders": [
    ],
  • "preserveHostHeader": true,
  • "passIdentityHeaders": true,
  • "kubernetesServiceAccountToken": "string",
  • "redirect": {
    },
  • "enableGoogleCloudServerlessAuthentication": true,
  • "showErrorDetails": true,
  • "healthCheck": {
    },
  • "loadBalancingPolicy": "round_robin",
  • "policyIds": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "namespaceId": "string",
  • "name": "string",
  • "from": "string",
  • "to": [
    ],
  • "response": {
    },
  • "prefix": "string",
  • "path": "string",
  • "regex": "string",
  • "prefixRewrite": "string",
  • "regexRewritePattern": "string",
  • "regexRewriteSubstitution": "string",
  • "hostRewrite": "string",
  • "hostRewriteHeader": "string",
  • "hostPathRegexRewritePattern": "string",
  • "hostPathRegexRewriteSubstitution": "string",
  • "regexPriorityOrder": 0,
  • "timeout": "string",
  • "idleTimeout": "string",
  • "allowWebsockets": true,
  • "allowSpdy": true,
  • "tlsSkipVerify": true,
  • "tlsUpstreamServerName": "string",
  • "tlsDownstreamServerName": "string",
  • "tlsCustomCaKeyPairId": "string",
  • "tlsClientKeyPairId": "string",
  • "tlsDownstreamClientCaKeyPairId": "string",
  • "tlsUpstreamAllowRenegotiation": true,
  • "setRequestHeaders": {
    },
  • "setResponseHeaders": {
    },
  • "removeRequestHeaders": [
    ],
  • "rewriteResponseHeaders": [
    ],
  • "preserveHostHeader": true,
  • "passIdentityHeaders": true,
  • "kubernetesServiceAccountToken": "string",
  • "redirect": {
    },
  • "enableGoogleCloudServerlessAuthentication": true,
  • "showErrorDetails": true,
  • "healthCheck": {
    },
  • "loadBalancingPolicy": "round_robin",
  • "policyIds": [
    ],
  • "enforcedPolicyIds": [
    ]
}

deleteRoute

Delete route

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

routeId
required
string

ID of route

Responses

getRoute

Get route

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

routeId
required
string

ID of route

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "namespaceId": "string",
  • "name": "string",
  • "from": "string",
  • "to": [
    ],
  • "response": {
    },
  • "prefix": "string",
  • "path": "string",
  • "regex": "string",
  • "prefixRewrite": "string",
  • "regexRewritePattern": "string",
  • "regexRewriteSubstitution": "string",
  • "hostRewrite": "string",
  • "hostRewriteHeader": "string",
  • "hostPathRegexRewritePattern": "string",
  • "hostPathRegexRewriteSubstitution": "string",
  • "regexPriorityOrder": 0,
  • "timeout": "string",
  • "idleTimeout": "string",
  • "allowWebsockets": true,
  • "allowSpdy": true,
  • "tlsSkipVerify": true,
  • "tlsUpstreamServerName": "string",
  • "tlsDownstreamServerName": "string",
  • "tlsCustomCaKeyPairId": "string",
  • "tlsClientKeyPairId": "string",
  • "tlsDownstreamClientCaKeyPairId": "string",
  • "tlsUpstreamAllowRenegotiation": true,
  • "setRequestHeaders": {
    },
  • "setResponseHeaders": {
    },
  • "removeRequestHeaders": [
    ],
  • "rewriteResponseHeaders": [
    ],
  • "preserveHostHeader": true,
  • "passIdentityHeaders": true,
  • "kubernetesServiceAccountToken": "string",
  • "redirect": {
    },
  • "enableGoogleCloudServerlessAuthentication": true,
  • "showErrorDetails": true,
  • "healthCheck": {
    },
  • "loadBalancingPolicy": "round_robin",
  • "policyIds": [
    ],
  • "enforcedPolicyIds": [
    ]
}

updateRoute

Update route

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

routeId
required
string

ID of route

Request Body schema: application/json
required
namespaceId
required
string
name
required
string (entityName) [ 1 .. 128 ] characters
from
required
string <url>
to
Array of strings <url> [ items <url > ]
object (RouteDirectResponse)
prefix
string
path
string
regex
string
prefixRewrite
string
regexRewritePattern
string
regexRewriteSubstitution
string
hostRewrite
string
hostRewriteHeader
string
hostPathRegexRewritePattern
string
hostPathRegexRewriteSubstitution
string
regexPriorityOrder
integer <int64>
timeout
string (Duration) ^([0-9]+(y|w|d|h|m|s|ms))+$
idleTimeout
string (Duration) ^([0-9]+(y|w|d|h|m|s|ms))+$
allowWebsockets
required
boolean
allowSpdy
required
boolean
tlsSkipVerify
required
boolean
tlsUpstreamServerName
string
tlsDownstreamServerName
string
tlsCustomCaKeyPairId
string
tlsClientKeyPairId
string
tlsDownstreamClientCaKeyPairId
string
tlsUpstreamAllowRenegotiation
required
boolean
object (StringMap)
object (StringMap)
removeRequestHeaders
Array of strings
Array of objects (RouteRewriteHeader)
preserveHostHeader
required
boolean
passIdentityHeaders
boolean
kubernetesServiceAccountToken
string
object (RouteRedirect)
enableGoogleCloudServerlessAuthentication
required
boolean
showErrorDetails
required
boolean
RouteHttpHealthCheck (object) or RouteTcpHealthCheck (object) or RouteGrpcHealthCheck (object) (RouteHealthCheck)
loadBalancingPolicy
string (RouteLoadBalancingPolicy)
Enum: "round_robin" "least_request" "ring_hash" "random" "maglev"
policyIds
required
Array of strings

Responses

Request samples

Content type
application/json
{
  • "namespaceId": "string",
  • "name": "string",
  • "from": "string",
  • "to": [
    ],
  • "response": {
    },
  • "prefix": "string",
  • "path": "string",
  • "regex": "string",
  • "prefixRewrite": "string",
  • "regexRewritePattern": "string",
  • "regexRewriteSubstitution": "string",
  • "hostRewrite": "string",
  • "hostRewriteHeader": "string",
  • "hostPathRegexRewritePattern": "string",
  • "hostPathRegexRewriteSubstitution": "string",
  • "regexPriorityOrder": 0,
  • "timeout": "string",
  • "idleTimeout": "string",
  • "allowWebsockets": true,
  • "allowSpdy": true,
  • "tlsSkipVerify": true,
  • "tlsUpstreamServerName": "string",
  • "tlsDownstreamServerName": "string",
  • "tlsCustomCaKeyPairId": "string",
  • "tlsClientKeyPairId": "string",
  • "tlsDownstreamClientCaKeyPairId": "string",
  • "tlsUpstreamAllowRenegotiation": true,
  • "setRequestHeaders": {
    },
  • "setResponseHeaders": {
    },
  • "removeRequestHeaders": [
    ],
  • "rewriteResponseHeaders": [
    ],
  • "preserveHostHeader": true,
  • "passIdentityHeaders": true,
  • "kubernetesServiceAccountToken": "string",
  • "redirect": {
    },
  • "enableGoogleCloudServerlessAuthentication": true,
  • "showErrorDetails": true,
  • "healthCheck": {
    },
  • "loadBalancingPolicy": "round_robin",
  • "policyIds": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "namespaceId": "string",
  • "name": "string",
  • "from": "string",
  • "to": [
    ],
  • "response": {
    },
  • "prefix": "string",
  • "path": "string",
  • "regex": "string",
  • "prefixRewrite": "string",
  • "regexRewritePattern": "string",
  • "regexRewriteSubstitution": "string",
  • "hostRewrite": "string",
  • "hostRewriteHeader": "string",
  • "hostPathRegexRewritePattern": "string",
  • "hostPathRegexRewriteSubstitution": "string",
  • "regexPriorityOrder": 0,
  • "timeout": "string",
  • "idleTimeout": "string",
  • "allowWebsockets": true,
  • "allowSpdy": true,
  • "tlsSkipVerify": true,
  • "tlsUpstreamServerName": "string",
  • "tlsDownstreamServerName": "string",
  • "tlsCustomCaKeyPairId": "string",
  • "tlsClientKeyPairId": "string",
  • "tlsDownstreamClientCaKeyPairId": "string",
  • "tlsUpstreamAllowRenegotiation": true,
  • "setRequestHeaders": {
    },
  • "setResponseHeaders": {
    },
  • "removeRequestHeaders": [
    ],
  • "rewriteResponseHeaders": [
    ],
  • "preserveHostHeader": true,
  • "passIdentityHeaders": true,
  • "kubernetesServiceAccountToken": "string",
  • "redirect": {
    },
  • "enableGoogleCloudServerlessAuthentication": true,
  • "showErrorDetails": true,
  • "healthCheck": {
    },
  • "loadBalancingPolicy": "round_robin",
  • "policyIds": [
    ],
  • "enforcedPolicyIds": [
    ]
}

getRouteCertificates

Get certificates that match the given route

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

routeId
required
string

ID of route

Responses

Response samples

Content type
application/json
[
  • {
    }
]

token

The token service is where you can exchange a valid API refresh token for a new ID token.

getIdToken

Exchange API refresh token for ID token

Request Body schema: application/json
required
refreshToken
required
string

API refresh token

Responses

Request samples

Content type
application/json
{
  • "refreshToken": "string"
}

Response samples

Content type
application/json
{
  • "idToken": "string",
  • "expiresInSeconds": "string"
}

keyPair

The keypair service is where you can manage global- and route-level certificates for your organization.

listKeyPairs

List key pairs

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

query Parameters
namespaceId
required
string

ID of namespace

includeDescendants
boolean

include resources from descendant namespaces

Responses

Response samples

Content type
application/json
[
  • {
    }
]

createKeyPair

Create keyPair

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

Request Body schema: application/json
required
key
string
namespaceId
required
string
certificate
string
name
string

Responses

Request samples

Content type
application/json
{
  • "key": "string",
  • "namespaceId": "string",
  • "certificate": "string",
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "certificateInfo": {
    },
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "namespaceId": "string",
  • "certificate": "string",
  • "name": "string",
  • "origin": "system",
  • "status": "pending"
}

deleteKeyPair

Delete keyPair

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

keyPairId
required
string

ID of namespace

Responses

getKeyPair

Get keyPair

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

keyPairId
required
string

ID of namespace

Responses

Response samples

Content type
application/json
{
  • "certificateInfo": {
    },
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "namespaceId": "string",
  • "certificate": "string",
  • "name": "string",
  • "origin": "system",
  • "status": "pending"
}

updateKeyPair

Update keyPair. If the certificate and/or key is not set the existing certificate and/or key will be preserved.

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

keyPairId
required
string

ID of namespace

Request Body schema: application/json
required
key
string
namespaceId
required
string
certificate
string
name
string

Responses

Request samples

Content type
application/json
{
  • "key": "string",
  • "namespaceId": "string",
  • "certificate": "string",
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "certificateInfo": {
    },
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "namespaceId": "string",
  • "certificate": "string",
  • "name": "string",
  • "origin": "system",
  • "status": "pending"
}

getRouteCertificates

Get certificates that match the given route

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

routeId
required
string

ID of route

Responses

Response samples

Content type
application/json
[
  • {
    }
]

namespace

The namespace service is where you can manage namespaces within an organization.

listClusters

List clusters

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

Responses

Response samples

Content type
application/json
[
  • {
    }
]

createCluster

Create cluster

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

Request Body schema: application/json
required
name
required
string
domain
required
string
manualOverrideIpAddress
string <ip> (IPAddress)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "domain": "string",
  • "manualOverrideIpAddress": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "name": "string",
  • "domain": "string",
  • "manualOverrideIpAddress": "string",
  • "fqdn": "string",
  • "autoDetectIpAddress": "string",
  • "namespaceId": "string",
  • "hasFailingHealthChecks": true,
  • "refreshToken": "string"
}

deleteCluster

Delete cluster

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

clusterId
required
string

ID of cluster

Responses

getCluster

Get cluster

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

clusterId
required
string

ID of cluster

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "name": "string",
  • "domain": "string",
  • "manualOverrideIpAddress": "string",
  • "fqdn": "string",
  • "autoDetectIpAddress": "string",
  • "namespaceId": "string",
  • "hasFailingHealthChecks": true
}

updateCluster

Update cluster

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

clusterId
required
string

ID of cluster

Request Body schema: application/json
required
name
required
string
domain
required
string
manualOverrideIpAddress
string <ip> (IPAddress)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "domain": "string",
  • "manualOverrideIpAddress": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "name": "string",
  • "domain": "string",
  • "manualOverrideIpAddress": "string",
  • "fqdn": "string",
  • "autoDetectIpAddress": "string",
  • "namespaceId": "string",
  • "hasFailingHealthChecks": true
}

listNamespaces

List namespaces

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

Responses

Response samples

Content type
application/json
[
  • {
    }
]

createNamespace

Create namespace

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

Request Body schema: application/json
required
parentId
string
name
required
string

Responses

Request samples

Content type
application/json
{
  • "parentId": "string",
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "parentId": "string",
  • "name": "string",
  • "type": "cluster"
}

deleteNamespace

Delete namespace

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

namespaceId
required
string

ID of namespace

Responses

getNamespace

Get namespace

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

namespaceId
required
string

ID of namespace

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "parentId": "string",
  • "name": "string",
  • "type": "cluster"
}

updateNamespace

Update namespace

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

namespaceId
required
string

ID of namespace

Request Body schema: application/json
required
parentId
string
name
required
string

Responses

Request samples

Content type
application/json
{
  • "parentId": "string",
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "parentId": "string",
  • "name": "string",
  • "type": "cluster"
}

changeset

The changeset service is where you can list, get, and apply changesets within a cluster or namespace.

listChangesets

List changesets

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

query Parameters
clusterId
string

ID of cluster

status
string (ChangesetStatus)
Enum: "pending" "applying" "applied" "failed" "current" "rejected"

status of changeset

offset
integer

offset of the resources

limit
integer

limit number of resources returned

Responses

Response samples

Content type
application/json
[
  • {
    }
]

compareChangesets

Compare changesets

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

query Parameters
clusterId
required
string

ID of cluster

firstId
string

id of the first changeset to compare

secondId
string

id of the second changeset to compare

Responses

Response samples

Content type
application/json
{
  • "startChangeset": {
    },
  • "endChangeset": {
    },
  • "entities": [
    ]
}

getChangeset

Get changeset

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

changesetId
required
string

ID of changeset

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "failureMessage": "string",
  • "namespaceId": "string",
  • "status": "pending"
}

applyChangeset

Apply changeset

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

changesetId
required
string

ID of changeset

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "failureMessage": "string",
  • "namespaceId": "string",
  • "status": "pending"
}

createServiceAccount

Create service account

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

clusterId
required
string

ID of cluster

Request Body schema: application/json
required
expiresAt
string <date-time>
description
required
string
userId
required
string

Responses

Request samples

Content type
application/json
{
  • "expiresAt": "2019-08-24T14:15:22Z",
  • "description": "string",
  • "userId": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "expiresAt": "2019-08-24T14:15:22Z",
  • "description": "string",
  • "userId": "string",
  • "token": "string"
}

deleteServiceAccount

Delete service account

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

clusterId
required
string

ID of cluster

serviceAccountId
required
string

ID of service account

Responses

updateServiceAccount

Update service account

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

clusterId
required
string

ID of cluster

serviceAccountId
required
string

ID of service account

Request Body schema: application/json
required
description
required
string

Responses

Request samples

Content type
application/json
{
  • "description": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "expiresAt": "2019-08-24T14:15:22Z",
  • "description": "string",
  • "userId": "string"
}

updateSettings

Update settings

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

clusterId
required
string

ID of cluster

Request Body schema: application/json
required
logLevel
required
string

Sets the global logging level for Pomerium. Only logs of the desired level and above will be logged.

proxyLogLevel
string

Sets the logging level for the Pomerium Proxy service access logs. Only logs of the desired level and above will be logged.

address
required
string <hostport>

Specifies the Host and Port to serve HTTP requests from. If empty, :443 is used.

dnsLookupFamily
required
string (DNSLookupFamily)
Enum: "V4_ONLY" "V6_ONLY" "V4_PREFERRED" "AUTO" "ALL"

Sets the DNS IP address resolution policy.

httpRedirectAddr
string <hostport>

Specifies the Host and Port to redirect HTTP to HTTPS traffic on. If unset, no redirect server is started.

timeoutRead
required
string (Duration) ^([0-9]+(y|w|d|h|m|s|ms))+$

Sets the amount of time for the entire request stream to be received from the client.

timeoutWrite
required
string (Duration) ^([0-9]+(y|w|d|h|m|s|ms))+$

Sets the max stream duration is the maximum time that a stream’s lifetime will span.

timeoutIdle
required
string (Duration) ^([0-9]+(y|w|d|h|m|s|ms))+$

Sets the idle timeout is the time at which a downstream or upstream connection will be terminated if there are no active streams.

cookieName
required
string

Sets the name of the session cookie sent to clients.

cookieSecret
string

Sets the secret used to encrypt and sign session cookies. If you don't provide a cookie secret, Pomerium will generate one for you.

cookieDomain
string

Sets the scope of session cookies issued by Pomerium. If you specify the domain explicitly, then subdomains would also be included.

cookieHttpOnly
required
boolean

If true, this setting forbids JavaScript from accessing the cookie.

cookieExpire
required
string (Duration) ^([0-9]+(y|w|d|h|m|s|ms))+$

Sets the lifetime of session cookies. After this interval, users must reauthenticate.

cookieSameSite
string

Sets the SameSite option for cookies, which determines whether or not a cookie is sent with cross-site requests.

certificateAuthorityKeyPairId
string

ID of CA's public and private key pair.

object (StringMap)

Specifies a mapping of HTTP Headers added globally to all managed routes and Pomerium's Authenticate Service.

object (StringMap)

Pass specific user session data to upstream applications as unsigned HTTP request headers.

defaultUpstreamTimeout
required
string (Duration) ^([0-9]+(y|w|d|h|m|s|ms))+$

The default timeout applied to a proxied route when no timeout key is specified by the policy.

metricsAddress
string

Exposes a Prometheus endpoint on the specified port.

tracingProvider
string

The name of the tracing provider (for example, Jaeger or Zipkin).

tracingSampleRate
required
number

Percentage of requests to sample in decimal notation. The default is 0.0001, or .01%.

tracingDatadogAddress
string <hostport>

The host:port address of the Datadog Trace Agent. Defaults to localhost:8126.

tracingJaegerCollectorEndpoint
string

The URL to the Jaeger HTTP Thrift collector.

tracingJaegerAgentEndpoint
string <hostport>

The address of the jaeger-agent where you send Spans to.

tracingZipkinEndpoint
string

The URL to the Zipkin HTTP endpoint.

clientCa
string

The X.509 public-key used to validate a client certificate.

clientCaFile
string

Path to client CA's PEM certificate bundle.

clientCaKeyPairId
string

ID of the client CA's public and private key pair.

googleCloudServerlessAuthenticationServiceAccount
string

Specifies the Service Account credentials to support GCP's Authorization Header format.

skipXffAppend
required
boolean

If true, the incoming X-Forwarded-For HTTP header would not be modified.

databrokerStorageConnection
string

The databroker storage connection string.

accessLogFields
Array of strings

Controls which fields are included in the access logs.

authorizeLogFields
Array of strings

Controls which fields are included in the authorize logs.

passIdentityHeaders
required
boolean
autoApplyChangesets
required
boolean

Responses

Request samples

Content type
application/json
{
  • "logLevel": "string",
  • "proxyLogLevel": "string",
  • "address": "string",
  • "dnsLookupFamily": "V4_ONLY",
  • "httpRedirectAddr": "string",
  • "timeoutRead": "string",
  • "timeoutWrite": "string",
  • "timeoutIdle": "string",
  • "cookieName": "string",
  • "cookieSecret": "string",
  • "cookieDomain": "string",
  • "cookieHttpOnly": true,
  • "cookieExpire": "string",
  • "cookieSameSite": "string",
  • "certificateAuthorityKeyPairId": "string",
  • "setResponseHeaders": {
    },
  • "jwtClaimsHeaders": {
    },
  • "defaultUpstreamTimeout": "string",
  • "metricsAddress": "string",
  • "tracingProvider": "string",
  • "tracingSampleRate": 0,
  • "tracingDatadogAddress": "string",
  • "tracingJaegerCollectorEndpoint": "string",
  • "tracingJaegerAgentEndpoint": "string",
  • "tracingZipkinEndpoint": "string",
  • "clientCa": "string",
  • "clientCaFile": "string",
  • "clientCaKeyPairId": "string",
  • "googleCloudServerlessAuthenticationServiceAccount": "string",
  • "skipXffAppend": true,
  • "databrokerStorageConnection": "string",
  • "accessLogFields": [
    ],
  • "authorizeLogFields": [
    ],
  • "passIdentityHeaders": true,
  • "autoApplyChangesets": true
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "logLevel": "string",
  • "proxyLogLevel": "string",
  • "address": "string",
  • "dnsLookupFamily": "V4_ONLY",
  • "httpRedirectAddr": "string",
  • "timeoutRead": "string",
  • "timeoutWrite": "string",
  • "timeoutIdle": "string",
  • "cookieName": "string",
  • "cookieSecret": "string",
  • "cookieDomain": "string",
  • "cookieHttpOnly": true,
  • "cookieExpire": "string",
  • "cookieSameSite": "string",
  • "certificateAuthorityKeyPairId": "string",
  • "setResponseHeaders": {
    },
  • "jwtClaimsHeaders": {
    },
  • "defaultUpstreamTimeout": "string",
  • "metricsAddress": "string",
  • "tracingProvider": "string",
  • "tracingSampleRate": 0,
  • "tracingDatadogAddress": "string",
  • "tracingJaegerCollectorEndpoint": "string",
  • "tracingJaegerAgentEndpoint": "string",
  • "tracingZipkinEndpoint": "string",
  • "clientCa": "string",
  • "clientCaFile": "string",
  • "clientCaKeyPairId": "string",
  • "googleCloudServerlessAuthenticationServiceAccount": "string",
  • "skipXffAppend": true,
  • "databrokerStorageConnection": "string",
  • "accessLogFields": [
    ],
  • "authorizeLogFields": [
    ],
  • "passIdentityHeaders": true,
  • "autoApplyChangesets": true
}

listCustomDomains

List custom domains

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

query Parameters
clusterId
required
string

ID of cluster

Responses

Response samples

Content type
application/json
[
  • {
    }
]

addCustomDomain

Add custom domain

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

Request Body schema: application/json
required
clusterId
required
string
domainName
required
string

Responses

Request samples

Content type
application/json
{
  • "clusterId": "string",
  • "domainName": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "clusterId": "string",
  • "domainName": "string",
  • "lastError": "string",
  • "keyPairId": "string",
  • "expiresAt": "2019-08-24T14:15:22Z"
}

deleteCustomDomain

Delete custom domain

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

customDomainId
required
string

ID of custom domain

Responses

createKeyPair

Create keyPair

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

Request Body schema: application/json
required
key
string
namespaceId
required
string
certificate
string
name
string

Responses

Request samples

Content type
application/json
{
  • "key": "string",
  • "namespaceId": "string",
  • "certificate": "string",
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "certificateInfo": {
    },
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "namespaceId": "string",
  • "certificate": "string",
  • "name": "string",
  • "origin": "system",
  • "status": "pending"
}

deleteKeyPair

Delete keyPair

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

keyPairId
required
string

ID of namespace

Responses

updateKeyPair

Update keyPair. If the certificate and/or key is not set the existing certificate and/or key will be preserved.

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

keyPairId
required
string

ID of namespace

Request Body schema: application/json
required
key
string
namespaceId
required
string
certificate
string
name
string

Responses

Request samples

Content type
application/json
{
  • "key": "string",
  • "namespaceId": "string",
  • "certificate": "string",
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "certificateInfo": {
    },
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "namespaceId": "string",
  • "certificate": "string",
  • "name": "string",
  • "origin": "system",
  • "status": "pending"
}

createNamespace

Create namespace

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

Request Body schema: application/json
required
parentId
string
name
required
string

Responses

Request samples

Content type
application/json
{
  • "parentId": "string",
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "parentId": "string",
  • "name": "string",
  • "type": "cluster"
}

deleteNamespace

Delete namespace

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

namespaceId
required
string

ID of namespace

Responses

updateNamespace

Update namespace

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

namespaceId
required
string

ID of namespace

Request Body schema: application/json
required
parentId
string
name
required
string

Responses

Request samples

Content type
application/json
{
  • "parentId": "string",
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "parentId": "string",
  • "name": "string",
  • "type": "cluster"
}

createPolicy

Create policy

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

Request Body schema: application/json
required
namespaceId
required
string
name
required
string
enforced
required
boolean
required
PPLRule (object) or Array of PPLRule (objects)
description
required
string
explanation
required
string
remediation
required
string

Responses

Request samples

Content type
application/json
{
  • "namespaceId": "string",
  • "name": "string",
  • "enforced": true,
  • "ppl": {
    },
  • "description": "string",
  • "explanation": "string",
  • "remediation": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "namespaceId": "string",
  • "name": "string",
  • "enforced": true,
  • "ppl": {
    },
  • "description": "string",
  • "explanation": "string",
  • "remediation": "string",
  • "routes": [
    ],
  • "enforcedRoutes": [
    ]
}

deletePolicy

Delete policy

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

policyId
required
string

ID of policy

Responses

updatePolicy

Update policy

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

policyId
required
string

ID of policy

Request Body schema: application/json
required
namespaceId
required
string
name
required
string
enforced
required
boolean
required
PPLRule (object) or Array of PPLRule (objects)
description
required
string
explanation
required
string
remediation
required
string

Responses

Request samples

Content type
application/json
{
  • "namespaceId": "string",
  • "name": "string",
  • "enforced": true,
  • "ppl": {
    },
  • "description": "string",
  • "explanation": "string",
  • "remediation": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "namespaceId": "string",
  • "name": "string",
  • "enforced": true,
  • "ppl": {
    },
  • "description": "string",
  • "explanation": "string",
  • "remediation": "string",
  • "routes": [
    ],
  • "enforcedRoutes": [
    ]
}

createRoute

Create route

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

Request Body schema: application/json
required
namespaceId
required
string
name
required
string (entityName) [ 1 .. 128 ] characters
from
required
string <url>
to
Array of strings <url> [ items <url > ]
object (RouteDirectResponse)
prefix
string
path
string
regex
string
prefixRewrite
string
regexRewritePattern
string
regexRewriteSubstitution
string
hostRewrite
string
hostRewriteHeader
string
hostPathRegexRewritePattern
string
hostPathRegexRewriteSubstitution
string
regexPriorityOrder
integer <int64>
timeout
string (Duration) ^([0-9]+(y|w|d|h|m|s|ms))+$
idleTimeout
string (Duration) ^([0-9]+(y|w|d|h|m|s|ms))+$
allowWebsockets
required
boolean
allowSpdy
required
boolean
tlsSkipVerify
required
boolean
tlsUpstreamServerName
string
tlsDownstreamServerName
string
tlsCustomCaKeyPairId
string
tlsClientKeyPairId
string
tlsDownstreamClientCaKeyPairId
string
tlsUpstreamAllowRenegotiation
required
boolean
object (StringMap)
object (StringMap)
removeRequestHeaders
Array of strings
Array of objects (RouteRewriteHeader)
preserveHostHeader
required
boolean
passIdentityHeaders
boolean
kubernetesServiceAccountToken
string
object (RouteRedirect)
enableGoogleCloudServerlessAuthentication
required
boolean
showErrorDetails
required
boolean
RouteHttpHealthCheck (object) or RouteTcpHealthCheck (object) or RouteGrpcHealthCheck (object) (RouteHealthCheck)
loadBalancingPolicy
string (RouteLoadBalancingPolicy)
Enum: "round_robin" "least_request" "ring_hash" "random" "maglev"
policyIds
required
Array of strings

Responses

Request samples

Content type
application/json
{
  • "namespaceId": "string",
  • "name": "string",
  • "from": "string",
  • "to": [
    ],
  • "response": {
    },
  • "prefix": "string",
  • "path": "string",
  • "regex": "string",
  • "prefixRewrite": "string",
  • "regexRewritePattern": "string",
  • "regexRewriteSubstitution": "string",
  • "hostRewrite": "string",
  • "hostRewriteHeader": "string",
  • "hostPathRegexRewritePattern": "string",
  • "hostPathRegexRewriteSubstitution": "string",
  • "regexPriorityOrder": 0,
  • "timeout": "string",
  • "idleTimeout": "string",
  • "allowWebsockets": true,
  • "allowSpdy": true,
  • "tlsSkipVerify": true,
  • "tlsUpstreamServerName": "string",
  • "tlsDownstreamServerName": "string",
  • "tlsCustomCaKeyPairId": "string",
  • "tlsClientKeyPairId": "string",
  • "tlsDownstreamClientCaKeyPairId": "string",
  • "tlsUpstreamAllowRenegotiation": true,
  • "setRequestHeaders": {
    },
  • "setResponseHeaders": {
    },
  • "removeRequestHeaders": [
    ],
  • "rewriteResponseHeaders": [
    ],
  • "preserveHostHeader": true,
  • "passIdentityHeaders": true,
  • "kubernetesServiceAccountToken": "string",
  • "redirect": {
    },
  • "enableGoogleCloudServerlessAuthentication": true,
  • "showErrorDetails": true,
  • "healthCheck": {
    },
  • "loadBalancingPolicy": "round_robin",
  • "policyIds": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "namespaceId": "string",
  • "name": "string",
  • "from": "string",
  • "to": [
    ],
  • "response": {
    },
  • "prefix": "string",
  • "path": "string",
  • "regex": "string",
  • "prefixRewrite": "string",
  • "regexRewritePattern": "string",
  • "regexRewriteSubstitution": "string",
  • "hostRewrite": "string",
  • "hostRewriteHeader": "string",
  • "hostPathRegexRewritePattern": "string",
  • "hostPathRegexRewriteSubstitution": "string",
  • "regexPriorityOrder": 0,
  • "timeout": "string",
  • "idleTimeout": "string",
  • "allowWebsockets": true,
  • "allowSpdy": true,
  • "tlsSkipVerify": true,
  • "tlsUpstreamServerName": "string",
  • "tlsDownstreamServerName": "string",
  • "tlsCustomCaKeyPairId": "string",
  • "tlsClientKeyPairId": "string",
  • "tlsDownstreamClientCaKeyPairId": "string",
  • "tlsUpstreamAllowRenegotiation": true,
  • "setRequestHeaders": {
    },
  • "setResponseHeaders": {
    },
  • "removeRequestHeaders": [
    ],
  • "rewriteResponseHeaders": [
    ],
  • "preserveHostHeader": true,
  • "passIdentityHeaders": true,
  • "kubernetesServiceAccountToken": "string",
  • "redirect": {
    },
  • "enableGoogleCloudServerlessAuthentication": true,
  • "showErrorDetails": true,
  • "healthCheck": {
    },
  • "loadBalancingPolicy": "round_robin",
  • "policyIds": [
    ],
  • "enforcedPolicyIds": [
    ]
}

deleteRoute

Delete route

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

routeId
required
string

ID of route

Responses

updateRoute

Update route

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

routeId
required
string

ID of route

Request Body schema: application/json
required
namespaceId
required
string
name
required
string (entityName) [ 1 .. 128 ] characters
from
required
string <url>
to
Array of strings <url> [ items <url > ]
object (RouteDirectResponse)
prefix
string
path
string
regex
string
prefixRewrite
string
regexRewritePattern
string
regexRewriteSubstitution
string
hostRewrite
string
hostRewriteHeader
string
hostPathRegexRewritePattern
string
hostPathRegexRewriteSubstitution
string
regexPriorityOrder
integer <int64>
timeout
string (Duration) ^([0-9]+(y|w|d|h|m|s|ms))+$
idleTimeout
string (Duration) ^([0-9]+(y|w|d|h|m|s|ms))+$
allowWebsockets
required
boolean
allowSpdy
required
boolean
tlsSkipVerify
required
boolean
tlsUpstreamServerName
string
tlsDownstreamServerName
string
tlsCustomCaKeyPairId
string
tlsClientKeyPairId
string
tlsDownstreamClientCaKeyPairId
string
tlsUpstreamAllowRenegotiation
required
boolean
object (StringMap)
object (StringMap)
removeRequestHeaders
Array of strings
Array of objects (RouteRewriteHeader)
preserveHostHeader
required
boolean
passIdentityHeaders
boolean
kubernetesServiceAccountToken
string
object (RouteRedirect)
enableGoogleCloudServerlessAuthentication
required
boolean
showErrorDetails
required
boolean
RouteHttpHealthCheck (object) or RouteTcpHealthCheck (object) or RouteGrpcHealthCheck (object) (RouteHealthCheck)
loadBalancingPolicy
string (RouteLoadBalancingPolicy)
Enum: "round_robin" "least_request" "ring_hash" "random" "maglev"
policyIds
required
Array of strings

Responses

Request samples

Content type
application/json
{
  • "namespaceId": "string",
  • "name": "string",
  • "from": "string",
  • "to": [
    ],
  • "response": {
    },
  • "prefix": "string",
  • "path": "string",
  • "regex": "string",
  • "prefixRewrite": "string",
  • "regexRewritePattern": "string",
  • "regexRewriteSubstitution": "string",
  • "hostRewrite": "string",
  • "hostRewriteHeader": "string",
  • "hostPathRegexRewritePattern": "string",
  • "hostPathRegexRewriteSubstitution": "string",
  • "regexPriorityOrder": 0,
  • "timeout": "string",
  • "idleTimeout": "string",
  • "allowWebsockets": true,
  • "allowSpdy": true,
  • "tlsSkipVerify": true,
  • "tlsUpstreamServerName": "string",
  • "tlsDownstreamServerName": "string",
  • "tlsCustomCaKeyPairId": "string",
  • "tlsClientKeyPairId": "string",
  • "tlsDownstreamClientCaKeyPairId": "string",
  • "tlsUpstreamAllowRenegotiation": true,
  • "setRequestHeaders": {
    },
  • "setResponseHeaders": {
    },
  • "removeRequestHeaders": [
    ],
  • "rewriteResponseHeaders": [
    ],
  • "preserveHostHeader": true,
  • "passIdentityHeaders": true,
  • "kubernetesServiceAccountToken": "string",
  • "redirect": {
    },
  • "enableGoogleCloudServerlessAuthentication": true,
  • "showErrorDetails": true,
  • "healthCheck": {
    },
  • "loadBalancingPolicy": "round_robin",
  • "policyIds": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "namespaceId": "string",
  • "name": "string",
  • "from": "string",
  • "to": [
    ],
  • "response": {
    },
  • "prefix": "string",
  • "path": "string",
  • "regex": "string",
  • "prefixRewrite": "string",
  • "regexRewritePattern": "string",
  • "regexRewriteSubstitution": "string",
  • "hostRewrite": "string",
  • "hostRewriteHeader": "string",
  • "hostPathRegexRewritePattern": "string",
  • "hostPathRegexRewriteSubstitution": "string",
  • "regexPriorityOrder": 0,
  • "timeout": "string",
  • "idleTimeout": "string",
  • "allowWebsockets": true,
  • "allowSpdy": true,
  • "tlsSkipVerify": true,
  • "tlsUpstreamServerName": "string",
  • "tlsDownstreamServerName": "string",
  • "tlsCustomCaKeyPairId": "string",
  • "tlsClientKeyPairId": "string",
  • "tlsDownstreamClientCaKeyPairId": "string",
  • "tlsUpstreamAllowRenegotiation": true,
  • "setRequestHeaders": {
    },
  • "setResponseHeaders": {
    },
  • "removeRequestHeaders": [
    ],
  • "rewriteResponseHeaders": [
    ],
  • "preserveHostHeader": true,
  • "passIdentityHeaders": true,
  • "kubernetesServiceAccountToken": "string",
  • "redirect": {
    },
  • "enableGoogleCloudServerlessAuthentication": true,
  • "showErrorDetails": true,
  • "healthCheck": {
    },
  • "loadBalancingPolicy": "round_robin",
  • "policyIds": [
    ],
  • "enforcedPolicyIds": [
    ]
}

settings

Manage configuration settings for a cluster within an organization.

getSettings

Get settings

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

clusterId
required
string

ID of cluster

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "logLevel": "string",
  • "proxyLogLevel": "string",
  • "address": "string",
  • "dnsLookupFamily": "V4_ONLY",
  • "httpRedirectAddr": "string",
  • "timeoutRead": "string",
  • "timeoutWrite": "string",
  • "timeoutIdle": "string",
  • "cookieName": "string",
  • "cookieSecret": "string",
  • "cookieDomain": "string",
  • "cookieHttpOnly": true,
  • "cookieExpire": "string",
  • "cookieSameSite": "string",
  • "certificateAuthorityKeyPairId": "string",
  • "setResponseHeaders": {
    },
  • "jwtClaimsHeaders": {
    },
  • "defaultUpstreamTimeout": "string",
  • "metricsAddress": "string",
  • "tracingProvider": "string",
  • "tracingSampleRate": 0,
  • "tracingDatadogAddress": "string",
  • "tracingJaegerCollectorEndpoint": "string",
  • "tracingJaegerAgentEndpoint": "string",
  • "tracingZipkinEndpoint": "string",
  • "clientCa": "string",
  • "clientCaFile": "string",
  • "clientCaKeyPairId": "string",
  • "googleCloudServerlessAuthenticationServiceAccount": "string",
  • "skipXffAppend": true,
  • "databrokerStorageConnection": "string",
  • "accessLogFields": [
    ],
  • "authorizeLogFields": [
    ],
  • "passIdentityHeaders": true,
  • "autoApplyChangesets": true
}

updateSettings

Update settings

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

clusterId
required
string

ID of cluster

Request Body schema: application/json
required
logLevel
required
string

Sets the global logging level for Pomerium. Only logs of the desired level and above will be logged.

proxyLogLevel
string

Sets the logging level for the Pomerium Proxy service access logs. Only logs of the desired level and above will be logged.

address
required
string <hostport>

Specifies the Host and Port to serve HTTP requests from. If empty, :443 is used.

dnsLookupFamily
required
string (DNSLookupFamily)
Enum: "V4_ONLY" "V6_ONLY" "V4_PREFERRED" "AUTO" "ALL"

Sets the DNS IP address resolution policy.

httpRedirectAddr
string <hostport>

Specifies the Host and Port to redirect HTTP to HTTPS traffic on. If unset, no redirect server is started.

timeoutRead
required
string (Duration) ^([0-9]+(y|w|d|h|m|s|ms))+$

Sets the amount of time for the entire request stream to be received from the client.

timeoutWrite
required
string (Duration) ^([0-9]+(y|w|d|h|m|s|ms))+$

Sets the max stream duration is the maximum time that a stream’s lifetime will span.

timeoutIdle
required
string (Duration) ^([0-9]+(y|w|d|h|m|s|ms))+$

Sets the idle timeout is the time at which a downstream or upstream connection will be terminated if there are no active streams.

cookieName
required
string

Sets the name of the session cookie sent to clients.

cookieSecret
string

Sets the secret used to encrypt and sign session cookies. If you don't provide a cookie secret, Pomerium will generate one for you.

cookieDomain
string

Sets the scope of session cookies issued by Pomerium. If you specify the domain explicitly, then subdomains would also be included.

cookieHttpOnly
required
boolean

If true, this setting forbids JavaScript from accessing the cookie.

cookieExpire
required
string (Duration) ^([0-9]+(y|w|d|h|m|s|ms))+$

Sets the lifetime of session cookies. After this interval, users must reauthenticate.

cookieSameSite
string

Sets the SameSite option for cookies, which determines whether or not a cookie is sent with cross-site requests.

certificateAuthorityKeyPairId
string

ID of CA's public and private key pair.

object (StringMap)

Specifies a mapping of HTTP Headers added globally to all managed routes and Pomerium's Authenticate Service.

object (StringMap)

Pass specific user session data to upstream applications as unsigned HTTP request headers.

defaultUpstreamTimeout
required
string (Duration) ^([0-9]+(y|w|d|h|m|s|ms))+$

The default timeout applied to a proxied route when no timeout key is specified by the policy.

metricsAddress
string

Exposes a Prometheus endpoint on the specified port.

tracingProvider
string

The name of the tracing provider (for example, Jaeger or Zipkin).

tracingSampleRate
required
number

Percentage of requests to sample in decimal notation. The default is 0.0001, or .01%.

tracingDatadogAddress
string <hostport>

The host:port address of the Datadog Trace Agent. Defaults to localhost:8126.

tracingJaegerCollectorEndpoint
string

The URL to the Jaeger HTTP Thrift collector.

tracingJaegerAgentEndpoint
string <hostport>

The address of the jaeger-agent where you send Spans to.

tracingZipkinEndpoint
string

The URL to the Zipkin HTTP endpoint.

clientCa
string

The X.509 public-key used to validate a client certificate.

clientCaFile
string

Path to client CA's PEM certificate bundle.

clientCaKeyPairId
string

ID of the client CA's public and private key pair.

googleCloudServerlessAuthenticationServiceAccount
string

Specifies the Service Account credentials to support GCP's Authorization Header format.

skipXffAppend
required
boolean

If true, the incoming X-Forwarded-For HTTP header would not be modified.

databrokerStorageConnection
string

The databroker storage connection string.

accessLogFields
Array of strings

Controls which fields are included in the access logs.

authorizeLogFields
Array of strings

Controls which fields are included in the authorize logs.

passIdentityHeaders
required
boolean
autoApplyChangesets
required
boolean

Responses

Request samples

Content type
application/json
{
  • "logLevel": "string",
  • "proxyLogLevel": "string",
  • "address": "string",
  • "dnsLookupFamily": "V4_ONLY",
  • "httpRedirectAddr": "string",
  • "timeoutRead": "string",
  • "timeoutWrite": "string",
  • "timeoutIdle": "string",
  • "cookieName": "string",
  • "cookieSecret": "string",
  • "cookieDomain": "string",
  • "cookieHttpOnly": true,
  • "cookieExpire": "string",
  • "cookieSameSite": "string",
  • "certificateAuthorityKeyPairId": "string",
  • "setResponseHeaders": {
    },
  • "jwtClaimsHeaders": {
    },
  • "defaultUpstreamTimeout": "string",
  • "metricsAddress": "string",
  • "tracingProvider": "string",
  • "tracingSampleRate": 0,
  • "tracingDatadogAddress": "string",
  • "tracingJaegerCollectorEndpoint": "string",
  • "tracingJaegerAgentEndpoint": "string",
  • "tracingZipkinEndpoint": "string",
  • "clientCa": "string",
  • "clientCaFile": "string",
  • "clientCaKeyPairId": "string",
  • "googleCloudServerlessAuthenticationServiceAccount": "string",
  • "skipXffAppend": true,
  • "databrokerStorageConnection": "string",
  • "accessLogFields": [
    ],
  • "authorizeLogFields": [
    ],
  • "passIdentityHeaders": true,
  • "autoApplyChangesets": true
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "logLevel": "string",
  • "proxyLogLevel": "string",
  • "address": "string",
  • "dnsLookupFamily": "V4_ONLY",
  • "httpRedirectAddr": "string",
  • "timeoutRead": "string",
  • "timeoutWrite": "string",
  • "timeoutIdle": "string",
  • "cookieName": "string",
  • "cookieSecret": "string",
  • "cookieDomain": "string",
  • "cookieHttpOnly": true,
  • "cookieExpire": "string",
  • "cookieSameSite": "string",
  • "certificateAuthorityKeyPairId": "string",
  • "setResponseHeaders": {
    },
  • "jwtClaimsHeaders": {
    },
  • "defaultUpstreamTimeout": "string",
  • "metricsAddress": "string",
  • "tracingProvider": "string",
  • "tracingSampleRate": 0,
  • "tracingDatadogAddress": "string",
  • "tracingJaegerCollectorEndpoint": "string",
  • "tracingJaegerAgentEndpoint": "string",
  • "tracingZipkinEndpoint": "string",
  • "clientCa": "string",
  • "clientCaFile": "string",
  • "clientCaKeyPairId": "string",
  • "googleCloudServerlessAuthenticationServiceAccount": "string",
  • "skipXffAppend": true,
  • "databrokerStorageConnection": "string",
  • "accessLogFields": [
    ],
  • "authorizeLogFields": [
    ],
  • "passIdentityHeaders": true,
  • "autoApplyChangesets": true
}

cluster

A cluster represents an isolated Pomerium Core instance within your organization. An organization can have multiple clusters with separate configurations depending on the organization’s use case.

createOrganization

Create organization

Authorizations:
bearerAuth
Request Body schema: application/json
required
name
required
string
logoURL
string <url>

URL to an image that will be used as the organization logo. User may provide a URL to an image hosted on a third party service, or upload an image to the dashboard, which would result in an URL being generated.

domain
required
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "logoURL": "string",
  • "domain": "string"
}

Response samples

Content type
application/json
{
  • "organization": {
    },
  • "namespace": {
    }
}

listClusters

List clusters

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

Responses

Response samples

Content type
application/json
[
  • {
    }
]

createCluster

Create cluster

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

Request Body schema: application/json
required
name
required
string
domain
required
string
manualOverrideIpAddress
string <ip> (IPAddress)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "domain": "string",
  • "manualOverrideIpAddress": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "name": "string",
  • "domain": "string",
  • "manualOverrideIpAddress": "string",
  • "fqdn": "string",
  • "autoDetectIpAddress": "string",
  • "namespaceId": "string",
  • "hasFailingHealthChecks": true,
  • "refreshToken": "string"
}

deleteCluster

Delete cluster

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

clusterId
required
string

ID of cluster

Responses

getCluster

Get cluster

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

clusterId
required
string

ID of cluster

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "name": "string",
  • "domain": "string",
  • "manualOverrideIpAddress": "string",
  • "fqdn": "string",
  • "autoDetectIpAddress": "string",
  • "namespaceId": "string",
  • "hasFailingHealthChecks": true
}

updateCluster

Update cluster

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

clusterId
required
string

ID of cluster

Request Body schema: application/json
required
name
required
string
domain
required
string
manualOverrideIpAddress
string <ip> (IPAddress)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "domain": "string",
  • "manualOverrideIpAddress": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "name": "string",
  • "domain": "string",
  • "manualOverrideIpAddress": "string",
  • "fqdn": "string",
  • "autoDetectIpAddress": "string",
  • "namespaceId": "string",
  • "hasFailingHealthChecks": true
}

getClusterJwk

Get cluster JWK

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

clusterId
required
string

ID of cluster

Responses

Response samples

Content type
application/json
{
  • "use": "string",
  • "kty": "string",
  • "kid": "string",
  • "crv": "string",
  • "alg": "string",
  • "x": "string",
  • "y": "string",
  • "jwksUrl": "string"
}

getClusterHealth

Get cluster health check data

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

clusterId
required
string

ID of cluster

Responses

Response samples

Content type
application/json
[
  • {
    }
]

rotateClusterToken

Rotate cluster identity token. This token is used to authenticate the cluster to the Pomerium Zero API. Only one token may be active at a time. Requesting a new token will invalidate the previous one.

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

clusterId
required
string

ID of cluster

Responses

Response samples

Content type
application/json
{
  • "refreshToken": "string"
}

organization

acceptInvitation

Accept invitation

Authorizations:
bearerAuth
path Parameters
invitationId
required
string

ID of invitation

Responses

listOrganizations

List organizations

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json
[
  • {
    }
]

createOrganization

Create organization

Authorizations:
bearerAuth
Request Body schema: application/json
required
name
required
string
logoURL
string <url>

URL to an image that will be used as the organization logo. User may provide a URL to an image hosted on a third party service, or upload an image to the dashboard, which would result in an URL being generated.

domain
required
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "logoURL": "string",
  • "domain": "string"
}

Response samples

Content type
application/json
{
  • "organization": {
    },
  • "namespace": {
    }
}

deleteOrganization

Delete organization

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

Responses

getOrganization

Get organization

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "name": "string",
  • "logoURL": "string",
  • "organizationType": "personal",
  • "ownerUserId": "string",
  • "role": "owner",
  • "joinedAt": "2019-08-24T14:15:22Z"
}

updateOrganization

Update organization

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

Request Body schema: application/json
required
name
required
string
logoURL
string <url>

URL to an image that will be used as the organization logo. User may provide a URL to an image hosted on a third party service, or upload an image to the dashboard, which would result in an URL being generated.

ownerUserId
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "logoURL": "string",
  • "ownerUserId": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "name": "string",
  • "logoURL": "string",
  • "organizationType": "personal",
  • "ownerUserId": "string",
  • "role": "owner",
  • "joinedAt": "2019-08-24T14:15:22Z"
}

leaveOrganization

Leave organization

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

Responses

terms

acceptTerms

Accept terms

Authorizations:
bearerAuth
path Parameters
termId
required
string

ID of a legal term

Responses

defaultTemplate

listDefaultTemplates

List default templates

Authorizations:
bearerAuth
path Parameters
recordType
required
string (DefaultTemplateRecordType)
Enum: "route" "settings" "policy"

Type of record

Responses

Response samples

Content type
application/json
[
  • {
    }
]

startOnboarding

Start onboarding

Authorizations:
bearerAuth
Request Body schema: application/json
required
name
required
string
system
required
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "system": "string"
}

Response samples

Content type
application/json
{
  • "organizationId": "string",
  • "clusterId": "string",
  • "clusterToken": "string"
}

configureOnboarding

Configure onboarding

Authorizations:
bearerAuth
Request Body schema: application/json
required
ipAddress
string <ip> (IPAddress)
port
string <port> (Port)
system
required
string

Responses

Request samples

Content type
application/json
{
  • "ipAddress": "string",
  • "port": "string",
  • "system": "string"
}

Response samples

Content type
application/json
{ }

getClusterTimeSeriesMetric

Get cluster metric time series

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

clusterId
required
string

ID of cluster

metricId
required
string (ClusterTimeSeriesMetricId)
Enum: "mau" "dau"

ID of cluster time series metric

Responses

Response samples

Content type
application/json
[
  • {
    }
]

pingCluster

Ping cluster

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

clusterId
required
string

ID of cluster

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "errorCode": "err_cluster_ping_no_identity",
  • "errorMessage": "string"
}

getVersion

Get version

Responses

Response samples

Content type
application/json
{
  • "version": "string"
}

serviceAccount

listServiceAccounts

List service accounts

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

clusterId
required
string

ID of cluster

Responses

Response samples

Content type
application/json
[
  • {
    }
]

createServiceAccount

Create service account

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

clusterId
required
string

ID of cluster

Request Body schema: application/json
required
expiresAt
string <date-time>
description
required
string
userId
required
string

Responses

Request samples

Content type
application/json
{
  • "expiresAt": "2019-08-24T14:15:22Z",
  • "description": "string",
  • "userId": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "expiresAt": "2019-08-24T14:15:22Z",
  • "description": "string",
  • "userId": "string",
  • "token": "string"
}

deleteServiceAccount

Delete service account

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

clusterId
required
string

ID of cluster

serviceAccountId
required
string

ID of service account

Responses

getServiceAccount

Get service account

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

clusterId
required
string

ID of cluster

serviceAccountId
required
string

ID of service account

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "expiresAt": "2019-08-24T14:15:22Z",
  • "description": "string",
  • "userId": "string"
}

updateServiceAccount

Update service account

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

clusterId
required
string

ID of cluster

serviceAccountId
required
string

ID of service account

Request Body schema: application/json
required
description
required
string

Responses

Request samples

Content type
application/json
{
  • "description": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "expiresAt": "2019-08-24T14:15:22Z",
  • "description": "string",
  • "userId": "string"
}

getServiceAccountToken

Get service account token

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

clusterId
required
string

ID of cluster

serviceAccountId
required
string

ID of service account

Responses

Response samples

Content type
application/json
{
  • "token": "string"
}

resourceBundleStatus

getClusterResourceBundleStatus

Get settings

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

clusterId
required
string

ID of cluster

Responses

Response samples

Content type
application/json
{
  • "property1": {
    },
  • "property2": {
    }
}

customDomain

listCustomDomains

List custom domains

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

query Parameters
clusterId
required
string

ID of cluster

Responses

Response samples

Content type
application/json
[
  • {
    }
]

addCustomDomain

Add custom domain

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

Request Body schema: application/json
required
clusterId
required
string
domainName
required
string

Responses

Request samples

Content type
application/json
{
  • "clusterId": "string",
  • "domainName": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "clusterId": "string",
  • "domainName": "string",
  • "lastError": "string",
  • "keyPairId": "string",
  • "expiresAt": "2019-08-24T14:15:22Z"
}

deleteCustomDomain

Delete custom domain

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

customDomainId
required
string

ID of custom domain

Responses

retryCustomDomain

Retry provisioning a custom domain

Authorizations:
bearerAuth
path Parameters
organizationId
required
string

ID of organization

customDomainId
required
string

ID of custom domain

Responses

notification

authorizeNotifications

authorize notifications

Authorizations:
bearerAuth
Request Body schema: application/x-www-form-urlencoded
required
socket_id
required
string
channel_name
required
string

Responses

Response samples

Content type
application/json
{
  • "auth": "string"
}