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
first - Int
last - Int
isVisible - Boolean! Indicates whether this resource will be in the main resource list in the client.
isBrowserShortcutEnabled - Boolean! Indicates whether this resource will display a browser shortcut in the client.
securityPolicy - SecurityPolicy Which security policy required to access the resource
Example
{
  "id": 4,
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z",
  "name": "abc123",
  "address": ResourceAddress,
  "alias": "xyz789",
  "protocols": ResourceProtocols,
  "isActive": true,
  "remoteNetwork": RemoteNetwork,
  "groups": GroupConnection,
  "serviceAccounts": ServiceAccountConnection,
  "access": AccessConnection,
  "isVisible": true,
  "isBrowserShortcutEnabled": true,
  "securityPolicy": SecurityPolicy
}

ResourceAccessAddMutation

Fields
Field Name Description
ok - Boolean! Whether the mutation was successful.
error - String Any error encountered causing the mutation to fail.
entity - Resource The resource which access is being updated.
Example
{
  "ok": false,
  "error": "abc123",
  "entity": Resource
}

ResourceAccessRemoveMutation

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

ResourceAccessSetMutation

Fields
Field Name Description
ok - Boolean! Whether the mutation was successful.
error - String Any error encountered causing the mutation to fail.
entity - Resource The resource which access is being updated.
Example
{
  "ok": false,
  "error": "abc123",
  "entity": Resource
}

ResourceAddress

Fields
Field Name Description
type - AddressType! ip or dns resource
value - String!
Example
{"type": "IP", "value": "xyz789"}

ResourceConnection

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

ResourceCreateMutation

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

ResourceDeleteMutation

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": "xyz789"}

ResourceEdge

Description

A Relay edge containing a Resource and its cursor.

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

ResourceFilterInput

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

ResourceProtocol

Fields
Field Name Description
policy - ProtocolPolicy! Whether the protocol is allowed on all ports or restricted to certain ranges
ports - [PortRange!]! List of port ranges to allow access. This value should be ignored when policy is ALLOW_ALL.
Example
{"policy": "ALLOW_ALL", "ports": [PortRange]}

ResourceProtocols

Fields
Field Name Description
allowIcmp - Boolean! True if ICMP is allowed. Otherwise, False.
tcp - ResourceProtocol! Protocol policy for TCP.
udp - ResourceProtocol! Protocol policy for UDP.
Example
{
  "allowIcmp": false,
  "tcp": ResourceProtocol,
  "udp": ResourceProtocol
}

ResourceUpdateMutation

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

SecurityPolicy

Fields
Field Name Description
id - ID! The ID of the object
createdAt - DateTime!
updatedAt - DateTime!
name - String!
policyType - SecurityPolicyType! The type of security policy
groups - GroupConnection! Groups assigned to this security policy
Arguments
before - String
after - String
first - Int
last - Int
filter - GroupFilterInput
Example
{
  "id": 4,
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z",
  "name": "xyz789",
  "policyType": "RESOURCE",
  "groups": GroupConnection
}

SecurityPolicyConnection

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

SecurityPolicyEdge

Description

A Relay edge containing a SecurityPolicy and its cursor.

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

SecurityPolicyFilterField

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

SecurityPolicyType

Values
Enum Value Description

RESOURCE

DEFAULT_RESOURCE

Example
"RESOURCE"

SecurityPolicyTypeFilterOperatorInput

Description

Filter input object for a SecurityPolicyType 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 - [SecurityPolicyType!]
Example
{"in": ["RESOURCE"]}

SecurityPolicyUpdateMutation

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

SerialNumber

Fields
Field Name Description
createdAt - DateTime!
serialNumber - String!
id - ID! The ID of the object
matchedDevices - [Device!]! List of devices that are serial number verified and match this serial number
Example
{
  "createdAt": "2007-12-03T10:15:30Z",
  "serialNumber": "xyz789",
  "id": 4,
  "matchedDevices": [Device]
}

SerialNumberConnection

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

SerialNumberEdge

Description

A Relay edge containing a SerialNumber and its cursor.

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

SerialNumberFilterInput

Fields
Input Field Description
serialNumber - StringFilterOperatorInput
hasMatchedDevices - BooleanFilterOperatorInput
Example
{
  "serialNumber": StringFilterOperatorInput,
  "hasMatchedDevices": BooleanFilterOperatorInput
}

SerialNumbersCreateMutation

Fields
Field Name Description
ok - Boolean! Whether the mutation was successful.
error - String Any error encountered causing the mutation to fail.
entities - [SerialNumber!] A list of created serial numbers.
Example
{
  "ok": true,
  "error": "xyz789",
  "entities": [SerialNumber]
}

SerialNumbersDeleteMutation

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"}

ServiceAccount

Fields
Field Name Description
id - ID! The ID of the object
name - String!
createdAt - DateTime!
updatedAt - DateTime!
resources - ResourceConnection! List of resources
Arguments
before - String
after - String
first - Int
last - Int
keys - ServiceAccountKeyConnection! List of service keys that belong to this account
Arguments
before - String
after - String
first - Int
last - Int
Example
{
  "id": 4,
  "name": "abc123",
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z",
  "resources": ResourceConnection,
  "keys": ServiceAccountKeyConnection
}

ServiceAccountConnection

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

ServiceAccountCreateMutation

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

ServiceAccountDeleteMutation

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"}

ServiceAccountEdge

Description

A Relay edge containing a ServiceAccount and its cursor.

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

ServiceAccountFilterInput

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

ServiceAccountKey

Fields
Field Name Description
createdAt - DateTime!
id - ID! The ID of the object
name - String!
expiresAt - DateTime
revokedAt - DateTime
updatedAt - DateTime!
status - ServiceAccountKeyStatus! Indicates the status of the service account key
serviceAccount - ServiceAccount! The service account
Example
{
  "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
}

ServiceAccountKeyConnection

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

ServiceAccountKeyCreateMutation

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

ServiceAccountKeyDeleteMutation

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": "xyz789"}

ServiceAccountKeyEdge

Description

A Relay edge containing a ServiceAccountKey and its cursor.

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

ServiceAccountKeyRevokeMutation

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

ServiceAccountKeyStatus

Values
Enum Value Description

ACTIVE

REVOKED

EXPIRED

Example
"ACTIVE"

ServiceAccountKeyUpdateMutation

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

ServiceAccountUpdateMutation

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

String

Description

The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.

Example
"xyz789"

StringFilterOperatorInput

Description

Filter input object for a string 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 - String
ne - String
startsWith - String
endsWith - String
regexp - String
contains - String
in - [String!]
Example
{
  "eq": "abc123",
  "ne": "xyz789",
  "startsWith": "abc123",
  "endsWith": "abc123",
  "regexp": "xyz789",
  "contains": "xyz789",
  "in": ["xyz789"]
}

User

Fields
Field Name Description
id - ID! The ID of the object
createdAt - DateTime!
updatedAt - DateTime!
firstName - String!
lastName - String!
email - String
avatarUrl - String
state - UserState! The state of the user
isAdmin - Boolean! True when the user has an admin role (ADMIN, DEVOPS, SUPPORT) Use role instead
role - UserRole! Indicates the user's role
type - UserType! Indicates the user's type
groups - GroupConnection! Groups this user is a member of
Arguments
before - String
after - String
first - Int
last - Int
filter - GroupFilterInput
Example
{
  "id": 4,
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z",
  "firstName": "xyz789",
  "lastName": "abc123",
  "email": "abc123",
  "avatarUrl": "xyz789",
  "state": "PENDING",
  "isAdmin": false,
  "role": "ADMIN",
  "type": "MANUAL",
  "groups": GroupConnection
}

UserConnection

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

UserCreateMutation

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

UserDeleteMutation

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"}

UserDetailsUpdateMutation

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

UserEdge

Description

A Relay edge containing a User and its cursor.

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

UserFilterInput

Fields
Input Field Description
role - UserRoleFilterOperatorInput
firstName - StringFilterOperatorInput
lastName - StringFilterOperatorInput
email - StringFilterOperatorInput
Example
{
  "role": UserRoleFilterOperatorInput,
  "firstName": StringFilterOperatorInput,
  "lastName": StringFilterOperatorInput,
  "email": StringFilterOperatorInput
}

UserRole

Values
Enum Value Description

ADMIN

Full access to the Admin Console

DEVOPS

Full access to the Network tab, read-only access to the rest of the Admin Console

SUPPORT

Read-only access to the Admin Console

MEMBER

No access to the Admin Console
Example
"ADMIN"

UserRoleFilterOperatorInput

Description

Filter input object for a UserRole 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 - [UserRole!]
Example
{"in": ["ADMIN"]}

UserRoleUpdateMutation

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

UserState

Values
Enum Value Description

PENDING

ACTIVE

DISABLED

Example
"PENDING"

UserStateUpdateInput

Values
Enum Value Description

ACTIVE

DISABLED

Example
"ACTIVE"

UserType

Values
Enum Value Description

MANUAL

Users manually invited to Twingate through email

SYNCED

Users synced to Twingate through an IdP
Example
"MANUAL"