Schema
Docs Home

Twingate GraphQL API Reference

Welcome to the Twingate GraphQL API reference. This reference includes the the complete GraphQL schema for Twingate’s API. Learn how to start using the API by reading our getting started with the API guide.

Contact

Twingate Support

https://www.twingate.com/support

API Endpoints
https://<network name>.twingate.com/api/graphql/
Headers
# Your API token from the admin console. Must be included in all API calls.
X-API-KEY: <YOUR_TOKEN_HERE>

Queries

connector

Description

Look up a connector by ID

Response

Returns a Connector

Arguments
Name Description
id - ID! The ID of the connector

Example

Query
query connector($id: ID!) {
  connector(id: $id) {
    createdAt
    updatedAt
    lastHeartbeatAt
    hostname
    id
    name
    remoteNetwork {
      ...RemoteNetworkFragment
    }
    state
    hasStatusNotificationsEnabled
    version
    publicIP
    privateIPs
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "connector": {
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "lastHeartbeatAt": "2007-12-03T10:15:30Z",
      "hostname": "abc123",
      "id": "4",
      "name": "xyz789",
      "remoteNetwork": RemoteNetwork,
      "state": "ALIVE",
      "hasStatusNotificationsEnabled": true,
      "version": "abc123",
      "publicIP": "xyz789",
      "privateIPs": ["xyz789"]
    }
  }
}

connectors

Description

List of connectors

Response

Returns a ConnectorConnection!

Arguments
Name Description
before - String
after - String
first - Int
last - Int
filter - ConnectorFilterInput

Example

Query
query connectors(
  $before: String,
  $after: String,
  $first: Int,
  $last: Int,
  $filter: ConnectorFilterInput
) {
  connectors(
    before: $before,
    after: $after,
    first: $first,
    last: $last,
    filter: $filter
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...ConnectorEdgeFragment
    }
    totalCount
  }
}
Variables
{
  "before": "abc123",
  "after": "abc123",
  "first": 123,
  "last": 987,
  "filter": ConnectorFilterInput
}
Response
{
  "data": {
    "connectors": {
      "pageInfo": PageInfo,
      "edges": [ConnectorEdge],
      "totalCount": 123
    }
  }
}

device

Description

Look up a device by ID

Response

Returns a Device

Arguments
Name Description
id - ID! The ID of the device

Example

Query
query device($id: ID!) {
  device(id: $id) {
    id
    name
    lastFailedLoginAt
    lastSuccessfulLoginAt
    osVersion
    hardwareModel
    hostname
    username
    serialNumber
    user {
      ...UserFragment
    }
    lastConnectedAt
    osName
    deviceType
    activeState
    isTrusted
    clientVersion
    manufacturerName
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "device": {
      "id": 4,
      "name": "xyz789",
      "lastFailedLoginAt": "2007-12-03T10:15:30Z",
      "lastSuccessfulLoginAt": "2007-12-03T10:15:30Z",
      "osVersion": "xyz789",
      "hardwareModel": "xyz789",
      "hostname": "abc123",
      "username": "xyz789",
      "serialNumber": "xyz789",
      "user": User,
      "lastConnectedAt": "2007-12-03T10:15:30Z",
      "osName": "IPADOS",
      "deviceType": "GENERIC",
      "activeState": "ACTIVE",
      "isTrusted": false,
      "clientVersion": "xyz789",
      "manufacturerName": "xyz789"
    }
  }
}

devices

Description

List of devices

Response

Returns a DeviceConnection!

Arguments
Name Description
before - String
after - String
first - Int
last - Int
filter - DeviceFilterInput

Example

Query
query devices(
  $before: String,
  $after: String,
  $first: Int,
  $last: Int,
  $filter: DeviceFilterInput
) {
  devices(
    before: $before,
    after: $after,
    first: $first,
    last: $last,
    filter: $filter
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...DeviceEdgeFragment
    }
    totalCount
  }
}
Variables
{
  "before": "xyz789",
  "after": "xyz789",
  "first": 123,
  "last": 987,
  "filter": DeviceFilterInput
}
Response
{
  "data": {
    "devices": {
      "pageInfo": PageInfo,
      "edges": [DeviceEdge],
      "totalCount": 987
    }
  }
}

dnsFilteringProfile

Description

Return the current DNS filtering profile. None is returned when DNS filtering is not enabled.

Response

Returns a DnsFilteringProfile

Example

Query
query dnsFilteringProfile {
  dnsFilteringProfile {
    id
    allowedDomains
    deniedDomains
  }
}
Response
{
  "data": {
    "dnsFilteringProfile": {
      "id": 4,
      "allowedDomains": ["xyz789"],
      "deniedDomains": ["abc123"]
    }
  }
}

group

Description

Look up a group by ID

Response

Returns a Group

Arguments
Name Description
id - ID! The ID of the group

Example

Query
query group($id: ID!) {
  group(id: $id) {
    id
    createdAt
    updatedAt
    name
    originId
    isActive
    type
    users {
      ...UserConnectionFragment
    }
    resources {
      ...ResourceConnectionFragment
    }
    securityPolicy {
      ...SecurityPolicyFragment
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "group": {
      "id": "4",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "name": "abc123",
      "originId": "xyz789",
      "isActive": false,
      "type": "MANUAL",
      "users": UserConnection,
      "resources": ResourceConnection,
      "securityPolicy": SecurityPolicy
    }
  }
}

groups

Description

List of groups

Response

Returns a GroupConnection!

Arguments
Name Description
before - String
after - String
first - Int
last - Int
filter - GroupFilterInput

Example

Query
query groups(
  $before: String,
  $after: String,
  $first: Int,
  $last: Int,
  $filter: GroupFilterInput
) {
  groups(
    before: $before,
    after: $after,
    first: $first,
    last: $last,
    filter: $filter
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...GroupEdgeFragment
    }
    totalCount
  }
}
Variables
{
  "before": "abc123",
  "after": "abc123",
  "first": 987,
  "last": 123,
  "filter": GroupFilterInput
}
Response
{
  "data": {
    "groups": {
      "pageInfo": PageInfo,
      "edges": [GroupEdge],
      "totalCount": 987
    }
  }
}

remoteNetwork

Description

Look up a remote network by ID or name

Response

Returns a RemoteNetwork

Arguments
Name Description
id - ID The ID of the remote network. Default = null
name - String The name of the remote network. Default = null

Example

Query
query remoteNetwork(
  $id: ID,
  $name: String
) {
  remoteNetwork(
    id: $id,
    name: $name
  ) {
    createdAt
    updatedAt
    name
    id
    location
    isActive
    resources {
      ...ResourceConnectionFragment
    }
    connectors {
      ...ConnectorConnectionFragment
    }
  }
}
Variables
{"id": null, "name": null}
Response
{
  "data": {
    "remoteNetwork": {
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "name": "xyz789",
      "id": 4,
      "location": "AWS",
      "isActive": true,
      "resources": ResourceConnection,
      "connectors": ConnectorConnection
    }
  }
}

remoteNetworks

Description

List of remote networks

Response

Returns a RemoteNetworkConnection!

Arguments
Name Description
before - String
after - String
first - Int
last - Int
filter - RemoteNetworkFilterInput

Example

Query
query remoteNetworks(
  $before: String,
  $after: String,
  $first: Int,
  $last: Int,
  $filter: RemoteNetworkFilterInput
) {
  remoteNetworks(
    before: $before,
    after: $after,
    first: $first,
    last: $last,
    filter: $filter
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...RemoteNetworkEdgeFragment
    }
    totalCount
  }
}
Variables
{
  "before": "abc123",
  "after": "xyz789",
  "first": 987,
  "last": 123,
  "filter": RemoteNetworkFilterInput
}
Response
{
  "data": {
    "remoteNetworks": {
      "pageInfo": PageInfo,
      "edges": [RemoteNetworkEdge],
      "totalCount": 987
    }
  }
}

resource

Description

Look up a resource by ID

Response

Returns a Resource

Arguments
Name Description
id - ID! The ID of the resource

Example

Query
query resource($id: ID!) {
  resource(id: $id) {
    id
    createdAt
    updatedAt
    name
    address {
      ...ResourceAddressFragment
    }
    alias
    protocols {
      ...ResourceProtocolsFragment
    }
    isActive
    remoteNetwork {
      ...RemoteNetworkFragment
    }
    groups {
      ...GroupConnectionFragment
    }
    serviceAccounts {
      ...ServiceAccountConnectionFragment
    }
    access {
      ...AccessConnectionFragment
    }
    isVisible
    isBrowserShortcutEnabled
    securityPolicy {
      ...SecurityPolicyFragment
    }
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "resource": {
      "id": "4",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "name": "abc123",
      "address": ResourceAddress,
      "alias": "xyz789",
      "protocols": ResourceProtocols,
      "isActive": false,
      "remoteNetwork": RemoteNetwork,
      "groups": GroupConnection,
      "serviceAccounts": ServiceAccountConnection,
      "access": AccessConnection,
      "isVisible": true,
      "isBrowserShortcutEnabled": false,
      "securityPolicy": SecurityPolicy
    }
  }
}

resources

Description

List of resources

Response

Returns a ResourceConnection!

Arguments
Name Description
before - String
after - String
first - Int
last - Int
filter - ResourceFilterInput

Example

Query
query resources(
  $before: String,
  $after: String,
  $first: Int,
  $last: Int,
  $filter: ResourceFilterInput
) {
  resources(
    before: $before,
    after: $after,
    first: $first,
    last: $last,
    filter: $filter
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...ResourceEdgeFragment
    }
    totalCount
  }
}
Variables
{
  "before": "xyz789",
  "after": "abc123",
  "first": 123,
  "last": 123,
  "filter": ResourceFilterInput
}
Response
{
  "data": {
    "resources": {
      "pageInfo": PageInfo,
      "edges": [ResourceEdge],
      "totalCount": 123
    }
  }
}

securityPolicies

Description

List of security policies

Response

Returns a SecurityPolicyConnection!

Arguments
Name Description
before - String
after - String
first - Int
last - Int
filter - SecurityPolicyFilterField

Example

Query
query securityPolicies(
  $before: String,
  $after: String,
  $first: Int,
  $last: Int,
  $filter: SecurityPolicyFilterField
) {
  securityPolicies(
    before: $before,
    after: $after,
    first: $first,
    last: $last,
    filter: $filter
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...SecurityPolicyEdgeFragment
    }
    totalCount
  }
}
Variables
{
  "before": "abc123",
  "after": "xyz789",
  "first": 123,
  "last": 987,
  "filter": SecurityPolicyFilterField
}
Response
{
  "data": {
    "securityPolicies": {
      "pageInfo": PageInfo,
      "edges": [SecurityPolicyEdge],
      "totalCount": 987
    }
  }
}

securityPolicy

Description

Look up a security policy by ID or name

Response

Returns a SecurityPolicy

Arguments
Name Description
id - ID The ID of the security policy. Default = null
name - String The name of the security policy. Default = null

Example

Query
query securityPolicy(
  $id: ID,
  $name: String
) {
  securityPolicy(
    id: $id,
    name: $name
  ) {
    id
    createdAt
    updatedAt
    name
    policyType
    groups {
      ...GroupConnectionFragment
    }
  }
}
Variables
{"id": null, "name": null}
Response
{
  "data": {
    "securityPolicy": {
      "id": 4,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "name": "abc123",
      "policyType": "RESOURCE",
      "groups": GroupConnection
    }
  }
}

serialNumbers

Description

List of serial numbers

Response

Returns a SerialNumberConnection!

Arguments
Name Description
before - String
after - String
first - Int
last - Int
filter - SerialNumberFilterInput

Example

Query
query serialNumbers(
  $before: String,
  $after: String,
  $first: Int,
  $last: Int,
  $filter: SerialNumberFilterInput
) {
  serialNumbers(
    before: $before,
    after: $after,
    first: $first,
    last: $last,
    filter: $filter
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...SerialNumberEdgeFragment
    }
    totalCount
  }
}
Variables
{
  "before": "xyz789",
  "after": "abc123",
  "first": 123,
  "last": 123,
  "filter": SerialNumberFilterInput
}
Response
{
  "data": {
    "serialNumbers": {
      "pageInfo": PageInfo,
      "edges": [SerialNumberEdge],
      "totalCount": 123
    }
  }
}

serviceAccount

Description

Look up a service account by ID

Response

Returns a ServiceAccount

Arguments
Name Description
id - ID! The ID of the service account

Example

Query
query serviceAccount($id: ID!) {
  serviceAccount(id: $id) {
    id
    name
    createdAt
    updatedAt
    resources {
      ...ResourceConnectionFragment
    }
    keys {
      ...ServiceAccountKeyConnectionFragment
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "serviceAccount": {
      "id": 4,
      "name": "abc123",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "resources": ResourceConnection,
      "keys": ServiceAccountKeyConnection
    }
  }
}

serviceAccountKey

Description

Look up service account key by ID

Response

Returns a ServiceAccountKey

Arguments
Name Description
id - ID The ID of the service account key. Default = null
name - String The name of the service account key. Default = null

Example

Query
query serviceAccountKey(
  $id: ID,
  $name: String
) {
  serviceAccountKey(
    id: $id,
    name: $name
  ) {
    createdAt
    id
    name
    expiresAt
    revokedAt
    updatedAt
    status
    serviceAccount {
      ...ServiceAccountFragment
    }
  }
}
Variables
{"id": null, "name": null}
Response
{
  "data": {
    "serviceAccountKey": {
      "createdAt": "2007-12-03T10:15:30Z",
      "id": "4",
      "name": "abc123",
      "expiresAt": "2007-12-03T10:15:30Z",
      "revokedAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "status": "ACTIVE",
      "serviceAccount": ServiceAccount
    }
  }
}

serviceAccounts

Description

List of service accounts

Response

Returns a ServiceAccountConnection!

Arguments
Name Description
before - String
after - String
first - Int
last - Int
filter - ServiceAccountFilterInput

Example

Query
query serviceAccounts(
  $before: String,
  $after: String,
  $first: Int,
  $last: Int,
  $filter: ServiceAccountFilterInput
) {
  serviceAccounts(
    before: $before,
    after: $after,
    first: $first,
    last: $last,
    filter: $filter
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...ServiceAccountEdgeFragment
    }
    totalCount
  }
}
Variables
{
  "before": "abc123",
  "after": "xyz789",
  "first": 123,
  "last": 987,
  "filter": ServiceAccountFilterInput
}
Response
{
  "data": {
    "serviceAccounts": {
      "pageInfo": PageInfo,
      "edges": [ServiceAccountEdge],
      "totalCount": 987
    }
  }
}

user

Description

Look up a user by ID

Response

Returns a User

Arguments
Name Description
id - ID! The ID of the user

Example

Query
query user($id: ID!) {
  user(id: $id) {
    id
    createdAt
    updatedAt
    firstName
    lastName
    email
    avatarUrl
    state
    isAdmin
    role
    type
    groups {
      ...GroupConnectionFragment
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "user": {
      "id": 4,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "firstName": "xyz789",
      "lastName": "abc123",
      "email": "xyz789",
      "avatarUrl": "xyz789",
      "state": "PENDING",
      "isAdmin": false,
      "role": "ADMIN",
      "type": "MANUAL",
      "groups": GroupConnection
    }
  }
}

users

Description

List of users

Response

Returns a UserConnection!

Arguments
Name Description
before - String
after - String
first - Int
last - Int
filter - UserFilterInput

Example

Query
query users(
  $before: String,
  $after: String,
  $first: Int,
  $last: Int,
  $filter: UserFilterInput
) {
  users(
    before: $before,
    after: $after,
    first: $first,
    last: $last,
    filter: $filter
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...UserEdgeFragment
    }
    totalCount
  }
}
Variables
{
  "before": "xyz789",
  "after": "xyz789",
  "first": 123,
  "last": 987,
  "filter": UserFilterInput
}
Response
{
  "data": {
    "users": {
      "pageInfo": PageInfo,
      "edges": [UserEdge],
      "totalCount": 123
    }
  }
}

Mutations

connectorCreate

Response

Returns a ConnectorCreateMutation

Arguments
Name Description
hasStatusNotificationsEnabled - Boolean Indicates whether status notifications should be enabled for the connector. Default = true
name - String Name of the connector. Default = null
remoteNetworkId - ID! Remote network ID this connector is part of.

Example

Query
mutation connectorCreate(
  $hasStatusNotificationsEnabled: Boolean,
  $name: String,
  $remoteNetworkId: ID!
) {
  connectorCreate(
    hasStatusNotificationsEnabled: $hasStatusNotificationsEnabled,
    name: $name,
    remoteNetworkId: $remoteNetworkId
  ) {
    ok
    error
    entity {
      ...ConnectorFragment
    }
  }
}
Variables
{
  "hasStatusNotificationsEnabled": true,
  "name": null,
  "remoteNetworkId": "4"
}
Response
{
  "data": {
    "connectorCreate": {
      "ok": true,
      "error": "xyz789",
      "entity": Connector
    }
  }
}

connectorDelete

Response

Returns a ConnectorDeleteMutation

Arguments
Name Description
id - ID! The ID of the entity to delete.

Example

Query
mutation connectorDelete($id: ID!) {
  connectorDelete(id: $id) {
    ok
    error
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "connectorDelete": {
      "ok": false,
      "error": "xyz789"
    }
  }
}

connectorGenerateTokens

Response

Returns a ConnectorGenerateTokensMutation

Arguments
Name Description
connectorId - ID! The connector ID to generate tokens for

Example

Query
mutation connectorGenerateTokens($connectorId: ID!) {
  connectorGenerateTokens(connectorId: $connectorId) {
    ok
    error
    connectorTokens {
      ...ConnectorTokensFragment
    }
  }
}
Variables
{"connectorId": "4"}
Response
{
  "data": {
    "connectorGenerateTokens": {
      "ok": false,
      "error": "abc123",
      "connectorTokens": ConnectorTokens
    }
  }
}

connectorUpdate

Response

Returns a ConnectorUpdateMutation

Arguments
Name Description
hasStatusNotificationsEnabled - Boolean Indicates whether downtime email notifications should be enabled for the connector. Default = null
id - ID! The connector ID
name - String The connector's name. Default = null

Example

Query
mutation connectorUpdate(
  $hasStatusNotificationsEnabled: Boolean,
  $id: ID!,
  $name: String
) {
  connectorUpdate(
    hasStatusNotificationsEnabled: $hasStatusNotificationsEnabled,
    id: $id,
    name: $name
  ) {
    ok
    error
    entity {
      ...ConnectorFragment
    }
  }
}
Variables
{
  "hasStatusNotificationsEnabled": null,
  "id": "4",
  "name": null
}
Response
{
  "data": {
    "connectorUpdate": {
      "ok": true,
      "error": "xyz789",
      "entity": Connector
    }
  }
}

deviceArchive

Response

Returns a DeviceArchiveMutation

Arguments
Name Description
id - ID! The device ID

Example

Query
mutation deviceArchive($id: ID!) {
  deviceArchive(id: $id) {
    ok
    error
    entity {
      ...DeviceFragment
    }
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "deviceArchive": {
      "ok": false,
      "error": "abc123",
      "entity": Device
    }
  }
}

deviceBlock

Response

Returns a DeviceBlockMutation

Arguments
Name Description
id - ID! The device ID

Example

Query
mutation deviceBlock($id: ID!) {
  deviceBlock(id: $id) {
    ok
    error
    entity {
      ...DeviceFragment
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "deviceBlock": {
      "ok": false,
      "error": "xyz789",
      "entity": Device
    }
  }
}

deviceUnarchive

Response

Returns a DeviceUnarchiveMutation

Arguments
Name Description
id - ID! The device ID

Example

Query
mutation deviceUnarchive($id: ID!) {
  deviceUnarchive(id: $id) {
    ok
    error
    entity {
      ...DeviceFragment
    }
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "deviceUnarchive": {
      "ok": false,
      "error": "xyz789",
      "entity": Device
    }
  }
}

deviceUnblock

Response

Returns a DeviceUnblockMutation

Arguments
Name Description
id - ID! The device ID

Example

Query
mutation deviceUnblock($id: ID!) {
  deviceUnblock(id: $id) {
    ok
    error
    entity {
      ...DeviceFragment
    }
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "deviceUnblock": {
      "ok": false,
      "error": "abc123",
      "entity": Device
    }
  }
}

deviceUpdate

Response

Returns a DeviceUpdateMutation

Arguments
Name Description
id - ID! The device ID
isTrusted - Boolean! Whether the device is trusted

Example

Query
mutation deviceUpdate(
  $id: ID!,
  $isTrusted: Boolean!
) {
  deviceUpdate(
    id: $id,
    isTrusted: $isTrusted
  ) {
    ok
    error
    entity {
      ...DeviceFragment
    }
  }
}
Variables
{"id": 4, "isTrusted": true}
Response
{
  "data": {
    "deviceUpdate": {
      "ok": false,
      "error": "xyz789",
      "entity": Device
    }
  }
}

dnsFilteringAllowedDomainsSet

Arguments
Name Description
domains - [String!]! List of domains

Example

Query
mutation dnsFilteringAllowedDomainsSet($domains: [String!]!) {
  dnsFilteringAllowedDomainsSet(domains: $domains) {
    ok
    error
  }
}
Variables
{"domains": ["abc123"]}
Response
{
  "data": {
    "dnsFilteringAllowedDomainsSet": {
      "ok": true,
      "error": "xyz789"
    }
  }
}

dnsFilteringDeniedDomainsSet

Arguments
Name Description
domains - [String!]! List of domains

Example

Query
mutation dnsFilteringDeniedDomainsSet($domains: [String!]!) {
  dnsFilteringDeniedDomainsSet(domains: $domains) {
    ok
    error
  }
}
Variables
{"domains": ["xyz789"]}
Response
{
  "data": {
    "dnsFilteringDeniedDomainsSet": {
      "ok": false,
      "error": "abc123"
    }
  }
}

groupCreate

Response

Returns a GroupCreateMutation

Arguments
Name Description
name - String! The group's name
resourceIds - [ID] List of IDs of resources added to the group. Default = []
securityPolicyId - ID The ID of the security policy to be assigned to the group. The default resource policy is used if empty. Default = null
userIds - [ID] List of IDs of users added to the group. Default = []

Example

Query
mutation groupCreate(
  $name: String!,
  $resourceIds: [ID],
  $securityPolicyId: ID,
  $userIds: [ID]
) {
  groupCreate(
    name: $name,
    resourceIds: $resourceIds,
    securityPolicyId: $securityPolicyId,
    userIds: $userIds
  ) {
    ok
    error
    entity {
      ...GroupFragment
    }
  }
}
Variables
{
  "name": "xyz789",
  "resourceIds": [""],
  "securityPolicyId": null,
  "userIds": [""]
}
Response
{
  "data": {
    "groupCreate": {
      "ok": true,
      "error": "abc123",
      "entity": Group
    }
  }
}

groupDelete

Response

Returns a GroupDeleteMutation

Arguments
Name Description
id - ID! The ID of the entity to delete.

Example

Query
mutation groupDelete($id: ID!) {
  groupDelete(id: $id) {
    ok
    error
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "groupDelete": {
      "ok": false,
      "error": "abc123"
    }
  }
}

groupUpdate

Response

Returns a GroupUpdateMutation

Arguments
Name Description
addedResourceIds - [ID] List of resource IDs added to the group. Default = null
addedUserIds - [ID] List of user IDs added to the group. Default = null
id - ID! The group ID
isActive - Boolean Whether the group is active. Default = null
name - String The group's name. Default = null
removedResourceIds - [ID] List of resource IDs removed from the group. Default = null
removedUserIds - [ID] List of user IDs removed from the group. Default = null
resourceIds - [ID] List of resource IDs to be assigned to the group. Default = null
securityPolicyId - ID The ID of the security policy to be assigned to this group. Default = null
userIds - [ID] List of user IDs to be assigned to the group. Default = null

Example

Query
mutation groupUpdate(
  $addedResourceIds: [ID],
  $addedUserIds: [ID],
  $id: ID!,
  $isActive: Boolean,
  $name: String,
  $removedResourceIds: [ID],
  $removedUserIds: [ID],
  $resourceIds: [ID],
  $securityPolicyId: ID,
  $userIds: [ID]
) {
  groupUpdate(
    addedResourceIds: $addedResourceIds,
    addedUserIds: $addedUserIds,
    id: $id,
    isActive: $isActive,
    name: $name,
    removedResourceIds: $removedResourceIds,
    removedUserIds: $removedUserIds,
    resourceIds: $resourceIds,
    securityPolicyId: $securityPolicyId,
    userIds: $userIds
  ) {
    ok
    error
    entity {
      ...GroupFragment
    }
  }
}
Variables
{
  "addedResourceIds": null,
  "addedUserIds": null,
  "id": 4,
  "isActive": null,
  "name": null,
  "removedResourceIds": null,
  "removedUserIds": null,
  "resourceIds": null,
  "securityPolicyId": null,
  "userIds": null
}
Response
{
  "data": {
    "groupUpdate": {
      "ok": false,
      "error": "abc123",
      "entity": Group
    }
  }
}

remoteNetworkCreate

Response

Returns a RemoteNetworkCreateMutation

Arguments
Name Description
isActive - Boolean Indicates if the remote network is active. The default is 'true'. Default = true
location - RemoteNetworkLocation The location of the remote network. Default = OTHER
name - String! The remote network's name

Example

Query
mutation remoteNetworkCreate(
  $isActive: Boolean,
  $location: RemoteNetworkLocation,
  $name: String!
) {
  remoteNetworkCreate(
    isActive: $isActive,
    location: $location,
    name: $name
  ) {
    ok
    error
    entity {
      ...RemoteNetworkFragment
    }
  }
}
Variables
{
  "isActive": true,
  "location": "OTHER",
  "name": "abc123"
}
Response
{
  "data": {
    "remoteNetworkCreate": {
      "ok": false,
      "error": "abc123",
      "entity": RemoteNetwork
    }
  }
}

remoteNetworkDelete

Response

Returns a RemoteNetworkDeleteMutation

Arguments
Name Description
id - ID! The ID of the entity to delete.

Example

Query
mutation remoteNetworkDelete($id: ID!) {
  remoteNetworkDelete(id: $id) {
    ok
    error
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "remoteNetworkDelete": {
      "ok": false,
      "error": "abc123"
    }
  }
}

remoteNetworkUpdate

Response

Returns a RemoteNetworkUpdateMutation

Arguments
Name Description
id - ID! The remote network ID.
isActive - Boolean Indicates if the remote network is active. Default = null
location - RemoteNetworkLocation The location of the remote network. Default = null
name - String The remote network's name. Default = null

Example

Query
mutation remoteNetworkUpdate(
  $id: ID!,
  $isActive: Boolean,
  $location: RemoteNetworkLocation,
  $name: String
) {
  remoteNetworkUpdate(
    id: $id,
    isActive: $isActive,
    location: $location,
    name: $name
  ) {
    ok
    error
    entity {
      ...RemoteNetworkFragment
    }
  }
}
Variables
{"id": 4, "isActive": null, "location": "null", "name": null}
Response
{
  "data": {
    "remoteNetworkUpdate": {
      "ok": true,
      "error": "abc123",
      "entity": RemoteNetwork
    }
  }
}

resourceAccessAdd

Response

Returns a ResourceAccessAddMutation

Arguments
Name Description
access - [AccessInput!]! List of accesses to be added to the resource. If an access between the resource and principal already exists, the access' properties would be reconfigured. Hence, this mutation can be used to change or remove the security policy of an access edge.
resourceId - ID! The resource ID

Example

Query
mutation resourceAccessAdd(
  $access: [AccessInput!]!,
  $resourceId: ID!
) {
  resourceAccessAdd(
    access: $access,
    resourceId: $resourceId
  ) {
    ok
    error
    entity {
      ...ResourceFragment
    }
  }
}
Variables
{"access": [AccessInput], "resourceId": 4}
Response
{
  "data": {
    "resourceAccessAdd": {
      "ok": false,
      "error": "xyz789",
      "entity": Resource
    }
  }
}

resourceAccessRemove

Response

Returns a ResourceAccessRemoveMutation

Arguments
Name Description
principalIds - [ID!]! List of principals being removed from accessing the resource.
resourceId - ID! The resource ID

Example

Query
mutation resourceAccessRemove(
  $principalIds: [ID!]!,
  $resourceId: ID!
) {
  resourceAccessRemove(
    principalIds: $principalIds,
    resourceId: $resourceId
  ) {
    ok
    error
    entity {
      ...ResourceFragment
    }
  }
}
Variables
{"principalIds": [4], "resourceId": 4}
Response
{
  "data": {
    "resourceAccessRemove": {
      "ok": false,
      "error": "abc123",
      "entity": Resource
    }
  }
}

resourceAccessSet

Response

Returns a ResourceAccessSetMutation

Arguments
Name Description
access - [AccessInput!]! List of accesses to the resource. Existing accesses to the resource will be removed.
resourceId - ID! The resource ID

Example

Query
mutation resourceAccessSet(
  $access: [AccessInput!]!,
  $resourceId: ID!
) {
  resourceAccessSet(
    access: $access,
    resourceId: $resourceId
  ) {
    ok
    error
    entity {
      ...ResourceFragment
    }
  }
}
Variables
{
  "access": [AccessInput],
  "resourceId": "4"
}
Response
{
  "data": {
    "resourceAccessSet": {
      "ok": false,
      "error": "abc123",
      "entity": Resource
    }
  }
}

resourceCreate

Response

Returns a ResourceCreateMutation

Arguments
Name Description
address - String! The resource's IP/FQDN
alias - String The resource's alias address. Default = null
groupIds - [ID] List of group IDs added to the resource. Default = []
isBrowserShortcutEnabled - Boolean Indicates whether this resource will display a browser shortcut in the client. Default = null
isVisible - Boolean Indicates whether this resource will be in the main resource list in the client. Default = null
name - String! The resource's name
protocols - ProtocolsInput Restrict access to certain protocols and ports. By default or when this argument is null, there is no restriction i.e. all protocols and ports are allowed. Default = null
remoteNetworkId - ID! Remote Network ID to assign to the resource
securityPolicyId - ID Security Policy ID required to access the resource. Default = null

Example

Query
mutation resourceCreate(
  $address: String!,
  $alias: String,
  $groupIds: [ID],
  $isBrowserShortcutEnabled: Boolean,
  $isVisible: Boolean,
  $name: String!,
  $protocols: ProtocolsInput,
  $remoteNetworkId: ID!,
  $securityPolicyId: ID
) {
  resourceCreate(
    address: $address,
    alias: $alias,
    groupIds: $groupIds,
    isBrowserShortcutEnabled: $isBrowserShortcutEnabled,
    isVisible: $isVisible,
    name: $name,
    protocols: $protocols,
    remoteNetworkId: $remoteNetworkId,
    securityPolicyId: $securityPolicyId
  ) {
    ok
    error
    entity {
      ...ResourceFragment
    }
  }
}
Variables
{
  "address": "xyz789",
  "alias": null,
  "groupIds": [""],
  "isBrowserShortcutEnabled": null,
  "isVisible": null,
  "name": "abc123",
  "protocols": null,
  "remoteNetworkId": 4,
  "securityPolicyId": null
}
Response
{
  "data": {
    "resourceCreate": {
      "ok": false,
      "error": "abc123",
      "entity": Resource
    }
  }
}

resourceDelete

Response

Returns a ResourceDeleteMutation

Arguments
Name Description
id - ID! The ID of the entity to delete.

Example

Query
mutation resourceDelete($id: ID!) {
  resourceDelete(id: $id) {
    ok
    error
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "resourceDelete": {
      "ok": false,
      "error": "xyz789"
    }
  }
}

resourceUpdate

Response

Returns a ResourceUpdateMutation

Arguments
Name Description
addedGroupIds - [ID] List of group IDs to add. Default = null
address - String The resource's IP/FQDN. Default = null
alias - String The Resource's alias. If an empty string is passed, the alias will be cleared. If null is passed, the alias will remain the same. Default = null
groupIds - [ID] List of group IDs to be assigned to the resource. Default = null
id - ID! The resource ID
isActive - Boolean Indicates if the resource is active. Default = null
isBrowserShortcutEnabled - Boolean Indicates whether this resource will display a browser shortcut in the client. Default = null
isVisible - Boolean Indicates whether this resource will be in the main resource list in the client. Default = null
name - String The resource's name. Default = null
protocols - ProtocolsInput Restrict access to certain protocols and ports. Default = null
remoteNetworkId - ID Remote Network ID to assign to the resource. Default = null
removedGroupIds - [ID] List of group IDs to remove. Default = null
securityPolicyId - ID Security Policy ID required to access the resource. Default = null

Example

Query
mutation resourceUpdate(
  $addedGroupIds: [ID],
  $address: String,
  $alias: String,
  $groupIds: [ID],
  $id: ID!,
  $isActive: Boolean,
  $isBrowserShortcutEnabled: Boolean,
  $isVisible: Boolean,
  $name: String,
  $protocols: ProtocolsInput,
  $remoteNetworkId: ID,
  $removedGroupIds: [ID],
  $securityPolicyId: ID
) {
  resourceUpdate(
    addedGroupIds: $addedGroupIds,
    address: $address,
    alias: $alias,
    groupIds: $groupIds,
    id: $id,
    isActive: $isActive,
    isBrowserShortcutEnabled: $isBrowserShortcutEnabled,
    isVisible: $isVisible,
    name: $name,
    protocols: $protocols,
    remoteNetworkId: $remoteNetworkId,
    removedGroupIds: $removedGroupIds,
    securityPolicyId: $securityPolicyId
  ) {
    ok
    error
    entity {
      ...ResourceFragment
    }
  }
}
Variables
{
  "addedGroupIds": null,
  "address": null,
  "alias": null,
  "groupIds": null,
  "id": 4,
  "isActive": null,
  "isBrowserShortcutEnabled": null,
  "isVisible": null,
  "name": null,
  "protocols": null,
  "remoteNetworkId": null,
  "removedGroupIds": null,
  "securityPolicyId": null
}
Response
{
  "data": {
    "resourceUpdate": {
      "ok": true,
      "error": "xyz789",
      "entity": Resource
    }
  }
}

securityPolicyUpdate

Response

Returns a SecurityPolicyUpdateMutation

Arguments
Name Description
addedGroupIds - [ID] List of group IDs to add. Default = null
groupIds - [ID] List of group IDs to be assigned the security policy. Groups currently assigned the policy that are not included will have the policy removed and enforce the default resource policy. Default = null
id - ID! The security policy ID.
removedGroupIds - [ID] List of group IDs to remove. Groups removed from this policy will enforce the default resource policy. Default = null

Example

Query
mutation securityPolicyUpdate(
  $addedGroupIds: [ID],
  $groupIds: [ID],
  $id: ID!,
  $removedGroupIds: [ID]
) {
  securityPolicyUpdate(
    addedGroupIds: $addedGroupIds,
    groupIds: $groupIds,
    id: $id,
    removedGroupIds: $removedGroupIds
  ) {
    ok
    error
    entity {
      ...SecurityPolicyFragment
    }
  }
}
Variables
{"addedGroupIds": null, "groupIds": null, "id": 4, "removedGroupIds": null}
Response
{
  "data": {
    "securityPolicyUpdate": {
      "ok": false,
      "error": "xyz789",
      "entity": SecurityPolicy
    }
  }
}

serialNumbersCreate

Response

Returns a SerialNumbersCreateMutation

Arguments
Name Description
serialNumbers - [String!]! List of serial numbers

Example

Query
mutation serialNumbersCreate($serialNumbers: [String!]!) {
  serialNumbersCreate(serialNumbers: $serialNumbers) {
    ok
    error
    entities {
      ...SerialNumberFragment
    }
  }
}
Variables
{"serialNumbers": ["abc123"]}
Response
{
  "data": {
    "serialNumbersCreate": {
      "ok": true,
      "error": "abc123",
      "entities": [SerialNumber]
    }
  }
}

serialNumbersDelete

Response

Returns a SerialNumbersDeleteMutation

Arguments
Name Description
serialNumbers - [String!]! List of serial numbers

Example

Query
mutation serialNumbersDelete($serialNumbers: [String!]!) {
  serialNumbersDelete(serialNumbers: $serialNumbers) {
    ok
    error
  }
}
Variables
{"serialNumbers": ["abc123"]}
Response
{
  "data": {
    "serialNumbersDelete": {
      "ok": true,
      "error": "xyz789"
    }
  }
}

serviceAccountCreate

Response

Returns a ServiceAccountCreateMutation

Arguments
Name Description
name - String! The service account name
resourceIds - [ID] List of resource IDs added to the service account. Default = []

Example

Query
mutation serviceAccountCreate(
  $name: String!,
  $resourceIds: [ID]
) {
  serviceAccountCreate(
    name: $name,
    resourceIds: $resourceIds
  ) {
    ok
    error
    entity {
      ...ServiceAccountFragment
    }
  }
}
Variables
{"name": "xyz789", "resourceIds": [""]}
Response
{
  "data": {
    "serviceAccountCreate": {
      "ok": false,
      "error": "xyz789",
      "entity": ServiceAccount
    }
  }
}

serviceAccountDelete

Response

Returns a ServiceAccountDeleteMutation

Arguments
Name Description
id - ID! The ID of the entity to delete.

Example

Query
mutation serviceAccountDelete($id: ID!) {
  serviceAccountDelete(id: $id) {
    ok
    error
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "serviceAccountDelete": {
      "ok": false,
      "error": "xyz789"
    }
  }
}

serviceAccountKeyCreate

Response

Returns a ServiceAccountKeyCreateMutation

Arguments
Name Description
expirationTime - Int! Number of days key will expire in, a value from 0-365 (inclusive) is required.
name - String The service account key name. Default = null
serviceAccountId - ID! The service account ID

Example

Query
mutation serviceAccountKeyCreate(
  $expirationTime: Int!,
  $name: String,
  $serviceAccountId: ID!
) {
  serviceAccountKeyCreate(
    expirationTime: $expirationTime,
    name: $name,
    serviceAccountId: $serviceAccountId
  ) {
    ok
    error
    entity {
      ...ServiceAccountKeyFragment
    }
    token
  }
}
Variables
{
  "expirationTime": 123,
  "name": null,
  "serviceAccountId": "4"
}
Response
{
  "data": {
    "serviceAccountKeyCreate": {
      "ok": false,
      "error": "xyz789",
      "entity": ServiceAccountKey,
      "token": "abc123"
    }
  }
}

serviceAccountKeyDelete

Response

Returns a ServiceAccountKeyDeleteMutation

Arguments
Name Description
id - ID! The ID of the entity to delete.

Example

Query
mutation serviceAccountKeyDelete($id: ID!) {
  serviceAccountKeyDelete(id: $id) {
    ok
    error
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "serviceAccountKeyDelete": {
      "ok": false,
      "error": "xyz789"
    }
  }
}

serviceAccountKeyRevoke

Response

Returns a ServiceAccountKeyRevokeMutation

Arguments
Name Description
id - ID! The service account key ID

Example

Query
mutation serviceAccountKeyRevoke($id: ID!) {
  serviceAccountKeyRevoke(id: $id) {
    ok
    error
    entity {
      ...ServiceAccountKeyFragment
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "serviceAccountKeyRevoke": {
      "ok": false,
      "error": "abc123",
      "entity": ServiceAccountKey
    }
  }
}

serviceAccountKeyUpdate

Response

Returns a ServiceAccountKeyUpdateMutation

Arguments
Name Description
id - ID! The service account key ID
name - String! The service account key name

Example

Query
mutation serviceAccountKeyUpdate(
  $id: ID!,
  $name: String!
) {
  serviceAccountKeyUpdate(
    id: $id,
    name: $name
  ) {
    ok
    error
    entity {
      ...ServiceAccountKeyFragment
    }
  }
}
Variables
{"id": 4, "name": "abc123"}
Response
{
  "data": {
    "serviceAccountKeyUpdate": {
      "ok": true,
      "error": "abc123",
      "entity": ServiceAccountKey
    }
  }
}

serviceAccountUpdate

Response

Returns a ServiceAccountUpdateMutation

Arguments
Name Description
addedResourceIds - [ID] List of resource IDs added to the service account. Default = []
id - ID! The service account ID
name - String The service account name. Default = null
removedResourceIds - [ID] List of resource IDs removed from the service account. Default = []
resourceIds - [ID] List of resource IDs to be assigned to the service account. Default = []

Example

Query
mutation serviceAccountUpdate(
  $addedResourceIds: [ID],
  $id: ID!,
  $name: String,
  $removedResourceIds: [ID],
  $resourceIds: [ID]
) {
  serviceAccountUpdate(
    addedResourceIds: $addedResourceIds,
    id: $id,
    name: $name,
    removedResourceIds: $removedResourceIds,
    resourceIds: $resourceIds
  ) {
    ok
    error
    entity {
      ...ServiceAccountFragment
    }
  }
}
Variables
{
  "addedResourceIds": [""],
  "id": 4,
  "name": null,
  "removedResourceIds": [""],
  "resourceIds": [""]
}
Response
{
  "data": {
    "serviceAccountUpdate": {
      "ok": true,
      "error": "xyz789",
      "entity": ServiceAccount
    }
  }
}

userCreate

Response

Returns a UserCreateMutation

Arguments
Name Description
email - String! The user's email
firstName - String The user's first name. Default = null
lastName - String The user's last name. Default = null
role - UserRole The user's role. Default = MEMBER
shouldSendInvite - Boolean Indicates whether to sends an invite to the user's email. Default = true

Example

Query
mutation userCreate(
  $email: String!,
  $firstName: String,
  $lastName: String,
  $role: UserRole,
  $shouldSendInvite: Boolean
) {
  userCreate(
    email: $email,
    firstName: $firstName,
    lastName: $lastName,
    role: $role,
    shouldSendInvite: $shouldSendInvite
  ) {
    ok
    error
    entity {
      ...UserFragment
    }
  }
}
Variables
{
  "email": "abc123",
  "firstName": null,
  "lastName": null,
  "role": "MEMBER",
  "shouldSendInvite": true
}
Response
{
  "data": {
    "userCreate": {
      "ok": false,
      "error": "xyz789",
      "entity": User
    }
  }
}

userDelete

Response

Returns a UserDeleteMutation

Arguments
Name Description
id - ID! The ID of the entity to delete.

Example

Query
mutation userDelete($id: ID!) {
  userDelete(id: $id) {
    ok
    error
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "userDelete": {
      "ok": true,
      "error": "xyz789"
    }
  }
}

userDetailsUpdate

Response

Returns a UserDetailsUpdateMutation

Arguments
Name Description
firstName - String The user's first name. Default = null
id - ID! The user ID
lastName - String The user's last name. Default = null
state - UserStateUpdateInput The user's state. Default = null

Example

Query
mutation userDetailsUpdate(
  $firstName: String,
  $id: ID!,
  $lastName: String,
  $state: UserStateUpdateInput
) {
  userDetailsUpdate(
    firstName: $firstName,
    id: $id,
    lastName: $lastName,
    state: $state
  ) {
    ok
    error
    entity {
      ...UserFragment
    }
  }
}
Variables
{
  "firstName": null,
  "id": "4",
  "lastName": null,
  "state": "null"
}
Response
{
  "data": {
    "userDetailsUpdate": {
      "ok": false,
      "error": "abc123",
      "entity": User
    }
  }
}

userRoleUpdate

Response

Returns a UserRoleUpdateMutation

Arguments
Name Description
id - ID! The user ID
role - UserRole! The user's role

Example

Query
mutation userRoleUpdate(
  $id: ID!,
  $role: UserRole!
) {
  userRoleUpdate(
    id: $id,
    role: $role
  ) {
    ok
    error
    entity {
      ...UserFragment
    }
  }
}
Variables
{"id": "4", "role": "ADMIN"}
Response
{
  "data": {
    "userRoleUpdate": {
      "ok": true,
      "error": "abc123",
      "entity": User
    }
  }
}

Types

AccessConnection

Fields
Field Name Description
pageInfo - PageInfo! Pagination data for this connection.
edges - [AccessEdge!]! Contains the nodes in this connection.
totalCount - Int! A total count of items in the connection.
Example
{
  "pageInfo": PageInfo,
  "edges": [AccessEdge],
  "totalCount": 123
}

AccessEdge

Description

A Relay edge containing a Access and its cursor.

Fields
Field Name Description
node - Principal! The item at the end of the edge.
cursor - String! A cursor for use in pagination
securityPolicy - SecurityPolicy The security policy directly assigned to this access edge.
expiresAt - DateTime The timestamp at which the access edge expires.
Example
{
  "node": Group,
  "cursor": "xyz789",
  "securityPolicy": SecurityPolicy,
  "expiresAt": "2007-12-03T10:15:30Z"
}

AccessFilterInput

Fields
Input Field Description
principalType - PrincipleTypeFilterOperatorInput
Example
{"principalType": PrincipleTypeFilterOperatorInput}

AccessInput

Fields
Input Field Description
principalId - ID! The ID of the principal (group or service account) whose access is being configured.
securityPolicyId - ID The ID of the security policy that must be used by this access edge. If unspecified, the access edge's existing policy remains unchanged. If null, the access edge' existing policy is removed. This value should be null when the principal is a service account.
expiresAt - DateTime The timestamp at which the access edge expires. If unspecified, the access edge's existing expiration remains unchanged. If null, the access edge's existing expiration is removed. This value should be null when the principal is a service account.
Example
{
  "principalId": 4,
  "securityPolicyId": 4,
  "expiresAt": "2007-12-03T10:15:30Z"
}

AddressType

Values
Enum Value Description

IP

DNS

Example
"IP"

Boolean

Description

The Boolean scalar type represents true or false.

Example
true

BooleanFilterOperatorInput

Description

Filter input object for a boolean field. Each field of this input object represents a filtering operation. When multiple fields are specified, they are combined with an AND operation.

Fields
Input Field Description
eq - Boolean
Example
{"eq": false}

Connector

Fields
Field Name Description
createdAt - DateTime!
updatedAt - DateTime!
lastHeartbeatAt - DateTime
hostname - String
id - ID! The ID of the object
name - String! Connector name
remoteNetwork - RemoteNetwork! The remote network this connector belongs to
state - ConnectorState!
hasStatusNotificationsEnabled - Boolean! Indicates whether status notifications is enabled for the connector
version - String The Connector's version
publicIP - String The public IP address of the Connector
privateIPs - [String!]! The private IP address of the Connector
Example
{
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z",
  "lastHeartbeatAt": "2007-12-03T10:15:30Z",
  "hostname": "xyz789",
  "id": "4",
  "name": "abc123",
  "remoteNetwork": RemoteNetwork,
  "state": "ALIVE",
  "hasStatusNotificationsEnabled": false,
  "version": "abc123",
  "publicIP": "xyz789",
  "privateIPs": ["abc123"]
}

ConnectorConnection

Fields
Field Name Description
pageInfo - PageInfo! Pagination data for this connection.
edges - [ConnectorEdge!]! Contains the nodes in this connection.
totalCount - Int! A total count of items in the connection.
Example
{
  "pageInfo": PageInfo,
  "edges": [ConnectorEdge],
  "totalCount": 123
}

ConnectorCreateMutation

Fields
Field Name Description
ok - Boolean! Whether the mutation was successful.
error - String Any error encountered causing the mutation to fail.
entity - Connector The connector created.
Example
{
  "ok": true,
  "error": "xyz789",
  "entity": Connector
}

ConnectorDeleteMutation

Fields
Field Name Description
ok - Boolean! Records whether the delete mutation was successfully completed
error - String Any error was encountered causing the delete mutation to fail.
Example
{"ok": false, "error": "abc123"}

ConnectorEdge

Description

A Relay edge containing a Connector and its cursor.

Fields
Field Name Description
node - Connector! The item at the end of the edge.
cursor - String! A cursor for use in pagination
Example
{
  "node": Connector,
  "cursor": "xyz789"
}

ConnectorFilterInput

Fields
Input Field Description
name - StringFilterOperatorInput
state - ConnectorStateFilterOperatorInput
Example
{
  "name": StringFilterOperatorInput,
  "state": ConnectorStateFilterOperatorInput
}

ConnectorGenerateTokensMutation

Fields
Field Name Description
ok - Boolean! Whether the mutation was successful.
error - String Any error encountered causing the mutation to fail.
connectorTokens - ConnectorTokens Generated tokens to use for this connector.
Example
{
  "ok": false,
  "error": "xyz789",
  "connectorTokens": ConnectorTokens
}

ConnectorState

Values
Enum Value Description

ALIVE

DEAD_NO_HEARTBEAT

DEAD_HEARTBEAT_TOO_OLD

DEAD_NO_RELAYS

Example
"ALIVE"

ConnectorStateFilterOperatorInput

Description

Filter input object for a ConnectorState enum field. Each field of this input object represents a filtering operation. When multiple fields are specified, they are combined with an AND operation.

Fields
Input Field Description
in - [ConnectorState!]
Example
{"in": ["ALIVE"]}

ConnectorTokens

Fields
Field Name Description
accessToken - String! Access token to use for this connector.
refreshToken - String! Refresh token to use for this connector.
Example
{
  "accessToken": "xyz789",
  "refreshToken": "xyz789"
}

ConnectorUpdateMutation

Fields
Field Name Description
ok - Boolean! Whether the mutation was successful.
error - String Any error encountered causing the mutation to fail.
entity - Connector The connector being updated.
Example
{
  "ok": false,
  "error": "xyz789",
  "entity": Connector
}

DateTime

Description

The DateTime scalar type represents a DateTime value as specified by iso8601.

Example
"2007-12-03T10:15:30Z"

Device

Fields
Field Name Description
id - ID! The ID of the object
name - String
lastFailedLoginAt - DateTime
lastSuccessfulLoginAt - DateTime
osVersion - String
hardwareModel - String
hostname - String
username - String
serialNumber - String
user - User! The user this device belongs to
lastConnectedAt - DateTime The last connected timestamp is no longer available.
osName - DeviceOsName Device Operating System name
deviceType - DeviceType! Device type
activeState - DeviceActiveState! The active state of the device
isTrusted - Boolean!
clientVersion - String
manufacturerName - String
Example
{
  "id": 4,
  "name": "xyz789",
  "lastFailedLoginAt": "2007-12-03T10:15:30Z",
  "lastSuccessfulLoginAt": "2007-12-03T10:15:30Z",
  "osVersion": "abc123",
  "hardwareModel": "abc123",
  "hostname": "xyz789",
  "username": "xyz789",
  "serialNumber": "abc123",
  "user": User,
  "lastConnectedAt": "2007-12-03T10:15:30Z",
  "osName": "IPADOS",
  "deviceType": "GENERIC",
  "activeState": "ACTIVE",
  "isTrusted": true,
  "clientVersion": "abc123",
  "manufacturerName": "xyz789"
}

DeviceActiveState

Description

Device active state

Values
Enum Value Description

ACTIVE

ARCHIVED

BLOCKED

Example
"ACTIVE"

DeviceActiveStateFilterOperatorInput

Description

Filter input object for a DeviceActiveState enum field. Each field of this input object represents a filtering operation. When multiple fields are specified, they are combined with an AND operation.

Fields
Input Field Description
in - [DeviceActiveState!]
Example
{"in": ["ACTIVE"]}

DeviceArchiveMutation

Fields
Field Name Description
ok - Boolean! Whether the mutation was successful.
error - String Any error encountered causing the mutation to fail.
entity - Device The device being archived.
Example
{
  "ok": false,
  "error": "xyz789",
  "entity": Device
}

DeviceBlockMutation

Fields
Field Name Description
ok - Boolean! Whether the mutation was successful.
error - String Any error encountered causing the mutation to fail.
entity - Device The device being blocked.
Example
{
  "ok": true,
  "error": "xyz789",
  "entity": Device
}

DeviceConnection

Fields
Field Name Description
pageInfo - PageInfo! Pagination data for this connection.
edges - [DeviceEdge!]! Contains the nodes in this connection.
totalCount - Int! A total count of items in the connection.
Example
{
  "pageInfo": PageInfo,
  "edges": [DeviceEdge],
  "totalCount": 123
}

DeviceEdge

Description

A Relay edge containing a Device and its cursor.

Fields
Field Name Description
node - Device! The item at the end of the edge.
cursor - String! A cursor for use in pagination
Example
{
  "node": Device,
  "cursor": "xyz789"
}

DeviceFilterInput

Fields
Input Field Description
isTrusted - BooleanFilterOperatorInput
serialNumber - StringFilterOperatorInput
activeState - DeviceActiveStateFilterOperatorInput
Example
{
  "isTrusted": BooleanFilterOperatorInput,
  "serialNumber": StringFilterOperatorInput,
  "activeState": DeviceActiveStateFilterOperatorInput
}

DeviceOsName

Description

Operating System name

Values
Enum Value Description

IPADOS

IOS

MAC_OS

ANDROID

CHROME_OS

WINDOWS

LINUX

Example
"IPADOS"

DeviceType

Description

Device type

Values
Enum Value Description

GENERIC

DESKTOP

LAPTOP

TABLET

MOBILE

Example
"GENERIC"

DeviceUnarchiveMutation

Fields
Field Name Description
ok - Boolean! Whether the mutation was successful.
error - String Any error encountered causing the mutation to fail.
entity - Device The device being unarchived.
Example
{
  "ok": true,
  "error": "xyz789",
  "entity": Device
}

DeviceUnblockMutation

Fields
Field Name Description
ok - Boolean! Whether the mutation was successful.
error - String Any error encountered causing the mutation to fail.
entity - Device The device being unblocked.
Example
{
  "ok": true,
  "error": "abc123",
  "entity": Device
}

DeviceUpdateMutation

Fields
Field Name Description
ok - Boolean! Whether the mutation was successful.
error - String Any error encountered causing the mutation to fail.
entity - Device The device being updated.
Example
{
  "ok": true,
  "error": "xyz789",
  "entity": Device
}

DnsFilteringAllowedDomainsSetMutation

Fields
Field Name Description
ok - Boolean! Whether the mutation was successful.
error - String Any error encountered causing the mutation to fail.
Example
{"ok": false, "error": "abc123"}

DnsFilteringDeniedDomainsSetMutation

Fields
Field Name Description
ok - Boolean! Whether the mutation was successful.
error - String Any error encountered causing the mutation to fail.
Example
{"ok": false, "error": "abc123"}

DnsFilteringProfile

Fields
Field Name Description
id - ID! The ID of the DNS filtering profile
allowedDomains - [String!]! List of allowed domains
deniedDomains - [String!]! List of denied domains
Example
{
  "id": 4,
  "allowedDomains": ["abc123"],
  "deniedDomains": ["abc123"]
}

Group

Fields
Field Name Description
id - ID! The ID of the object
createdAt - DateTime!
updatedAt - DateTime!
name - String!
originId - String
isActive - Boolean! Indicates if the group is active
type - GroupType! The type of the group
users - UserConnection! Which users are members of this group
Arguments
before - String
after - String
first - Int
last - Int
filter - UserFilterInput
resources - ResourceConnection! Which resources this group contains
Arguments
before - String
after - String
first - Int
last - Int
securityPolicy - SecurityPolicy! The security policy assigned to the group
Example
{
  "id": "4",
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z",
  "name": "xyz789",
  "originId": "abc123",
  "isActive": true,
  "type": "MANUAL",
  "users": UserConnection,
  "resources": ResourceConnection,
  "securityPolicy": SecurityPolicy
}

GroupConnection

Fields
Field Name Description
pageInfo - PageInfo! Pagination data for this connection.
edges - [GroupEdge!]! Contains the nodes in this connection.
totalCount - Int! A total count of items in the connection.
Example
{
  "pageInfo": PageInfo,
  "edges": [GroupEdge],
  "totalCount": 987
}

GroupCreateMutation

Fields
Field Name Description
ok - Boolean! Whether the mutation was successful.
error - String Any error encountered causing the mutation to fail.
entity - Group The group created.
Example
{
  "ok": true,
  "error": "abc123",
  "entity": Group
}

GroupDeleteMutation

Fields
Field Name Description
ok - Boolean! Records whether the delete mutation was successfully completed
error - String Any error was encountered causing the delete mutation to fail.
Example
{"ok": false, "error": "abc123"}

GroupEdge

Description

A Relay edge containing a Group and its cursor.

Fields
Field Name Description
node - Group! The item at the end of the edge.
cursor - String! A cursor for use in pagination
Example
{
  "node": Group,
  "cursor": "abc123"
}

GroupFilterInput

Fields
Input Field Description
name - StringFilterOperatorInput
type - GroupTypeFilterOperatorInput
isActive - BooleanFilterOperatorInput
originId - StringFilterOperatorInput
Example
{
  "name": StringFilterOperatorInput,
  "type": GroupTypeFilterOperatorInput,
  "isActive": BooleanFilterOperatorInput,
  "originId": StringFilterOperatorInput
}

GroupType

Values
Enum Value Description

MANUAL

SYNCED

SYSTEM

Example
"MANUAL"

GroupTypeFilterOperatorInput

Description

Filter input object for a GroupType enum field. Each field of this input object represents a filtering operation. When multiple fields are specified, they are combined with an AND operation.

Fields
Input Field Description
in - [GroupType!]
Example
{"in": ["MANUAL"]}

GroupUpdateMutation

Fields
Field Name Description
ok - Boolean! Whether the mutation was successful.
error - String Any error encountered causing the mutation to fail.
entity - Group The group being updated.
Example
{
  "ok": true,
  "error": "abc123",
  "entity": Group
}

ID

Description

The ID scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4") or integer (such as 4) input value will be accepted as an ID.

Example
4

Int

Description

The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.

Example
987

Node

Description

An object with an ID

Fields
Field Name Description
id - ID! The ID of the object
Example
{"id": "4"}

PageInfo

Description

The Relay compliant PageInfo type, containing data necessary to paginate this connection.

Fields
Field Name Description
hasNextPage - Boolean! When paginating forwards, are there more items?
hasPreviousPage - Boolean! When paginating backwards, are there more items?
startCursor - String When paginating backwards, the cursor to continue.
endCursor - String When paginating forwards, the cursor to continue.
Example
{
  "hasNextPage": true,
  "hasPreviousPage": true,
  "startCursor": "xyz789",
  "endCursor": "abc123"
}

PortRange

Fields
Field Name Description
start - Int! The start value of the range port (inclusive). The value must be between 1 and 65535 inclusively.
end - Int! The end value of the range port (inclusive). The value must be between 1 and 65535 inclusively. This end value can be the same as the start value, which means only a single port is allowed.
Example
{"start": 987, "end": 123}

PortRangeInput

Fields
Input Field Description
start - Int! The start value of the range port (inclusive). The value must be between 1 and 65535 inclusively.
end - Int! The end value of the range port (inclusive). The value must be between 1 and 65535 inclusively. This end value can be the same as the start value, which means only a single port is allowed.
Example
{"start": 987, "end": 123}

Principal

Types
Union Types

Group

ServiceAccount

Example
Group

PrincipalType

Values
Enum Value Description

GROUP

SERVICE_ACCOUNT

Example
"GROUP"

PrincipleTypeFilterOperatorInput

Description

Filter input object for a PrincipalType enum field. Each field of this input object represents a filtering operation. When multiple fields are specified, they are combined with an AND operation.

Fields
Input Field Description
in - [PrincipalType!]
Example
{"in": ["GROUP"]}

ProtocolInput

Fields
Input Field Description
policy - ProtocolPolicy! Whether to allow all ports or restrict protocol access within certain port ranges.
ports - [PortRangeInput!]! List of port ranges to allow access. This input is only used when the policy is RESTRICTED. If the value is empty, no port is allowed to access. Default = []
Example
{"policy": "ALLOW_ALL", "ports": [PortRangeInput]}

ProtocolPolicy

Values
Enum Value Description

ALLOW_ALL

RESTRICTED

Example
"ALLOW_ALL"

ProtocolsInput

Fields
Input Field Description
allowIcmp - Boolean! Whether to allow or deny ICMP
tcp - ProtocolInput! Specified to allow or restrict TCP access within certain port ranges.
udp - ProtocolInput! Specified to allow or restrict UDP access within certain port ranges.
Example
{
  "allowIcmp": false,
  "tcp": ProtocolInput,
  "udp": ProtocolInput
}

RemoteNetwork

Fields
Field Name Description
createdAt - DateTime!
updatedAt - DateTime!
name - String!
id - ID! The ID of the object
location - RemoteNetworkLocation! The location of the remote network
isActive - Boolean! Indicates if the resource is active
resources - ResourceConnection! Which resources are assigned to this remote network
Arguments
before - String
after - String
first - Int
last - Int
connectors - ConnectorConnection! Which connectors are part of this remote network
Arguments
before - String
after - String
first - Int
last - Int
Example
{
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z",
  "name": "abc123",
  "id": 4,
  "location": "AWS",
  "isActive": true,
  "resources": ResourceConnection,
  "connectors": ConnectorConnection
}

RemoteNetworkConnection

Fields
Field Name Description
pageInfo - PageInfo! Pagination data for this connection.
edges - [RemoteNetworkEdge!]! Contains the nodes in this connection.
totalCount - Int! A total count of items in the connection.
Example
{
  "pageInfo": PageInfo,
  "edges": [RemoteNetworkEdge],
  "totalCount": 123
}

RemoteNetworkCreateMutation

Fields
Field Name Description
ok - Boolean! Whether the mutation was successful.
error - String Any error encountered causing the mutation to fail.
entity - RemoteNetwork The remote network created.
Example
{
  "ok": true,
  "error": "xyz789",
  "entity": RemoteNetwork
}

RemoteNetworkDeleteMutation

Fields
Field Name Description
ok - Boolean! Records whether the delete mutation was successfully completed
error - String Any error was encountered causing the delete mutation to fail.
Example
{"ok": true, "error": "abc123"}

RemoteNetworkEdge

Description

A Relay edge containing a RemoteNetwork and its cursor.

Fields
Field Name Description
node - RemoteNetwork! The item at the end of the edge.
cursor - String! A cursor for use in pagination
Example
{
  "node": RemoteNetwork,
  "cursor": "abc123"
}

RemoteNetworkFilterInput

Fields
Input Field Description
name - StringFilterOperatorInput
Example
{"name": StringFilterOperatorInput}

RemoteNetworkLocation

Values
Enum Value Description

AWS

AZURE

GOOGLE_CLOUD

ON_PREMISE

OTHER

Example
"AWS"

RemoteNetworkUpdateMutation

Fields
Field Name Description
ok - Boolean! Whether the mutation was successful.
error - String Any error encountered causing the mutation to fail.
entity - RemoteNetwork The remote network being updated.
Example
{
  "ok": true,
  "error": "abc123",
  "entity": RemoteNetwork
}

Resource

Fields
Field Name Description
id - ID! The ID of the object
createdAt - DateTime!
updatedAt - DateTime!
name - String!
address - ResourceAddress! Resource address
alias - String Resource alias address
protocols - ResourceProtocols! Resource protocol policies
isActive - Boolean! Indicates if the resource is active
remoteNetwork - RemoteNetwork! Which remote network this resource belongs to
groups - GroupConnection! Which groups have access to this resource Use access connection instead
Arguments
before - String
after - String
first - Int
last - Int
filter - GroupFilterInput
serviceAccounts - ServiceAccountConnection! Which service accounts have access to this resource Use access connection instead
Arguments
before - String
after - String
first - Int
last - Int
access - AccessConnection! Which principals have access to this resource
Arguments
before - String
after - String